]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
EVP: Have EVP_PKCS82PKEY_ex() pass a correct selection to OSSL_DECODER
authorRichard Levitte <levitte@openssl.org>
Mon, 28 Jun 2021 05:08:51 +0000 (07:08 +0200)
committerRichard Levitte <levitte@openssl.org>
Tue, 29 Jun 2021 11:50:51 +0000 (13:50 +0200)
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15934)

crypto/evp/evp_pkey.c

index 683f4bec545c7e5355d80f4797eb3d554dcf8b9d..6f0b3dbda9605e5c13408d2ef11fefa2c2cd8333 100644 (file)
@@ -70,6 +70,7 @@ EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx,
     const unsigned char *p8_data = NULL;
     unsigned char *encoded_data = NULL;
     int encoded_len;
+    int selection;
     size_t len;
     OSSL_DECODER_CTX *dctx = NULL;
 
@@ -79,8 +80,9 @@ EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx,
 
     p8_data = encoded_data;
     len = encoded_len;
+    selection = EVP_PKEY_KEYPAIR | EVP_PKEY_KEY_PARAMETERS;
     dctx = OSSL_DECODER_CTX_new_for_pkey(&pkey, "DER", "PrivateKeyInfo",
-                                         EVP_PKEY_NONE, 0, libctx, propq);
+                                         NULL, selection, libctx, propq);
     if (dctx == NULL
         || !OSSL_DECODER_from_data(dctx, &p8_data, &len))
         /* try legacy */