Все сообщения, используемые для управления PKI, имеют следующую структуру:
PKIMessage ::= SEQUENCE { header PKIHeader, body PKIBody, protection [0] PKIProtection OPTIONAL, extraCerts [1] SEQUENCE SIZE (1..MAX) OF Certificate OPTIONAL }
PKIHeader содержит информацию, которая является общей для многих сообщений PKI.
PKIBody содержит информацию, специфичную для сообщения.
PKIProtection, если используется, содержит биты, которые защищают сообщение PKI.
Поле extraCerts может содержать сертификаты, которые могут использоваться получателем. Например, оно может применяться СА или RA для предоставления конечному участнику сертификатов, которые он должен проверить с использованием собственного нового сертификата (если, например, СА, который выпустил сертификат конечного участника, не является для него корневым СА). Заметим, что данное поле не обязательно должно содержать сертификационный путь – получатель может отсортировать, выбрать или каким-то другим образом обработать дополнительные сертификаты, чтобы иметь возможность использовать их.