<< Click to Display Table of Contents >> Объектная модель > Основные механизмы ExternalSignatures – внешние подписи |
Для программной работы с внешними подписями предназначен класс Sungero.Core.ExternalSignatures.
Внешняя подпись – подпись, которая хранится вне базы данных системы Directum RX и не отображается в списке подписей. Может быть подписан набор произвольных данных. Как работать с подписью и где ее хранить, определяет разработчик. Например, внешняя подпись для архивного хранения электронных документов может находиться в ZIP-контейнере. Каждый контейнер содержит документ в исходном формате, его отсоединенные подписи, файл метаданных и копию документа в формате PDF/A.
Методы по усовершенствованию подписи (ImproveTo<Формат>) возвращают IImprovedSignatureContainer.
Методы
Имя |
Описание |
---|---|
Подписать набор произвольных данных |
|
GetSignatureInfo() |
Получить информацию о подписи. Метод возвращает ISignatureInfo |
ComputeHash() |
Вычислить хеш подписи |
Verify() |
Проверить достоверность подписи. Метод возвращает ISignatureInfo |
Усовершенствовать подпись до формата CAdES-T |
|
Усовершенствовать подпись до формата CAdES-XL |
|
Усовершенствовать подпись до формата CAdES-A |
Пример. Усовершенствование внешней подписи и проверка ее достоверности
// Получить внешнюю подпись из файла.
// Считать текст файла в строку в кодировке Base64 и закрыть файл.
var signature = File.ReadAllText(files.SignatureFileName);
// Преобразовать строку в массив байт.
var signatureData = Convert.FromBase64String(signature);
// Открыть файл для чтения.
using (var content = File.OpenRead(files.DataFileName))
{
// Усовершенствовать подпись до формата CAdES-T.
var container = ExternalSignatures.ImproveToCadesT(signatureData, content);
// Результат усовершенствования записать в лог.
Logger.Debug("ImproveResult=" + container.ImproveResult);
// Проверить достоверность подписи.
var signatureInfo = ExternalSignatures.Verify(signatureData, content);
...
}
© Компания Directum, 2024 |