summaryrefslogtreecommitdiff
path: root/modules/encryption/enc_bcrypt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/encryption/enc_bcrypt.cpp')
-rw-r--r--modules/encryption/enc_bcrypt.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/modules/encryption/enc_bcrypt.cpp b/modules/encryption/enc_bcrypt.cpp
index 7fd3864ac..0800b2d66 100644
--- a/modules/encryption/enc_bcrypt.cpp
+++ b/modules/encryption/enc_bcrypt.cpp
@@ -142,19 +142,15 @@ public:
if (bcryptprovider.Compare(hash_value, req->GetPassword()))
{
unsigned long rounds = 0;
- try
- {
- // Try to extract the rounds count to cher
- pos = hash_value.find('$', 4);
- if (pos == Anope::string::npos)
- throw ConvertException("Malformed BCrypt hash?!");
-
- rounds = convertTo<unsigned long>(hash_value.substr(4, pos - 4));
- }
- catch (const ConvertException &)
- {
+
+ // Try to extract the rounds count to check if we need to
+ // re-encrypt the password.
+ pos = hash_value.find('$', 4);
+ if (pos != Anope::string::npos)
+ rounds = Anope::Convert<unsigned long>(hash_value.substr(4, pos - 4), 0);
+
+ if (!rounds)
Log(LOG_DEBUG) << "Unable to determine the rounds of a bcrypt hash: " << hash_value;
- }
// If we are NOT the first encryption module or the Bcrypt rounds
// are different we want to re-encrypt the password with the primary