Контекст, используемый в операции криптографии, сопоставлен с закрытым ключом NULL или не сопоставлен с закрытым ключом вообще
Недостающий закрытый ключ происходит, когда вы используете объект контекста в дешифровании, подписи, или совместно использовали секретную деривацию, но вы ранее не сопоставили объект с непустым закрытым ключом.
Например, вы инициализируете объект контекста с закрытым ключом NULL и используете объект в дешифровании позже.
ctx = EVP_PKEY_CTX_new(pkey, NULL); ... ret = EVP_PKEY_decrypt_init(ctx); ... ret = EVP_PKEY_decrypt(ctx, out, &out_len, in, in_len);
Средство проверки дубликата Missing public key
проверки на открытый ключ в шифровании и операциях аутентификации. Средство проверки Missing peer key
проверки на коллегу вводят разделяемую секретную деривацию.
Без закрытого ключа, дешифрования, подписи или совместно использованного секретного шага вывода не происходит. Избыточная операция часто указывает на ошибку кодирования.
Проверяйте размещение операции (дешифрование, подпись, или совместно использовал секретную деривацию). Если операция предназначается, убедитесь, что вы завершили эти шаги до операции:
Сгенерируйте непустой закрытый ключ.
Например:
EVP_PKEY *pkey = NULL; kctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); EVP_PKEY_keygen_init(kctx); EVP_PKEY_CTX_set_rsa_keygen_bits(kctx, RSA_2048BITS); EVP_PKEY_keygen(kctx, &pkey);
Сопоставьте непустой объект контекста с закрытым ключом.
Например:
ctx = EVP_PKEY_CTX_new(pkey, NULL);
Примечание: Если вы используете EVP_PKEY_CTX_new_id
вместо EVP_PKEY_CTX_new
, вы не сопоставляете объект контекста с закрытым ключом.
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CRYPTO_PKEY_NO_PRIVATE_KEY |
Удар: носитель |
ID CWE: 310, 320, 573, 664 |
Context initialized incorrectly for cryptographic operation
| Find defects (-checkers)
| Incorrect key for cryptographic algorithm
| Missing parameters for key generation
| Missing data for encryption, decryption or signing
| Missing peer key
| Missing public key
| Nonsecure parameters for key generation