Adjust all accesses to EVP_MD_CTX to use accessor functions. Reviewed-by: Rich Salz <rsalz@openssl.org>
diff --git a/test/ecdsatest.c b/test/ecdsatest.c index d56836f..dcd9ba0 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c
@@ -188,17 +188,19 @@ const char message[] = "abc"; unsigned char digest[20]; unsigned int dgst_len = 0; - EVP_MD_CTX md_ctx; + EVP_MD_CTX *md_ctx = EVP_MD_CTX_create(); EC_KEY *key = NULL; ECDSA_SIG *signature = NULL; BIGNUM *r = NULL, *s = NULL; BIGNUM *kinv = NULL, *rp = NULL; - EVP_MD_CTX_init(&md_ctx); + if (md_ctx == NULL) + goto x962_int_err; + /* get the message digest */ - if (!EVP_DigestInit(&md_ctx, EVP_sha1()) - || !EVP_DigestUpdate(&md_ctx, (const void *)message, 3) - || !EVP_DigestFinal(&md_ctx, digest, &dgst_len)) + if (!EVP_DigestInit(md_ctx, EVP_sha1()) + || !EVP_DigestUpdate(md_ctx, (const void *)message, 3) + || !EVP_DigestFinal(md_ctx, digest, &dgst_len)) goto x962_int_err; BIO_printf(out, "testing %s: ", OBJ_nid2sn(nid)); @@ -244,7 +246,7 @@ ECDSA_SIG_free(signature); BN_free(r); BN_free(s); - EVP_MD_CTX_cleanup(&md_ctx); + EVP_MD_CTX_destroy(md_ctx); BN_clear_free(kinv); BN_clear_free(rp); return ret;
diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c index ac79388..50c9e91 100644 --- a/test/evp_extra_test.c +++ b/test/evp_extra_test.c
@@ -277,19 +277,21 @@ EVP_PKEY *pkey = NULL; unsigned char *sig = NULL; size_t sig_len = 0; - EVP_MD_CTX md_ctx, md_ctx_verify; + EVP_MD_CTX *md_ctx, *md_ctx_verify; - EVP_MD_CTX_init(&md_ctx); - EVP_MD_CTX_init(&md_ctx_verify); + md_ctx = EVP_MD_CTX_create(); + md_ctx_verify = EVP_MD_CTX_create(); + if (md_ctx == NULL || md_ctx_verify == NULL) + goto out; pkey = load_example_rsa_key(); if (pkey == NULL || - !EVP_DigestSignInit(&md_ctx, NULL, EVP_sha256(), NULL, pkey) || - !EVP_DigestSignUpdate(&md_ctx, kMsg, sizeof(kMsg))) { + !EVP_DigestSignInit(md_ctx, NULL, EVP_sha256(), NULL, pkey) || + !EVP_DigestSignUpdate(md_ctx, kMsg, sizeof(kMsg))) { goto out; } /* Determine the size of the signature. */ - if (!EVP_DigestSignFinal(&md_ctx, NULL, &sig_len)) { + if (!EVP_DigestSignFinal(md_ctx, NULL, &sig_len)) { goto out; } /* Sanity check for testing. */ @@ -299,14 +301,14 @@ } sig = OPENSSL_malloc(sig_len); - if (sig == NULL || !EVP_DigestSignFinal(&md_ctx, sig, &sig_len)) { + if (sig == NULL || !EVP_DigestSignFinal(md_ctx, sig, &sig_len)) { goto out; } /* Ensure that the signature round-trips. */ - if (!EVP_DigestVerifyInit(&md_ctx_verify, NULL, EVP_sha256(), NULL, pkey) - || !EVP_DigestVerifyUpdate(&md_ctx_verify, kMsg, sizeof(kMsg)) - || !EVP_DigestVerifyFinal(&md_ctx_verify, sig, sig_len)) { + if (!EVP_DigestVerifyInit(md_ctx_verify, NULL, EVP_sha256(), NULL, pkey) + || !EVP_DigestVerifyUpdate(md_ctx_verify, kMsg, sizeof(kMsg)) + || !EVP_DigestVerifyFinal(md_ctx_verify, sig, sig_len)) { goto out; } @@ -317,8 +319,8 @@ ERR_print_errors_fp(stderr); } - EVP_MD_CTX_cleanup(&md_ctx); - EVP_MD_CTX_cleanup(&md_ctx_verify); + EVP_MD_CTX_destroy(md_ctx); + EVP_MD_CTX_destroy(md_ctx_verify); EVP_PKEY_free(pkey); OPENSSL_free(sig); @@ -329,15 +331,15 @@ { int ret = 0; EVP_PKEY *pkey = NULL; - EVP_MD_CTX md_ctx; + EVP_MD_CTX *md_ctx; - EVP_MD_CTX_init(&md_ctx); + md_ctx = EVP_MD_CTX_create(); pkey = load_example_rsa_key(); if (pkey == NULL || - !EVP_DigestVerifyInit(&md_ctx, NULL, EVP_sha256(), NULL, pkey) || - !EVP_DigestVerifyUpdate(&md_ctx, kMsg, sizeof(kMsg)) || - !EVP_DigestVerifyFinal(&md_ctx, kSignature, sizeof(kSignature))) { + !EVP_DigestVerifyInit(md_ctx, NULL, EVP_sha256(), NULL, pkey) || + !EVP_DigestVerifyUpdate(md_ctx, kMsg, sizeof(kMsg)) || + !EVP_DigestVerifyFinal(md_ctx, kSignature, sizeof(kSignature))) { goto out; } ret = 1; @@ -347,7 +349,7 @@ ERR_print_errors_fp(stderr); } - EVP_MD_CTX_cleanup(&md_ctx); + EVP_MD_CTX_destroy(md_ctx); EVP_PKEY_free(pkey); return ret;
diff --git a/test/evp_test.c b/test/evp_test.c index 83d1749..92e153f 100644 --- a/test/evp_test.c +++ b/test/evp_test.c
@@ -713,8 +713,7 @@ goto err; err = NULL; err: - if (mctx) - EVP_MD_CTX_destroy(mctx); + EVP_MD_CTX_destroy(mctx); t->err = err; return 1; } @@ -1129,8 +1128,7 @@ goto err; err = NULL; err: - if (mctx) - EVP_MD_CTX_destroy(mctx); + EVP_MD_CTX_destroy(mctx); OPENSSL_free(mac); EVP_PKEY_CTX_free(genctx); EVP_PKEY_free(key);
diff --git a/test/gost2814789test.c b/test/gost2814789test.c index 56a8ae3..486326c 100644 --- a/test/gost2814789test.c +++ b/test/gost2814789test.c
@@ -1207,7 +1207,7 @@ u64 ullMaxLen = 6 * 1000 * 1000; int ignore = 0; ENGINE *impl = NULL; - EVP_MD_CTX mctx; + EVP_MD_CTX *mctx; EVP_CIPHER_CTX ectx; EVP_PKEY *mac_key; byte bDerive[EVP_MAX_KEY_LENGTH]; @@ -1391,28 +1391,33 @@ */ continue; } - EVP_MD_CTX_init(&mctx); + mctx = EVP_MD_CTX_create(); + if (mctx == NULL) { + fflush(NULL); + fprintf(stderr, "ENGINE_ctrl_cmd_string: malloc failure\n"); + return 14; + } mac_key = EVP_PKEY_new_mac_key(NID_id_Gost28147_89_MAC, NULL, bDerive, mdl); - EVP_DigestSignInit(&mctx, NULL, md_g89imit, impl, mac_key); + EVP_DigestSignInit(mctx, NULL, md_g89imit, impl, mac_key); if (G89_MAX_TC_LEN >= tcs[t].ullLen) { - EVP_DigestSignUpdate(&mctx, tcs[t].bIn, + EVP_DigestSignUpdate(mctx, tcs[t].bIn, (unsigned int)tcs[t].ullLen); } else { for (ullLeft = tcs[t].ullLen; ullLeft >= sizeof(bZB); ullLeft -= sizeof(bZB)) { printf("B"); fflush(NULL); - EVP_DigestSignUpdate(&mctx, bZB, sizeof(bZB)); + EVP_DigestSignUpdate(mctx, bZB, sizeof(bZB)); } printf("b" FMT64 "/" FMT64, ullLeft, tcs[t].ullLen); fflush(NULL); - EVP_DigestSignUpdate(&mctx, bZB, (unsigned int)ullLeft); + EVP_DigestSignUpdate(mctx, bZB, (unsigned int)ullLeft); } siglen = 4; - OPENSSL_assert(EVP_DigestSignFinal(&mctx, bTest, &siglen)); + OPENSSL_assert(EVP_DigestSignFinal(mctx, bTest, &siglen)); EVP_PKEY_free(mac_key); - EVP_MD_CTX_cleanup(&mctx); + EVP_MD_CTX_destroy(mctx); enlu = (int)tcs[t].ullLen; enlf = 0; l = siglen;
diff --git a/test/mdc2test.c b/test/mdc2test.c index a0d77a3..4cf952c 100644 --- a/test/mdc2test.c +++ b/test/mdc2test.c
@@ -95,17 +95,17 @@ int ret = 0; unsigned char md[MDC2_DIGEST_LENGTH]; int i; - EVP_MD_CTX c; + EVP_MD_CTX *c; static char *text = "Now is the time for all "; # ifdef CHARSET_EBCDIC ebcdic2ascii(text, text, strlen(text)); # endif - EVP_MD_CTX_init(&c); - EVP_DigestInit_ex(&c, EVP_mdc2(), NULL); - EVP_DigestUpdate(&c, (unsigned char *)text, strlen(text)); - EVP_DigestFinal_ex(&c, &(md[0]), NULL); + c = EVP_MD_CTX_create(); + EVP_DigestInit_ex(c, EVP_mdc2(), NULL); + EVP_DigestUpdate(c, (unsigned char *)text, strlen(text)); + EVP_DigestFinal_ex(c, &(md[0]), NULL); if (memcmp(md, pad1, MDC2_DIGEST_LENGTH) != 0) { for (i = 0; i < MDC2_DIGEST_LENGTH; i++) @@ -118,11 +118,11 @@ } else printf("pad1 - ok\n"); - EVP_DigestInit_ex(&c, EVP_mdc2(), NULL); + EVP_DigestInit_ex(c, EVP_mdc2(), NULL); /* FIXME: use a ctl function? */ - ((MDC2_CTX *)c.md_data)->pad_type = 2; - EVP_DigestUpdate(&c, (unsigned char *)text, strlen(text)); - EVP_DigestFinal_ex(&c, &(md[0]), NULL); + ((MDC2_CTX *)EVP_MD_CTX_md_data(c))->pad_type = 2; + EVP_DigestUpdate(c, (unsigned char *)text, strlen(text)); + EVP_DigestFinal_ex(c, &(md[0]), NULL); if (memcmp(md, pad2, MDC2_DIGEST_LENGTH) != 0) { for (i = 0; i < MDC2_DIGEST_LENGTH; i++) @@ -135,7 +135,7 @@ } else printf("pad2 - ok\n"); - EVP_MD_CTX_cleanup(&c); + EVP_MD_CTX_destroy(c); # ifdef OPENSSL_SYS_NETWARE if (ret) printf("ERROR: %d\n", ret);
diff --git a/test/sha1test.c b/test/sha1test.c index cc3633d..6b8ad42 100644 --- a/test/sha1test.c +++ b/test/sha1test.c
@@ -88,7 +88,7 @@ char **P, **R; static unsigned char buf[1000]; char *p, *r; - EVP_MD_CTX c; + EVP_MD_CTX *c; unsigned char md[SHA_DIGEST_LENGTH]; #ifdef CHARSET_EBCDIC @@ -96,7 +96,7 @@ ebcdic2ascii(test[1], test[1], strlen(test[1])); #endif - EVP_MD_CTX_init(&c); + c = EVP_MD_CTX_create(); P = test; R = ret; i = 1; @@ -118,10 +118,10 @@ #ifdef CHARSET_EBCDIC ebcdic2ascii(buf, buf, 1000); #endif /* CHARSET_EBCDIC */ - EVP_DigestInit_ex(&c, EVP_sha1(), NULL); + EVP_DigestInit_ex(c, EVP_sha1(), NULL); for (i = 0; i < 1000; i++) - EVP_DigestUpdate(&c, buf, 1000); - EVP_DigestFinal_ex(&c, md, NULL); + EVP_DigestUpdate(c, buf, 1000); + EVP_DigestFinal_ex(c, md, NULL); p = pt(md); r = bigret; @@ -137,7 +137,7 @@ printf("ERROR: %d\n", err); #endif EXIT(err); - EVP_MD_CTX_cleanup(&c); + EVP_MD_CTX_destroy(c); return (0); }
diff --git a/test/sha256t.c b/test/sha256t.c index 11f3684..25f762f 100644 --- a/test/sha256t.c +++ b/test/sha256t.c
@@ -56,7 +56,7 @@ { unsigned char md[SHA256_DIGEST_LENGTH]; int i; - EVP_MD_CTX evp; + EVP_MD_CTX *evp; fprintf(stdout, "Testing SHA-256 "); @@ -80,10 +80,15 @@ fprintf(stdout, "."); fflush(stdout); - EVP_MD_CTX_init(&evp); - EVP_DigestInit_ex(&evp, EVP_sha256(), NULL); + evp = EVP_MD_CTX_create(); + if (evp == NULL) { + fflush(stdout); + fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); + return 1; + } + EVP_DigestInit_ex(evp, EVP_sha256(), NULL); for (i = 0; i < 1000000; i += 288) - EVP_DigestUpdate(&evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" + EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" @@ -93,8 +98,7 @@ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288); - EVP_DigestFinal_ex(&evp, md, NULL); - EVP_MD_CTX_cleanup(&evp); + EVP_DigestFinal_ex(evp, md, NULL); if (memcmp(md, app_b3, sizeof(app_b3))) { fflush(stdout); @@ -129,14 +133,14 @@ fprintf(stdout, "."); fflush(stdout); - EVP_MD_CTX_init(&evp); - EVP_DigestInit_ex(&evp, EVP_sha224(), NULL); + EVP_MD_CTX_init(evp); + EVP_DigestInit_ex(evp, EVP_sha224(), NULL); for (i = 0; i < 1000000; i += 64) - EVP_DigestUpdate(&evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" + EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64); - EVP_DigestFinal_ex(&evp, md, NULL); - EVP_MD_CTX_cleanup(&evp); + EVP_DigestFinal_ex(evp, md, NULL); + EVP_MD_CTX_destroy(evp); if (memcmp(md, addenum_3, sizeof(addenum_3))) { fflush(stdout);
diff --git a/test/sha512t.c b/test/sha512t.c index f60d319..215a71f 100644 --- a/test/sha512t.c +++ b/test/sha512t.c
@@ -75,7 +75,7 @@ { unsigned char md[SHA512_DIGEST_LENGTH]; int i; - EVP_MD_CTX evp; + EVP_MD_CTX *evp; # ifdef OPENSSL_IA32_SSE2 /* @@ -113,10 +113,15 @@ fprintf(stdout, "."); fflush(stdout); - EVP_MD_CTX_init(&evp); - EVP_DigestInit_ex(&evp, EVP_sha512(), NULL); + evp = EVP_MD_CTX_create(); + if (evp == NULL) { + fflush(stdout); + fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); + return 1; + } + EVP_DigestInit_ex(evp, EVP_sha512(), NULL); for (i = 0; i < 1000000; i += 288) - EVP_DigestUpdate(&evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" + EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" @@ -126,8 +131,8 @@ "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288); - EVP_DigestFinal_ex(&evp, md, NULL); - EVP_MD_CTX_cleanup(&evp); + EVP_DigestFinal_ex(evp, md, NULL); + EVP_MD_CTX_cleanup(evp); if (memcmp(md, app_c3, sizeof(app_c3))) { fflush(stdout); @@ -163,14 +168,13 @@ fprintf(stdout, "."); fflush(stdout); - EVP_MD_CTX_init(&evp); - EVP_DigestInit_ex(&evp, EVP_sha384(), NULL); + EVP_DigestInit_ex(evp, EVP_sha384(), NULL); for (i = 0; i < 1000000; i += 64) - EVP_DigestUpdate(&evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" + EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64); - EVP_DigestFinal_ex(&evp, md, NULL); - EVP_MD_CTX_cleanup(&evp); + EVP_DigestFinal_ex(evp, md, NULL); + EVP_MD_CTX_destroy(evp); if (memcmp(md, app_d3, sizeof(app_d3))) { fflush(stdout);