ECDsaCng Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет реализацию алгоритма цифровой подписи эллиптической кривой (ECDSA) следующего поколения (CNG).
public ref class ECDsaCng sealed : System::Security::Cryptography::ECDsa
public sealed class ECDsaCng : System.Security.Cryptography.ECDsa
type ECDsaCng = class
inherit ECDsa
Public NotInheritable Class ECDsaCng
Inherits ECDsa
- Наследование
Примеры
В следующем примере показано, как использовать класс для подписи сообщения и как использовать ECDsaCng сигнатуру для проверки того, что сообщение не было изменено.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
class Alice
{
public static void Main(string[] args)
{
Bob bob = new Bob();
using (ECDsaCng dsa = new ECDsaCng())
{
dsa.HashAlgorithm = CngAlgorithm.Sha256;
bob.key = dsa.Key.Export(CngKeyBlobFormat.EccPublicBlob);
byte[] data = new byte[] { 21, 5, 8, 12, 207 };
byte[] signature = dsa.SignData(data);
bob.Receive(data, signature);
}
}
}
public class Bob
{
public byte[] key;
public void Receive(byte[] data, byte[] signature)
{
using (ECDsaCng ecsdKey = new ECDsaCng(CngKey.Import(key, CngKeyBlobFormat.EccPublicBlob)))
{
if (ecsdKey.VerifyData(data, signature))
Console.WriteLine("Data is good");
else
Console.WriteLine("Data is bad");
}
}
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Class Alice
Public Shared Sub Main(ByVal args() As String)
Dim bob As New Bob()
If (True) Then
Using dsa As New ECDsaCng()
dsa.HashAlgorithm = CngAlgorithm.Sha256
bob.key = dsa.Key.Export(CngKeyBlobFormat.EccPublicBlob)
Dim data() As Byte = {21, 5, 8, 12, 207}
Dim signature As Byte() = dsa.SignData(data)
bob.Receive(data, signature)
End Using
End If
End Sub
End Class
Public Class Bob
Public key() As Byte
Public Sub Receive(ByVal data() As Byte, ByVal signature() As Byte)
Using ecsdKey As New ECDsaCng(CngKey.Import(key, CngKeyBlobFormat.EccPublicBlob))
If ecsdKey.VerifyData(data, signature) Then
Console.WriteLine("Data is good")
Else
Console.WriteLine("Data is bad")
End If
End Using
End Sub
End Class
Комментарии
Этот класс следует использовать только непосредственно при выполнении взаимодействия платформы с библиотекой CNG Windows. Если взаимодействие платформы не требуется, вместо конкретной производной реализации следует использовать ECDsa.Create методы фабрики.
Конструкторы
| Имя | Описание |
|---|---|
| ECDsaCng() |
Инициализирует новый экземпляр класса с помощью случайной пары ключей ECDsaCng . |
| ECDsaCng(CngKey) |
Инициализирует новый экземпляр класса с помощью указанного ECDsaCngCngKey объекта. |
| ECDsaCng(ECCurve) |
Инициализирует новый экземпляр класса, пара открытого и закрытого ECDsaCng ключа которого создается по заданной кривой. |
| ECDsaCng(Int32) |
Инициализирует новый экземпляр ECDsaCng класса с указанным целевым размером ключа. |
Поля
| Имя | Описание |
|---|---|
| KeySizeValue |
Представляет размер в битах модуля ключа, используемого асимметричным алгоритмом. (Унаследовано от AsymmetricAlgorithm) |
| LegalKeySizesValue |
Указывает размеры ключей, поддерживаемые асимметричным алгоритмом. (Унаследовано от AsymmetricAlgorithm) |
Свойства
| Имя | Описание |
|---|---|
| HashAlgorithm |
Возвращает или задает хэш-алгоритм, используемый при подписи и проверке данных. |
| Key |
Возвращает или задает ключ, используемый при подписи и проверке данных. |
| KeyExchangeAlgorithm |
Возвращает имя алгоритма обмена ключами. (Унаследовано от ECDsa) |
| KeySize |
Возвращает или задает размер в битах модуля ключа, используемого асимметричным алгоритмом. (Унаследовано от AsymmetricAlgorithm) |
| LegalKeySizes |
Возвращает размеры ключей, поддерживаемые асимметричным алгоритмом. (Унаследовано от AsymmetricAlgorithm) |
| SignatureAlgorithm |
Возвращает имя алгоритма подписи. (Унаследовано от ECDsa) |
Методы
| Имя | Описание |
|---|---|
| Clear() |
Освобождает все ресурсы, используемые классом AsymmetricAlgorithm . (Унаследовано от AsymmetricAlgorithm) |
| Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса AsymmetricAlgorithm. (Унаследовано от AsymmetricAlgorithm) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые классом AsymmetricAlgorithm , и при необходимости освобождает управляемые ресурсы. (Унаследовано от AsymmetricAlgorithm) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| ExportExplicitParameters(Boolean) |
Экспортирует ключевые и явные параметры кривой, используемые объектом шифрования эллиптических кривых (ECC) в ECParameters объект. |
| ExportParameters(Boolean) |
Экспортирует ключ, используемый объектом шифрования эллиптических кривых (ECC) в ECParameters объект. Если ключ был создан как именованной кривой, Curve поле содержит именованные параметры кривой; в противном случае оно содержит явные параметры. |
| FromXmlString(String, ECKeyXmlFormat) |
Десериализация ключевых сведений из XML-строки с помощью указанного формата. |
| FromXmlString(String) |
Этот метод не реализуется. |
| GenerateKey(ECCurve) |
Создает новую эфемерную пару открытого и закрытого ключа для указанной кривой, заменив текущий ключ. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| HashData(Byte[], Int32, Int32, HashAlgorithmName) |
При переопределении в производном классе вычисляет хэш-значение указанной части массива байтов с помощью указанного алгоритма хэширования. (Унаследовано от ECDsa) |
| HashData(Stream, HashAlgorithmName) |
При переопределении в производном классе вычисляет хэш-значение указанного двоичного потока с помощью указанного алгоритма хэширования. (Унаследовано от ECDsa) |
| ImportParameters(ECParameters) |
Заменяет существующий ключ, с которым работает текущий экземпляр, создав новую CngKey для структуры параметров. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SignData(Byte[], HashAlgorithmName) |
Вычисляет хэш-значение указанного массива байтов с помощью указанного алгоритма хэша и подписывает полученное хэш-значение. (Унаследовано от ECDsa) |
| SignData(Byte[], Int32, Int32, HashAlgorithmName) |
Вычисляет хэш-значение части указанного массива байтов с помощью указанного алгоритма хэша и подписывает полученное хэш-значение. (Унаследовано от ECDsa) |
| SignData(Byte[], Int32, Int32) |
Создает цифровую подпись для указанной длины данных, начиная с указанного смещения. |
| SignData(Byte[]) |
Создает подпись для указанных данных. |
| SignData(Stream, HashAlgorithmName) |
Вычисляет хэш-значение указанного потока с помощью указанного хэш-алгоритма и подписывает полученное хэш-значение. (Унаследовано от ECDsa) |
| SignData(Stream) |
Создает сигнатуру для указанного потока данных, считывая до конца потока. |
| SignHash(Byte[]) |
Создает сигнатуру для указанного хэш-значения. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| ToXmlString(Boolean) |
Этот метод не реализуется. |
| ToXmlString(ECKeyXmlFormat) |
Сериализует сведения ключа в XML-строку с помощью указанного формата. |
| VerifyData(Byte[], Byte[], HashAlgorithmName) |
Проверяет, подходит ли цифровая подпись для текущего ключа и предоставляет данные с указанным хэш-алгоритмом. (Унаследовано от ECDsa) |
| VerifyData(Byte[], Byte[]) |
Проверяет цифровую подпись указанных данных. |
| VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName) |
Проверяет, подходит ли цифровая подпись для текущего ключа и предоставляет часть данных с указанным хэш-алгоритмом. (Унаследовано от ECDsa) |
| VerifyData(Byte[], Int32, Int32, Byte[]) |
Проверяет подпись для указанной длины данных, начиная с указанного смещения. |
| VerifyData(Stream, Byte[], HashAlgorithmName) |
Проверяет, подходит ли цифровая подпись для текущего ключа и предоставляет данные с указанным хэш-алгоритмом. (Унаследовано от ECDsa) |
| VerifyData(Stream, Byte[]) |
Проверяет цифровую подпись указанного потока данных, считывая до конца потока. |
| VerifyHash(Byte[], Byte[]) |
Проверяет, подходит ли цифровая подпись для текущего ключа и указан хэш данных. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IDisposable.Dispose() |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Описание этого элемента см. в разделе Dispose(). (Унаследовано от AsymmetricAlgorithm) |