Операция шифрования с открытым ключом не поддерживается алгоритмом, используемым в инициализации контекста
Этот дефект происходит, когда вы инициализируете объект контекста ключом для определенного алгоритма, но выполняете операцию, которую не поддерживает алгоритм.
Например, вы инициализируете контекст ключом для алгоритма DSA.
ret = EVP_PKEY_set1_DSA(pkey,dsa); ctx = EVP_PKEY_CTX_new(pkey, NULL);
ret = EVP_PKEY_encrypt(ctx,out, &out_len, in, in_len);
Если алгоритм не поддерживает вашу криптографическую операцию, вы не видите ожидаемые результаты. Например, если вы используете алгоритм DSA для шифрования, вы можете получить неожиданный шифрованный текст.
Используйте алгоритм, который подходит для криптографической операции, которую вы хотите выполнить:
Диффи-Хеллмен (DH): Для ключевой деривации.
Алгоритм цифровой подписи (DSA): Для подписи.
RSA: Для шифрования и подписи.
Эллиптическая кривая (EC): Для ключевой деривации и подписи.
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки:
CRYPTO_PKEY_INCORRECT_KEY |
Удар: Средняя |
ID CWE: 310, 325, 573, 664 |
Context initialized incorrectly for cryptographic operation
| Find defects (-checkers)
| Missing data for encryption, decryption or signing operation
| Missing parameters for key generation
| Missing peer key
| Missing private key
| Missing public key
| Nonsecure parameters for key generation