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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline navrocky  
#1 Оставлено : 15 июля 2024 г. 18:20:11(UTC)
navrocky

Статус: Участник

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Открываю ключевой контейнер вызовом CryptAcquireContextA, и потом для функции CryptSignHash необходимо указать dwKeySpec, который может быть AT_KEYEXCHANGE или AT_SIGNATURE. Если неправильно указать, то получаю ошибку, что ключевой контейнер не найден.

Собственно мой вопрос заключается в том, как программно определить тип ключа?
Offline navrocky  
#2 Оставлено : 15 июля 2024 г. 18:45:29(UTC)
navrocky

Статус: Участник

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Нашел вот такой ответ https://www.cryptopro.ru...&m=143983#post143983 от сотрудника Андрея.

То есть нужно попробовать вызвать CryptGetUserKey(AT_KEYEXCHANGE) и если будет ошибка, то значит тип будет AT_SIGNATURE.
Offline Андрей *  
#3 Оставлено : 15 июля 2024 г. 20:57:21(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,017
Мужчина
Российская Федерация

Сказал «Спасибо»: 524 раз
Поблагодарили: 2142 раз в 1670 постах
Здравствуйте.

Либо вот так:
CertGetCertificateContextProperty(pSignerCert, CERT_KEY_PROV_INFO_PROP_ID, Key_Info, pcbData)

Log('Криптопровайдер:' + Key_Info.pwszProvName);
Log('Тип:' + IntToStr(Key_Info.dwProvType));
Log('Флаги:' + IntToStr(Key_Info.dwFlags));
Log('Параметр:' + IntToStr(Key_Info.cProvParam));
Log('Ключ:' + IntToStr(Key_Info.dwKeySpec));
Log('Контейнер:' + Key_Info.pwszContainerName);


dwKeySpec = 1 ключ подписи и обмена
dwKeySpec = 2 ключ подписи
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#4 Оставлено : 15 июля 2024 г. 21:13:56(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,017
Мужчина
Российская Федерация

Сказал «Спасибо»: 524 раз
Поблагодарили: 2142 раз в 1670 постах
Техническую поддержку оказываем тут
Наша база знаний
Offline navrocky  
#5 Оставлено : 16 июля 2024 г. 13:23:43(UTC)
navrocky

Статус: Участник

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах
Спасибо, попробую!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.