using Microsoft.Xades; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.Xml; namespace Hcs.GostXades.Abstractions { public interface ICryptoProvider { /// /// URI метода подписи /// string SignatureMethod { get; } /// /// URI метода хеширования /// string DigestMethod { get; } /// /// Получение реализации асимметричного алгоритма /// /// Сертификат, исользуемый для подписания /// Пароль от контейнера закрытого ключа /// AsymmetricAlgorithm GetAsymmetricAlgorithm(X509Certificate2 certificate, string privateKeyPassword); /// /// Получение Reference-элемента для XML-документа /// /// Идентификатор подписываемого узла XML-документа /// Идентификатор подписи /// Reference GetReference(string signedElementId, string signatureId); /// /// Получение форматтера, с помощью которого будет производиться подпись /// /// Сертификат, с помощью которого будет производиться подпись /// AsymmetricSignatureFormatter GetSignatureFormatter(X509Certificate2 certificate); /// /// Получение реализации алгоритма хеширования по URI /// /// URI метода хеширования /// HashAlgorithm GetHashAlgorithm(string algorithm); /// /// Получение объекта XadesObject /// /// Информация о XAdES-подписи /// Идентификатор подписи /// XadesObject GetXadesObject(XadesInfo xadesInfo, string signatureId); } }