Система типов ASN.1
Понятие типа данных является основополагающим для стандарта Абстрактная синтаксическая нотация 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, который не состоит из других типов.
Система типов позволяет визуально представить синтаксис запроса таким образом, который легко понимается разработчиками, и обеспечивает согласованное кодирование запроса для передачи по сети. Дополнительные сведения о кодировке см. в разделе Distinguished Encoding Rules. Дополнительные сведения о типах ASN.1 см. в следующих разделах.
Рассматриваются следующие типы данных:
- БИТОВАЯ СТРОКА
- BOOLEAN
- INTEGER
- NULL
- ИДЕНТИФИКАТОР ОБЪЕКТА
- СТРОКА OCTET
Рассматриваются следующие типы строк:
- BMPString
- IA5String
- PrintableString
- TeletexString
- UTF8String
Рассматриваются типы данных ASN.1, которые могут содержать базовые типы, строковые типы или другие сконструированные типы.
Связанные темы