Add project

Basic formatting applied. Unnecessary comments have been removed. Suspicious code is covered by TODO.
This commit is contained in:
2025-08-12 11:21:10 +09:00
parent bbcbe841a7
commit 33ab055b43
546 changed files with 176950 additions and 0 deletions

View File

@ -0,0 +1,58 @@
using Microsoft.Xades;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Xml;
namespace Hcs.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);
}
}