diff options
author | Richard Levitte <levitte@openssl.org> | 2020-08-02 13:12:54 +0200 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2020-08-04 14:35:12 +1000 |
commit | b5b6669fb63702233124c8fd5504e8477e559d07 (patch) | |
tree | 99aafa683d7562d492619b74d7409bbb6adcc6a7 /providers | |
parent | 19b4e6f8feba9aeec5d4e0d0aacb11d143b59340 (diff) | |
download | openssl-new-b5b6669fb63702233124c8fd5504e8477e559d07.tar.gz |
PROV: Make the DER to KEY deserializer decode parameters too
It should be noted that this may be dodgy if we ever encounter
parameter objects that look like something else. However, experience
with the OSSL_STORE 'file:' loader, which does exactly this kind of
thing, has worked fine so far.
A possibility could be that to decode parameters specifically, we
demand that there's an incoming data type specifying this, which
demands by extension that parameters can only come from a file format
that has the parameter type encoded, such as PEM. This would be a
future effort.
Fixes #12568
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12569)
Diffstat (limited to 'providers')
-rw-r--r-- | providers/implementations/serializers/deserialize_der2key.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/providers/implementations/serializers/deserialize_der2key.c b/providers/implementations/serializers/deserialize_der2key.c index a544d8522c..87ac7b5e12 100644 --- a/providers/implementations/serializers/deserialize_der2key.c +++ b/providers/implementations/serializers/deserialize_der2key.c @@ -130,6 +130,11 @@ static int der2key_deserialize(void *vctx, OSSL_CORE_BIO *cin, pkey = d2i_PUBKEY(NULL, &derp, der_len); } + if (pkey == NULL) { + derp = der; + pkey = d2i_KeyParams(ctx->desc->type, NULL, &derp, der_len); + } + if (pkey != NULL) { /* * Tear out the low-level key pointer from the pkey, |