Add migrated to .NET 8.0 variant of Hcs.Client

This commit is contained in:
2025-09-26 19:48:32 +09:00
parent da127df8f6
commit 6cd2fb82e9
503 changed files with 223796 additions and 0 deletions

View File

@ -0,0 +1,50 @@
using GostCryptography.Base;
using System.Security.Cryptography.Xml;
using System.Xml;
namespace GostCryptography.Xml
{
/// <summary>
/// Параметры открытого ключа цифровой подписи ГОСТ Р 34.10 элемента <see cref="KeyInfo"/>
/// </summary>
public abstract class GostKeyValue : KeyInfoClause
{
/// <summary>
/// URI пространства имен для XML-подписи ГОСТ Р 34.10
/// </summary>
public const string XmlDsigNamespaceUrl = "urn:ietf:params:xml:ns:cpxmlsec";
/// <summary>
/// Создает экземпляр класса с заданным публичным ключом
/// </summary>
protected GostKeyValue(GostAsymmetricAlgorithm publicKey)
{
PublicKey = publicKey;
}
/// <summary>
/// Открытый ключ
/// </summary>
public GostAsymmetricAlgorithm PublicKey { get; set; }
/// <inheritdoc />
public override void LoadXml(XmlElement element)
{
if (element == null)
{
throw ExceptionUtility.ArgumentNull(nameof(element));
}
PublicKey.FromXmlString(element.OuterXml);
}
/// <inheritdoc />
public override XmlElement GetXml()
{
var document = new XmlDocument { PreserveWhitespace = true };
var element = document.CreateElement("KeyValue", SignedXml.XmlDsigNamespaceUrl);
element.InnerXml = PublicKey.ToXmlString(false);
return element;
}
}
}