ИДЕНТИФИКАТОР ОБЪЕКТА
Тип данных OBJECT IDENTIFIER закодирован в триплет TLV, который начинается со значения Тега 0x06. Каждое целое число идентификатора десятичного объекта (OID) с точками кодируется в соответствии со следующими правилами:
- Первые два узла OID кодируются в один байт. Первый узел умножается на десятичное значение 40, а результат добавляется к значению второго узла.
- Значения узла меньше или равны 127 кодируются в одном байте.
- Значения узлов, превышающие или равные 128, кодируются в нескольких байтах. Бит 7 крайнего левого байта имеет значение 1. Биты от 0 до 6 каждого байта содержат закодированное значение.
Эти моменты показаны на следующем рисунке.
В следующем примере показано, как атрибут ClientId кодируется в запросе сертификата.
06 09 ; OBJECT_ID (9 Bytes)
| 2b 06 01 04 01 82 37 15 14 ; 1.3.6.1.4.1.311.21.20
31 4a ; SET (4a Bytes)
30 48 ; SEQUENCE (48 Bytes)
02 01 ; INTEGER (1 Bytes)
| 09
0c 23 ; UTF8_STRING (23 Bytes)
| 76 69 63 68 33 64 2e 6a ; vich3d.j
| 64 6f 6d 63 73 63 2e 6e ; domcsc.n
| 74 74 65 73 74 2e 6d 69 ; ttest.mi
| 63 72 6f 73 6f 66 74 2e ; crosoft.
| 63 6f 6d ; com
0c 15 ; UTF8_STRING (15 Bytes)
| 4a 44 4f 4d 43 53 43 5c ; JDOMCSC\
| 61 64 6d 69 6e 69 73 74 ; administ
| 72 61 74 6f 72 ; rator
0c 07 ; UTF8_STRING (7 Bytes)
63 65 72 74 72 65 71 ; certreq