Тип EncapsulatedContentlnfo в формате АСН.1 представляется следующим образом:
EncapsulatedContentlnfo ::= SEQUENCE
{
eContentType ContentType,
eContent[0] EXPLICIT OCTET STRING OPTIONAL
}
ContentType ::= OBJECT IDENTIFIER
Поля структуры EncapsulatedContentlnfo имеют следующий смысл:
- eContentType - идентификатор объекта, однозначно определяющий тип содержимого;
- eContent - содержимое, представленное в виде строки байтов. Содержимое не обязано кодироваться в DER.
Опциональный пропуск параметра eContent позволяет создавать так называемые "отделяемые подписи". В случае внешней подписи подписываемое содержимое отсутствует в структуре EncapsulatedContentlnfo. Если подписываемое содержимое в составе структуры EncapsulatedContentlnfo не представлено, то тип содержимого, параметр eContentType, должен быть указан в соответствии с реальным содержимым.
В вырожденном случае, в котором отсутствуют субъект подписи, использование значения EncapsulatedContentlnfo нецелесообразно. В этом случае тип подписываемого содержимого в EncapsulatedContentlnfo должен представлять собой "простые данные" (см. раздел 6), а содержимое поля EncapsulatedContentlnfo должно быть опущено.