Thales HSM 导入公钥 (EO) 错误“04”

问题描述

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

1234EO013082010a02820101ec7b6d6be7d0603e3f247c22dd0ae533f02f1216fd9099d6ec5c596eb92c95e8ee87e3437af53ecf9ef4ccd27b1acf28b41ff77b86d028d10c560265d8b2e61b3e57eb8a0c2593eea0815ab82871c1232b03f677342ac19c570caa8abe4f68cb35666e6fa50fef30d11ef50aadd52dd01b9c902c162e3e44b685ae4ff01802b3ce1741e5efc28f654e8fb231d06b6d028cecc51f789350bb456d9265eae82c25d987de44f747bf4312bfde87c06538ad76a6ec606f19436e67fcdb82014d3300fbd0b6bc3288d8cef6765bc82d0bb5b05b0c1f28a074003c94afd5fd5d404faf1b7ba4dc6cbd694e2fd2708b09aec36142817a1e5ee9a6d8122ff734861e54f30203010001~#N00N00

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

Error 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 库得到的公钥编码有什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)