Контекст, используемый для генерации ключей, сопоставлен с параметрами NULL
Недостающие параметры для генерации ключей происходят, когда вы выполняете шаг генерации ключей с объектом контекста без первого соединения объекта с обязательными параметрами.
Например, вы сопоставляете объект контекста EVP_PKEY_CTX
с пустым объектом EVP_PKEY
params
перед генерацией ключей:
EVP_PKEY * params = EVP_PKEY_new(); ... EVP_PKEY_CTX * ctx = EVP_PKEY_CTX_new(params, NULL); ... EVP_PKEY_keygen(ctx, &pkey);
Без соответствующих параметров не происходит шаг генерации ключей. Избыточная операция часто указывает на ошибку кодирования.
Проверяйте размещение шага генерации ключей. Если операция предназначается, убедитесь, что параметры устанавливаются перед генерацией ключей.
Определенные алгоритмы используют параметры по умолчанию. Например, если вы задаете алгоритм DSA при создании объекта EVP_PKEY_CTX
, длина ключа по умолчанию 1 024 битов используется:
kctx = EVP_PKEY_CTX_new_id(EVP_PKEY_DSA, NULL);
Однако параметры по умолчанию могут сгенерировать ключи, которые слишком слабы для шифрования. Слабые параметры могут инициировать другой дефект. Чтобы изменить параметры по умолчанию, используйте функции, характерные для алгоритма. Например, чтобы установить параметры, можно использовать эти функции:
Диффи-Хеллмен (DH): используйте EVP_PKEY_CTX_set_dh_paramgen_prime_len
и EVP_PKEY_CTX_set_dh_paramgen_generator
.
Алгоритм цифровой подписи (DSA): используйте EVP_PKEY_CTX_set_dsa_paramgen_bits
.
RSA: используйте EVP_PKEY_CTX_set_rsa_padding
, EVP_PKEY_CTX_set_rsa_pss_saltlen
, EVP_PKEY_CTX_set_rsa_rsa_keygen_bits
и EVP_PKEY_CTX_set_rsa_keygen_pubexp
.
Эллиптическая кривая (EC): Используйте EVP_PKEY_CTX_set_ec_paramgen_curve_nid
и EVP_PKEY_CTX_set_ec_param_enc
.
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CRYPTO_PKEY_NO_PARAMS |
Влияние: носитель |
ID CWE: 310, 325, 372, 573 |
Context initialized incorrectly for cryptographic operation
| Find defects (-checkers)
| Incorrect key for cryptographic algorithm
| Missing data for encryption, decryption or signing
| Missing peer key
| Missing private key
| Missing public key
| Nonsecure parameters for key generation