diff options
author | Pauli <ppzgs1@gmail.com> | 2021-02-27 11:57:13 +1000 |
---|---|---|
committer | Pauli <ppzgs1@gmail.com> | 2021-03-02 13:23:17 +1000 |
commit | fccdb61aee9538268e2eecfdc5b1e31327803ee4 (patch) | |
tree | 3324b768a6c049de3a9ff0a0f4308b0cd478b276 | |
parent | 5a11de50a41054ed17d4280c39825a2bdaa96b96 (diff) |
test: update ECDSA and SM2 internal tests in line with the fake_random change
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/14341)
-rw-r--r-- | test/ecdsatest.c | 11 | ||||
-rw-r--r-- | test/sm2_internal_test.c | 12 |
2 files changed, 16 insertions, 7 deletions
diff --git a/test/ecdsatest.c b/test/ecdsatest.c index d03eb6f01e..cf09419c94 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -25,18 +25,21 @@ # include "internal/nelem.h" # include "ecdsatest.h" +static fake_random_generate_cb fbytes; + static const char *numbers[2]; static size_t crv_len = 0; static EC_builtin_curve *curves = NULL; static OSSL_PROVIDER *fake_rand = NULL; -static int fbytes(unsigned char *buf, size_t num) +static int fbytes(unsigned char *buf, size_t num, ossl_unused const char *name, + EVP_RAND_CTX *ctx) { int ret = 0; static int fbytes_counter = 0; BIGNUM *tmp = NULL; - fake_rand_set_callback(NULL); + fake_rand_set_callback(ctx, NULL); if (!TEST_ptr(tmp = BN_new()) || !TEST_int_lt(fbytes_counter, OSSL_NELEM(numbers)) @@ -114,7 +117,7 @@ static int x9_62_tests(int n) goto err; /* public key must match KAT */ - fake_rand_set_callback(&fbytes); + fake_rand_set_callback(RAND_get0_private(NULL), &fbytes); if (!TEST_true(EC_KEY_generate_key(key)) || !TEST_true(p_len = EC_KEY_key2buf(key, POINT_CONVERSION_UNCOMPRESSED, &pbuf, NULL)) @@ -124,7 +127,7 @@ static int x9_62_tests(int n) goto err; /* create the signature via ECDSA_sign_setup to avoid use of ECDSA nonces */ - fake_rand_set_callback(&fbytes); + fake_rand_set_callback(RAND_get0_private(NULL), &fbytes); if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp)) || !TEST_ptr(signature = ECDSA_do_sign_ex(digest, dgst_len, kinv, rp, key)) diff --git a/test/sm2_internal_test.c b/test/sm2_internal_test.c index aaa337b57b..d9010168b9 100644 --- a/test/sm2_internal_test.c +++ b/test/sm2_internal_test.c @@ -28,12 +28,16 @@ # include "crypto/sm2.h" +static fake_random_generate_cb get_faked_bytes; + static OSSL_PROVIDER *fake_rand = NULL; static uint8_t *fake_rand_bytes = NULL; static size_t fake_rand_bytes_offset = 0; static size_t fake_rand_size = 0; -static int get_faked_bytes(unsigned char *buf, size_t num) +static int get_faked_bytes(unsigned char *buf, size_t num, + ossl_unused const char *name, + ossl_unused EVP_RAND_CTX *ctx) { if (!TEST_ptr(fake_rand_bytes) || !TEST_size_t_gt(fake_rand_size, 0)) return 0; @@ -56,14 +60,16 @@ static int start_fake_rand(const char *hex_bytes) return 0; /* use own random function */ - fake_rand_set_callback(get_faked_bytes); + fake_rand_set_callback(RAND_get0_private(NULL), get_faked_bytes); + fake_rand_set_callback(RAND_get0_public(NULL), get_faked_bytes); return 1; } static void restore_rand(void) { - fake_rand_set_callback(NULL); + fake_rand_set_callback(RAND_get0_private(NULL), NULL); + fake_rand_set_callback(RAND_get0_public(NULL), NULL); OPENSSL_free(fake_rand_bytes); fake_rand_bytes = NULL; fake_rand_bytes_offset = 0; |