Ich habe OpenSSL 1.0.2j verwendet, um eine Desktop-E-Mail-Client-Anwendung ohne Probleme zu entwickeln. Ich habe den Code von meinem Desktop auf ein WinCE 5.0-Gerät .NET CF 2.0 kopiert. Die Verbindung SSL_connect() schlägt immer mit dem Wert 5 (SSL_ERROR_SYSCALL) fehl. Ein Aufruf von CE GetLastError() an gibt mir einen Fehler 10038 (WSAENOTSOCK Socket-Operation auf Nicht-Socket). Haben Sie Vorschläge? Was könnte dieses Problem verursachen?SSL_connect() fehlgeschlagen auf WinCE 5.0
Vielen Dank im Voraus
Hier ist der Code:
SSL_library_init()
OPENSSL_add_all_algorithms_noconf()
Dim sslCtx As IntPtr = SSL_CTX_new(SSLv23_client_method())
Dim ssl_socket As IntPtr = SSL_new(sslCtx)
Dim sbioPtr As IntPtr = BIO_new_socket(mySocket.Handle, 0)
SSL_set_bio(ssl_socket, sbioPtr, sbioPtr)
Dim connOK As Integer = SSL_connect(ssl_socket)
If connOK = 1 Then
.....
Else
MsgBox("OpenSSL's SSL_connect() failed")
Dim errcode As Integer = SSL_get_error(ssl_socket, connOK)
MsgBox("SSL Error: " + errcode.ToString)
If errcode = 5 Then
MsgBox("GLE = " + Runtime.InteropServices.Marshal.GetLastWin32Error.ToString)
End If
End If
mySocket.Close()
Else
MsgBox("Socket's connect() failed")
End If
Die Fehler ist bei SSL_set_bio (ssl_socket, sbioPtr, sbioPtr). a) fehlender Code, b) verwendeter .net-Wrapper c) SSL für WinCE neu kompiliert? Sie können nicht den gleichen Code für Desktop und WinCE verwenden (außer für einfache Dinge). – josef
Danke! Ich habe OpenSSL für den Plattform-Desktop und das winCE-Gerät neu kompiliert. –