我正在开发一个项目,其中 BouncyCastle Crypto 包(非 FIPS)是其他一些第三方库的依赖项。我的任务是集成 BouncyCastle FIPS 库以在我们自己的代码中使用。然而,https://www.bouncycastle.org/fips-java/BCFipsIn100.pdf第11页的文档(BC FIPS in 100 mini-book)说:
provider jar 本身没有外部依赖,但不能 与常规 Bouncy Castle 提供程序在同一 JVM 中使用。这 两个 jar 文件中的类不能兼容。
我搜索了更多这方面的信息,但没有真正找到任何有用的东西。
我还检查了https://github.com/bcgit/bc-java/issues/714,SpongyCastle 不适合我们的用例。
到目前为止,我的项目似乎正在使用 FIPS (bc-fips-1.0.2.3.jar) 和非 FIPS (bcprov-jdk15on-1.64.jar) jar。
所以我的问题是,如果项目中同时存在 FIPS 和非 FIPS jar,我到底应该预期会出现什么问题?
请注意,我的项目本身不需要符合 FIPS,只需为用户提供使用符合 FIPS 的加密技术的选项。
当第三方库(单元测试中的模拟服务器)尝试添加提供程序时,我在
BouncyCastleProvider
构造函数中遇到错误。
Fwiw,我确实在
bc-fips
中看到了一些外部依赖项,特别是在 org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
上。我必须添加 bcprov-jdk18on
作为依赖项。也许bc-fips
中有一个类似工作的界面我可以使用?