我想对一些数据应用带有RSA签名的KECCAK-384散列,但我需要分两步完成-首先应用散列,然后对数据进行签名。Signature.sign()
函数似乎需要正确的摘要DER数据结构才能正确签名。
我如何在不使用任何外部库(如BouncyCastle)的情况下实现这两个等价物?
对于SHA3-384
,这是可以的(因为有一个OID),但对于KECCAK-384
,我没有找到正确的方法,因为没有OID。
致上,
对于SHA 3 -384,可以:
Signature signEng1= Signature.getInstance("NoneWithRSA");
signEng1.initSign(rsaKeyPair.getPrivate());
signEng1.update(digestinfo);
signEng1.update(hashToSign);
byte[] sig1= signEng1.sign();
1条答案
按热度按时间cigdeys31#
在事实中,每个提供者决定Keccak 384的报头,因为它不在RFC中。