Статус: Новичок
Группы: Участники
Зарегистрирован: 24.10.2017(UTC) Сообщений: 3
|
Доброго времени суток. Решаю задачу получения списка сертификатов на считывателе. Сами считыватели и контейнеры на них получить удалось, а сертификаты в контейнере - нет. пробую делать так Код:procedure Test;
var hProv: HCRYPTPROV;
hSenderKey:HCRYPTKEY;
DataLen:cardinal;
Data:PByte;
res:boolean;
begin
res:=CryptAcquireContext(hProv,PChar('ИмяКонтейнера'),nil,75,0);
if res then begin
res:=CryptGetUserKey(hProv,AT_KEYEXCHANGE,hSenderKey);
if res then
res:=CryptGetProvParam(hSenderKey,KP_CERTIFICATE,nil,DataLen,0);
end;
if not res then
ShowMessage(GetLastErrorStr)
end;
Всё работает до вызова CryptGetProvParam. Он заканчивается ошибкой: Параметр зада неверно. Code 87. Не могли бы подсказать какого параметра\флага не хватает в коде?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,375 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 704 раз в 613 постах
|
В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.10.2017(UTC) Сообщений: 3
|
Автор: maxdm В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP. Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 12.08.2013(UTC) Сообщений: 834 Откуда: Москва Сказал «Спасибо»: 5 раз Поблагодарили: 215 раз в 174 постах
|
Автор: Alex_83 Автор: maxdm В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP. Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается Используйте функцию CryptGet KeyParam, а не CryptGet ProvParam. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.10.2017(UTC) Сообщений: 3
|
Автор: Grey Автор: Alex_83 Автор: maxdm В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP. Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается Используйте функцию CryptGet KeyParam, а не CryptGet ProvParam. Заработало, спасибо
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close