Sistema de tipos ASN.1
El concepto de un tipo de datos es fundamental para el estándar Notación de sintaxis abstracta Uno (ASN.1). Cada campo de una estructura de solicitud de certificado está asociado a un tipo. Considere, por ejemplo, la sintaxis del certificado PKCS #10 ASN.1 que se muestra en el ejemplo siguiente.
--------------------------------------------------------------------
-- PKCS #10 Certificate request.
--------------------------------------------------------------------
CertificationRequestInfo ::= SEQUENCE
{
version CertificationRequestInfoVersion,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes
}
--------------------------------------------------------------------
-- Version number.
--------------------------------------------------------------------
CertificationRequestInfoVersion ::= INTEGER
--------------------------------------------------------------------
-- Subject distinguished name (DN).
--------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::= SET OF AttributeTypeValue
AttributeTypeValue ::= SEQUENCE
{
type OBJECT IDENTIFIER,
value ANY
}
--------------------------------------------------------------------
-- Public key information.
--------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BITSTRING
}
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
--------------------------------------------------------------------
-- Attributes.
--------------------------------------------------------------------
Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE
{
type OBJECT IDENTIFIER,
values AttributeSetValue
}
AttributeSetValue ::= SET OF ANY
La estructura de solicitudes de alto nivel, CertificationRequestInfo, es un tipo que se compone de una secuencia de otros tipos. Cuando un tipo es o contiene solo tipos básicos, tipos de cadena o ANY, no se puede desglosar aún más. Por ejemplo, el campo de versión es un tipo CertificationRequestInfoVersion que, a su vez, es un tipo INTEGER , un tipo ASN.1 básico que no está compuesto de otros tipos.
Un sistema de tipos permite que los desarrolladores comprendan visualmente la sintaxis de una solicitud y permite codificar de forma coherente la solicitud para su transmisión a través de una red. Para obtener más información sobre la codificación, consulte reglas de codificación distinguida. Para obtener más información sobre los tipos ASN.1, vea los temas siguientes.
Describe los siguientes tipos de datos:
- CADENA DE BITS
- BOOLEAN
- INTEGER
- NULL
- IDENTIFICADOR DE OBJETO
- CADENA DE OCTET
Describe los siguientes tipos de cadena:
- BMPString
- IA5String
- PrintableString
- TeletexString
- UTF8String
Describe los tipos de datos ASN.1 que pueden contener tipos básicos, tipos de cadena u otros tipos construidos.
Temas relacionados