diff options
author | Sadie Powell <sadie@witchery.services> | 2024-03-09 17:08:26 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2024-03-09 22:22:56 +0000 |
commit | a6bc4cab9d0b10a46690cffb15f87b7528e5bb62 (patch) | |
tree | 44c49a2b7f0305af9ad835bdf232869730043617 /modules/encryption/enc_old.cpp | |
parent | ef37daf44a97e7ff715b61eadf83f1478365a720 (diff) |
Misc improvements to the encryption API.
Diffstat (limited to 'modules/encryption/enc_old.cpp')
-rw-r--r-- | modules/encryption/enc_old.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/modules/encryption/enc_old.cpp b/modules/encryption/enc_old.cpp index 0b1cd9884..f2344aeff 100644 --- a/modules/encryption/enc_old.cpp +++ b/modules/encryption/enc_old.cpp @@ -18,20 +18,16 @@ class OldMD5Provider final : public Encryption::Provider { public: - OldMD5Provider(Module *creator) : Encryption::Provider(creator, "oldmd5") { } - - Encryption::Context *CreateContext(Encryption::IV *iv) override + OldMD5Provider(Module *creator) + : Encryption::Provider(creator, "oldmd5", 16, 64) { - if (md5) - return md5->CreateContext(iv); - return NULL; } - Encryption::IV GetDefaultIV() override + std::unique_ptr<Encryption::Context> CreateContext() override { if (md5) - return md5->GetDefaultIV(); - return Encryption::IV(static_cast<const uint32_t *>(NULL), 0); + return md5->CreateContext(); + return nullptr; } }; @@ -60,17 +56,12 @@ public: if (!md5) return EVENT_CONTINUE; - Encryption::Context *context = md5->CreateContext(); - context->Update(reinterpret_cast<const unsigned char *>(src.c_str()), src.length()); - context->Finalize(); - - Encryption::Hash hash = context->GetFinalizedHash(); - char digest[32], digest2[16]; memset(digest, 0, sizeof(digest)); - if (hash.second > sizeof(digest)) + auto hash = md5->Encrypt(src); + if (hash.length() > sizeof(digest)) throw CoreException("Hash too large"); - memcpy(digest, hash.first, hash.second); + memcpy(digest, hash.data(), hash.length()); for (int i = 0; i < 32; i += 2) digest2[i / 2] = XTOI(digest[i]) << 4 | XTOI(digest[i + 1]); @@ -79,7 +70,6 @@ public: Log(LOG_DEBUG_2) << "(enc_old) hashed password from [" << src << "] to [" << buf << "]"; dest = buf; - delete context; return EVENT_ALLOW; } |