Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los valores enteros se codifican en un triplete TLV que comienza con un Tag valor de 0x02. El valor campo del triple TLV contiene el entero codificado si es positivo o su complemento de dos si es negativo. Si el entero es positivo, pero el bit de orden alto se establece en 1, se agrega un 0x00 inicial al contenido para indicar que el número no es negativo. Por ejemplo, el byte de orden alto de 0x8F (10001111) es 1. Por lo tanto, se agrega un byte inicial cero al contenido como se muestra en la ilustración siguiente.
Si el entero contiene menos de 128 bytes, el campo Longitud requiere solo un byte para especificar la longitud del contenido. Si el entero es de más de 127 bytes, el bit 7 del campo Longitud se establece en 1 y bits de 6 a 0, especifique 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.
En el ejemplo siguiente, de PKCS #10 ASN.1 codificado, se muestra la codificación para una clave pública de 128 bytes. El primer byte contiene el valor de Tag para el tipo de datos inte integer, 0x02. El segundo y el tercer bytes contienen el valor longitud de. El bit 7 del segundo byte se establece en 1 porque hay más de 127 bytes de contenido. Los bits de 0 a 6 del segundo byte especifican el número de bytes finales necesarios, en este caso uno, para especificar con precisión la longitud del contenido. El tercer byte especifica el número de bytes de contenido, 0x81. El cuarto byte, 0x00, se agrega al contenido para indicar que el entero es realmente un valor positivo aunque el bit de signo del byte de contenido inicial (0x8F) esté establecido en 1.
02 81 81 ; INTEGER (81 Bytes)
| 00
| 8f e2 41 2a 08 e8 51 a8 8c b3 e8 53 e7 d5 49 50
| b3 27 8a 2b cb ea b5 42 73 ea 02 57 cc 65 33 ee
| 88 20 61 a1 17 56 c1 24 18 e3 a8 08 d3 be d9 31
| f3 37 0b 94 b8 cc 43 08 0b 70 24 f7 9c b1 8d 5d
| d6 6d 82 d0 54 09 84 f8 9f 97 01 75 05 9c 89 d4
| d5 c9 1e c9 13 d7 2a 6b 30 91 19 d6 d4 42 e0 c4
| 9d 7c 92 71 e1 b2 2f 5c 8d ee f0 f1 17 1e d2 5f
| 31 5b b1 9c bc 20 55 bf 3a 37 42 45 75 dc 90 65
En el ejemplo siguiente se muestra cómo se codifica el valor entero 0x03. La etiqueta byte contiene 0x02 y el byte de longitud longitud especifica que hay un byte de contenido.
02 01 ; INTEGER (1 Bytes)
| 03
Temas relacionados