Вы выполняете шаги шифрования и дешифрования последовательно с тем же контекстом шифра без повторной инициализации между
Этот дефект возникает, когда вы выполняете шаг шифрования и дешифрования с тем же контекстом шифра. Вы не инициализируете контекст между этими шагами. Проверка применяется только к симметричному шифрованию.
Например, вы настраиваете контекст шифра для расшифровки, используя 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 |