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”上预期的最大值)