Мы работаем в среде 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);
}
}
}
}
}
}