CRL Distribution Points (самый частый случай)
В расширении CRL Distribution Points:
DistributionPointName ::= CHOICE {
fullName [0] GeneralNames,
nameRelativeToCRLIssuer [1] RelativeDistinguishedName
}
Внутри GeneralName:
uniformResourceIdentifier [6] IA5String
Но сам DistributionPointName имеет тег [0], который в DER кодируется как A0.
А вот 0x84 часто встречается внутри Authority Key Identifier или Subject Key Identifier как:
keyIdentifier [0] OCTET STRING
Однако в ряде реализаций встречается [4] для определённых CHOICE-структур.
directoryName внутри SubjectAltName
В:
GeneralName ::= CHOICE {
directoryName [4] Name
}
Обычно используется A4 (constructed),
но если содержимое кодируется как примитив (редко, но встречается в нестандартных реализациях), можно увидеть 84.
Проприетарные или частные расширения
В enterprise PKI, смарт-картах, eID, телеком-оборудовании, HSM и банковских протоколах:
[4] часто используется как пользовательское context-specific поле
0x84 встречается внутри закрытых ASN.1 структур
Это очень распространено в:
телеком-оборудовании
SIM/eSIM структурах
банковских ISO 7816 APDU ответах
CMS/PKCS#7 контейнерах
📌 Что важно понимать
Сам по себе 0x84 ничего универсального не означает.
Он означает только:
Класс: context-specific
Тип: primitive
Номер тега: 4
А семантика полностью определяется ASN.1 схемой, в которой он используется.
Почему он так часто встречается
Причина проста:
Номер тега 4 — один из первых доступных context-specific номеров
Разработчики часто используют [0]–[4] для внутренних полей
Поэтому [4] → 0x84 появляется регулярно
В реальной криптографической практике
Если ты анализируешь DER/сертификаты и видишь 0x84, чаще всего это:
Поле внутри GeneralName
Пользовательское расширение
Внутреннее поле в CRL или OCSP