Улучшение ЭЦП при использовании криптопровайдера КриптоПро 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);