Класс KJUR.asn1.DERIA5String реализует ASN.1 тип данных IA5String в формате DER (Distinguished Encoding Rules). IA5String представляет собой строку, ограниченную набором символов IA5 (International Alphabet No. 5), фактически соответствующую ASCII-кодировке. Этот тип используется в криптографических структурах, где требуется строгая совместимость с ASCII без поддержки расширенных символов Unicode.
IA5String активно применяется в X.509 сертификатах, CRL, атрибутах PKCS и других ASN.1-структурах, где важно фиксированное и предсказуемое представление текстовых данных.
DERIA5String используется для кодирования строковых значений, которые по стандарту должны содержать только символы диапазона IA5:
Типичные сценарии:
IA5String отличается строгими ограничениями:
При попытке передать недопустимые символы поведение зависит от реализации библиотеки: возможна ошибка или некорректное кодирование.
В ASN.1 IA5String имеет универсальный тег:
DER-кодирование включает:
В Jsrsasign объект создаётся через конструктор вида:
new KJUR.asn1.DERIA5String(params)
Основные параметры объекта:
При создании экземпляра происходит:
Проверка входной строки
Валидация символов на соответствие IA5 (ASCII)
Преобразование строки в байтовый массив UTF-8/ASCII (фактически 1 байт на символ)
Формирование DER-структуры:
KJUR.asn1.DERIA5String входит в иерархию ASN.1 классов библиотеки Jsrsasign и наследует базовую функциональность строковых DER-типов.
Типичная цепочка наследования:
KJUR.asn1.ASN1Object
KJUR.asn1.DERAbstractString
Благодаря этому доступны общие методы:
Процесс формирования DER-последовательности включает:
IA5String всегда использует:
0x16
Длина кодируется в DER-формате:
Каждый символ строки преобразуется в ASCII байт.
var ia5 = new KJUR.asn1.DERIA5String({
str: "example@test.com"
});
var hex = ia5.getEncodedHex();
Результатом будет DER-кодированная последовательность IA5String.
DERIA5String часто применяется внутри сложных ASN.1 объектов:
{
dNSName: new KJUR.asn1.DERIA5String({ str: "example.com" })
}
emailAddress: new KJUR.asn1.DERIA5String({
str: "user@example.org"
})
При работе с DERIA5String важно учитывать:
Пример потенциальной проблемы:
new KJUR.asn1.DERIA5String({
str: "тест@example.com"
});
Такой ввод выходит за пределы IA5 и может привести к ошибке или некорректному результату.
Класс использует стандартные механизмы Jsrsasign:
toHexString() — преобразование в HEX DERgetEncodedHex() — получение итоговой
DER-последовательностиtoString() — текстовое представление (отладочное)IA5String остаётся важным типом в криптографии по причинам:
KJUR.asn1.DERIA5String является одним из базовых строительных блоков для формирования ASN.1 деревьев. Он используется в составе:
Его поведение строго детерминировано, что делает его пригодным для криптографических операций, где важна точная бинарная совместимость между реализациями.