Class Gost3410_2012_512CryptoServiceProvider
Implementation of Gost3410_2012_512 algorithm using Crypto API 2.0.
Inheritance
Inherited Members
Namespace: CryptoPro.Security.Cryptography
Assembly: CryptoPro.Security.Cryptography.dll
Syntax
public sealed class Gost3410_2012_512CryptoServiceProvider : Gost3410_2012_512, IDisposable, ICpCspAsymmetricAlgorithm
Constructors
Gost3410_2012_512CryptoServiceProvider()
Конструктор, создающий объект класса Gost3410_2012_256CryptoServiceProvider.
Declaration
public Gost3410_2012_512CryptoServiceProvider()
Remarks
Создается контейнер с типом 81 на провайдере по умолчанию, со случайным именем контейнера. Ключи будут храниться в store пользователя или машины в зависимости от установленного свойства UseMachineKeyStore в момент создания объекта.
Создание ключей будет отложено до момента, когда этот ключ реально потребуется.
Gost3410_2012_512CryptoServiceProvider(CpCspParameters)
Конструктор алгоритма подписи по ГОСТ Р 34.10-2012 256.
Declaration
public Gost3410_2012_512CryptoServiceProvider(CpCspParameters parameters)
Parameters
Type | Name | Description |
---|---|---|
CpCspParameters | parameters | Параметры алгоритма. |
Remarks
При создании контейнера без заданного имени контейнера и без указания флага использования контейнера по умолчанию будет создано случайное имя, а создание ключей будет отложено, до его первого обращения.
При инициализации объекта через данный конструктор будут использованы именно эти параметры, в независимости от флага UseMachineKeyStore. По умолчанию значение флага из Gost3410_2012_256CryptoServiceProvider(CpCspParameters) устанавливается в использование ключей из хранилище пользователя. Для использования ключей из хранилища компьютера необходимо установить флаг Flags: UseMachineKeyStore.
Properties
CipherOid
Параметры шифрования
Declaration
public string CipherOid { get; set; }
Property Value
Type | Description |
---|---|
string |
ContainerCertificate
Получение/установка сертификата в конейнер.
Declaration
public byte[] ContainerCertificate { get; set; }
Property Value
Type | Description |
---|---|
byte[] | Возвращается хранимый сертификат или null, если сертификат в контейнере отсутствует. |
CspKeyContainerInfo
Получает информацию о CSP CspKeyContainerInfo, в котором хранится ключевая пара.
Declaration
public CpCspKeyContainerInfo CspKeyContainerInfo { get; }
Property Value
Type | Description |
---|---|
CpCspKeyContainerInfo |
Handle
Gets a copy to a native HCRYPTPROV handle.
Declaration
public nint Handle { get; }
Property Value
Type | Description |
---|---|
nint |
HandleNoDuplicate
Gets a native HCRYPTPROV handle.
Declaration
public nint HandleNoDuplicate { get; }
Property Value
Type | Description |
---|---|
nint |
KeyDhParamSet
Параметры Диффи-Хелламана ключа.
Declaration
public string KeyDhParamSet { get; }
Property Value
Type | Description |
---|---|
string |
KeySpec
Gets a key specification.
Declaration
public int KeySpec { get; }
Property Value
Type | Description |
---|---|
int |
NotAfter
Срок действия закртытого ключа, указанного в KP_NOTAFTER
Declaration
public DateTimeOffset NotAfter { get; }
Property Value
Type | Description |
---|---|
DateTimeOffset |
ProviderDhParamSet
Параметры Диффи-Хелламана провайдера.
Declaration
public string ProviderDhParamSet { get; set; }
Property Value
Type | Description |
---|---|
string |
Remarks
Используются только при создании новых ключей, не влияет на существующие.
PublicOnly
Получает значение, указывающее, не содержит ли объект Gost3410_2012_512CryptoServiceProvider только открытый ключ.
Declaration
public bool PublicOnly { get; }
Property Value
Type | Description |
---|---|
bool | true, если Gost3410_2012_512CryptoServiceProvider содержит только открытый ключ, false - иначе. |
UseMachineKeyStore
Возвращает или устанавливает флаг того, что ключ должен храниться в STORE ключей компьютера, а не в профиле пользователя.
Declaration
public static bool UseMachineKeyStore { get; set; }
Property Value
Type | Description |
---|---|
bool | true, если ключ должен храниться в банке ключей компьютера, false - иначе. |
Remarks
Данный флаг устанавливает использование ключей из STORE пользователя
или компьютера при открытии ключей без указания данного флага.
Установка данного флага эквивалентна передаче установке флага
UseMachineKeyStore в
CspParameters. Свойство UseMachineKeyStore
устанавливается для всего кода в текущем домене, в то время как
CspParameters применимо только к объекту на который он
ссылается. Установка/сброс данного флага полезна при
имперсонализации или работе без загруженного профиля пользователя.
При инициализации объекта через конструктор Gost3410_2012_512CryptoServiceProvider(CpCspParameters) будут использованы именно эти параметры, в независимости от флага UseMachineKeyStore. По умолчанию значение флага из Gost3410_2012_512CryptoServiceProvider(CpCspParameters) устанавливется в использование ключей из хранилищи пользователя. Для использования ключей из хранилища компьютера при использовании конструктора Gost3410_2012_512CryptoServiceProvider(CpCspParameters) необходимо установить флаг Flags: UseMachineKeyStore.
Methods
CreateAgree(Gost3410Parameters)
Создание ключа согласования (agree ключа).
Declaration
public override GostSharedSecretAlgorithm CreateAgree(Gost3410Parameters alg)
Parameters
Type | Name | Description |
---|---|---|
Gost3410Parameters | alg | Открытый ключ получателя. |
Returns
Type | Description |
---|---|
GostSharedSecretAlgorithm | Ключ согласования GostSharedSecretAlgorithm для шифрования ключевой информации. |
Overrides
Dispose(bool)
Освобождает неуправляемые объектом класса Gost3410_2012_512CryptoServiceProvider ресурсы и, по выбору, управляемые.
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
bool | disposing | true, чтобы освободить и управляемые, и неупавляемые ресурсы; false, чтобы освободить только неуправляемые. |
Overrides
ExportCspBlob()
Экспортирует параметры алгоритма в BLOB.
Declaration
public byte[] ExportCspBlob()
Returns
Type | Description |
---|---|
byte[] | BLOB со структурой описанной для CSP. |
Remarks
Экспорт секретного ключа не поддерживается.
Exceptions
Type | Condition |
---|---|
CryptographicException | При экспорте секретного ключа. |
ExportParameters()
Экспорт параметров Gost3410Parameters алгоритма ГОСТ Р 34.10-2012 512 в CSP.
Declaration
public override Gost3410Parameters ExportParameters()
Returns
Type | Description |
---|---|
Gost3410Parameters | Параметры в виде структуры Gost3410Parameters |
Overrides
Remarks
По соображениям безопасности в данной сборке при экспорте секретного ключа всегда возбуждает исключение CryptographicException.
ImportCertificatePublicKey(byte[])
Импорт открытого ключа из структуры CERT_PUBLIC_KEY_INFO
Declaration
public void ImportCertificatePublicKey(byte[] publicKeyInfo)
Parameters
Type | Name | Description |
---|---|---|
byte[] | publicKeyInfo |
ImportCspBlob(byte[])
Импорт параметров алгоритма ГОСТ Р 34.10-2012 256.
Declaration
public void ImportCspBlob(byte[] rawData)
Parameters
Type | Name | Description |
---|---|---|
byte[] | rawData | Байтовый массив, содержащий ключ и параметры алгоритма ГОСТ Р 34.10-2012 256. |
Remarks
Импорт секретного ключа не поддерживается.
Exceptions
Type | Condition |
---|---|
CryptographicException | При экспорте секретного ключа. |
ImportCspBlob(byte[], byte[])
Импорт параметров алгоритма ГОСТ Р 34.10-2012 512.
Declaration
public void ImportCspBlob(byte[] keyBlob, byte[] paramBlob)
Parameters
Type | Name | Description |
---|---|---|
byte[] | keyBlob | Байтовый массив, содержащий ключ алгоритма ГОСТ Р 34.10-2012 512 без параметров. |
byte[] | paramBlob | Байтовый массив, параметры ключа алгоритма ГОСТ Р 34.10-2012 512 без параметров. |
Remarks
Импорт секретного ключа не поддерживается.
Exceptions
Type | Condition |
---|---|
CryptographicException | При экспорте секретного ключа. |
ImportParameters(Gost3410Parameters)
Импорт параметров Gost3410Parameters алгоритма ГОСТ Р 34.10-2012 512.
Declaration
public override void ImportParameters(Gost3410Parameters parameters)
Parameters
Type | Name | Description |
---|---|---|
Gost3410Parameters | parameters | Параметры алгоритма ГОСТ Р 34.10-2012 512 |
Overrides
Remarks
В данной сборке при импорте секретного ключа всегда возбуждает исключение CryptographicException.
Exceptions
Type | Condition |
---|---|
CryptographicException | При импорте секретного ключа. |
ImportPublicKey(ReadOnlySpan<byte>, ReadOnlySpan<byte>)
Imports encoded public key.
Declaration
public override void ImportPublicKey(ReadOnlySpan<byte> encodedPublicKey, ReadOnlySpan<byte> encodedParameters)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlySpan<byte> | encodedPublicKey | The encoded public key. |
ReadOnlySpan<byte> | encodedParameters | The encoded parameters. |
Overrides
SelectContainer(bool, bool, nint)
Вывод диалогового окна выбора контейнера и получение имени выбранного контейнера
Declaration
public static string SelectContainer(bool fullyQualifiedContainerName, bool machine, nint parent)
Parameters
Type | Name | Description |
---|---|---|
bool | fullyQualifiedContainerName | Вернуть полностью кваллифицированное имя контейнера. |
bool | machine | Использовать локальное хранилище компьютера ( true) или пользователя ( true). |
nint | parent | HWND родительского окна или IntPtr.Zero, для выдачи окна без родителя. |
Returns
Type | Description |
---|---|
string | Строку имени контейнера. |
SetContainerPassword(SecureString)
Установка пароля доступа к контейнеру.
Declaration
public void SetContainerPassword(SecureString password)
Parameters
Type | Name | Description |
---|---|---|
SecureString | password | Пароль доступа к контейнеру. |
Remarks
Если ключ уже загружен в память, то поведение данной функции зависит от провайдера, обычно проверяется соответствие передаваемого пароля и пароля доступа на контейнер.
Если ключ не был загружен в память, данная функция не проверяет корректность вводимого пароля, а только запоминает его. Проверка правильности введенного пароля будет происходить при доступе к ключу, например при операции подписи.
TrySignHashCore(ReadOnlySpan<byte>, Span<byte>, out int)
Attempts to create the ECDSA signature for the specified hash value in the indicated format into the provided buffer.
Declaration
protected override bool TrySignHashCore(ReadOnlySpan<byte> rgbHash, Span<byte> signature, out int bytesWritten)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlySpan<byte> | rgbHash | |
Span<byte> | signature | |
int | bytesWritten | When this method returns, contains a value that indicates the number
of bytes written to |
Returns
Type | Description |
---|---|
bool | true if |
Overrides
Exceptions
Type | Condition |
---|---|
CryptographicException | An error occurred in the signing operation. |
VerifyHashCore(ReadOnlySpan<byte>, ReadOnlySpan<byte>)
Проверяет подлинность подписи для указанного значения хэш.
Declaration
protected override bool VerifyHashCore(ReadOnlySpan<byte> rgbHash, ReadOnlySpan<byte> rgbSignature)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlySpan<byte> | rgbHash | Хэш, для которого проверяется подпись. |
ReadOnlySpan<byte> | rgbSignature | Подпись, подлинность которой необходимо проверить. |
Returns
Type | Description |
---|---|
bool |
Overrides
Remarks
Алгоритм вычисления хэш для ГОСТ Р 34.10-2012 256 всегда ГОСТ Р 34.11-2012 256.