Ответ регистрации/сертификации
Сообщение ответа регистрации содержит в PKIBody структуру данных CertRepMessage, которая указывает значение статуса для каждого запрошенного сертификата, и дополнительно открытый ключ СА, информацию о неудаче, сертификат субъекта и закрытый зашифрованный ключ.
CertRepMessage ::= SEQUENCE { CaPubs [1] SEQUENCE SIZE (1..MAX) OF Certificate OPTIONAL, Response SEQUENCE OF CertResponse } CertResponse ::= SEQUENCE { CertReqId INTEGER, -- для установления соответствия между -- ответом и запросом – 1 используется, -- если certReqId в соответствующем -- запросе не указан) status PKIStatusInfo, certifiedKeyPair CertifiedKeyPair OPTIONAL, rspInfo OCTET STRING OPTIONAL -- аналогично id-regInfo-asciiPairs -- OCTET STRING, -- определенной для regInfo -- в CertReqMsg } CertifiedKeyPair ::= SEQUENCE { certOrEncCert CertOrEncCert, privateKey [0] EncryptedValue OPTIONAL, publicationInfo [1] PKIPublicationInfo OPTIONAL } CertOrEncCert ::= CHOICE { certificate [0] Certificate, encryptedCert [1] EncryptedValue }
Только одно из полей failInfo (в PKIStatusInfo) и certificate (в CertifiedKeyPair) может быть представлено в каждом CertResponse (в зависимости от статуса). Для некоторых значений статуса (например, waiting) ни одно из дополнительных полей присутствовать не может.
Сертификат может быть получен при наличии EncryptedCert и соответствующего ключа дешифрования. Это делается для того, чтобы позволить СА возвращать значение сертификата, но с тем ограничением, что только определенный получатель может получить настоящий сертификат. Преимущество данного подхода состоит в том, что СА может возвращать сертификат даже при отсутствии доказательства, что запрашивающий является конечным участником, который может использовать соответствующий закрытый ключ (заметим, что доказательство не представлено до тех пор, пока СА не получит PKIConfirm-сообщение). Таким образом, СА не будет отменять сертификат до тех пор, пока не получит неправильное доказательство обладания.