gpt4 book ai didi

java - 用于 TLS 的 Bouncy CaSTLe 配置

转载 作者:行者123 更新时间:2023-12-04 22:36:32 34 4
gpt4 key购买 nike

我正在使用一个使用 java 进行 TLS 通信的测试应用程序。我的系统中安装了标准 Oracle java。
我需要使用 TLS_DHE_RSA_WITH_AES_128_CCM密码套件,标准 Java 不支持,所以很多人建议使用 Bouncy CaSTLe。我下载并复制了bcprov-ext-jdk18on-171.jar$JAVA_HOME/lib文件夹。
此外,更新 java.security文件以将 Bouncy CaSTLe 包含在提供程序列表中,如下所示:

security.provider.4=org.bouncycastle.jce.provider.BouncyCastleProvider
我仍然无法获得 TLS_DHE_RSA_WITH_AES_128_CCM虽然工作。
我所做的步骤是否足够且正确?有人可以建议安装和配置 Bouncy CaSTLe 的步骤吗?

最佳答案

不,因为您不需要先将 JCE 提供程序作为 bctls-$version.jar 添加到类路径中。因为它不包含在标准 Bouncy CaSTLe (BC) 提供程序中。还需要注册 TLS/JSSE 提供程序:

Security.insertProviderAt(new rg.bouncycastle.jsse.provider.BouncyCastleJsseProviderBouncyCastleJsseProvider(), 1);
或以任何其他方式注册它,例如通过将其包含在 java.security 中文件。
由于您可能希望将提供程序用于所有(如果不是大部分)TLS 需求,因此将其添加到最高优先级是有意义的。请注意,JSSE 提供程序不为 Cipher 提供诸如 RSA 或 AES 之类的实现。或 Signature所以它不应该妨碍。
请注意,Sun 的 RSA 和 AES 实现仍然可以由 Bouncy CaSTLe JSSE 提供程序使用,并且由于这些可能经过更好的测试并且可能使用硬件加速,您可能需要确保 BouncyCastleProvider使用 addProvider 作为列表中的最后一个提供程序加载.可能确实需要提供程序,因为标准 Java 安装随附的默认提供程序似乎缺少 CCM 支持。
如果您想知道:JSSE 是 Java 安全套接字扩展。

关于java - 用于 TLS 的 Bouncy CaSTLe 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72060766/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com