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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline rudnik  
#1 Оставлено : 23 мая 2013 г. 8:00:30(UTC)
rudnik

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

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

доброе время суток

delphi xe3
для доступа к cryptoapi используется библиотека jedi.

получение списка считывателей происходит следующим образом:
Цитата:

function CheckTest: Boolean;
var
Prov: HCRYPTPROV;
pbData: PBYTE;
cbData: Cardinal; Flag: Cardinal;
begin
Result := false;

if CryptAcquireContext(Prov, nil, 'Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider', PROV_RSA_FULL, CRYPT_VERIFYCONTEXT) then
begin
Flag := CRYPT_FIRST;
if CryptGetProvParam(Prov, 114, nil, cbData, Flag) then
begin
GetMem(pbData, cbData);
try
while CryptGetProvParam(Prov, 114, pbData, cbData, Flag) do
begin
Flag := CRYPT_NEXT;
ShowMessage(PChar(pbData));
end;
finally
FreeMem(pbData, cbData);
end;
end;
CryptReleaseContext(Prov, 0);
Result := true;
end;
end;

но при выводе вижу следующее:
UserPostedImage
что делаю не так? и как правильно получить список считывателей?
Offline Андрей Писарев  
#2 Оставлено : 23 мая 2013 г. 8:06:02(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Откуда "это" взято?

CryptGetProvParam(hProv, PP_ENUMCONTAINERS ... )
const PP_ENUMCONTAINERS = 2;
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#3 Оставлено : 23 мая 2013 г. 8:07:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Цитата:
CryptAcquireContext(Prov, nil, 'Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider', PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)

Иногда нужно кое-что читать

Crypto-Pro GOST <> PROV_RSA_FULL

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#4 Оставлено : 23 мая 2013 г. 8:08:02(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
dwProvType = 75 для Crypto-Pro
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#5 Оставлено : 23 мая 2013 г. 8:13:16(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
CryptGetProvParam(hProv, PP_ENUMCONTAINERS

перечисление контейнеров - выводится?
Техническую поддержку оказываем тут
Наша база знаний
Offline rudnik  
#6 Оставлено : 23 мая 2013 г. 8:36:50(UTC)
rudnik

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

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

изменил
Цитата:
CryptAcquireContext(Prov, nil, 'Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider', 75, CRYPT_VERIFYCONTEXT)

и
Цитата:
CryptGetProvParam(Prov, PP_ENUMCONTAINERS , nil, cbData, Flag)

выводит:
UserPostedImage
Offline Андрей Писарев  
#7 Оставлено : 23 мая 2013 г. 8:52:45(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
CryptGetProvParam(Prov, PP_ENUMCONTAINERS, pbData, cbData, Flag) - так?

p.s.
у меня отображаются контейнеры (после небольшой правки "CheckTest")
Техническую поддержку оказываем тут
Наша база знаний
Offline rudnik  
#8 Оставлено : 23 мая 2013 г. 9:00:46(UTC)
rudnik

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

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

именно так, но результат, к сожалению, тот же.
скажите, пожалуйста, о вашей не большой правки.
Offline Андрей Писарев  
#9 Оставлено : 23 мая 2013 г. 9:11:18(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: rudnik Перейти к цитате
именно так, но результат, к сожалению, тот же.
скажите, пожалуйста, о вашей не большой правки.


Т.к. "под рукой" нет обсуждаемого CSP, взял тот, что есть (имя и тип указал свои)



На выходе: сообщения с полным путем к контейнерам
Техническую поддержку оказываем тут
Наша база знаний
Offline rudnik  
#10 Оставлено : 23 мая 2013 г. 9:41:49(UTC)
rudnik

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

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

может дело не в CSP?
если я правильно понял, то так выбирается провайдер по умолчанию (Microsoft Base Cryptographic Provider):

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