<< Click to Display Table of Contents >> Объектная модель > Основные механизмы > Encryption – шифрование DecryptWithCertificate – расшифровать данные с помощью сертификата |
Метод используется для расшифровки данных на стороне клиентского приложения. Например, можно программно настроить расшифровку содержимого документа, который был получен из другой системы и в ней же предварительно зашифрован. Метод доступен только в клиентском коде.
Для расшифровки данных на клиентском компьютере должны быть установлены:
•веб-агент, так как с помощью него выполняется расшифровка;
•сертификат подписания RSA или ГОСТ. При этом закрытый ключ сертификата должен быть установлен в хранилище личных ключей, которое доступно веб-агенту;
•КриптоПро CSP версии 5.0:
если используется сертификат подписания ГОСТ;
в любом случае, независимо от того, какой сертификат подписания используется.
Синтаксис
C# |
public static byte[] DecryptWithCertificate(byte[] encryptedData) |
Параметры
encryptedData – зашифрованные данные. Массив байт с зашифрованными данными и информацией о сертификате, которым они были зашифрованы. Так как передается массив байт, не рекомендуется передавать для расшифровки данные более 50 МБ. Это может снизить производительность системы.
Возвращаемое значение
Расшифрованные данные. Если во время расшифровки веб-агент недоступен, то возвращается значение null.
Пример. Расшифрование содержимого документа
// Получение зашифрованных данных.
var dialog = Dialogs.CreateInputDialog("Выберите файл: ");
var file = dialog.AddFileSelect("File", true);
if (dialog.Show() == DialogButtons.Ok)
{
// Получить содержимое зашифрованного файла.
var fileContent = file.Value.Content;
// Расшифровать содержимое файла.
var decryptedFileContent = Encryption.DecryptWithCertificate(fileContent);
using (var memory = new System.IO.MemoryStream(decryptedFileContent))
{
// Создать новый документ.
var document = Sungero.Docflow.SimpleDocuments.Create();
document.Name = "testDocument" + Calendar.Now;
// Сохранить расшифрованное содержимое файла в новую версию документа.
document.CreateVersion();
var version = document.LastVersion;
if (file.Value.Name.Contains("txt"))
version.AssociatedApplication = Sungero.Content.AssociatedApplications.GetByExtension("txt");
else if (file.Value.Name.Contains("docx"))
version.AssociatedApplication = Sungero.Content.AssociatedApplications.GetByExtension("docx");
else throw new FormatException("Неизвестный формат");
version.Body.Write(memory);
document.Save();
}
}
© Компания Directum, 2024 |