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