Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Стоит задача установить сертификат в контейнер с закрытым ключом. Как определить средствами CryptoAPI какой контейнер подходит для сертификата? Метод перебора контейнеров - достаточно хорошо, но при обращении к контейнеру КРИПТОПРО спрашивает PIN. В тоже время есть еще такое решение:
Запустив в командной строке: \Program Files\Crypto Pro\CSP\csptest -keyset -container имя_контейнера -keytype exchange -export имя_файла (как пример – C:\Program Files\Crypto Pro\CSP\csptest -keyset -container TEST -keytype exchange -export c:\pub.txt)
И потом отрыть(Например с помощью Total Commander) получившийся файл в виде hex и сравнить (начиная с конца) последние 64 байта ключа из файла и из сертификата(Открыть файл с сертификатом –закладка Состав –поле -Открытый ключ ).
при этом не происходи запрос PIN т.е. есть возможность получить открытый ключ из контейнера и сравнить с закрытым ключом сертификата без запроса PIN'а
Подскажите как это сделать?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,399  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 719 раз в 623 постах
|
В контейнере не хранится открытый ключ, он вычисляется из закрытого - поэтому нужен пин, но если в контейнере есть сертификат, то возвращается ключ из него. |
|
 1 пользователь поблагодарил Максим Коллегин за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 25.07.2013(UTC) Сообщений: 49  Откуда: Ставрополь Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Спасибо за ответ. Нашлось такое решение - если кому-то будет интересно.
HCRYPTPROV provider=NULL; if(CryptAcquireCertificatePrivateKey(pCertContext,CRYPT_ACQUIRE_COMPARE_KEY_FLAG,NULL,&provider,&type,NULL)) { //нашелся контейнер соответствующий открытому ключу (судя по всему поиск выполняется если имеется ссылка на контейнер) //затем выполняем обычный перебор контейнеров - в перебор попадет только тот контейнер который соответсвует сертификату }else { //обычный перебор контейнеров }
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close