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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Юрий  
#11 Оставлено : 6 мая 2013 г. 13:35:50(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: Kirill Sobolev Перейти к цитате
Цитата:
А как правильно? Вот в этом и вопрос. Знаю, что UTF8String.

Вы же сами и отвечаете - да, правильно UTF8String.
Цитата:
Кстати посмотрел квалифицированный сертификат УЦ КриптоПРО и возник вопрос:
Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?

Нет, там тоже UTF8String

В требованиях к этому расширению написано именно UTF8String, а не "OCTET STRING encapsulating UTF8String".
На мой взгляд здесь должен быть чистый UTF8String. Вот и вопрос: Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?
С уважением,
Юрий Строжевский
Offline Kirill Sobolev  
#12 Оставлено : 6 мая 2013 г. 13:52:56(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Цитата:
Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?

RFC5280
Цитата:
When an extension appears in a certificate, the OID appears as the field extnID and the corresponding ASN.1 DER encoded structure is the value of the octet string extnValue.
Техническую поддержку оказываем тут
Наша база знаний
Offline Юрий  
#13 Оставлено : 6 мая 2013 г. 14:02:26(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: Kirill Sobolev Перейти к цитате
Цитата:
Какими указаниями руководствовались разработчики когда кодировали расширения "1.2.643.100.111" и "1.2.643.100.111" в виде значений с типом "OCTET STRING"?

RFC5280
Цитата:
When an extension appears in a certificate, the OID appears as the field extnID and the corresponding ASN.1 DER encoded structure is the value of the octet string extnValue.

Про практику заключения расширения в OCTET STRING знал, но считал пережитком прошлого.
Спасибо за упоминание RFC!
С уважением,
Юрий Строжевский
Offline dima_vor  
#14 Оставлено : 6 мая 2013 г. 15:27:38(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
CObjectId objSubjectSignTool = new CObjectId();
objSubjectSignTool.InitializeFromValue("1.2.643.100.111");
var extSubjectSignTool = new CX509Extension();

extSubjectSignTool.Initialize(objSubjectSignTool, EncodingType.XCN_CRYPT_STRING_ANY,
"Domen-KC2");
objPkcs10.X509Extensions.Add(extSubjectSignTool);

Я вот так добавлял. Но кодировка не отображает ничего хорошего в сертификате.


Такой код кому нибудь знаком???
Offline Kirill Sobolev  
#15 Оставлено : 6 мая 2013 г. 15:36:59(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
IX509Extension::Initialize предполагает передачу уже закодированного расширения.
Вам предварительно нужно закодировать структуру CERT_NAME_VALUE с помощью CryptEncodeObject
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Кирилл Соболев за этот пост.
dima_vor оставлено 08.05.2013(UTC)
Offline dima_vor  
#16 Оставлено : 8 мая 2013 г. 11:57:52(UTC)
dima_vor

Статус: Активный участник

Группы: Участники
Зарегистрирован: 08.08.2012(UTC)
Сообщений: 70
Откуда: Казань

Сказал(а) «Спасибо»: 6 раз
var objSubjectSignTool = new CObjectId();
objSubjectSignTool.InitializeFromValue("1.2.643.100.111");

var objSubjectSignToolBytes = Encoding.UTF8.GetBytes("Домен-КС2").ToList();
objSubjectSignToolBytes.InsertRange(0, new byte[] { 0x0c, 0x10 });

var objSubjectSignToolValue = Encoding.Unicode.GetString(objSubjectSignToolBytes.ToArray());

var extSubjectSignTool = new CX509Extension();
extSubjectSignTool.Initialize(objSubjectSignTool, EncodingType.XCN_CRYPT_STRING_BINARY, objSubjectSignToolValue);
objPkcs10.X509Extensions.Add(extSubjectSignTool);

Спасибо моему коллеге Саше. И Соболеву Кириллу. Вот получилось так. Кому надо - пользутесь.
Offline Kirill Sobolev  
#17 Оставлено : 8 мая 2013 г. 12:27:29(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Пожалуйста.
Тогда правильнее было бы так :
objSubjectSignToolBytes.InsertRange(0, new byte[] { 0x0c, (byte)objSubjectSignToolBytes.Count });
Ну и вообще учитывать
Цитата:
If the string contains fewer than 128 bytes, the Length field of the TLV triplet requires only one byte to specify the content length. If the string is more than 127 bytes, bit 7 of the Length field is set to 1 and bits 6 through 0 specify the number of additional bytes used to identify the content length.
Техническую поддержку оказываем тут
Наша база знаний
thanks 2 пользователей поблагодарили Кирилл Соболев за этот пост.
dima_vor оставлено 13.05.2013(UTC), verevkin оставлено 17.01.2017(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.