logo

Улучшение ЭЦП при использовании криптопровайдера КриптоПро DSS

Примечание

Эта статья актуальная для версии системы, начиная с 3.13.75, 3.15.35, 4.0.15. Документацию по PublicAPI смотрите в справке.

В модуль EleWise.ELMA.Documents.Docflow.CryptoPro.Dss добавлен метод PublicAPI.Services.CryptoProDss.EnhanceSignature, позволяющий улучшить тип ЭЦП, а именно добавить неподписываемые атрибуты в подпись.

Подробнее о характеристиках разных типов ЭЦП криптопровайдера КриптоПро DSS читайте в справке по ELMA4.

Правила улучшения типа подписи:

  • ни одну подпись нельзя преобразовать в тип CAdES-BES;
  • при попытке преобразования в такой же тип подпись не изменится;
  • все остальные преобразования допустимы, подпись усовершенствуется.

Возможные результаты улучшения типа подписи представлены ниже в таблице. В столбцах указаны исходные типы подписи, а в строках — типы подписи, в которые преобразуется исходный тип. В ячейках таблицы использованы следующие обозначения:

  • знак «минус» — преобразование невозможно, отобразится ошибка;
  • знак «плюс» — преобразование возможно;
  • знак «равно» — подпись не изменится.

CAdES-BES

CAdES-T

CAdES-X Long Type 1

CAdES-BES

CAdES-T

+

=

=

CAdES-X Long Type 1

+

+

=

Текст сценария:

// загружаем пользователя, от лица которого будет выполняться усовершенствование подписи
var user = PublicAPI.Portal.Security.User.Load(3);
// загружаем существующую подпись
var signature = PublicAPI.Docflow.Objects.DigitalSignature.DigitalSignature.Load(103);
// усовершенствуем подпись до XLT1
var enhancedSignature = PublicAPI.Services.CryptoProDss.EnhanceSignature(user, signature, PublicAPI.Enums.Documents.Docflow.CryptoPro.Dss.Models.CadesType.XLT1);