![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#4
|
|||
|
|||
![]() странный у вас форум... хотел постануть в подходящей теме, однако меня отбрили, так как тема якобы устарела. зашибись. вопрос по сертификатам, точнее получения одного свойства из сертификата:
нужен план получения нужного значения из сертификата, то есть цепочка команд друг за другом какие должны быть. преамбула: у сертификатов есть определенные политики применения. например - идентификация клиента на сервере - oid 1.3.6.1.5.5.7.3.2. они, насколько я понял, читаются из поля "улучшенный ключ командой CertGetEnhancedKeyUsage - она возвращает массив этих oid, которые имеются у этого сертификата. этот момент я написал и работает, я доволен. НО! в случае когда у сертификата стоит свойство - "Все политики применения", то фактически поле "улучшенный ключ" у сертификата отсутствует, и соответственно моя команда CertGetEnhancedKeyUsage не будет работать, возвращает 0 и все тут. вот собственно вопрос - каким образом мне получить свойство "Все политики применения"? какой порядок команд должен быть? сейчас: 1. CertOpenSystemStore - открываем нужное хранилище в системе, например мои личные сертификаты. 2. CertEnumCertificatesInStore - гоняем в цикле по хранилищу, получая каждый сертификат в отдельности 3. CertGetEnhancedKeyUsage - первый раз получаем размер массива 4. CertGetEnhancedKeyUsage - второй раз получаем уже сам массив 5. читаем этот массив гоняя в цикле количества элементов. 6. CertCloseStore - закрываем хранилище это краткий план получения oid 1.3.6.1.5.5.7.3.2 - "идентификация клиента на сервере", вот мне нужен точно такой-же, но для получения флага "Все политики применения". то есть что-то типа: 1. CertOpenSystemStore - открываем нужное хранилище в системе, например мои личные сертификаты. 2. CertEnumCertificatesInStore - гоняем в цикле по хранилищу, получая каждый сертификат в отдельности 3. CertGetEnhancedKeyUsage - если размер ноль, значит нужно искать "все политики" 4. блаблабла - эта самая команда для всех политик 5. CertCloseStore - закрываем хранилище |