Files
hcs/Hcs.Client/GostXades/Abstractions/ICryptoProvider.cs

59 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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