Данный пример осуществляет подпись части документа InfoPath на одном или нескольких ключах. Подписанный Xml документ может быть проверен при помощи Infoparh. Все подписи документа создаются независимыми.

Основное отличие данного примера от примера на основе transform в формате результирующего xml, фиксированных xslt преобразованиях.

Демонстрирует

Данный пример демонстрирует использование методов класса SignedXml.

Исходные тексты

Исходные тексты примера запакованы в файле Simple.zip. C# версия находится в файле xml\cs\SignInfopath.cs, Visual Basic версия находится в файле xml\vb\SignInfopath.vb. Подробнее см. Сборка, запуск и местоположение простейших криптографических примеров.

Как собрать пример

Процесс сборки требует указания дополнительных сборок CryptoPro.Sharpei.Xml.dll, System.Security.dll Побробнее см. Сборка, запуск и местоположение простейших криптографических примеров.

Как запустить пример

Перед запуском примера необходимо иметь два или более секретных ключа и соответствующие им сертификаты. Сертификаты должны быть установлены в хранилище MY со ссылкой на соответствующий секретный ключ. В ходе работы пример создает файла (имя задается параметром командной строки), если файл уже существует он будет перезаписан.

Пример предполагает строгофиксированный исходный xml документ. Исходный документ может быть сформирован при при передаче в качестве исходного файла имени InfoPath.xml, в этом случае будет создан файл с этим именем в текущей директории, если файл уже существует он будет перезаписан. Для подписи других полей документа изменения местоположения этих подписей модифицируйте константы в начале программы.

Данный пример осущетсвляет подпись InfoPath не в полном объеме, например не добавляется информация о ПО подписи, не добавляется картинка подписываемой формы. Для получения полностью совместимой подписи необходима значительная модификация кода.

Для запуска примера необходимо передать имя входного файла имя выходного файла и имена (Subject) сертификатов. Побробнее о возможных вариантах запуска см. Сборка, запуск и местоположение простейших криптографических примеров.

См. также