Статус: Новичок
Группы: Участники
Зарегистрирован: 24.11.2022(UTC) Сообщений: 2 
|
Добрый день! Пытаюсь сделать экспорт симметричного ключа по алгоритму KExp15 с помощью КриптоПро CSP 5.0.12000 KC1. Использую следующие функции: Код://Получение дескриптора контекста криптографического провайдера для ГОСТ 34.10 - 2012_256
CryptAcquireContext(&hProv, CONTAINER, NULL, PROV_GOST_2012_256, 0);
//создаем контекст сертификата открытого ключа получателя
pCertContext = CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pbCert, cbCert);
// Импортируем открытый ключ
CryptImportPublicKeyInfoEx(hProv, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, &(pCertContext->pCertInfo->SubjectPublicKeyInfo), 0, 0, NULL, &hPubKey);
// экспорт открытого ключа получателя в BLOB. Определяем размер BLOB
DWORD dwBlobLen = 0;
CryptExportKey(hPubKey, 0, PUBLICKEYBLOB, 0, NULL, &dwBlobLen);
BYTE *pbKeyBlob = (BYTE *)malloc(dwBlobLen * sizeof(BYTE));
//экспорт открытого ключа получателя в BLOB.
CryptExportKey(hPubKey, 0, PUBLICKEYBLOB, 0, pbKeyBlob, &dwBlobLen)
// генерация эфемерной ключевой пары
CryptGenKey(hProv, CALG_DH_GR3410_12_256_EPHEM, CRYPT_EXPORTABLE, &hEphemeralKey);
// Получение ключа согласования импортом открытого ключа получателя на эфемерном ключе
CryptImportKey(hProv, pbKeyBlob, dwBlobLen, hEphemeralKey, 0, &hAgreeKey)
// Установление CALG_KEXP_2015_M алгоритма ключа согласования
ALG_ID ke_alg = CALG_KEXP_2015_M;
CryptSetKeyParam(hAgreeKey, KP_ALGID, (LPBYTE)&ke_alg, 0)
На этапе установления параметра CALG_KEXP_2015_M через функцию CryptSetKeyParam возникает ошибка 0x80090020. Может ли кто-нибудь подсказать правильно ли я делаю все шаги перед вызовом функции CryptSetKeyParam? Как сделать экспорт симметричного ключа по алгоритму KExp15? Отредактировано пользователем 24 ноября 2022 г. 22:13:57(UTC)
| Причина: Не указана
|