Как использовать повышение, чтобы специально согласовать нулевой шифр tls (1.2) - PullRequest
1 голос
/ 07 марта 2019

Мы работаем в среде TLSv1.2, успешно ведем переговоры с сервером и поддерживаем протокол.Однако мы застряли на определенном этапе и должны предоставить незашифрованные pcaps для поддержки людей, чтобы они могли диагностировать проблему.В частности, поддержка не поможет нам, если мы не представим pcap в NULL-SHA256.

Так как обычно наш код успешно согласовывается с ненулевым шифром, мы просто добавили код, ограничивающий список шифров контекста:содержать только NULL-SHA256 при сохранении оставшейся части настройки.Этот контекст используется в CTOR для boost :: asio :: ssl :: stream "<" boost :: asio :: ip :: tcp :: socket ">".

Сервер отклоняет наш КлиентПривет.Как успешно выполнить согласование с шифром NULL-SHA256, работающим в среде TLS1v1.2?

Спасибо

Настройка контекста следующая:

{
    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);
                    }
                }
            }
        }
    }
}
...