与WolfSSL握手时出现问题



我在使用WolfSSL时遇到了一些问题。我试着在WolfSSL论坛上问了一个问题,但现在注册不起作用。

我正在使用WolfSSL为任天堂Wii开发一个简单的电子邮件客户端。WolfSSL是唯一一个声称与Wii兼容的库。我已经用devKitPro成功地构建了库,一切似乎都正常,但在握手时失败了。

以下是一些示例代码:

bool Internet::sslSetup(){
  if(wolfSSL_Init() != SSL_SUCCESS){
    sslReportError();
    return false;
  }
  setState("SSL Init");
  method = wolfSSLv23_client_method();
  if (method == NULL) {
    sslReportError();
    return false;
  }
  setState("SSL Method Set");
  ctx = wolfSSL_CTX_new(method);
  wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
  if(ctx == NULL){
    sslReportError();
    return false;
  }
  setState("SSL Ctx Init");
  sslSocket = wolfSSL_new(ctx);
  if(sslSocket == NULL){
    sslReportError();
    return false;
  }
  setState("SSL Socket Init");
  wolfSSL_set_fd(sslSocket, socket);
  if(sslSocket == NULL){
    sslReportError();
    return false;
  }
  setState("SSL Socket connected to net socket");
  return true;
}

我没有任何方法在Wii上调试,所以我只能进行文本调试。以下是我的WolfSSL调试输出日志:

13 05 2016 00:55 wolfSSL Entering wolfSSL_Init 
13 05 2016 00:55 wolfSSL Entering WOLFSSL_CTX_new 
13 05 2016 00:55 wolfSSL Entering wolfSSL_CertManagerNew 
13 05 2016 00:55 wolfSSL Leaving WOLFSSL_CTX_new, return 0 
13 05 2016 00:55 wolfSSL Entering wolfSSL_CTX_set_verify 
13 05 2016 00:55 wolfSSL Entering SSL_new 
13 05 2016 00:55 wolfSSL Leaving SSL_new, return 0 
13 05 2016 00:55 wolfSSL Entering SSL_set_fd 
13 05 2016 00:55 wolfSSL Leaving SSL_set_fd, return 1 
13 05 2016 00:55 wolfSSL Entering SSL_connect() 
13 05 2016 00:55 growing output buffer
13 05 2016 00:55 Shrinking output buffer
13 05 2016 00:55 connect state: CLIENT_HELLO_SENT 
13 05 2016 00:55 received record layer msg 
13 05 2016 00:55 got ALERT! 
13 05 2016 00:55 Got alert 
13 05 2016 00:55 wolfSSL error occurred, error = 40 
13 05 2016 00:55 wolfSSL error occurred, error = -313 

有什么想法吗?正在尝试连接到端口465上的smtp.gmail.com。

这看起来像是TLS握手错误,因为:

  • 客户向客户打招呼
  • 它收到了警报
  • 警报40表示握手错误,请参阅https://www.rfc-editor.org/rfc/rfc5246#section-7.2

接下来的步骤是:

  • 调查-313的错误是什么
  • 你能从同一网络上的计算机上获得wireshark跟踪,以获得服务器hello包含的更多细节吗?例如,这种情况可能有几个原因,例如服务器对客户端提供的密码列表不满意

最新更新