Вы выполняете шаги шифрования и дешифрования последовательно с тем же контекстом шифра без повторной инициализации между
Этот дефект возникает, когда вы выполняете шаг шифрования и дешифрования с тем же контекстом шифра. Вы не инициализируете контекст между этими шагами. Проверка применяется только к симметричному шифрованию.
Например, вы настраиваете контекст шифра для расшифровки, используя EVP_DecryptInit_ex
.
EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, key, iv);
EVP_EncryptUpdate
.EVP_EncryptUpdate(ctx, out_buf, &out_len, src, len);
Микширование шагов шифрования и дешифрования может привести к неясному коду. Трудно с первого взгляда определить, используется ли текущий контекст шифра для шифрования или расшифровки. Микширование может также привести к расовым условиям, неудачному шифрованию и неожиданному зашифрованному тексту.
После настройки контекста шифра для определенного семейства операций используйте контекст только для этого семейства операций.
Например, если вы настраиваете контекст шифра для расшифровки, используя EVP_DecryptInit_ex
После этого используйте контекст только для расшифровки.
Группа: Криптография |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки: CRYPTO_CIPHER_BAD_FUNCTION |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE : 372, 664 |