这个问题在最新版本中是否重现?
是的
你做了什么?
rsa.VerifyPKCS1v15(myPublicKey, crypto.SHA3_224, hashed, signature)
你期望看到什么?
一个正确验证过的哈希值。对于不在查找表中的算法,pkcs1v15HashInfo()
需要计算 ASN1 DER 前缀。
你实际上看到了什么?
crypto/rsa: unsupported hash function
附加说明
当前代码有一个预先计算好的 ASN1 DER 前缀表,包含8个算法。所有其他算法都得到 crypto/rsa: unsupported hash function
,尽管它们是有效的。
6条答案
按热度按时间s71maibg1#
/cc @FiloSottile
kmynzznz2#
对我来说,为什么有人想要使用遗留的PKCS#1 v1.5与SHA-3一起使用还不太清楚,但如果有需要,我会接受一个PR来添加相关的ASN.1前缀。
a7qyws3x3#
我也希望我正在处理的签名的发起人使用了PSS。我会尽量找时间提交一个PR,这样我就可以放弃我目前已经实施的解决方法。
4smxwvx54#
尝试重新实现一个程序,出于某种原因,他们以这种方式使用SHA-3哈希,这对我来说是错误的。
@shaunco 你的解决方法是什么?
qjp7pelc5#
https://go.dev/cl/464695提到了这个问题:
crypto: pkcs1v15 should support sha3 hashes and others
balp4ylt6#
对我来说,为什么有人想要使用遗留的PKCS#1 v1.5与SHA-3一起使用还不太清楚,但如果有需要,我会接受一个PR来添加相关的ASN.1前缀。
不幸的是,即使在新的硬件上,如ZynqMP FPGA,它仍然在使用RSA4096-SHA3-384与pkcs#1v1.5一起使用;我怀疑还有其他具有类似设置的硬件。在这些情况下,没有支持pkcs#1v.15与SHA3的硬件也意味着很难(并非不可能)使用Vault传输密钥进行签名。