Контекст, используемый для криптографии, связан с открытым ключом NULL или вообще не связан с открытым ключом
Этот дефект возникает при использовании объекта контекста для шифрования или проверки подлинности подписи, но ранее объект не был связан с открытым ключом, отличным от NULL.
Например, объект контекста инициализируется с помощью открытого ключа NULL и позже используется для шифрования.
ctx = EVP_PKEY_CTX_new(pkey, NULL); ... ret = EVP_PKEY_encrypt_init(ctx); ... ret = EVP_PKEY_encrypt(ctx, out, &out_len, in, in_len);
Аналогичная проверка Missing private key проверяет наличие закрытого ключа в операциях расшифровки и подписи.
Без открытого ключа этап шифрования или аутентификации подписи не выполняется. Избыточная операция часто указывает на ошибку кодирования.
Проверьте расположение операции (шифрование или аутентификация подписи). Если операция предназначена для выполнения, перед выполнением операции убедитесь, что выполнены следующие действия:
Вы создали открытый ключ, отличный от NULL.
Например:
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);
Объект контекста, отличный от NULL, связан с открытым ключом.
Например:
ctx = EVP_PKEY_CTX_new(pkey, NULL);
Примечание: Если вы используете EVP_PKEY_CTX_new_id вместо EVP_PKEY_CTX_new, объект контекста не связан с открытым ключом.
| Группа: Криптография |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CRYPTO_PKEY_NO_PUBLIC_KEY |
| Воздействие: среднее |
| CWE ID: 310, 320, 573, 664 |
Context initialized incorrectly for cryptographic operation | Find defects (-checkers) | Incorrect key for cryptographic algorithm | Missing data for encryption, decryption or signing | Missing parameters for key generation | Missing peer key | Missing private key | Nonsecure parameters for key generation