如何从X509Certificate中提取摘要算法

时间:2014-04-25 13:27:24

标签: java x509certificate

我可以从X509Certificate实例(例如"SHA256WithRSA")中提取OID和签名算法的名称,但是如何提取摘要算法的名称,例如: "SHA256"

"with"的字符串拆分或OID的固定映射旁边是否有办法?

附带问题:拆分"with"是否安全?

1 个答案:

答案 0 :(得分:2)

证书仅包含签名算法OID,该算法映射到唯一的摘要/算法。因此,找到摘要算法的最简单方法是使用映射表OID - >消化算法。

不幸的是,我知道没有可以找到这些OID的集中位置。但是,可以在这些RFC中收集它们:

解析算法名称并拆分“With”应该有效但有这些限制

  • 它可能只适用于Oracle加密提供程序(请参阅signature algorithm naming conventions上的文档)。具有自己的证书实现的另一个提供程序可能使用另一个不兼容的命名约定。
  • 如果算法未知,getSigAlgName()方法将返回OID.a.b.c.d...形式的字符串。例如,旧的Java6不支持SHA256withDSA算法,并且将打印OID.2.16.840.1.101.3.4.3.2