Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
копирование csp контеинера на другой компьютер
Статус: Участник
Группы: Участники
Зарегистрирован: 15.09.2010(UTC) Сообщений: 21
|
Визник вопрос по копированию криптоконтейнера (по сети, но это в данном случае неважно).
Попробовал экспортировать криптоконтейнер в транспортный контейнер (blob) через derive key:
CryptAcquireContext(&prov, CRYPTOCONTAINER, NULL, PROV_GOST_2001_DH, CRYPT_SILENT); CryptSetProvParam(prov, PP_KEYEXCHANGE_PIN, (const BYTE*) CRYPTOPIN, 0); CryptHashData(hash, (BYTE*) CRYPTOPIN, (DWORD) strlen(CRYPTOPIN), 0); CryptDeriveKey(prov, CALG_G28147, hash, CRYPT_EXPORTABLE, &transport); CryptGetUserKey(prov, AT_KEYEXCHANGE, &key); CryptExportKey(key, transport, PRIVATEKEYBLOB, 0, NULL, (DWORD*) blob_len);
В этом месте возвращается ошибка 0x8009000b (NTE_BAD_KEY_STATE), "Ключ не может быть использован в указанном состоянии.".
Экспортируемый ключ имеет параметр EXPORTABLE, транспортный -- EXPORT_KEY и IMPORT_KEY.
Где у меня может быть ошибка? Или в данном случае надо применять схему Диффи-Хеллмана, обмениваться сессионными ключами етц?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 15.09.2010(UTC) Сообщений: 21
|
Поправил, для транспортного ключа необходимо выполнить
CryptSetKeyParam(transport, KP_ALGID, (BYTE*) &alg, 0);
где alg = CALG_PRO_EXPORT.
заработало.
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
копирование csp контеинера на другой компьютер
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close