如何在 Bouncy Castle JSSE (1.68) 中启用命名组?

问题描述

我想使用 Bouncy Castle 1.68 JSSE 创建一个支持 brainpoolP512r1 的 Java TLS 服务器。我认为将它与系统属性 jdk.tls.namedGroups 一起列出就足够了,但这只会导致以下输出

2021-02-17T13:14:17,240 ERROR - Feb 17,2021 1:14:17 PM org.bouncycastle.jsse.provider.NamedGroupInfo createCandidates
WARNING: 'jdk.tls.namedGroups' contains disabled NamedGroup: brainpoolP512r1

我确实无法使用 Google 找到有关此主题的任何内容。我在 bouncycastle.org 找到了 BCJSSE-PDF。我在 Github 上安静地阅读了大部分 TLS 源代码。但我无法理解这个问题。感谢您的任何提示

编辑:我刚刚在 JSSE 代码中发现了一些可疑的东西:ECUtil.java。也许我使用 AdoptOpenJDK 11.0.10+9 很重要?

解决方法

最好将提供者放在最前面,JSSE 提供者是第一个。我的“禁用命名组”错误消失了。我什至不必再使用 jdk.tls.namedGroups

Security.insertProviderAt(new BouncyCastleProvider(),1);
Security.insertProviderAt(new BouncyCastleJsseProvider(),1);