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.
La API de inscripción de certificados admite los siguientes tipos básicos de ASN.1.
CADENA DE BITS
Etiqueta de codificación: 0x03
Certreq.exe nombre: BIT_STRING
Una cadena binaria o bit es una matriz arbitrariamente larga de bits. Los bits específicos se pueden identificar mediante enteros entre paréntesis y nombres asignados como en el ejemplo siguiente.
Versions ::= BIT STRING{ version-1(0), version-2(1) }
Las claves de certificado y las firmas a menudo se representan como cadenas de bits.
---------------------------------------------------------------------
-- ASN.1 type example: BIT STRING
-- Tag number: 0x03
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
BOOLEANO
Etiqueta de codificación: 0x01
Certreq.exe nombre: BOOLEAN
Un tipo booleano puede contener uno de dos valores, TRUE o FALSE. En el ejemplo siguiente se muestra la estructura ASN.1 para una extensión de certificado restricciones básicas. El campo cA especifica si un sujeto de certificado es una entidad de certificación (CA). La importancia predeterminada es FALSE.
---------------------------------------------------------------------
-- ASN.1 type example: BOOLEAN
-- Tag number: 0x01
---------------------------------------------------------------------
BasicConstraints ::= SEQUENCE
{
cA BOOLEAN DEFAULT FALSE,
pathLenConstraint INTEGER OPTIONAL
}
ENTERO
Etiqueta de codificación: 0x02
Certreq.exe nombre: INTEGER
Un entero normalmente puede ser cualquier valor entero positivo o negativo. En el ejemplo siguiente se muestra la estructura ASN.1 para una clave pública RSA. Tenga en cuenta que el campo publicExponent está restringido a un entero positivo inferior a 4.294.967.296.
---------------------------------------------------------------------
-- ASN.1 type example: INTEGER
-- Tag number: 0x02
---------------------------------------------------------------------
HUGEINTEGER ::= INTEGER
RSAPublicKey ::= SEQUENCE
{
modulus HUGEINTEGER,
publicExponent INTEGER (0..4294967295)
}
NULO
Etiqueta de codificación: 0x05
nombre de Certreq.exe: NULL
Un tipo de NULL contiene un solo 0x00 de bytes. Se puede usar en cualquier lugar en el que la solicitud de certificado debe indicar un valor vacío. Por ejemplo, un AlgorithmIdentifier es una secuencia que contiene un identificador de objeto (OID) y parámetros opcionales.
---------------------------------------------------------------------
-- ASN.1 type example: NULL
-- Tag number: 0x05
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
Si no hay parámetros cuando se codifica la estructura, se usa NULL para indicar un valor vacío.
30 0d ; SEQUENCE (d Bytes)
| | | 06 09 ; OBJECT_ID (9 Bytes)
| | | | 2a 86 48 86 f7 0d 01 01 01
| | | | ; 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
| | | 05 00 ; NULL (0 Bytes)
IDENTIFICADOR DE OBJETO
Etiqueta de codificación: 0x06
nombre de Certreq.exe: OBJECT_ID
La API de inscripción de certificados usa identificadores de objeto (OID) como un tipo de puntero universal a identificadores de algoritmo, atributos y otros elementos PKI. Normalmente, los identificadores de identificación se presentan en una cadena decimal punteada como "2.16.840.1.101.3.4.1.42". Los elementos individuales de la cadena, separados por puntos, representan los arcos y las hojas en un árbol de la entidad de registro que identifica de forma única el objeto y la organización que lo registró. Por ejemplo, el OID anterior se puede expandir a un país conjunto iso-itu-t(2) country(16) us(840) organization(1) gov(1) gov(101) csor(3) nistAlgorithms(4) aesAlgs(1) con .42 anexado para identificar de forma única el algoritmo de encadenamiento de bloques de cifrado AES (CBC) de 256 bits.
---------------------------------------------------------------------
-- ASN.1 type example: OBJECT IDENTIFIER
-- Tag number: 0x06
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
OCTET STRING
Etiqueta de codificación: 0x04
Certreq.exe nombre: OCTET_STRING
Una cadena de octeto es una matriz de bytes arbitrariamente grande. A diferencia de tipo BIT STRING, sin embargo, no se pueden asignar nombres a bits y bytes específicos de la cadena. La palabra octeto está pensada para ser una forma independiente de la plataforma para hacer referencia a una palabra de memoria. Dentro del contexto de la API de inscripción de certificados, el octeto y el byte son intercambiables.
---------------------------------------------------------------------
-- ASN.1 type example: OCTET STRING
-- Tag number: 0x04
---------------------------------------------------------------------
AuthorityKeyId ::= SEQUENCE
{
keyIdentifier [0] IMPLICIT OCTET STRING OPTIONAL,
certIssuer [1] EXPLICIT NAME
certSerialNumber [2] IMPLICIT INTEGER OPTIONAL
}
Temas relacionados