【问题标题】:How do you convert a JCE algorithm name into an AlgorithmIdentifier object?如何将 JCE 算法名称转换为 AlgorithmIdentifier 对象?
【发布时间】:2016-07-20 15:36:13
【问题描述】:

我正在使用 BouncyCastle 1.54。

我有一个 JCE 算法字符串 - 例如“ECDSAwithSHA256”(例如)。

我需要一个 org.bouncycastle.asn1.x509.AlgorithmIdentifier 对象。

或者,我可以从 OID 创建一个 AlgorithmIdentifier 对象,但这引出了如何将算法字符串转换为 OID 的问题。

我可以创建一个巨大的 if/else,但必须有一个标准的方法来做到这一点。

【问题讨论】:

    标签: bouncycastle jce oid


    【解决方案1】:

    您可以使用 BouncyCastle 的算法查找器(请参阅javadoc

    import org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder;
    import org.bouncycastle.operator.DefaultSignatureAlgorithmIdentifierFinder;
    
    AlgorithmIdentifier sigAlgId = new DefaultSignatureAlgorithmIdentifierFinder().find(signatureAlgorithm);
    AlgorithmIdentifier digAlgId = new DefaultDigestAlgorithmIdentifierFinder().find(sigAlgId);
    

    SHA256withECDSA(不是ECDSAwithSHA256,参见bouncycastle specifications)获得的AlgorithmIdentifier OID 将是

    1.2.840.10045.4.3.2
    2.16.840.1.101.3.4.2.1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多