Hallo,
ich bin aktuell dabei, eine Software für die Benutzung von SSL umzustellen. Dafür benutze ich "SSLStream".
Jedoch habe ich das Problem, dass die Authentifizierung jedes Mal mit "Fehler bei Handshake wegen eines unerwarteten Paketformats." abbricht.
StackTrace
Die relevanten Codeabschnitte:
Server
Client
Hat irgendjemand eine Idee? Dass die Ports und Adressen richtig sind, habe ich bereits überprüft.
mbfan
ich bin aktuell dabei, eine Software für die Benutzung von SSL umzustellen. Dafür benutze ich "SSLStream".
Jedoch habe ich das Problem, dass die Authentifizierung jedes Mal mit "Fehler bei Handshake wegen eines unerwarteten Paketformats." abbricht.
Quellcode
- bei System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
- bei System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
- bei System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
- bei System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
- bei System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
- bei System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
- bei System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
- bei FPH.SpedV.API.ServerCommunication.Helper.AbstractClient.connect() in E:\Daten\Cloud\Dropbox\Eigene Programme\VB.NET\In Entwicklung\FPH SpedV\FPH SpedV-API\ServerCommunication\Helper\AbstractClient.vb:Zeile 88.
Die relevanten Codeabschnitte:
VB.NET-Quellcode
- Sub init()
- Try
- Dim tL As New Threading.Thread(AddressOf getIPLoc)
- tL.Start(connectionname)
- SSLStream = New SslStream(Stream, True)
- SSLStream.AuthenticateAsServer(Server.Certificate, False, Security.Authentication.SslProtocols.Tls, False)
- StreamReader = New JsonTextReader(New StreamReader(SSLStream))
- StreamWriter = New JsonTextWriter(New StreamWriter(SSLStream))
- t.Start()
- Logging.LogText(logsection, "CONN", "Verbindung steht, zuhören auf " & connectionname & " gestartet")
- Catch ex As Exception
- Logging.LogException("USRSVR", "INIT", ex, connectionname)
- internUserLeft("Serverfehler")
- End Try
- End Sub
VB.NET-Quellcode
- Public Sub connect()
- Dim reconnecting As Boolean = (state = ConnectionState.Broken)
- Try
- cstate = ConnectionState.Opening
- Client.Connect(ServerIP, ServerPort)
- If Client.Connected Then
- NetworkStream = Client.GetStream
- SSLStream = New SslStream(NetworkStream, True)
- Threading.Thread.Sleep(1000) 'Testweise, um zu überprüfen ob der Server zu lahm ist
- SSLStream.AuthenticateAsClient("pada.fphst.de", Nothing, Security.Authentication.SslProtocols.Tls, True)
- StreamReader = New JsonTextReader(New StreamReader(SSLStream))
- StreamWriter = New JsonTextWriter(New StreamWriter(SSLStream))
- t1.Start()
- t2.Start()
- cstate = ConnectionState.Connected
- Else
- If reconnecting Then : cstate = ConnectionState.Broken
- Else : cstate = ConnectionState.OpenFailed
- End If
- End If
- Catch ex As Exception
- If reconnecting Then : cstate = ConnectionState.Broken
- Else : cstate = ConnectionState.OpenFailed
- End If
- End Try
- End Sub
Hat irgendjemand eine Idee? Dass die Ports und Adressen richtig sind, habe ich bereits überprüft.
mbfan