Javax. net .ssl.SSLHandShakeException: Нет соответствующего протокола (IKVM dll) - PullRequest
0 голосов
/ 22 января 2020

Здравствуйте. У меня проблема с подключением к серверу Java. Мы хотели бы отойти от Java и перейти к реализации C#, но, к сожалению, мы сильно полагаемся на стороннюю библиотеку java.

В стремлении перейти к приложению C# Я конвертировал файл jar в dll, который использовал для ссылки в моем приложении C#, используя IKVM. Кажется, что все работает, и объекты инициализируются должным образом, однако, когда я пытаюсь вызвать метод java, который установил бы соединение, я получаю исключение, указанное выше.

Вызов javax java. net .ssl getSupportedCipherSuites из моего приложения C# показывает, что шифр, необходимый для подключения, не поддерживается. Однако при выполнении того же кода, но на этот раз, записанного в java, отображаются соответствующие наборы. Я считаю, что именно поэтому рукопожатие терпит неудачу, но я не уверен, как заставить приложение C# поддерживать указанный шифр.

Я использую. NET Framework 4.8. Я попытался установить System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

, но, похоже, он ничего не сделал.

Кто-нибудь знает, что может вызвать несоответствие между шифром, поддерживаемым java и C# люкс?

1 Ответ

0 голосов
/ 24 января 2020

Я решил это, добавив провайдера безопасности. Оказывается, сторонняя библиотека использовала BouncyCastle.

Добавил строку java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); и все заработало!

...