使用 Bouncy Castle 的 bc-fips 库:使用特定算法进行 HMAC 计算

Using Bouncy Castle's bc-fips Library: HMAC Calculation with Specific Algorithm

提问人:Zeev Abramovich 提问时间:10/26/2023 更新时间:10/26/2023 访问量:41

问:

各位开发者,大家好,

我目前正在使用 Bouncy Castle 的 bc-fips 库,特别是尝试使用特定算法(例如 SHA256)创建 HMAC 对象。在浏览库时,我注意到 org.bouncycastle.crypto.internal.macs 包中有一个 HMAC 对象。但是,我正在努力寻找一种使用我想要的算法创建 HMAC 的方法。

在我的研究中,我在“100 个示例中的 Bouncy Castle FIPS Java API”文件中遇到了一个示例,它演示了使用 Java Cryptography Extension (JCE) 中的 Mac 类进行 HMAC 计算。下面是示例的摘录:

public static byte[] calculateHmac(SecretKey key, byte[] data) throws GeneralSecurityException {
    Mac hmac = Mac.getInstance("HMacSHA512", "BCFIPS");
    hmac.init(key);
    return hmac.doFinal(data);
}

此示例使用 JCE 中的 Mac 类。我的问题是:为什么他们使用 JCE 的 Mac 类,而不是使用 Bouncy Castle 直接提供的 HMAC 或 MAC 对象?我有兴趣了解这种选择背后的基本原理,以及是否有办法使用 Bouncy Castle 的原生 HMAC 或 MAC 对象实现相同的 HMAC 计算。

有关如何使用 Bouncy Castle 的 bc-fips 库使用特定算法创建 HMAC 对象的任何见解或指导将不胜感激。提前感谢您的帮助!

我试过什么:

我尝试使用 Bouncy Castle 的 bc-fips 库创建具有特定算法(例如 SHA256)的 HMAC 对象。最初,我探索了 org.bouncycastle.crypto.internal.macs 包,希望找到一个直接的方法或对象来完成这项任务。但是,我没有找到明确的方法来指定用于创建 HMAC 的算法。

我希望在 Bouncy Castle 的 bc-fips 库中找到一个简单的方法或对象,它允许我使用特定算法(如 SHA256)创建 HMAC 对象,而不必求助于 JCE 的 Mac 类。 理想情况下,我一直在寻找一种直接利用 Bouncy Castle 的原生 HMAC 或 MAC 对象的解决方案, 保持库内的一致性。

我正在寻求有关是否存在特定于 Bouncy Castle 的方法或对象的指导,该方法或对象支持使用自定义算法进行 HMAC 计算,如果没有,则对为什么在提供的示例中使用 JCE 的 Mac 类有任何见解。任何有助于理解这一点并在充气城堡图书馆中找到解决方案的帮助将不胜感激。

java 加密 bouncycastle hmac fips

评论


答: 暂无答案