我正在尝试从1.48版本升级到1.60,并遇到签名算法问题。
下面是旧代码和新代码。以前用于签名算法的值是OID值。更新代码后,此操作将失败。现在,signingAlgorithm必须是名称的字符串表示形式,而不是OID。
第一个问题,是否有一种方法可以基于BC中的OID查找名称?
第二个问题(如果没有办法进行查找),那么有人知道映射应该是什么。我试图映射SHA1(见下文),但找不到与MD5等效的文件。
SHA1(oid = 1.3.14.3.2.26映射名称= SHA1WITHRSAANDMGF1)? MD5(oid = 1.2.840.1.13549.2.5映射名称=?)
以前的代码
signer.addSigner(privateKey, (X509Certificate) privateCertChain[0],
signingAlgorithm, new AttributeTable(attributes), null);
新代码
SignerInfoGenerator signerInfoGenerator = new JcaSimpleSignerInfoGeneratorBuilder().setProvider(
"BC").setSignedAttributeGenerator(new AttributeTable(attributes)).build(
signingAlgorithm, privateKey, privateCertChain[0]);