summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2020-05-22 14:09:13 +0100
committerMatt Caswell <matt@openssl.org>2020-06-19 10:19:32 +0100
commit6136ecaa955506ff5f5fcdbc69976914418d561b (patch)
treea031b3c3fc0e7efb230043c43b985c3778305608 /crypto
parent0c13cdf835086a7bd29c32c55e7675e5a8827a31 (diff)
Make sure we save the copy function when registering a new Keymgmt
If a provider had a "copy" function in the its keymgmt definition we were ignoring it. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11914)
Diffstat (limited to 'crypto')
-rw-r--r--crypto/evp/keymgmt_meth.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/evp/keymgmt_meth.c b/crypto/evp/keymgmt_meth.c
index b75d02f136..ab5e00dfba 100644
--- a/crypto/evp/keymgmt_meth.c
+++ b/crypto/evp/keymgmt_meth.c
@@ -124,6 +124,10 @@ static void *keymgmt_from_dispatch(int name_id,
if (keymgmt->has == NULL)
keymgmt->has = OSSL_get_OP_keymgmt_has(fns);
break;
+ case OSSL_FUNC_KEYMGMT_COPY:
+ if (keymgmt->copy == NULL)
+ keymgmt->copy = OSSL_get_OP_keymgmt_copy(fns);
+ break;
case OSSL_FUNC_KEYMGMT_VALIDATE:
if (keymgmt->validate == NULL)
keymgmt->validate = OSSL_get_OP_keymgmt_validate(fns);