Sistema di tipi ASN.1
Il concetto di un tipo di dati è fondamentale per lo standard astratta Notation One (ASN.1). Ogni campo di una struttura di richiesta di certificato è associato a un tipo. Si consideri, ad esempio, la sintassi del certificato PKCS #10 ASN.1 illustrata nell'esempio seguente.
--------------------------------------------------------------------
-- 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 struttura di richiesta di alto livello, CertificationRequestInfo, è un tipo costituito da una sequenza di altri tipi. Quando un tipo è o contiene solo tipi di base, tipi di stringa o ANY, non può essere suddiviso ulteriormente. Ad esempio, il campo della versione è un tipo CertificationRequestInfoVersion che è, a sua volta, un tipo INTEGER , un tipo ASN.1 di base che non è composto da altri tipi.
Un sistema di tipi consente la sintassi di una richiesta da presentare visivamente in modo leggibile dagli sviluppatori e consente alla richiesta di essere codificata in modo coerente per la trasmissione in una rete. Per altre informazioni sulla codifica, vedere Distinguished Encoding Rules. Per altre informazioni sui tipi ASN.1, vedere gli argomenti seguenti.
Vengono illustrati i tipi di dati seguenti:
- STRINGA BIT
- BOOLEAN
- INTEGER
- NULL
- IDENTIFICATORE OGGETTO
- OCTET STRING
Vengono illustrati i tipi di stringa seguenti:
- BMPString
- IA5String
- PrintableString
- TeletexString
- UTF8String
Vengono illustrati i tipi di dati ASN.1 che possono contenere tipi di base, tipi di stringa o altri tipi costruiti.
Argomenti correlati