powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сложности с SslStream при портировании с Java
2 сообщений из 2, страница 1 из 1
Сложности с SslStream при портировании с Java
    #38396602
starcheater
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сервер и клиент на Java. Хочу переделать клиент на C#. Связь через сокет и SSL.
Сервер Java, насколько я могу видеть, не использует сертификат,а каким-то образом работает на прямую.
Все, что видел, связанного с C# использует X.509 сертификат...
В растерянности - как подружить их между собой.
=СерверSSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket(this.serverPort);
String[] suites = serverSocket.getSupportedCipherSuites();
serverSocket.setEnabledCipherSuites(suites);
SSLSocket clientSocket = null;
clientSocket = (SSLSocket) serverSocket.accept();
clientSocket.startHandshake();
InputStream sin = clientSocket.getInputStream();
OutputStream sout = clientSocket.getOutputStream();
DataInputStream in = new DataInputStream(sin);
DataOutputStream out = new DataOutputStream(sout);
...

=КлиентInetAddress e = InetAddress.getByName(this.socketip);
SSLSocketFactory sf = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) sf.createSocket(e, socketport);
String[] suites = socket.getSupportedCipherSuites();
socket.setEnabledCipherSuites(suites);
socket.startHandshake();
socket.setSoTimeout(10000);
InputStream sin = socket.getInputStream();
OutputStream sout = socket.getOutputStream();
DataInputStream in = new DataInputStream(sin);
DataOutputStream out = new DataOutputStream(sout);
...


На попытку просто подключится
=примерно такstring ip = ...
int port = ...
TcpClient sslClient = new TcpClient(ip, port);
SslStream sslStream = new SslStream(sslClient.GetStream());
sslStream.AuthenticateAsClient(ip);

Получаю ошибку:
=Ошибка
System.Security.Authentication.AuthenticationException: Ошибка вызова SSPI, см. внутреннее исключение.
---> System.ComponentModel.Win32Exception: Получено непредвиденное сообщение или оно имеет неправильный формат
--- Конец трассировки внутреннего стека исключений ---
в System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
в System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
в System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
в System.Net.Security.SslStream.AuthenticateAsClient(String targetHost)
в SSLConnect.Program.Main(String[] args) в C:\Users\SC\Documents\Visual Studio 2012\Projects\SSLConnect\SSLConnect\Program.cs:строка 20 (там где AuthenticateAsClient)
...
Рейтинг: 0 / 0
Сложности с SslStream при портировании с Java
    #38397986
Scheduler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
starcheater,

Я конечно не знаю сути конкретной задачи.
Но что-то кажется, что Вы изобретаете велосипед. Возможно стоит воспользоваться IIS, развернуть службу(REST или через SOAP, как там для вас будет лучше), настроить работу через SSL.

С клиентом так вообще проблем возникнуть не должно
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сложности с SslStream при портировании с Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]