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

Уведомление

Icon
Error

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

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

Группы: Участники
Зарегистрирован: 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.
Не могли бы подсказать какого параметра\флага не хватает в коде?
Offline Максим Коллегин  
#2 Оставлено : 13 ноября 2017 г. 11:04:21(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,374
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP.
Знания в базе знаний, поддержка в техподдержке
Offline Alex_83  
#3 Оставлено : 13 ноября 2017 г. 11:08:25(UTC)
Alex_83

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

Группы: Участники
Зарегистрирован: 24.10.2017(UTC)
Сообщений: 3

Автор: maxdm Перейти к цитате
В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP.


Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается
Offline Агафьин Сергей  
#4 Оставлено : 13 ноября 2017 г. 11:25:11(UTC)
Grey

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

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

Сказал «Спасибо»: 5 раз
Поблагодарили: 215 раз в 174 постах
Автор: Alex_83 Перейти к цитате
Автор: maxdm Перейти к цитате
В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP.


Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается


Используйте функцию CryptGetKeyParam, а не CryptGetProvParam.
С уважением,
Сергей
Техническую поддержку оказываем здесь.
Наша база знаний.
Offline Alex_83  
#5 Оставлено : 13 ноября 2017 г. 11:42:34(UTC)
Alex_83

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

Группы: Участники
Зарегистрирован: 24.10.2017(UTC)
Сообщений: 3

Автор: Grey Перейти к цитате
Автор: Alex_83 Перейти к цитате
Автор: maxdm Перейти к цитате
В контейнере может и не быть сертификата. Посмотрите в мастере в панели CSP.


Как раз поэтому и возник вопрос, потому что CSP видит сертификат и выдаёт его данные. А программно получить их не получается


Используйте функцию CryptGetKeyParam, а не CryptGetProvParam.


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