diff --git a/ChangeLog b/ChangeLog index 936860a36..ba5ad1374 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ Features 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 7bd5769cb..f6dd3496a 100644 --- a/library/md2.c +++ b/library/md2.c @@ -70,7 +70,10 @@ static const unsigned char PI_SUBST[256] = */ 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 )