В качестве тега 0x80
(в BER, CER или DER) означает тег, класс которого зависит от контекста (по сравнению с именованными классами, UNIVERSAL
, PRIVATE
и APPLICATION
), чей номер равен 0
, и его кодировка является примитивной. Тот факт, что он является примитивным, означает, что он используется как тег IMPLICIT
. Если бы это было 0xA0
(Constructed, Context-Specific 0), это может быть либо EXPLICIT
тег (оболочка), либо IMPLICIT
конструированное значение (SEQUENCE
, SEQUENCE-OF
и т. Д.).
Чтобы понять, что означает такое значение, нужно взглянуть на определение типа ASN.1.
Например, от RFC 3280 A.2 (DEFINITIONS IMPLICIT TAGS
):
PrivateKeyUsagePeriod ::= SEQUENCE {
notBefore [0] GeneralizedTime OPTIONAL,
notAfter [1] GeneralizedTime OPTIONAL }
Если бы PrivateKeyUsagePeriod
имел значение notBefore
, то оно было бы помечено 0x80
([0]
) вместо 0x18
([UNIVERSAL 24]
); но это все равно должно быть интерпретировано после кодировки для GeneralizedTime
.