我想在 Java 中实现一个 DTLS 1.0 客户端,经过一番谷歌搜索后,我发现JSSERefGuide显示以下内容:
JSSE API 能够支持 SSL 版本 2.0 和 3.0 以及 TLS 版本 1.0。这些安全协议封装了一个普通的双向流套接字,JSSE API 增加了对身份验证、加密和完整性保护的透明支持。JDK 附带的 JSSE 实现支持 SSL 3.0、TLS(1.0、1.1 和 1.2)和 DTLS(1.0 和 1.2 版)。它没有实现 SSL 2.0。
所以我认为我可以在不使用任何库的情况下用纯 Java 实现它(例如 BouncyCastle)
但是当我尝试运行时(以及其他一些,如 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 实现?如果是这样,你应该如何使用它?