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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Андрей Песков  
#1 Оставлено : 5 марта 2008 г. 17:21:55(UTC)
Андрей Песков

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

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

Люди добрые, подскажите, плиз, как произвести поиск сертификата в хранилище по серийному номеру и издателю.
как правильно заполнить CERT_ID для этого случая.
Делаю так...

CERT_ID c;
c.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
c.IssuerSerialNumber.SerialNumber.pbData =(BYTE*) "21375d9b000000";
c.IssuerSerialNumber.SerialNumber.cbData =(DWORD) strlen((BYTE*) c.IssuerSerialNumber.SerialNumber.pbData);
c.IssuerSerialNumber.Issuer.pbData = (BYTE*) "CN = ca DC = gp DC = vpn";
c.IssuerSerialNumber.Issuer.cbData =(DWORD) strlen((BYTE*) c.IssuerSerialNumber.Issuer.pbData);

pSignerCert = CertFindCertificateInStore(
hStoreHandle,
MY_TYPE,
0,
CERT_FIND_CERT_ID,
&c,
NULL)
Offline Kirill Sobolev  
#2 Оставлено : 5 марта 2008 г. 19:00:29(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
IssuerSerialNumber.SerialNumber - не строка, а блоб, в котором каждый байт соответстует цифре из серийного номера.
IssuerSerialNumber.Issuer - строка, кодированная в ASN.1, проще всего кодировать функцией CertStrToName
для примера посмотрите, как они закодированы в структуре CERT_INFO.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Песков  
#3 Оставлено : 5 марта 2008 г. 20:19:03(UTC)
Андрей Песков

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

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

Кирилл, а можно чуть подробнее.
Как правильно задать:

c.IssuerSerialNumber.Issuer.pbData=CertStrToName(??); ?????
c.IssuerSerialNumber.SerialNumber.pbData= ?????
не очень понял((.
Если можно пример задания CERT_ID.
Offline Kirill Sobolev  
#4 Оставлено : 5 марта 2008 г. 20:58:38(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Примера у меня к сожалению нет. Но там вообщем все просто.
В MSDN есть описание функции CertStrToName, http://msdn2.microsoft.c...ary/aa377160(VS.85).aspx
и описано, как формируется блоб серийного номера
Цитата:
SerialNumber
A BLOB that contains the serial number of a certificate. The least significant byte is the zero byte of the pbData member of SerialNumber. The index for the last byte of pbData, is one less than the value of the cbData member of SerialNumber. The most significant byte is the last byte of pbData. Leading 0x00 or 0xFF bytes are removed. For more information, see CertCompareIntegerBlob.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Песков  
#5 Оставлено : 5 марта 2008 г. 21:19:17(UTC)
Андрей Песков

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

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

не очень понял как сформировать SerialNumer.
Помогите, плиз, вот, к примеру, серт имеет номер 21375d9b000000. Как это написать
Offline Kirill Sobolev  
#6 Оставлено : 6 марта 2008 г. 14:31:34(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Это будет массив целых чисел 00 00 00 9b 5d 37 21
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Песков  
#7 Оставлено : 7 марта 2008 г. 19:26:55(UTC)
Андрей Песков

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

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

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