SET

Un SET contiene una serie desordenada de campos de uno o varios tipos. Se codifica en un triplete TLV que comienza con un byte tag de 0x31. En el ejemplo siguiente, adaptado del tema ASN.1 codificado por CMC , se muestra cómo se codifica un atributo ClientId en una estructura de datos SET . El atributo se puede especificar mediante la interfaz IX509AttributeClientId .

31 59                                     ; SET (59 Bytes)
   30 57                                  ; SEQUENCE (57 Bytes)
      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 

Si set contiene menos de 128 bytes, el campo Longitud del tripleTLV requiere solo un byte para especificar la longitud del contenido. Si es de más de 127 bytes, el bit 7 del campo Longitud se establece en 1 y los bits de 6 a 0 especifican el número de bytes adicionales usados para identificar la longitud del contenido. Para obtener más información, vea Longitud codificada y bytes de valor.

Sistema de tipos ASN.1

Codificación DER de tipos ASN.1