Files
hcs/Hcs.Client/GostCryptography/Gost_R3411/Gost_R3411_94_HashAlgorithm.cs
HOME-LAPTOP\kshkulev 33ab055b43 Add project
Basic formatting applied. Unnecessary comments have been removed. Suspicious code is covered by TODO.
2025-08-12 11:21:10 +09:00

60 lines
2.2 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 GostCryptography.Base;
using GostCryptography.Native;
using System.Security;
namespace GostCryptography.Gost_R3411
{
/// <summary>
/// Реализация алгоритма хэширования ГОСТ Р 34.11-94
/// </summary>
public sealed class Gost_R3411_94_HashAlgorithm : Gost_R3411_HashAlgorithm
{
/// <summary>
/// Размер хэша ГОСТ Р 34.11-94
/// </summary>
public const int DefaultHashSizeValue = 256;
/// <summary>
/// Наименование алгоритма хэширования ГОСТ Р 34.11-94
/// </summary>
public const string AlgorithmNameValue = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411";
/// <summary>
/// Устаревшее наименование алгоритма хэширования ГОСТ Р 34.11-94
/// </summary>
public const string ObsoleteAlgorithmNameValue = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
/// <summary>
/// Известные наименования алгоритма хэширования ГОСТ Р 34.11-94
/// </summary>
public static readonly string[] KnownAlgorithmNames = { AlgorithmNameValue, ObsoleteAlgorithmNameValue };
/// <inheritdoc />
[SecuritySafeCritical]
public Gost_R3411_94_HashAlgorithm() : base(DefaultHashSizeValue)
{
}
/// <inheritdoc />
[SecuritySafeCritical]
public Gost_R3411_94_HashAlgorithm(ProviderType providerType) : base(providerType, DefaultHashSizeValue)
{
}
[SecurityCritical]
internal Gost_R3411_94_HashAlgorithm(ProviderType providerType, SafeProvHandleImpl providerHandle) : base(providerType, providerHandle, DefaultHashSizeValue)
{
}
/// <inheritdoc />
public override string AlgorithmName => AlgorithmNameValue;
/// <inheritdoc />
[SecurityCritical]
protected override SafeHashHandleImpl CreateHashHandle(SafeProvHandleImpl providerHandle)
{
return CryptoApiHelper.CreateHash_3411_94(providerHandle);
}
}
}