diff options
author | Richard Levitte <levitte@openssl.org> | 2019-08-30 15:36:20 +0200 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2019-09-06 19:27:57 +1000 |
commit | ff756eedb3b28964ac8e7a7825198ac1b26dfb98 (patch) | |
tree | 08cd209a15874ce2b8ca2c144f6ef40db3379425 /test | |
parent | b1f15129933fdc98134ef2fcafb1ecea710f5920 (diff) | |
download | openssl-ff756eedb3b28964ac8e7a7825198ac1b26dfb98.tar.gz |
More KDF cleanup
The EVP_KDF_ definitions are no longer needed, and neither is
EVP_get_kdfbyname()
test/evp_kdf_test.c tried to use a EVP_get_kdfbyname() that was rewritten
to use EVP_KDF_fetch() without ever freeing the resulting KDF method.
It's better to refactor the test to use EVP_KDF_fetch directly.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9662)
Diffstat (limited to 'test')
-rw-r--r-- | test/evp_kdf_test.c | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/test/evp_kdf_test.c b/test/evp_kdf_test.c index 852cc46d41..abc4dccd46 100644 --- a/test/evp_kdf_test.c +++ b/test/evp_kdf_test.c @@ -446,19 +446,38 @@ static int test_kdf_sshkdf(void) static int test_kdf_get_kdf(void) { - const EVP_KDF *kdf1, *kdf2; + EVP_KDF *kdf1 = NULL, *kdf2 = NULL; ASN1_OBJECT *obj; - - return - TEST_ptr(obj = OBJ_nid2obj(NID_id_pbkdf2)) - && TEST_ptr(kdf1 = EVP_get_kdfbyname(LN_id_pbkdf2)) - && TEST_ptr(kdf2 = EVP_get_kdfbyname(OBJ_nid2sn(OBJ_obj2nid(obj)))) - && TEST_ptr_eq(kdf1, kdf2) - && TEST_ptr(kdf1 = EVP_get_kdfbyname(SN_tls1_prf)) - && TEST_ptr(kdf2 = EVP_get_kdfbyname(LN_tls1_prf)) - && TEST_ptr_eq(kdf1, kdf2) - && TEST_ptr(kdf2 = EVP_get_kdfbyname(OBJ_nid2sn(NID_tls1_prf))) - && TEST_ptr_eq(kdf1, kdf2); + int ok = 1; + + if (!TEST_ptr(obj = OBJ_nid2obj(NID_id_pbkdf2)) + || !TEST_ptr(kdf1 = EVP_KDF_fetch(NULL, LN_id_pbkdf2, NULL)) + || !TEST_ptr(kdf2 = EVP_KDF_fetch(NULL, OBJ_nid2sn(OBJ_obj2nid(obj)), + NULL)) + || !TEST_ptr_eq(kdf1, kdf2)) + ok = 0; + EVP_KDF_free(kdf1); + kdf1 = NULL; + EVP_KDF_free(kdf2); + kdf2 = NULL; + + if (!TEST_ptr(kdf1 = EVP_KDF_fetch(NULL, SN_tls1_prf, NULL)) + || !TEST_ptr(kdf2 = EVP_KDF_fetch(NULL, LN_tls1_prf, NULL)) + || !TEST_ptr_eq(kdf1, kdf2)) + ok = 0; + /* kdf1 is re-used below, so don't free it here */ + EVP_KDF_free(kdf2); + kdf2 = NULL; + + if (!TEST_ptr(kdf2 = EVP_KDF_fetch(NULL, OBJ_nid2sn(NID_tls1_prf), NULL)) + || !TEST_ptr_eq(kdf1, kdf2)) + ok = 0; + EVP_KDF_free(kdf1); + kdf1 = NULL; + EVP_KDF_free(kdf2); + kdf2 = NULL; + + return ok; } #ifndef OPENSSL_NO_CMS |