summaryrefslogtreecommitdiff
path: root/hmac.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hmac.cpp')
-rw-r--r--hmac.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/hmac.cpp b/hmac.cpp
index dc9fc9b..d4a649c 100644
--- a/hmac.cpp
+++ b/hmac.cpp
@@ -20,6 +20,8 @@ void HMAC_Base::UncheckedSetKey(const byte *userKey, unsigned int keylength, con
if (!blockSize)
throw InvalidArgument("HMAC: can only be used with a block-based hash function");
+ m_buf.resize(2*AccessHash().BlockSize() + AccessHash().DigestSize());
+
if (keylength <= blockSize)
memcpy(AccessIpad(), userKey, keylength);
else
@@ -33,8 +35,8 @@ void HMAC_Base::UncheckedSetKey(const byte *userKey, unsigned int keylength, con
for (unsigned int i=0; i<blockSize; i++)
{
- AccessOpad()[i] = AccessIpad()[i] ^ OPAD;
- AccessIpad()[i] ^= IPAD;
+ AccessOpad()[i] = AccessIpad()[i] ^ 0x5c;
+ AccessIpad()[i] ^= 0x36;
}
}