Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用boost专门协商空tls(1.2)密码_C++_Boost_Tls1.2 - Fatal编程技术网

C++ 如何使用boost专门协商空tls(1.2)密码

C++ 如何使用boost专门协商空tls(1.2)密码,c++,boost,tls1.2,C++,Boost,Tls1.2,我们在TLSv1.2环境中运行,与服务器成功协商并维护协议。然而,我们在某一特定点上陷入困境,需要提供未加密的PCAP来支持人们,以便他们能够诊断问题。具体来说,如果我们不在NULL-SHA256中显示pcap,支持将不会帮助我们 由于我们的代码通常会成功地协商到非空密码,因此我们只添加了一些代码,将上下文的密码列表限制为仅包含null-SHA256,同时保留其余的设置。此上下文用于boost::asio::ssl::stream“<”boost::asio::ip::tcp::socket

我们在TLSv1.2环境中运行,与服务器成功协商并维护协议。然而,我们在某一特定点上陷入困境,需要提供未加密的PCAP来支持人们,以便他们能够诊断问题。具体来说,如果我们不在NULL-SHA256中显示pcap,支持将不会帮助我们

由于我们的代码通常会成功地协商到非空密码,因此我们只添加了一些代码,将上下文的密码列表限制为仅包含null-SHA256,同时保留其余的设置。此上下文用于boost::asio::ssl::stream“<”boost::asio::ip::tcp::socket“>”的CTOR中

服务器拒绝我们的客户端Hello。如何成功协商TLS1v1.2环境中运行的NULL-SHA256密码

谢谢

上下文设置如下所示:

{
    bool success = false;
    char cipherBuff[200];
    sprintf(cipherBuff, "%s", TLS1_TXT_RSA_WITH_NULL_SHA256);
    if (int sclRet = (SSL_CTX_set_cipher_list(ctx, cipherBuff)) <= 0)
    {
        printf("SSL_CTX_set_cipher_list failed: %d\n", sclRet);
    }
    else
    {    
        if (m_ssl_client_certificate_path.size())
        {
            SSL_CTX_use_certificate_file(ctx, m_ssl_client_certificate_path.c_str(), SSL_FILETYPE_PEM);

            if (privateKeyBufferPtr && privateKeyBufferLen)
            {
                if ((kbio = BIO_new_mem_buf((char*)privateKeyBufferPtr, -1)) != NULL)
                {
                    if ((rsa = PEM_read_bio_RSAPrivateKey(kbio, NULL, 0, NULL)) != NULL)
                    {
                        success = (SSL_CTX_use_RSAPrivateKey((SSL_CTX*)ctx, rsa) == 1);
                    }
                }
            }
        }
    }
}
{
布尔成功=假;
char-cipherBuff[200];
sprintf(cipherBuff,“%s”,TLS1\u TXT\u RSA\u,带\u NULL\u SHA256);

如果(int sclRet=(SSL\u CTX\u set\u cipher\u list(CTX,cipherBuff))boost::asio::SSL::stream模板被传递了一个boost::asio::ip::tcp::socket,该模板在注释中丢失,因为括号。您可以对问题进行调整。还请从代码中提取一个(Boosst是否相关?)并确保那些讨厌的C风格转换不会把事情搞砸。感谢您的反馈!提取一个可运行的示例需要一天左右的时间,而且可以,但希望有更多经验的人能够看到这一点,并知道问题所在。据称,Boost是openssl上的一个薄型包装器,但就像以前可能有人知道的那样s Boost是否在问题中发挥作用。还有一个建议:检查上游错误报告!如果有人已经解决了您的问题,它可能会记录在那里。Boost::asio::ssl::stream模板传递了一个Boost::asio::ip::tcp::socket,它在注释中丢失,因为括号。您可以修改您的问题以进行调整。请还要从代码中提取一个(Boosst是否相关?)并确保那些讨厌的C风格转换不会把事情搞砸。感谢您的反馈!提取一个可运行的示例需要一天左右的时间,而且可以,但希望有更多经验的人能够看到这一点,并知道问题所在。据称,Boost是openssl上的一个薄型包装器,但就像以前可能有人知道的那样还有一个建议:查看上游错误报告!如果有人已经解决了您的问题,可能会记录在那里。