diff options
author | Tomas Mraz <tomas@openssl.org> | 2022-05-09 13:23:10 +0200 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-05-12 08:27:55 +0200 |
commit | 70dc0b6d27a11a7f64fe914a3f376988ad1b1720 (patch) | |
tree | 7d7abaa65abb801788432c5faf8cee34d729fbd8 /test/fake_rsaprov.c | |
parent | 3b85d9de443c31e49a0215c1fe3c80828d609062 (diff) | |
download | openssl-new-70dc0b6d27a11a7f64fe914a3f376988ad1b1720.tar.gz |
Add test for query invalidation after new provider added
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18269)
Diffstat (limited to 'test/fake_rsaprov.c')
-rw-r--r-- | test/fake_rsaprov.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/fake_rsaprov.c b/test/fake_rsaprov.c index e4833a6a99..d2503320f4 100644 --- a/test/fake_rsaprov.c +++ b/test/fake_rsaprov.c @@ -93,6 +93,41 @@ static const OSSL_PARAM *fake_rsa_keymgmt_imptypes(int selection) return fake_rsa_import_key_types; } +static void *fake_rsa_gen_init(void *provctx, int selection, + const OSSL_PARAM params[]) +{ + unsigned char *gctx = NULL; + + if (!TEST_ptr(gctx = OPENSSL_malloc(1))) + return NULL; + + *gctx = 1; + + return gctx; +} + +static void *fake_rsa_gen(void *genctx, OSSL_CALLBACK *osslcb, void *cbarg) +{ + unsigned char *gctx = genctx; + static const unsigned char inited[] = { 1 }; + unsigned char *keydata; + + if (!TEST_ptr(gctx) + || !TEST_mem_eq(gctx, sizeof(*gctx), inited, sizeof(inited))) + return NULL; + + if (!TEST_ptr(keydata = fake_rsa_keymgmt_new(NULL))) + return NULL; + + *keydata = 2; + return keydata; +} + +static void fake_rsa_gen_cleanup(void *genctx) +{ + OPENSSL_free(genctx); +} + static const OSSL_DISPATCH fake_rsa_keymgmt_funcs[] = { { OSSL_FUNC_KEYMGMT_NEW, (void (*)(void))fake_rsa_keymgmt_new }, { OSSL_FUNC_KEYMGMT_FREE, (void (*)(void))fake_rsa_keymgmt_free} , @@ -102,6 +137,9 @@ static const OSSL_DISPATCH fake_rsa_keymgmt_funcs[] = { { OSSL_FUNC_KEYMGMT_IMPORT, (void (*)(void))fake_rsa_keymgmt_import }, { OSSL_FUNC_KEYMGMT_IMPORT_TYPES, (void (*)(void))fake_rsa_keymgmt_imptypes }, + { OSSL_FUNC_KEYMGMT_GEN_INIT, (void (*)(void))fake_rsa_gen_init }, + { OSSL_FUNC_KEYMGMT_GEN, (void (*)(void))fake_rsa_gen }, + { OSSL_FUNC_KEYMGMT_GEN_CLEANUP, (void (*)(void))fake_rsa_gen_cleanup }, { 0, NULL } }; |