Операция шифрования с открытым ключом не поддержана алгоритмом, используемым в инициализации контекста
Этот дефект происходит, когда вы инициализируете объект контекста ключом для определенного алгоритма, но выполняете операцию, которую не поддерживает алгоритм.
Например, вы инициализируете контекст ключом для алгоритма 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 parameters for key generation | Missing data for encryption, decryption or signing operation | Missing peer key | Missing private key | Missing public key | Nonsecure parameters for key generation