Sistema de tipos ASN.1
O conceito de um tipo de dados é fundamental para o padrão ASN.1 (Abstract Syntax Notation One). Cada campo de uma estrutura de solicitação de certificado está associado a um tipo. Considere, por exemplo, a sintaxe de certificado ASN.1 PKCS nº 10 mostrada no exemplo a seguir.
--------------------------------------------------------------------
-- 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
A estrutura de solicitação de alto nível, CertificationRequestInfo, é um tipo composto de uma sequência de outros tipos. Quando um tipo é ou contém apenas tipos básicos, tipos de cadeia de caracteres ou ANY, ele não pode ser dividido ainda mais. Por exemplo, o campo de versão é um tipo CertificationRequestInfoVersion que, por sua vez, é um tipo INTEGER , um tipo ASN.1 básico que não é composto de outros tipos.
Um sistema de tipos permite que a sintaxe de uma solicitação seja apresentada visualmente de uma maneira prontamente compreendida pelos desenvolvedores e permite que a solicitação seja codificada consistentemente para transmissão em uma rede. Para obter mais informações sobre codificação, consulte Distinguished Encoding Rules. Para obter mais informações sobre tipos ASN.1, consulte os tópicos a seguir.
Discute os seguintes tipos de dados:
- CADEIA DE CARACTERES DE BIT
- BOOLIANO
- INTEGER
- NULL
- IDENTIFICADOR DE OBJETO
- CADEIA DE CARACTERES OCTETO
Discute os seguintes tipos de cadeia de caracteres:
- BMPString
- IA5String
- PrintableString
- TeletexString
- Utf8string
Discute tipos de dados ASN.1 que podem conter tipos básicos, tipos de cadeia de caracteres ou outros tipos construídos.
Tópicos relacionados