summaryrefslogtreecommitdiff
path: root/modules/encryption/enc_old.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-03-09 17:08:26 +0000
committerSadie Powell <sadie@witchery.services>2024-03-09 22:22:56 +0000
commita6bc4cab9d0b10a46690cffb15f87b7528e5bb62 (patch)
tree44c49a2b7f0305af9ad835bdf232869730043617 /modules/encryption/enc_old.cpp
parentef37daf44a97e7ff715b61eadf83f1478365a720 (diff)
Misc improvements to the encryption API.
Diffstat (limited to 'modules/encryption/enc_old.cpp')
-rw-r--r--modules/encryption/enc_old.cpp26
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;
}