Tipos Básicos
A API de Registro de Certificado dá suporte aos seguintes tipos asn.1 básicos.
CADEIA DE CARACTERES BIT
Marca de codificação: 0x03
Certreq.exe nome: BIT_STRING
Uma cadeia de caracteres binária ou bits é uma matriz arbitrariamente longa de bits. Bits específicos podem ser identificados por inteiros parênteses e nomes atribuídos como no exemplo a seguir.
Versions ::= BIT STRING{ version-1(0), version-2(1) }
As chaves de certificado e as assinaturas geralmente são representadas como cadeias de caracteres de bits.
---------------------------------------------------------------------
-- ASN.1 type example: BIT STRING
-- Tag number: 0x03
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
BOOLEAN
Marca de codificação: 0x01
Certreq.exe nome: BOOLEAN
Um tipo booliano pode conter um dos dois valores, TRUE ou FALSE. O exemplo a seguir mostra a estrutura ASN.1 para uma extensão de certificado de Restrições Básicas. O campo cA especifica se uma entidade de certificado é uma AC (autoridade de certificação). A criticidade padrão é FALSE.
---------------------------------------------------------------------
-- ASN.1 type example: BOOLEAN
-- Tag number: 0x01
---------------------------------------------------------------------
BasicConstraints ::= SEQUENCE
{
cA BOOLEAN DEFAULT FALSE,
pathLenConstraint INTEGER OPTIONAL
}
INTEGER
Marca de codificação: 0x02
Certreq.exe nome: INTEGER
Um inteiro normalmente pode ser qualquer valor integral positivo ou negativo. O exemplo a seguir mostra a estrutura ASN.1 para uma chave pública RSA. Observe que o campo publicExponent é restrito a um inteiro 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
Marca de codificação: 0x05
Certreq.exe nome: NULL
Um tipo NULL contém um único byte 0x00. Ele pode ser usado em qualquer lugar em que a solicitação de certificado deve indicar um valor vazio. Por exemplo, um AlgorithmIdentifier é uma sequência que contém um OID (identificador de objeto) e parâmetros opcionais.
---------------------------------------------------------------------
-- ASN.1 type example: NULL
-- Tag number: 0x05
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
Se não houver parâmetros quando a estrutura for codificada, NULL será usado para indicar um valor vazio.
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
Marca de codificação: 0x06
Certreq.exe nome: OBJECT_ID
A API de Registro de Certificado usa identificadores de objeto (OIDs) como um tipo de ponteiro universal para identificadores de algoritmo, atributos e outros elementos PKI. Normalmente, os OIDs são apresentados em uma cadeia de caracteres decimal pontilhada, como "2.16.840.1.101.3.4.1.42". Os elementos individuais na cadeia de caracteres, separados por períodos, representam os arcos e folhas em uma árvore de autoridade de registro que identifica exclusivamente o objeto e a organização que o registrou. Por exemplo, o OID anterior pode ser expandido para a organização (1) gov(101) csor(3) nistAlgorithms(4) aesAlgs(1) com .42 acrescentado para identificar exclusivamente o algoritmo de modo CBC (encadeamento de bloco de criptografia AES) de 256 bits.
---------------------------------------------------------------------
-- ASN.1 type example: OBJECT IDENTIFIER
-- Tag number: 0x06
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
CADEIA DE CARACTERES OCTET
Marca de codificação: 0x04
Certreq.exe nome: OCTET_STRING
Uma cadeia de caracteres de octeto é uma matriz de bytes arbitrariamente grande. Ao contrário do tipo DE CADEIA DE CARACTERES BIT , no entanto, bits e bytes específicos na cadeia de caracteres não podem ser atribuídos nomes. A palavra octeto destina-se a ser uma maneira independente de plataforma de se referir a uma palavra de memória. No contexto da API de Registro de Certificado, octeto e byte são intercambiáveis.
---------------------------------------------------------------------
-- 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
}
Tópicos relacionados