- Fixed HMAC-MD2 by modifying md2_starts(), so that the required HMAC ipad and opad variables are not cleared!
diff --git a/ChangeLog b/ChangeLog
index 936860a..ba5ad13 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,8 @@
and X509parse.
Bug fixes
+ * Fixed HMAC-MD2 by modifying md2_starts(), so that the
+ required HMAC ipad and opad variables are not cleared!
* Prevented use of long long in bignum if
POLARSSL_HAVE_LONGLONG not defined (found by Giles
Bathgate).
diff --git a/library/md2.c b/library/md2.c
index 7bd5769..f6dd349 100644
--- a/library/md2.c
+++ b/library/md2.c
@@ -70,7 +70,10 @@
*/
void md2_starts( md2_context *ctx )
{
- memset( ctx, 0, sizeof( md2_context ) );
+ memset( ctx->cksum, 0, 16 );
+ memset( ctx->state, 0, 46 );
+ memset( ctx->buffer, 0, 16 );
+ ctx->left = 0;
}
static void md2_process( md2_context *ctx )