Операция криптографии не поддерживается набором типов заполнения в контексте
Этот дефект возникает, когда вы выполняете операцию алгоритма RSA для контекстного объекта, который не совместим с заполнением, ранее связанным с объектом.
Например, вы связываете схему заполнения OAEP с контекстным объектом, но позже используете контекст для верификации подписи, операцию, которую не поддерживает схема заполнения.
ret = EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING); ... ret = EVP_PKEY_verify(ctx, out, out_len, in, in_len);
Схемы заполнения удаляют детерминизм из алгоритма RSA и защищают операции RSA от определенных видов атаки.
Когда вы используете неправильную схему заполнения, операция RSA может завершиться неудачно или привести к непредвиденному зашифрованному тексту.
Перед выполнением операции RSA связайте объект контекста со схемой заполнения, которая совместима с операцией.
Шифрование: используйте схему заполнения OAEP.
Например, используйте EVP_PKEY_CTX_set_rsa_padding функция с аргументом RSA_PKCS1_OAEP_PADDING или RSA_padding_add_PKCS1_OAEP функция.
ret = EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING);
Затем можно использовать такие функции, как EVP_PKEY_encrypt / EVP_PKEY_decrypt или RSA_public_encrypt / RSA_private_decrypt о контексте.
Подпись: Используйте схему заполнения RSA-PSS.
Например, используйте EVP_PKEY_CTX_set_rsa_padding функция с аргументом RSA_PKCS1_PSS_PADDING.
ret = EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PSS_PADDING);
Затем можно использовать функции, такие как EVP_PKEY_sign- EVP_PKEY_verify пара или RSA_private_encrypt- RSA_public_decrypt пара в контексте.
Если вы выполняете два вида операции с одним и тем же контекстом, после первой операции сбросьте схему заполнения в контексте перед второй операцией.
| Группа: Криптография |
| Язык: C | C++ |
| По умолчанию: Off |
Синтаксис командной строки
: CRYPTO_RSA_BAD_PADDING |
| Влияние: Средний |
| ИДЕНТИФИКАТОР CWE: 310, 372, 573, 664 |
Find defects (-checkers) | Missing blinding for RSA algorithm | Missing padding for RSA algorithm | Nonsecure RSA public exponent | Weak padding for RSA algorithm