Автор: harbesh 
Да, видел данный проект, но вопрос как именно добавить не ALTERNATE_NAME, а именно связку оид-значение-критикал под расширение.
Добрый день. Собственно, на снимке отлично видно, что базовая структура произвольного расширения состоит из:
1) SEQUENCE под которой находятся:
2) OID расширения;
3) необязательный BOOLEAN параметр, означающий критическое расширение если True. Если отсутствует подразумевается False - некритическое расширение;
4) закодированное значение расширения: тут чаще всего возможны 3 варианта:
а) простое расширение, где только одно значение простого типа ASN.1 - применяется без обертки;
б) обертка типом BITSTRING (BITWRAP) когда значение расширения длинный массив данных без структуры или структура есть, но не важна
в) обертка типом OCTETSTRING (OCTWRAP) когда значение расширения еще более сложный тип и имеет внутреннюю структуру.
Большинство расширений использует вариант в (OCTWRAP).
Напомню тему 9 месяцев назад. Кодировать не вникая в тонкости какому типу ASN.1 соответствует какой код/тег, какая форма кодирования и т.д. (но вникая какой оид/тип) под Windows проще всего, скачав скомпилированную версию Openssl. Под *nix Openssl уже сразу есть.
Код:openssl asn1parse -genconf c:\__\11.txt -out c:\__\dns2.ext
В этой теме можно прочитать подробнее как закодировать расширение при помощи openssl на примере ALTERNATE_NAME
https://www.cryptopro.ru...&m=127542#post127542Там в итоговом конфиге секция [MyExt1] это типовая структура некритического расширения с вариантом OCTWRAP. Замените в строке "name=OID:X509v3 Subject Alternative Name" текст "X509v3 Subject Alternative Name" на нужный оид (цифрами с точками) или текст для нужного оида. Соответствие текста и оида вкомпилировано в openssl. Если не хотите заморачиваться просмотров исходников openssl - проще указать оид цифрами с точками.
Для критического надо добавить между name и value строку critical=BOOLEAN:True (на самом деле слова слева от равно name/critical/value значения не имеют, важен порядок в каком идут строки после равно)
Секция [MyExt2] зависит от структуры значения конкретного расширения.
В приведенном тип примере "IMPLICIT" скрывает внутренний тип значения, далее через ":" указывается видимый тип, "2C" равносильно тому, что ASNEditor показывает как "CONTEXT (2)". ",IA5:" указывает внутренний тип, в котором фактически идет строка дальше. То есть "IMPLICIT:2C,IA5:" показывает, что строка конфига фактически идет в IA5STRING, но в закодированном виде будет указан тип "CONTEXT (2)".
Отредактировано пользователем 29 июня 2022 г. 8:42:08(UTC)
| Причина: Не указана