Получение Нет такого исключения алгоритма при использовании TLSV1.2 в Java 1.4

Я пытаюсь поразить веб-сервис, который поддерживает TLSv1.2. Я использую Java 1.4. Он не поддерживает TLSv1.2.

Теперь кто-то сказал мне, что BC может решить мою проблему. Хотя это работает с SSLEngine как падение замены как-то? Это возможно с BC?

Что я должен сделать, чтобы получить работу SSLEngine (для использования с TLSv1 в неблокирующем сценарии ввода-вывода) без таких низких ограничений на простые числа для DH.

Что я пробовал:

Security.addProvider(new BouncyCastleProvider()); 

Это само по себе не решает проблему.

Так что вместо

SSLContext.getInstance("TLSv1");  //which works alas only little DH keys. 

Я попытался позвонить следующее:

SSLContext.getInstance("TLSv1","BC"); 

SSLContext.getInstance("TLS","BC");

SSLContext.getInstance("TLSv1.2","BC");  

SSLContext.getInstance("ssl","BC"); 

Хотя все они кидают NoSuchAlgorithmException,

1 ответ

Я мог бы решить эту проблему, используя bctls lib, но, к сожалению, у него нет версии для Java 1.4.

Единственная версия, которую я смог найти на веб-сайте Bouncy Castle и в Mvn Repository, - это bctls-jdk15on-157 (для Java> = 1.5).

В любом случае, если обновление вашей версии Java возможно, вам просто нужно добавить этот jar в ваш проект и использовать org.bouncycastle.jsse.provider.BouncyCastleJsseProvider класс (я использовал Java 1.7 для этого теста):

// add the JSSE provider
Security.addProvider(new BouncyCastleJsseProvider());

// tests
SSLContext.getInstance("TLSv1.1", BouncyCastleJsseProvider.PROVIDER_NAME);
SSLContext.getInstance("TLSv1.2", BouncyCastleJsseProvider.PROVIDER_NAME);
SSLContext.getInstance("TLSv1", BouncyCastleJsseProvider.PROVIDER_NAME);

Все приведенные выше тесты выполняются без ошибок.

Проверка всех поддерживаемых протоколов SSL:

SSLContext context = SSLContext.getInstance("TLSv1", BouncyCastleJsseProvider.PROVIDER_NAME);
System.out.println(Arrays.toString(context.getSupportedSSLParameters().getProtocols())); // [TLSv1.1, TLSv1, TLSv1.2]

Выход:

[TLSv1.1, TLSv1, TLSv1.2]

Другие вопросы по тегам