Операция криптографии открытого ключа не поддерживается алгоритмом, используемым при инициализации контекста
Этот дефект возникает, когда вы инициализируете объект контекста с ключом для определенного алгоритма, но выполняете операцию, которую алгоритм не поддерживает.
Например, вы инициализируете контекст с ключом для алгоритма 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 |
Влияние: Средний |
ИДЕНТИФИКАТОР 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