在python中将EC私钥从PEM转换为DER
我正在尝试编写一个Python脚本,将PKCS8 PEM中的EC私钥转换为Python中使用的DER 我以前可以使用openssl这样做:在python中将EC私钥从PEM转换为DER,python,cryptography,public-key,ecdsa,Python,Cryptography,Public Key,Ecdsa,我正在尝试编写一个Python脚本,将PKCS8 PEM中的EC私钥转换为Python中使用的DER 我以前可以使用openssl这样做: openssl pkcs8 -nocrypt -in pem_key.p8 -out der_key.der -outform der 我通过执行以下操作来验证使用OpenSSL生成的DER文件是否正确: from ecdsa import SigningKey file = open('der_key.der', 'rb') SigningKey.fr
openssl pkcs8 -nocrypt -in pem_key.p8 -out der_key.der -outform der
我通过执行以下操作来验证使用OpenSSL生成的DER文件是否正确:
from ecdsa import SigningKey
file = open('der_key.der', 'rb')
SigningKey.from_der(file.read())
>>> <ecdsa.keys.SigningKey at 0x112bd3630>
但是,当使用上述相同方法测试此密钥插入编码时,我得到:
意外:在私钥开始时应为“1”,但得到0
我缺少什么?尝试使用不同的格式,如
传统OpenSSL
。对我来说就是这样
pri_der = key.private_bytes(
encoding=serialization.Encoding.DER,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption(),
)
这不适用于原始密钥,例如使用PyNaCL创建的密钥。
pri_der = key.private_bytes(
encoding=serialization.Encoding.DER,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption(),
)