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