Контекст, используемый для производной от общего секрета, связан с одноранговым ключом NULL или не связан с одноранговым ключом вообще
Этот дефект возникает, когда вы используете объект контекста для деривации общего секрета, но ранее вы не связывали объект с одноранговым ключом, отличным от NULL.
Например, вы инициализируете объект контекста, а затем используете объект для деривации общего секрета без промежуточного шага, где объект связан с одноранговым ключом:
EVP_PKEY_derive_init(ctx); /* Missing step for associating peer key with context */ ret = EVP_PKEY_derive(ctx, out_buf, &out_len);
Блок проверки аналогов Missing private key
проверяет наличие закрытого ключа при деривации общего секрета.
Без однорангового ключа шаг вывода общего секрета не происходит. Избыточная операция часто указывает на ошибку кодирования.
Проверьте размещение шага деривации общего секрета. Если операция предназначена, убедитесь, что вы завершили следующие шаги до операции:
Сгенерируйте одноранговый ключ, отличный от NULL.
Для образца:
EVP_PKEY* peerkey = NULL; EVP_PKEY_keygen(EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL), &peerkey);
Связать объект контекста, не являющийся NULL, с одноранговым ключом.
Для образца:
EVP_PKEY_derive_set_peer(ctx,peerkey);
Группа: Криптография |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки
: CRYPTO_PKEY_NO_PEER |
Влияние: Средний |
ИДЕНТИФИКАТОР CWE : 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 private key
| Missing public key
| Nonsecure parameters for key generation