2024-04-20 09:51:35 发布
网友
我们需要生成一个没有ASN.1编码的数字签名,以供下游应用程序验证。我们可以通过命令行上的openssl实现这一点:
openssl pkeyutl -sign -inkey keyfile < hash
但是,当我尝试用Python(使用PyCrypto库)进行数字签名时,如果没有包含ASN.1编码的库(也就是说,除非我fork PyCrypto允许我删除它们),我就不能这样做。rsa库也不允许这样做。有没有我错过的Python加密库或命令允许这种灵活性?你知道吗
根据this answer,您显示的OpenSSL命令生成一个RSASSA-PKCS1-v1_5签名,根据定义,它总是包含ASN.1der编码结构:您的假设实际上是无效的。你知道吗
RSASSA-PKCS1-v1_5
然而,当散列算法是固定的时,接收器没有必要也不建议实现完整的DER解析器。它只需检查某个字节字符串是否存在(以及其他一些填充字节,然后在最右边的位置检查摘要)。This other answer显示了最流行的摘要算法的DER编码。你知道吗
如果您真的不想在签名中包含ASN.1,那么只能切换到^{}。你知道吗
根据this answer,您显示的OpenSSL命令生成一个
RSASSA-PKCS1-v1_5
签名,根据定义,它总是包含ASN.1der编码结构:您的假设实际上是无效的。你知道吗然而,当散列算法是固定的时,接收器没有必要也不建议实现完整的DER解析器。它只需检查某个字节字符串是否存在(以及其他一些填充字节,然后在最右边的位置检查摘要)。This other answer显示了最流行的摘要算法的DER编码。你知道吗
如果您真的不想在签名中包含ASN.1,那么只能切换到^{} 。你知道吗
相关问题 更多 >
编程相关推荐