泰雷兹HSM导入公钥(EO)错误“04”

2024-10-02 18:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用DER编码的RSA公钥发送此命令

1234EO013082010a02820101ec7b6d6be7d0603e3f247c22dd0ae533f02f1216fd9099d6ec5c596eb92c95e8ee87e3437af53ecf9ef4ccd27b1acf28b41ff77b86d028d10c560265d8b2e61b3e57eb8a0c2593eea0815ab82871c1232b03f677342ac19c570caa8abe4f68cb35666e6fa50fef30d11ef50aadd52dd01b9c902c162e3e44b685ae4ff01802b3ce1741e5efc28f654e8fb231d06b6d028cecc51f789350bb456d9265eae82c25d987de44f747bf4312bfde87c06538ad76a6ec606f19436e67fcdb82014d3300fbd0b6bc3288d8cef6765bc82d0bb5b05b0c1f28a074003c94afd5fd5d404faf1b7ba4dc6cbd694e2fd2708b09aec36142817a1e5ee9a6d8122ff734861e54f30203010001~#N00N00

这只是头1234、命令EO01表示“ASN.1公钥的DER编码(使用无符号表示的整数)”。然后是编码的DER本身,然后是密钥块头~#N00N00

错误04表示“公钥不符合编码规则”。下面是用于生成RSA密钥对和DER编码公钥的代码:

rsa_private_key = buildRsaKeyPair()
rsa_public_key = rsa_private_key.public_key()

der = rsa_public_key.public_bytes(
   encoding=serialization.Encoding.DER,
   format=serialization.PublicFormat.PKCS1
)

encoded = der.hex()[:16] + der.hex()[18:]

encoded是命令中内置的内容。有人能看到Python中的cryptography库中的公钥编码有什么问题吗


Tags: key命令编码密钥serializationprivatepublicrsa