Некоторые преимущества использования PKCS#7 перед XMLDSIG для электронной подписи:
- Универсальность. 1 PKCS#7 позволяет подписывать любой массив байт, в том числе PDF и XML-файлы. 1 XMLDSIG предназначен только для подписания XML-файлов. 1
- Возможность ставить несколько подписей. 2 PKCS#7 позволяет сохранять всю необходимую информацию в сообщении и ставить несколько подписей под одним документом. 2
- Самодостаточность сообщения. 2 В PKCS#7 размещается информация об исходном сообщении, алгоритмах хеширования и подписи, параметрах криптоалгоритмов, времени подписи, сертификат ключа электронной подписи, цепочка сертификации и т. д.. 2 Большинство атрибутов PKCS#7 являются опциональными, но их обязательность может определяться прикладной системой. 2
Основное отличие PKCS#7 и XMLDSig в том, что в PKCS#7 данные хранятся в структурах, сформированных в соответствии с разметкой ANS.1 (бинарные данные), а в XMLDSig данные хранятся в текстовом формате в соответствии с правилами документа «XML Signature Syntax and Processing». 2