Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
поиск сертификата в хранилище по серийному номеру и издателю
Статус: Участник
Группы: Участники
Зарегистрирован: 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)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
IssuerSerialNumber.SerialNumber - не строка, а блоб, в котором каждый байт соответстует цифре из серийного номера. IssuerSerialNumber.Issuer - строка, кодированная в ASN.1, проще всего кодировать функцией CertStrToName для примера посмотрите, как они закодированы в структуре CERT_INFO. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2008(UTC) Сообщений: 11
|
Кирилл, а можно чуть подробнее. Как правильно задать:
c.IssuerSerialNumber.Issuer.pbData=CertStrToName(??); ????? c.IssuerSerialNumber.SerialNumber.pbData= ????? не очень понял((. Если можно пример задания CERT_ID.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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.
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2008(UTC) Сообщений: 11
|
не очень понял как сформировать SerialNumer. Помогите, плиз, вот, к примеру, серт имеет номер 21375d9b000000. Как это написать
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Это будет массив целых чисел 00 00 00 9b 5d 37 21 |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.03.2008(UTC) Сообщений: 11
|
|
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.0
»
поиск сертификата в хранилище по серийному номеру и издателю
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close