繁体   English   中英

如何获取用于哈希的公钥值(PyKCS11)

[英]How to get value of public key for hashing (PyKCS11)

在使用PyKCS11时,我从智能卡中提取了一个公钥。 现在,我需要使用sha256对该密钥进行哈希处理。 但是,公钥对象包含许多值:

CKA_ALWAYS_SENSITIVE: True
CKA_CLASS: CKO_PUBLIC_KEY
CKA_DECRYPT: False
CKA_DERIVE: False
CKA_ENCRYPT: False
(...)
CKA_KEY_TYPE: CKK_RSA
CKA_MODIFIABLE: False
CKA_MODULUS: (200, 163, 157, 146, 3, (...))

要散列密钥(使用hashlib),只需要其中一个属性(它不接受可迭代对象)。

我应该使用什么属性? 我在考虑CK_VALUE或CK_MODULUS,但是PyKCS11上的文档并不清楚哪个是正确的。

谢谢

您需要散列的内容取决于您的要求。

通常,模数是散列的,而不是整个密钥的编码。 散列模数将导致公用密钥和专用密钥的值相同,以便您可以将它们标识为来自同一对。 结果或结果的最左边的字节通常用作键校验值或KCV。

每个密钥对的模数应该唯一。 如果不是,则您的随机数生成器可能已损坏或种子设定不正确(如果您生成多个密钥,则对此进行检查不会很麻烦)。 因此,即使未对指数进行哈希计算,模数上的哈希也将唯一地标识您的公钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM