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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline MotoArhangel  
#1 Оставлено : 17 апреля 2015 г. 23:26:59(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Здравствуйте. Подтолкните на правильное направление.
Не знаю как получить необходимую информацию из поля Subject Alternative Name. Подскажите пожалуйста.
Или вытащить имеющиеся в сертифмкате oid для дальнейщей работы.

Отредактировано пользователем 18 апреля 2015 г. 6:31:55(UTC)  | Причина: Не указана

Offline MotoArhangel  
#2 Оставлено : 18 апреля 2015 г. 11:05:09(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Удалил ужасный код =)

Отредактировано пользователем 18 апреля 2015 г. 20:41:17(UTC)  | Причина: Потеряла актуальность.

Offline MotoArhangel  
#3 Оставлено : 18 апреля 2015 г. 20:39:52(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Ну все с горем пополам за пол дня разобрался, но хотя бы подскажите почему на строку
Код:
	pCertExtension := CertFindExtension(szOID_SUBJECT_ALT_NAME2,
      CertContext.pCertInfo.cExtension, CertContext.pCertInfo.rgExtension);

Выдает ошибку не совпадения типов:Incompatible types: 'array of CERT_EXTENSION' and 'PCERT_EXTENSION'
Смотрел пример вроди как у людей работает.
В Wcrypt2 проблемы?

Отредактировано пользователем 18 апреля 2015 г. 20:42:16(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#4 Оставлено : 18 апреля 2015 г. 21:30:38(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: MotoArhangel Перейти к цитате
Ну все с горем пополам за пол дня разобрался, но хотя бы подскажите почему на строку
Код:
	pCertExtension := CertFindExtension(szOID_SUBJECT_ALT_NAME2,
      CertContext.pCertInfo.cExtension, CertContext.pCertInfo.rgExtension);

Выдает ошибку не совпадения типов:Incompatible types: 'array of CERT_EXTENSION' and 'PCERT_EXTENSION'
Смотрел пример вроди как у людей работает.
В Wcrypt2 проблемы?


Потому как Wcrypt2 не используют, либо его исправляют.

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
MotoArhangel оставлено 18.04.2015(UTC)
Offline MotoArhangel  
#5 Оставлено : 18 апреля 2015 г. 22:50:42(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Уже подправил.
На будущее. Что используют вместо него?
И за одно, как правильнее получить данные из Subject Alternative Name? Сначала подгружаем oid и затем по нему получаем значение?

Отредактировано пользователем 18 апреля 2015 г. 23:13:55(UTC)  | Причина: Не указана

Offline Андрей Писарев  
#6 Оставлено : 18 апреля 2015 г. 23:10:36(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
JwaWinCrypt
Техническую поддержку оказываем тут
Наша база знаний
Offline MotoArhangel  
#7 Оставлено : 18 апреля 2015 г. 23:18:55(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
У меня вот такое цудо есть. Не знаю на сколько правильное, но пока работает. Jwa на досуге поковырял. По каким то убеждениям не выношу, когда куча модулей используется. Как раз после ошибки с массивом задумался и подправил.
Скачать

Да и вопрос остался:
Как правильнее получить данные из Subject Alternative Name? Сначала подгружаем oid'ы из соответствующей ветки, а затем по ним получаем расшифровку? Или как то разом можно всю информацию получить?

Отредактировано пользователем 18 апреля 2015 г. 23:25:41(UTC)  | Причина: Не указана

Offline Kirill Sobolev  
#8 Оставлено : 18 апреля 2015 г. 23:27:17(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
CryptDecodeObject(.., szOID_SUBJECT_ALT_NAME2, ..), затем разбор структуры CERT_ALT_NAME_INFO.
Я, правда, ни разу не видел сертификата, где бы ИНН или СНИЛС лежали именно в SAN.
Техническую поддержку оказываем тут
Наша база знаний
Offline MotoArhangel  
#9 Оставлено : 19 апреля 2015 г. 0:05:33(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
К примеру в сертификате для OOS от сентября прошлого года точно есть(УЦ ФК).
В принципе у этих сертификатов и были проблемы при работе на сайте.

По разбору все понятно.

Отредактировано пользователем 19 апреля 2015 г. 0:15:41(UTC)  | Причина: Не указана

Offline MotoArhangel  
#10 Оставлено : 19 апреля 2015 г. 13:27:40(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Автор: Kirill Sobolev Перейти к цитате
CryptDecodeObject(.., szOID_SUBJECT_ALT_NAME2, ..), затем разбор структуры CERT_ALT_NAME_INFO.

До конца не понял.
Получаем данные так:
Код:
				
      pInfo := PCERT_ALT_NAME_INFO(pStructure);
      for i := 0 to pInfo.cAltEntry - 1 do
        begin
					pEntry := PCERT_ALT_NAME_ENTRY(Integer(pInfo.rgAltEntry) + i * SizeOf(CERT_ALT_NAME_ENTRY));
          if (pEntry.dwAltNameChoice = CERT_ALT_NAME_OTHER_NAME) then
          begin
            List.add(pEntry.pOtherName.pszObjId);
            List.add(ByteArrayToStr(pEntry.pOtherName.Value.pbData,pEntry.pOtherName.Value.cbData));
          end;
        end;

на выходе, допустим ОГРН:
Код:

     1.2.643.100.1
     13 0d 31 30 32 32 32 30 32 37 36 39 31 33 37

В сертификате записан в следующем виде:
Код:
Другое имя:
     1.2.643.100.1=13 0d 31 30 32 32 32 30 32 37 36 39 31 33 37

Всебы ничего, а как получить читабельную вторую часть?

Отредактировано пользователем 19 апреля 2015 г. 13:31:46(UTC)  | Причина: Не указана

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