diff -rc openssl-0.9.6a.clean/apps/speed.c openssl-0.9.6a/apps/speed.c *** openssl-0.9.6a.clean/apps/speed.c Thu Apr 5 14:09:18 2001 --- openssl-0.9.6a/apps/speed.c Thu Apr 12 16:26:48 2001 *************** *** 952,957 **** --- 952,958 ---- count,names[D_HMAC],d); results[D_HMAC][j]=((double)count)/d*lengths[j]; } + HMAC_cleanup(&hctx); } #endif #ifndef NO_SHA diff -rc openssl-0.9.6a.clean/crypto/pkcs12/p12_mutl.c openssl-0.9.6a/crypto/pkcs12/p12_mutl.c *** openssl-0.9.6a.clean/crypto/pkcs12/p12_mutl.c Thu Apr 5 14:12:42 2001 --- openssl-0.9.6a/crypto/pkcs12/p12_mutl.c Thu Apr 12 16:18:04 2001 *************** *** 89,94 **** --- 89,95 ---- HMAC_Update (&hmac, p12->authsafes->d.data->data, p12->authsafes->d.data->length); HMAC_Final (&hmac, mac, maclen); + HMAC_cleanup (&hmac); return 1; } diff -rc openssl-0.9.6a.clean/ssl/t1_enc.c openssl-0.9.6a/ssl/t1_enc.c *** openssl-0.9.6a.clean/ssl/t1_enc.c Thu Apr 5 14:15:08 2001 --- openssl-0.9.6a/ssl/t1_enc.c Thu Apr 12 16:16:20 2001 *************** *** 78,83 **** --- 78,84 ---- chunk=EVP_MD_size(md); HMAC_Init(&ctx,sec,sec_len,md); + HMAC_Init(&ctx_tmp,sec,sec_len,md); HMAC_Update(&ctx,seed,seed_len); HMAC_Final(&ctx,A1,&A1_len); *************** *** 85,92 **** for (;;) { HMAC_Init(&ctx,NULL,0,NULL); /* re-init */ HMAC_Update(&ctx,A1,A1_len); ! memcpy(&ctx_tmp,&ctx,sizeof(ctx)); /* Copy for A2 */ /* not needed for last one */ HMAC_Update(&ctx,seed,seed_len); if (olen > chunk) --- 86,94 ---- for (;;) { HMAC_Init(&ctx,NULL,0,NULL); /* re-init */ + HMAC_Init(&ctx_tmp,NULL,0,NULL); /* re-init */ HMAC_Update(&ctx,A1,A1_len); ! HMAC_Update(&ctx_tmp,A1,A1_len); HMAC_Update(&ctx,seed,seed_len); if (olen > chunk) *************** *** 559,564 **** --- 561,567 ---- HMAC_Update(&hmac,buf,5); HMAC_Update(&hmac,rec->input,rec->length); HMAC_Final(&hmac,md,&md_size); + HMAC_cleanup(&hmac); #ifdef TLS_DEBUG printf("sec=");