Система типов ASN.1
Концепция типа данных является основой для стандарта Абстрактной нотации синтаксиса (ASN.1). Каждое поле структуры запроса сертификата связано с типом. Рассмотрим, например, синтаксис сертификата PKCS #10 ASN.1, показанный в следующем примере.
--------------------------------------------------------------------
-- 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
Высокоуровневая структура запросов, CertificationRequestInfo, — это тип, состоящий из последовательности других типов. Если тип содержит только базовые типы, строковые типы или ANY, его нельзя разбить дальше. Например, поле версии является типом CertificationRequestInfoVersion, который, в свою очередь, является типом INTEGER, базовым типом ASN.1, который не состоит из других типов.
Система типов позволяет визуализировать синтаксис запроса, который легко понимает разработчики, и позволяет согласованно кодировать запрос для передачи по сети. Дополнительные сведения о кодировке см. в различающиеся правила кодирования. Дополнительные сведения о типах ASN.1 см. в следующих разделах.
Описывает следующие типы данных:
- BIT STRING
- BOOLEAN
- ЦЕЛОЕ ЧИСЛО
- NULL
- ИДЕНТИФИКАТОР ОБЪЕКТА
- OCTET STRING
Описывает следующие типы строк:
- BMPString
- IA5String
- PrintableString
- TeletexString
- UTF8String
Описывает типы данных ASN.1, которые могут содержать основные типы, типы строк или другие созданные типы.
Связанные разделы
-
кодирование запроса на сертификат