gpt4 book ai didi

java - JSSE中是否有DTLS实现

转载 作者:行者123 更新时间:2023-11-30 06:46:12 28 4
gpt4 key购买 nike

我想用 Java 实现一个 DTLS 1.0 客户端,在 谷歌搜索 之后我发现 JSSERefGuide说如下:

The JSSE API is capable of supporting SSL versions 2.0 and 3.0 and TLS version 1.0. These security protocols encapsulate a normal bidirectional stream socket, and the JSSE API adds transparent support for authentication, encryption, and integrity protection. The JSSE implementation shipped with the JDK supports SSL 3.0, TLS (1.0, 1.1, and 1.2) and DTLS (version 1.0 and 1.2). It does not implement SSL 2.0.

所以我认为我可以在不使用任何库(例如 BouncyCaSTLe)的情况下用纯 Java 实现它

但是当我尝试运行时(以及其他一些,如 DTLSv1.2、DTLSv1...):

final SSLContext sslContext = SSLContext.getInstance("DTLSv1.0", "SunJSSE");

它抛出:

Exception in thread "main" java.security.NoSuchAlgorithmException: no such algorithm: DTLSv1.0 for provider SunJSSE
at sun.security.jca.GetInstance.getService(GetInstance.java:87)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:199)

例如以下工作:

final SSLContext sslContext = SSLContext.getInstance("TLSv1.2", "SunJSSE");

列出所有安全提供者我根本找不到 DTLS 东西。

那么实际上有 DTLS 实现吗?如果是这样,您应该如何使用它?

最佳答案

您可以使用 https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/test/jdk/javax/net/ssl/DTLS/DTLSOverDatagram.java (或 https://github.com/twosigma/OpenJDK/blob/master/test/jdk/javax/net/ssl/DTLS/DTLSOverDatagram.java ,一样)

对于因为链接而杀死我之前的答案的人:即使链接断开也没有问题 - 因为在查看链接时您会轻松地看到 DTLSOverDatagram 是官方 open-jdk 11 测试的一部分- 因此即使链接消失,您也可以轻松找到其他来源。

虽然这些是针对 DTLS 实现的测试,但只要进行少量重构,就可以将其用作 DTLS over (udp-) 数据报的基础。对于客户端和服务器 - 事实上,它们几乎相同。

关于java - JSSE中是否有DTLS实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920596/

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