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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline Kirill Sobolev  
#11 Оставлено : 19 апреля 2015 г. 14:36:38(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
13 0d 31 30 32 32 32 30 32 37 36 39 31 33 37

Это очень похоже на printable string, так что CryptDecodeObject(.., X509_ANY_STRING, ..) должно помочь.
Техническую поддержку оказываем тут
Наша база знаний
Offline MotoArhangel  
#12 Оставлено : 19 апреля 2015 г. 15:50:18(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Попробовал напрямую в ASCII Интересный результат получился:
UserPostedImage

Т.е. со смелостью можно отбрасывать первые 4 бита? Да и последствия собственноручных перекодировок?
По структуре в краткой форме где можно почитать?
Автор: Kirill Sobolev Перейти к цитате
Цитата:
13 0d 31 30 32 32 32 30 32 37 36 39 31 33 37

Это очень похоже на printable string, так что CryptDecodeObject(.., X509_ANY_STRING, ..) должно помочь.

У меня что то не срастается=(

Отредактировано пользователем 19 апреля 2015 г. 16:22:34(UTC)  | Причина: Бит не так посчитал=)

Offline Kirill Sobolev  
#13 Оставлено : 19 апреля 2015 г. 16:29:12(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
Т.е. со смелостью можно отбрасывать первые 4 бита? Да и последствия собственноручных перекодировок?

В этой строке первый байт - тип (тег), 2й байт - длина. Но длина может занимать больше, чем один байт, хотя к ОГРН и ИНН это, конечно, не относится. Подробнее можно почитать например здесь.
Техническую поддержку оказываем тут
Наша база знаний
Offline MotoArhangel  
#14 Оставлено : 19 апреля 2015 г. 21:38:08(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Хочу сегодня добить, но голова перестает работать.

Эта конференция требует регистрации перед тем как вы сможете увидеть скрытые сообщения.


Ума не приложу как с этими данными бороться, что бы все в одну функцию уложить? .
Код:

//  E           szOID_RSA_emailAddr             Only IA5
//  Email       szOID_RSA_emailAddr             Only IA5
//  C           szOID_COUNTRY_NAME              Only Printable
//  DC          szOID_DOMAIN_COMPONENT          IA5, UTF8

Проверку через CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG делать?

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

Offline Kirill Sobolev  
#15 Оставлено : 20 апреля 2015 г. 10:38:22(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Проверку чего?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
MotoArhangel оставлено 20.04.2015(UTC)
Offline MotoArhangel  
#16 Оставлено : 20 апреля 2015 г. 14:05:55(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Кодировку, что бы
Код:

//  E           szOID_RSA_emailAddr             Only IA5
//  Email       szOID_RSA_emailAddr             Only IA5
//  C           szOID_COUNTRY_NAME              Only Printable
//  DC          szOID_DOMAIN_COMPONENT          IA5, UTF8

Что бы в читабельный вид преобразовать.

Цитата:
// Note, T61 is selected instead of Unicode if
// CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG is set and all the unicode
// characters are <= 0xFF.
Offline Kirill Sobolev  
#17 Оставлено : 20 апреля 2015 г. 17:13:35(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Это все тоже в OtherName в SAN содержится?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
MotoArhangel оставлено 20.04.2015(UTC)
Offline MotoArhangel  
#18 Оставлено : 20 апреля 2015 г. 18:21:14(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Нет из Subject хотел вытащить. Замудрил чего то=)
Offline Kirill Sobolev  
#19 Оставлено : 20 апреля 2015 г. 21:50:41(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Тогда проще всего воспользоваться CertNameToStr
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
MotoArhangel оставлено 22.04.2015(UTC)
Offline MotoArhangel  
#20 Оставлено : 22 апреля 2015 г. 6:42:04(UTC)
MotoArhangel

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

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

Сказал(а) «Спасибо»: 9 раз
Что то я понять не могу по поводу получения серийного номера:

Код:
function SerialNumber( SN : CRYPT_INTEGER_BLOB ) : String;
begin
  SetLength( Result, SN.cbData * 2 );
  BinToHex(PAnsiChar( SN.pbData ), PWideChar( Result ), SN.cbData );
end;


Передаю в нее CertContext.pCertInfo.SerialNumber

Функция BinToHex стандартная:
Цитата:
procedure BinToHex(const Buffer: TBytes; BufOffset: Integer; var Text: TBytes; TextOffset: Integer; Count: Integer);
procedure BinToHex(Buffer: PAnsiChar; Text: PAnsiChar; BufSize: Integer);
procedure BinToHex(Buffer: PAnsiChar; Text: PWideChar; BufSize: Integer);
procedure BinToHex(var Buffer; Text: PWideChar; BufSize: Integer);
procedure BinToHex(var Buffer; Text: PAnsiChar; BufSize: Integer);
procedure BinToHex(Buffer: Pointer; Text: PWideChar; BufSize: Integer);
procedure BinToHex(Buffer: Pointer; Text: PAnsiChar; BufSize: Integer);

Код:
procedure BinToHex(Buffer: PAnsiChar; Text: PWideChar; BufSize: Integer);
const
  Convert: array[0..15] of WideChar = '0123456789ABCDEF';
var
  I: Integer;
begin
  for I := 0 to BufSize - 1 do
  begin
    Text[0] := Convert[Byte(Buffer[I]) shr 4];
    Text[1] := Convert[Byte(Buffer[I]) and $F];
    Inc(Text, 2);
  end;
end;


Получает, но выдает ошибку external exception c0000008 в user32.dllBrick wall

Отредактировано пользователем 22 апреля 2015 г. 8:40:45(UTC)  | Причина: Не указана

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