SSL_connect() 在 WinCE 5.0 上失败
SSL_connect() fail on WinCE 5.0
我使用 OpenSSL 1.0.2j 开发了一个桌面电子邮件客户端应用程序,没有
问题。我将代码从我的桌面复制到 WinCE 5.0 设备 .NET CF 2.0。
连接 SSL_connect() 总是失败,值为 5 (SSL_ERROR_SYSCALL)。
对 CE 的 GetLastError() 的调用给我一个错误 10038(非套接字上的 WSAENOTSOCK 套接字操作)。
你有什么建议吗?是什么导致了这个问题?
提前致谢
代码如下:
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
在 WinCE 上使用 CompactFramework 创建的套接字句柄的值始终大于 Int(在“BIO_new_socket”上预期的最大值)
我使用 OpenSSL 1.0.2j 开发了一个桌面电子邮件客户端应用程序,没有 问题。我将代码从我的桌面复制到 WinCE 5.0 设备 .NET CF 2.0。 连接 SSL_connect() 总是失败,值为 5 (SSL_ERROR_SYSCALL)。 对 CE 的 GetLastError() 的调用给我一个错误 10038(非套接字上的 WSAENOTSOCK 套接字操作)。 你有什么建议吗?是什么导致了这个问题?
提前致谢
代码如下:
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
在 WinCE 上使用 CompactFramework 创建的套接字句柄的值始终大于 Int(在“BIO_new_socket”上预期的最大值)