正如标题所述,这两个功能已从 bouncy caSTLe v1.50 中删除,有其他选择吗?我必须使用 v1.64 或更高版本。
这是我的代码
Security.addProvider(new BouncyCastleFipsProvider());
我收到错误
java.lang.NoSuchMethodError: org.bouncycastle.crypto.CryptoServicesRegistrar.isInApprovedOnlyMode()Z
看起来BouncyCaSTLeFipsProvider()在其构造函数中调用了CryptoServicesRegistrar.isInApprovedOnlyMode(),但是这个版本中没有这个函数,我不知道为什么它会调用这个方法。 为了适应 FedRamp,我必须使用 FIPSpovider。 有谁知道怎么办吗?
最佳答案
有两个完全独立的提供者:
- “BC”,即 BouncyCaSTLeProvider,是使用非常广泛的加密 API,目前版本为 1.70 ( website )。
- “BCFIPS”,即 BouncyCaSTLeFipsProvider,是一组更有限的算法的符合 FIPS 标准的实现,目前版本为 1.0.2.3 ( website )。
这些不能一起使用。此外,BCFIPS 不仅仅是 BC 的直接替代品,它会突然使您的项目符合 FIPS 标准。绝大多数用户应该使用 BC。
您提到的方法仅与 BCFIPS 相关,但您正在谈论仅与 BC 相关的版本号,这意味着您对尝试使用哪些 jars/provider 感到困惑,或者您可能是尝试在同一个进程中使用两者,但这是行不通的。
关于spring - CryptoServicesRegistrar.isInApprovedOnlyMode() 和 CryptoServicesRegistrar.setApprovedOnlyMode(true) 已在充气城堡中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71063862/