Вы выполняете шаги шифрования и дешифрования по очереди с тем же контекстом шифра без промежуточной реинициализации
Противоречивые операции шифра происходят, когда вы выполняете шаг шифрования и дешифрования с тем же контекстом шифра. Вы не повторно инициализируете контекст, промежуточный те шаги. Средство проверки применяется к симметричному шифрованию только.
Например, вы настраиваете контекст шифра для дешифрования с помощью 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 |
Удар: носитель |
ID CWE: 372, 664 |