Système de type ASN.1
Le concept d’un type de données est fondamental pour la norme ASN.1 (Abstract Syntax Notation One). Chaque champ d’une structure de demande de certificat est associé à un type. Considérez, par exemple, la syntaxe de certificat PKCS #10 ASN.1 illustrée dans l’exemple suivant.
--------------------------------------------------------------------
-- 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 structure de requête de haut niveau, CertificationRequestInfo, est un type constitué d’une séquence d’autres types. Lorsqu’un type est ou contient uniquement des types de base, des types chaîne ou ANY, il ne peut pas être décomposé davantage. Par exemple, le champ version est un type CertificationRequestInfoVersion qui est, à son tour, un type INTEGER , un type ASN.1 de base qui n’est pas composé à partir d’autres types.
Un système de type permet de présenter visuellement la syntaxe d’une requête d’une manière facilement comprise par les développeurs, et permet à la demande d’être encodée de manière cohérente pour la transmission sur un réseau. Pour plus d’informations sur l’encodage, consultez Distinguished Encoding Rules. Pour plus d’informations sur les types ASN.1, consultez les rubriques suivantes.
Décrit les types de données suivants :
- CHAÎNE DE BITS
- BOOLEAN
- INTEGER
- NULL
- IDENTIFICATEUR D'OBJET
- CHAÎNE D’OCTETS
Décrit les types de chaînes suivants :
- BMPString
- IA5String
- PrintableString
- TeletexString
- UTF8String
Décrit les types de données ASN.1 qui peuvent contenir des types de base, des types de chaîne ou d’autres types construits.
Rubriques connexes