Программа не может определить, следует ли вызывать процедуры клиента или сервера
Дефект возникает при вызове одной из этих функций без явной установки метода соединения контекста TLS/SSL.
SSL_read
SSL_write
SSL_do_handshake
Связь между сервером и клиентскими объектами, использующими соединение TLS/SSL, начинается с подтверждения. Во время рукопожатия стороны обмениваются информацией и устанавливают алгоритм шифрования и сеансовые ключи, используемые сторонами во время сеанса. Методы соединения для сервера и клиента используют различные процедуры для квитирования.
Проверка не вызывает дефектов, если:
Вы используете SSL_connect (клиент) и SSL_accept (серверные) функции. Эти функции автоматически устанавливают правильные процедуры квитирования.
Контекст SSL передается в качестве аргумента функции, вызывающей SSL_new.
Контекст SSL объявляется вне области действия функции, обрабатывающей соединение.
Невозможно начать квитирование, если подсистема SSL не знает, какой метод соединения следует вызвать.
Для выполнения процедур квитирования вызова клиента вызовите SSL_set_connect_state прежде чем начать рукопожатие.
Для выполнения процедур квитирования сервера вызовите SSL_set_accept_state прежде чем начать рукопожатие.
| Группа: Криптография |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CRYPTO_SSL_NO_ROLE |
| Воздействие: среднее |
| CWE ID: 304, 322, 573 |
Find defects (-checkers) | Missing certification authority list | Missing X.509 certificate