Алгоритм шифрования или дешифрования не связан с контекстом шифра
Этот дефект возникает, когда вы не назначаете алгоритм шифрования при настройке контекста шифра.
Можно инициализировать контекст шифра без алгоритма. Однако, прежде чем вы шифруете или расшифровываете ваши данные, необходимо связать контекст шифра с алгоритмом шифрования.
Отсутствующий алгоритм шифрования может привести к ошибкам времени выполнения или, по крайней мере, к небезопасному шифротексту.
Перед шифрованием или расшифровкой вы настраиваете контекст шифра, имеющий информацию, необходимую для шифрования: алгоритм и режим шифрования, ключ шифрования или дешифрования и вектор инициализации (для режимов, требующих векторов инициализации).
ret = EVP_EncryptInit(&ctx, EVP_aes_128_cbc(), key, iv)
EVP_aes_128_cbc()
указывает, что алгоритм Advanced Encryption Standard (AES) должен использоваться для шифрования. Функция также задает размер блока 128 бит и режим Cipher Bloch Chaining (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++ |
По умолчанию: Off |
Синтаксис командной строки: CRYPTO_CIPHER_NO_ALGORITHM |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE : 310, 573 |