我使用以下openssl命令生成EC私钥:
openssl ecparam -genkey -name brainpoolP256r1 -out root.key -outform der
当我尝试从中生成CSR时:
openssl req -new -key root.key -keyform der -out root.crt
我收到ASN1解析错误: 无法加载私钥
1216:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1200:
1216:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:629:
1216:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1200:
1216:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:374:Type=RSA
1216:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:.\crypto\rsa\rsa_ameth.c:121:
1216:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\asn1\tasn_dec.c:1200:
1216:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\crypto\asn1\tasn_dec.c:374:Type=PKCS8_PRIV_KEY_INFO
如果我在密钥生成命令后附加-noout
,则会得到一个开头没有ec_key_info
的11个字节的密钥文件,并且CSR生成成功。
这仅在版本1.n之前的1.0.2中发生。在版本“ 1.0.2o”中,默认情况下,生成的密钥文件不包含11个字节,因此我可以生成CSR而不会出现错误。 这是一个已知的“错误”吗?