Контекст, используемый для получения общего секрета, связан с нулевым одноранговым ключом или вообще не связан с одноранговым ключом
Этот дефект возникает при использовании объекта контекста для получения общего секрета, но ранее объект не был связан с равноправным ключом, отличным от 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++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
CRYPTO_PKEY_NO_PEER |
| Воздействие: среднее |
| 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 private key | Missing public key | Nonsecure parameters for key generation