Алгоритм шифрования или дешифрования не связан с контекстом шифра
Этот дефект возникает, когда не назначается алгоритм шифрования при настройке контекста шифрования.
Контекст шифра можно инициализировать без алгоритма. Однако перед шифрованием или расшифровкой данных необходимо связать контекст шифра с алгоритмом шифра.
Отсутствующий алгоритм шифрования может привести к ошибкам во время выполнения или, по крайней мере, к незащищенному шифротексту.
Перед шифрованием или расшифровкой настраивается контекст шифра, имеющий информацию, необходимую для шифрования: алгоритм и режим шифра, ключ шифрования или дешифрования и вектор инициализации (для режимов, требующих векторов инициализации).
ret = EVP_EncryptInit(&ctx, EVP_aes_128_cbc(), key, iv)
EVP_aes_128_cbc() указывает, что для шифрования должен использоваться алгоритм AES. Функция также определяет размер блока 128 бит и режим цепочки блоков шифрования (CBC).Вместо указания алгоритма можно использовать значение NULL на этапе инициализации. Однако перед использованием контекста шифра для шифрования или дешифрования необходимо выполнить дополнительную инициализацию, связывающую алгоритм с контекстом. В противном случае шаги обновления для шифрования или дешифрования могут привести к ошибкам времени выполнения.
Перед выполнением операций шифрования или дешифрования
ret = EVP_EncryptUpdate(&ctx, out_buf, &out_len, src, len)
ctx с алгоритмом.ret = EVP_EncryptInit(ctx, EVP_aes_128_cbc(), key, iv)
| Группа: Криптография |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки: CRYPTO_CIPHER_NO_ALGORITHM |
| Воздействие: среднее |
| CWE ID: 310, 573 |