diff options
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/extra/m_argon2.cpp | 7 | ||||
| -rw-r--r-- | src/modules/m_password_hash.cpp | 4 | ||||
| -rw-r--r-- | src/modules/m_pbkdf2.cpp | 5 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/modules/extra/m_argon2.cpp b/src/modules/extra/m_argon2.cpp index 30d3de06b..999bd7d82 100644 --- a/src/modules/extra/m_argon2.cpp +++ b/src/modules/extra/m_argon2.cpp @@ -92,7 +92,8 @@ public: std::string GenerateRaw(const std::string& data) override { - const std::string salt = ServerInstance->GenRandomStr(config.saltlen, false); + std::vector<char> salt(config.saltlen); + ServerInstance->GenRandom(salt.data(), salt.size()); size_t encodedLen = argon2_encodedlen( config.iterations, @@ -111,8 +112,8 @@ public: config.threads, data.c_str(), data.length(), - salt.c_str(), - salt.length(), + salt.data(), + salt.size(), raw_data.data(), raw_data.size(), encoded_data.data(), diff --git a/src/modules/m_password_hash.cpp b/src/modules/m_password_hash.cpp index f96e1afc4..63731834a 100644 --- a/src/modules/m_password_hash.cpp +++ b/src/modules/m_password_hash.cpp @@ -56,7 +56,9 @@ public: return CmdResult::FAILURE; } - std::string salt = ServerInstance->GenRandomStr(hp->out_size, false); + std::string salt(hp->out_size, '\0'); + ServerInstance->GenRandom(salt.data(), salt.length()); + std::string target = hp->hmac(salt, parameters[1]); std::string str = Base64::Encode(salt) + "$" + Base64::Encode(target, nullptr, 0); diff --git a/src/modules/m_pbkdf2.cpp b/src/modules/m_pbkdf2.cpp index c715659f0..63808804b 100644 --- a/src/modules/m_pbkdf2.cpp +++ b/src/modules/m_pbkdf2.cpp @@ -119,7 +119,10 @@ public: std::string GenerateRaw(const std::string& data) override { - PBKDF2Hash hs(this->iterations, this->dkey_length, ServerInstance->GenRandomStr(dkey_length, false)); + std::string salt(dkey_length, '\0'); + ServerInstance->GenRandom(salt.data(), salt.length()); + + PBKDF2Hash hs(this->iterations, this->dkey_length, salt); hs.hash = PBKDF2(data, hs.salt, this->iterations, this->dkey_length); return hs.ToString(); } |
