Исключение SSL: ошибка: 1409E10F: подпрограммы SSL: ssl3_write_bytes: неверная длина - PullRequest
0 голосов
/ 11 марта 2020

Я использую библиотеки Poco для написания сетевого приложения, специально созданного для Poco::Net::SecureStreamSocket. Некоторые пользователи в последнее время начали сообщать, что они видят следующую ошибку:

SSL Exception: error:1409E10F:SSL routines:ssl3_write_bytes:bad length

Это похоже на очень легко ошибку Google, но по какой-то причине я не могу найти много хорошей информации о том, что я делаю неправильно. Из того, что я почерпнул, кажется, что эта ошибка указывает на то, что было проведено повторное согласование SSL под капотом (?), И лежащая в основе библиотека SSL нуждается в клиенте (т.е. я) для повторной передачи данных. Однако, насколько я могу судить, все предыдущие сообщения были успешно переданы.

Код, который перехватывает исключение, выглядит так:

try
    {
        if (!m_socket)
        {
            return false;
        }

        int32_t res = m_socket->sendBytes((uint8_t*)header, send_len);
        if (res != send_len)
        {
            // Handle error
        }

        res = m_socket->sendBytes(item->buffer.data(), item->buffer.size());
        if (res != (int32_t)item->buffer.size())
        {
            // Handle error
        }

        return true;
    }
    catch (const Poco::IOException& e)
    {
        LOG_ERROR("transmit:IOException: " + e.displayText());
        // Handle error
    }

Это журнал ошибок внутри обработчика исключений для Poco::IOException, который подсказывает мне эту проблему.

...