Я хочу реализовать клиент DTLS 1.0 на Java, и после погугления я обнаружил, что JSSERefGuide говорит следующее:
API JSSE поддерживает SSL версий 2.0 и 3.0 и TLS версии 1.0. Эти протоколы безопасности инкапсулируют обычный сокет двунаправленного потока, а API JSSE добавляет прозрачную поддержку аутентификации, шифрования и защиты целостности. Реализация JSSE, поставляемая с JDK, поддерживает 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? И если да, то как вы собираетесь его использовать?