]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - crypto/pkcs12/p12_kiss.c
Prune low-level ASN.1 parse errors from error queue in decoder_process()
[thirdparty/openssl.git] / crypto / pkcs12 / p12_kiss.c
index 126a6ce94b3bc0f19321815467a193bd8f75b97f..ad1f4ee1edf05109e84d212b6c86003e47d60979 100644 (file)
@@ -80,7 +80,11 @@ int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert,
     }
 
     if (!parse_pk12(p12, pass, -1, pkey, ocerts)) {
-        PKCS12err(PKCS12_F_PKCS12_PARSE, PKCS12_R_PARSE_ERROR);
+        int err = ERR_peek_last_error();
+
+        if (ERR_GET_LIB(err) != ERR_LIB_EVP
+                && ERR_GET_REASON(err) != EVP_R_UNSUPPORTED_ALGORITHM)
+            PKCS12err(0, PKCS12_R_PARSE_ERROR);
         goto err;
     }