diff --git a/lib/modules/Standards.pmod/X509.pmod b/lib/modules/Standards.pmod/X509.pmod index 55ba94eff33aa8d4c06d54001c2bd382b13ec9e4..53deb8e6d6987f3037960df138a663d7f5647b98 100644 --- a/lib/modules/Standards.pmod/X509.pmod +++ b/lib/modules/Standards.pmod/X509.pmod @@ -1819,12 +1819,16 @@ Crypto.Sign.State parse_private_key(Sequence seq) return Standards.PKCS.DSA.parse_private_key(seq); case 9: return Standards.PKCS.RSA.parse_private_key(seq); -#if constant(Nettle.ECC_Curve) case 2: // ECDSA, implicit curve. Not supported yet. return UNDEFINED; case 3: case 4: + // Either PKCS#8 or ECDSA. + Crypto.Sign res = Standards.PKCS.parse_private_key(seq); + if (res) return res; +#if constant(Nettle.ECC_Curve) + // EDCSA return Standards.PKCS.ECDSA.parse_private_key(seq); #endif }