Данный пример создает тестовый XML документ, зашифровывает документ в адрес получателя и расшифровывает документ на стороне получателя. Пример не использует сертификатов.

Содержание примера

  • На стороне получателя сообщения создается (открывается) контейнер с секретным ключем. Открытый ключ, соответствующий секретному ключу, передается на сторону отправителя.

  • На стороне отправителя сообщения, импортируется открытый ключ получателя.

  • На стороне отправителя создается документ (ato_encrypt.xml) для отправки.

  • На стороне отправителя, зашифровывается узел созданного XML документа в адрес получателя; для этого выполняются следующие шаги. Создается случайный симметричный ключ Gost28147CryptoServiceProvider. На этом сессионном ключе зашифровывается сообщение. Сам сессионный ключ зашифровывается на открытом ключе получателя. К зашифрованному ключу добавляется имя ключа. Открытый узел XML документа замещается XML узлом содержащим зашифрованный узел, зашифрованный симметричный ключ, ссылку на секретный ключ получателя (имя), имена алгоритмов шифрования. Полученный XML документ сохраняется в файле a_encrypted.xml.

  • На стороне получателя сообщения устанавливается связь между именем ключа и секретным ключем и на этом ключе расшифровывается полученный документ. Расшифрованный документ сохраняется в файле a_decrypted.xml.

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

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

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

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

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

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

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

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

В ходе работы пример создает три файла ato_encrypt.xml, a_encrypted.xml и a_decrypted.xml, если такие файлы уже существуют, то они будут перезаписаны.

См. также