Запрос на сертификат представляет собой структуру CertificationRequest в формате ACH.1 (см. [2]):
CertificationRequest ::= SEQUENCE | ||
{ | ||
certificationRequestlnfо | CertificationRequestInfо, | |
signatureAlgorithm | ||
AlgorithmIdentifier{{SignatureAlgorithms}}, | ||
signature | BIT STRING | |
} |
Поля структуры имеют следующие значения:
certificationRequestInfo - информация запроса на сертификат, содержащая, в частности, открытый ключ субъекта, сформированная в соответствии с 4.1.1;
signatureAlgorithm - информация об алгоритме подписи, который использовался при формировании подписи данных поля certificationRequestInfo структуры CertificationRequest, сформированная в соответствии с 4.1.2;
signature - подпись данных поля certificationRequestInfo структуры CertificationRequest, сформированная в соответствии с 4.1.3.
4.1.1 Поле certificationRequestInfo структуры CertificationRequest
Поле certificationRequestInfo структуры CertificationRequest задается структурой CertificationRequestInfo в формате ACH.1:
CertificationRequestInfo ::= SEQUENCE | |
{ | |
version | INTEGER { v1 (0) } (v1, ...), |
subject | Name, |
subjectPKInfо | SubjectPublicKeyInfo{{PKInfoAlgorithms}}, |
attributes [0] | Attributes{{CRIAttributes}} |
} |
Поля структуры имеют следующие значения:
version - номер версии стандарта. Для стандарта PKCS#10 v1.7 данное поле должно принимать значение 0;
subject - имя субъекта, чей открытый ключ используется для формирования сертификата;
subjectPKInfo - набор элементов, содержащих информацию об открытом ключе сертификата и сам ключ;