Types de base
L’API d’inscription de certificat prend en charge les types ASN.1 de base suivants.
CHAÎNE DE BITS
Balise d’encodage : 0x03
Certreq.exe nom : BIT_STRING
Un bit ou chaîne binaire est un tableau arbitrairement long de bits. Des bits spécifiques peuvent être identifiés par des entiers entre parenthèses et des noms attribués, comme dans l’exemple suivant.
Versions ::= BIT STRING{ version-1(0), version-2(1) }
Les clés de certificat et les signatures sont souvent représentées sous forme de chaînes de bits.
---------------------------------------------------------------------
-- ASN.1 type example: BIT STRING
-- Tag number: 0x03
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
BOOLEAN
Balise d’encodage : 0x01
Certreq.exe nom : BOOLEAN
Un type booléen peut contenir l’une des deux valeurs true ou FALSE. L’exemple suivant montre la structure ASN.1 pour une extension de certificat Contraintes de base. Le champ cA spécifie si un sujet de certificat est une autorité de certification . La criticité par défaut est FALSE.
---------------------------------------------------------------------
-- ASN.1 type example: BOOLEAN
-- Tag number: 0x01
---------------------------------------------------------------------
BasicConstraints ::= SEQUENCE
{
cA BOOLEAN DEFAULT FALSE,
pathLenConstraint INTEGER OPTIONAL
}
INTEGER
Balise d’encodage : 0x02
Certreq.exe nom : INTEGER
Un entier peut généralement être n’importe quelle valeur intégrale positive ou négative. L’exemple suivant montre la structure ASN.1 pour une clé publique RSA. Notez que le champ publicExponent est limité à un entier positif inférieur à 4 294 967 296.
---------------------------------------------------------------------
-- ASN.1 type example: INTEGER
-- Tag number: 0x02
---------------------------------------------------------------------
HUGEINTEGER ::= INTEGER
RSAPublicKey ::= SEQUENCE
{
modulus HUGEINTEGER,
publicExponent INTEGER (0..4294967295)
}
NULL
Balise d’encodage : 0x05
Certreq.exe nom : NULL
Un type NULL contient un 0x00 d’octet unique. Il peut être utilisé partout où la demande de certificat doit indiquer une valeur vide. Par exemple, un AlgorithmeIdentifier est une séquence qui contient un identificateur d’objet (OID) et des paramètres facultatifs.
---------------------------------------------------------------------
-- ASN.1 type example: NULL
-- Tag number: 0x05
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
S’il n’existe aucun paramètre lorsque la structure est encodée, null est utilisé pour indiquer une valeur vide.
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)
IDENTIFICATEUR D'OBJET
Balise d’encodage : 0x06
Certreq.exe nom : OBJECT_ID
L’API d’inscription de certificat utilise des identificateurs d’objet (OID) comme type de pointeur universel vers des identificateurs d’algorithme, des attributs et d’autres éléments PKI. Les OID sont généralement présentés dans une chaîne décimale en pointillés telle que « 2.16.840.1.101.3.4.1.42 ». Les éléments individuels de la chaîne, séparés par des points, représentent les arcs et les feuilles dans une arborescence d’autorité d’inscription qui identifie de manière unique l’objet et le organization qui l’a inscrit. Par exemple, l’OID précédent peut être étendu à joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) aesAlgs(1) avec .42 ajouté pour identifier de manière unique l’algorithme de mode de chaînage de blocs de chiffrement AES (CBC) 256 bits.
---------------------------------------------------------------------
-- ASN.1 type example: OBJECT IDENTIFIER
-- Tag number: 0x06
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY OPTIONAL
}
CHAÎNE D’OCTETS
Balise d’encodage : 0x04
Certreq.exe nom : OCTET_STRING
Une chaîne d’octets est un tableau d’octets arbitrairement grand. Contrairement au type BIT STRING , toutefois, des bits et octets spécifiques dans la chaîne ne peuvent pas être attribués à des noms. Le mot octet est destiné à être un moyen indépendant de la plateforme de faire référence à un mot de mémoire. Dans le contexte de l’API d’inscription de certificat, l’octet et l’octet sont interchangeables.
---------------------------------------------------------------------
-- 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
}
Rubriques connexes