Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Security_nv  
#1 Оставлено : 18 апреля 2017 г. 9:22:41(UTC)
Security_nv

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.01.2015(UTC)
Сообщений: 4
Российская Федерация
Откуда: Россия

Добрый день всем постояльцам форума.

Есть необходимость перенести ключ с одного контейнера на другой (на разных RSA-криптопровайдерах).
В качестве источника MS_ENH_RSA_AES_PROV.

Мое видение:
--
0. Захватываем контексты криптопровайдеров и приватного ключа
CryptAcquireContext(&hProvDest, CONTAINER_DEST, PROVNAME_DEST,PROVTYPE_DEST,CRYPT_NEWKEYSET)
CryptAcquireContext(&hProvSrc,CONTAINER_SRC,PROVNAME_SRC,PROVTYPE_SRC,0)
CryptGetUserKey(hProvSrc,AT_KEYEXCHANGE,&hPrivateKey)
--
1. Генерируем на получателе ключ для обмена
CryptGenKey(hProvDest, CALG_RSA_KEYX, CRYPT_EXPORTABLE, &hKeyForEnchangeDest)
--
2. Экспортируем публичную часть этого ключа в blob (предварительно узнав размер)
CryptExportKey(hKeyForEnchangeDest,0,PUBLICKEYBLOB,0,pbKeyBlob,&dwBlobLen)
--
3. Импортируем в провайдер-источник
CryptImportKey(hProvSrc,pbKeyBlob,dwBlobLen,0,0,&hKeyForEnchangeSrc)
--
4. Экспортируем целевой секретный ключ из источника (предварительно запросив размер)
CryptExportKey(hPrivateKey, hKeyForEnchangeSrc, PRIVATEKEYBLOB, 0, NULL, &dwBlobLen)
CryptExportKey(hPrivateKey, hKeyForEnchangeSrc, PRIVATEKEYBLOB, 0, pbKeyBlob, &dwBlobLen)
--
На последней строчке падаем с GetLastError 2148073476 (NTE_BAD_LEN, dwBlobLen получает значение 1300).

В чем может быть проблема? И верен ли в принципе подход? Может я что-то упустил или делаю неверно?
Спасибо.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.