0
我使用OpenSSL 1.0.2j來開發桌面電子郵件客戶端應用程序,但沒有 問題。我將代碼從桌面複製到WinCE 5.0設備.NET CF 2.0。 連接SSL_connect()一直失敗,值爲5(SSL_ERROR_SYSCALL)。 對CE的GetLastError()的調用給我一個錯誤10038(WSAENOTSOCK套接字在非套接字上的操作)。 你有什麼建議嗎?什麼可能導致這個問題?WinCE 5.0上的SSL_connect()失敗
在此先感謝
下面的代碼:
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
的INT(預計 'BIO_new_socket' 最大值)更大錯誤在SSL_set_bio(ssl_socket,sbioPtr,sbioPtr)。 a)缺少代碼,b)使用.net包裝c)爲WinCE重新編譯SSL?你不能在桌面和WinCE上使用相同的代碼(除了簡單的東西)。 – josef
謝謝!我爲平臺桌面和winCE設備重新編譯了OpenSSL。 –