summaryrefslogtreecommitdiff
path: root/test/fake_rsaprov.c
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-05-09 13:23:10 +0200
committerTomas Mraz <tomas@openssl.org>2022-05-12 08:27:55 +0200
commit70dc0b6d27a11a7f64fe914a3f376988ad1b1720 (patch)
tree7d7abaa65abb801788432c5faf8cee34d729fbd8 /test/fake_rsaprov.c
parent3b85d9de443c31e49a0215c1fe3c80828d609062 (diff)
downloadopenssl-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.c38
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 }
};