Статус: Участник
Группы: Участники
Зарегистрирован: 22.12.2014(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 9 раз
|
Здравствуйте. Подтолкните на правильное направление. Не знаю как получить необходимую информацию из поля Subject Alternative Name. Подскажите пожалуйста. Или вытащить имеющиеся в сертифмкате oid для дальнейщей работы. Отредактировано пользователем 18 апреля 2015 г. 6:31:55(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.12.2014(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 9 раз
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 не используют, либо его исправляют. |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.12.2014(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 9 раз
|
Уже подправил. На будущее. Что используют вместо него? И за одно, как правильнее получить данные из Subject Alternative Name? Сначала подгружаем oid и затем по нему получаем значение? Отредактировано пользователем 18 апреля 2015 г. 23:13:55(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.12.2014(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 9 раз
|
У меня вот такое цудо есть. Не знаю на сколько правильное, но пока работает. Jwa на досуге поковырял. По каким то убеждениям не выношу, когда куча модулей используется. Как раз после ошибки с массивом задумался и подправил. СкачатьДа и вопрос остался: Как правильнее получить данные из Subject Alternative Name? Сначала подгружаем oid'ы из соответствующей ветки, а затем по ним получаем расшифровку? Или как то разом можно всю информацию получить? Отредактировано пользователем 18 апреля 2015 г. 23:25:41(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
CryptDecodeObject(.., szOID_SUBJECT_ALT_NAME2, ..), затем разбор структуры CERT_ALT_NAME_INFO. Я, правда, ни разу не видел сертификата, где бы ИНН или СНИЛС лежали именно в SAN. |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.12.2014(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 9 раз
|
К примеру в сертификате для OOS от сентября прошлого года точно есть(УЦ ФК). В принципе у этих сертификатов и были проблемы при работе на сайте. По разбору все понятно. Отредактировано пользователем 19 апреля 2015 г. 0:15:41(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close