CryptoServicesRegistrar.isInApprovedOnlyMode() 和 CryptoServicesRegistrar.setApprovedOnlyMode(true) 已在充气城堡中移除

CryptoServicesRegistrar.isInApprovedOnlyMode() and CryptoServicesRegistrar.setApprovedOnlyMode(true) has been removed in bouncy castle

正如标题所述,这两个功能已从bouncy castle v1.50中删除,是否有替代方案?我必须使用v1.64或更高版本。

这是我的代码

Security.addProvider(new BouncyCastleFipsProvider());

我得到了错误

java.lang.NoSuchMethodError: org.bouncycastle.crypto.CryptoServicesRegistrar.isInApprovedOnlyMode()Z

貌似BouncyCastleFipsProvider()在其构造函数中调用了CryptoServicesRegistrar.isInApprovedOnlyMode(),但是这个版本没有这个函数,不知道为什么会调用这个方法。 为了适应 F​​edRamp,我必须使用 FIPSpovider。 有人知道怎么做吗?

有两个完全独立的提供商:

  1. “BC”,即 BouncyCastleProvider,使用非常广泛的密码学 API,当前版本为 1.70 (website)。
  2. “BCFIPS”,即 BouncyCastleFipsProvider,FIPS-compliant 一组更有限算法的实现,当前版本为 1.0.2.3 (website)。

这些不能一起使用。此外,BCFIPS 不仅仅是 BC 的 drop-in 替代品,突然使您的项目 FIPS-compliant。绝大多数用户应该都在使用BC。

您提到的方法仅与 BCFIPS 相关,但您谈论的版本号仅与 BC 相关,这意味着您对尝试使用的 jars/provider 感到困惑,或者也许您正试图在同一个过程中同时使用两者,但这是行不通的。