ECDsaCng クラス

定義

楕円曲線デジタル署名アルゴリズム (ECDSA) の Cryptography Next Generation (CNG) 実装を提供します。Provides a Cryptography Next Generation (CNG) implementation of the Elliptic Curve Digital Signature Algorithm (ECDSA).

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 クラスを使用してメッセージに署名する方法と、署名を使用してメッセージが変更されていないことを確認する方法を示しています。The following example shows how to use the ECDsaCng class to sign a message and how to use the signature to verify that the message has not been altered.

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

注釈

このクラスは、Windows CNG ライブラリとプラットフォームの相互運用を行う場合にのみ、直接使用する必要があります。This class should only be used directly when doing platform interop with the Windows CNG library. プラットフォームの相互運用が不要な場合は、特定の派生実装ではなく、ECDsa.Create ファクトリメソッドを使用する必要があります。When platform interop is not needed, you should use the ECDsa.Create factory methods instead of a specific derived implementation.

コンストラクター

ECDsaCng()

ランダムなキーのペアで、ECDsaCng クラスの新しいインスタンスを初期化します。Initializes a new instance of the ECDsaCng class with a random key pair.

ECDsaCng(CngKey)

指定した ECDsaCng オブジェクトを使用して、CngKey クラスの新しいインスタンスを初期化します。Initializes a new instance of the ECDsaCng class by using the specified CngKey object.

ECDsaCng(ECCurve)

指定した曲線に対して生成された公開/秘密キー ペアの ECDsaCng クラスの新しいインスタンスを初期化します。Initializes a new instance of the ECDsaCng class whose public/private key pair is generated over the specified curve.

ECDsaCng(Int32)

指定したターゲット キー サイズを使用して、ECDsaCng クラスの新しいインスタンスを初期化します。Initializes a new instance of the ECDsaCng class with a specified target key size.

フィールド

KeySizeValue

非対称アルゴリズムで使用されるキー モジュラスのサイズをビット単位で表します。Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(継承元 AsymmetricAlgorithm)
LegalKeySizesValue

非対称アルゴリズムでサポートされているキー サイズを指定します。Specifies the key sizes that are supported by the asymmetric algorithm.

(継承元 AsymmetricAlgorithm)

プロパティ

HashAlgorithm

データの署名および検証を行う際に使用するハッシュ アルゴリズムを取得または設定します。Gets or sets the hash algorithm to use when signing and verifying data.

Key

データの署名および検証を行うときに使用するキーを取得または設定します。Gets or sets the key to use when signing and verifying data.

KeyExchangeAlgorithm

キー交換アルゴリズムの名前を取得します。Gets the name of the key exchange algorithm.

(継承元 ECDsa)
KeySize

非対称アルゴリズムで使用されるキー モジュラスのサイズをビット単位で取得または設定します。Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

LegalKeySizes

KeySize プロパティ セッターでサポートされているキー サイズ (ビット単位) を取得します。Gets the key sizes, in bits, that are supported by the KeySize property setter.

SignatureAlgorithm

署名アルゴリズムの名前を取得します。Gets the name of the signature algorithm.

(継承元 ECDsa)

メソッド

Clear()

AsymmetricAlgorithm クラスによって使用されているすべてのリソースを解放します。Releases all resources used by the AsymmetricAlgorithm class.

(継承元 AsymmetricAlgorithm)
Dispose()

AsymmetricAlgorithm クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(継承元 AsymmetricAlgorithm)
Dispose(Boolean)

AsymmetricAlgorithm クラスによって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(継承元 AsymmetricAlgorithm)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
ExportECPrivateKey()

現在のキーを ECPrivateKey 形式でエクスポートします。Exports the current key in the ECPrivateKey format.

(継承元 ECDsa)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

現在のキーを PKCS# 8 EncryptedPrivateKeyInfo 形式で、バイトベースのパスワードを使用してエクスポートします。Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(継承元 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

現在のキーを PKCS# 8 EncryptedPrivateKeyInfo 形式で、char ベースのパスワードを使用してエクスポートします。Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(継承元 AsymmetricAlgorithm)
ExportExplicitParameters(Boolean)

楕円曲線暗号 (ECC) オブジェクトによって使用されているキーと明示的な曲線パラメーターを ECParameters オブジェクトにエクスポートします。Exports the key and explicit curve parameters used by the Elliptic curve cryptography (ECC) object into an ECParameters object.

ExportParameters(Boolean)

楕円曲線暗号 (ECC) オブジェクトによって使用されているキーを ECParameters オブジェクトにエクスポートします。Exports the key used by the Elliptic curve cryptography (ECC) object into an ECParameters object. 名前付き曲線としてキーが作成された場合は、Curve フィールドには名前付き曲線パラメーターが含まれます。それ以外の場合は、明示的なパラメーターが含まれます。If the key was created as a named curve, the Curve field contains named curve parameters; otherwise, it contains explicit parameters.

ExportPkcs8PrivateKey()

現在のキーを PKCS# 8 PrivateKeyInfo 形式でエクスポートします。Exports the current key in the PKCS#8 PrivateKeyInfo format.

(継承元 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

現在のキーの公開キーの部分を、X.509 SubjectPublicKeyInfo 形式でエクスポートします。Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(継承元 AsymmetricAlgorithm)
FromXmlString(String)

このメソッドは実装されていません。This method is not implemented.

FromXmlString(String, ECKeyXmlFormat)

指定した形式を使用して、XML 文字列からキー情報を逆シリアル化します。Deserializes the key information from an XML string by using the specified format.

GenerateKey(ECCurve)

現在のキーに代えて、指定した曲線の新しい一時的な公開/秘密キーの組を生成します。Generates a new ephemeral public/private key pair for the specified curve, replacing the current key.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

派生クラスでオーバーライドされると、指定したハッシュ アルゴリズムを使用して、指定したバイト配列部分のハッシュ値が計算されます。When overridden in a derived class, computes the hash value of the specified portion of a byte array by using the specified hashing algorithm.

(継承元 ECDsa)
HashData(Stream, HashAlgorithmName)

派生クラスでオーバーライドされると、指定したハッシュ アルゴリズムを使用して、指定したバイナリ ストリームのハッシュ値が計算されます。When overridden in a derived class, computes the hash value of the specified binary stream by using the specified hashing algorithm.

(継承元 ECDsa)
ImportECPrivateKey(ReadOnlySpan<Byte>, Int32)

ECPrivateKey 構造体から公開/秘密キー ペアをインポートし、このオブジェクトのキーを置き換えます。Imports the public/private keypair from an ECPrivateKey structure, replacing the keys for this object.

(継承元 ECDsa)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

バイトベースのパスワードを使用して暗号化解除した後に、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キー ペアをインポートし、このオブジェクトのキーを置き換えます。Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a byte-based password, replacing the keys for this object.

(継承元 ECDsa)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

char ベースのパスワードを使用して暗号化解除した後に、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キー ペアをインポートし、このオブジェクトのキーを置き換えます。Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a char-based password, replacing the keys for this object.

(継承元 ECDsa)
ImportParameters(ECParameters)

パラメーター構造体に新しい CngKey を作成し、現在のインスタンスが扱っている既存のキーを置き換えます。Replaces the existing key that the current instance is working with by creating a new CngKey for the parameters structure.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

暗号化解除した後に、PKCS#8 PrivateKeyInfo 構造体から公開/秘密キー ペアをインポートし、このオブジェクトのキーを置き換えます。Imports the public/private keypair from a PKCS#8 PrivateKeyInfo structure after decryption, replacing the keys for this object.

(継承元 ECDsa)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

暗号化解除した後に、X.509 SubjectPublicKeyInfo 構造体から公開キーをインポートし、このオブジェクトのキーを置き換えます。Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

(継承元 ECDsa)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SignData(Byte[])

指定したデータの署名を生成します。Generates a signature for the specified data.

SignData(Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、指定したバイト配列のハッシュ値を計算し、結果のハッシュ値に署名します。Computes the hash value of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(継承元 ECDsa)
SignData(Byte[], Int32, Int32)

指定したオフセットを始点とする指定した長さのデータに対するデジタル署名を生成します。Generates a digital signature for the specified length of data, beginning at the specified offset.

SignData(Byte[], Int32, Int32, HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、指定したバイト配列の一部分のハッシュ値を計算し、結果のハッシュ値に署名します。Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.

(継承元 ECDsa)
SignData(Stream)

指定したデータ ストリームを最後まで読み取って、そのストリームの署名を生成します。Generates a signature for the specified data stream, reading to the end of the stream.

SignData(Stream, HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、指定したストリームのハッシュ値を計算し、結果のハッシュ値に署名します。Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

(継承元 ECDsa)
SignHash(Byte[])

指定したハッシュ値の署名を生成します。Generates a signature for the specified hash value.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
ToXmlString(Boolean)

このメソッドは実装されていません。This method is not implemented.

ToXmlString(ECKeyXmlFormat)

指定した形式を使用して、キー情報を XML 文字列にシリアル化します。Serializes the key information to an XML string by using the specified format.

TryExportECPrivateKey(Span<Byte>, Int32)

現在のキーを ECPrivateKey 形式で指定のバッファーにエクスポートすることを試みます。Attempts to export the current key in the ECPrivateKey format into a provided buffer.

(継承元 ECDsa)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

バイトベースのパスワードを使用して、現在のキーを PKCS#8 EncryptedPrivateKeyInfo 形式で指定のバッファーにエクスポートすることを試みます。Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

(継承元 ECDsa)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

char ベースのパスワードを使用して、PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを、指定されたバッファーにエクスポートすることを試みます。Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

(継承元 ECDsa)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

PKCS#8 PrivateKeyInfo 形式の現在のキーを、指定のバッファーにエクスポートすることを試みます。Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

(継承元 ECDsa)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

現在のキーを X.509 SubjectPublicKeyInfo 形式で指定のバッファーにエクスポートすることを試みます。Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

(継承元 ECDsa)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

指定したハッシュ アルゴリズムを使用して、指定した宛先に、指定したバイト型の読み取り専用スパンのハッシュ値の計算を試みます。Attempts to compute the hash value of the specified read-only span of bytes into the provided destination by using the specified hashing algorithm.

(継承元 ECDsa)
TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

指定したハッシュ アルゴリズムと現在のキーを使用して、指定した宛先に、指定したバイト型の読み取り専用スパン用の ECDSA デジタル署名の計算を試みます。Attempts to compute the ECDSA digital signature for the specified read-only span of bytes into the provided destination by using the specified hashing algorithm and the current key.

(継承元 ECDsa)
TrySignHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

現在のキーを使用して、指定した宛先に、データ ハッシュを表す指定したバイト型の読み取り専用スパン用の ECDSA デジタル署名の計算を試みます。Attempts to compute the ECDSA digital signature for the specified read-only span of bytes representing a data hash into the provided destination by using the current key.

(継承元 ECDsa)
VerifyData(Byte[], Byte[])

指定したデータのデジタル署名を検証します。Verifies the digital signature of the specified data.

VerifyData(Byte[], Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、現在のキーおよび指定したデータに対してデジタル署名が適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided data with a specified hash algorithm.

(継承元 ECDsa)
VerifyData(Byte[], Int32, Int32, Byte[])

指定したオフセットを始点とする指定した長さのデータに対する署名を検証します。Verifies a signature for the specified length of data, beginning at the specified offset.

VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、現在のキーおよびデータの指定した部分に対して、デジタル署名が適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided portion of data with a specified hash algorithm.

(継承元 ECDsa)
VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、現在のキーおよび指定したデータに対してデジタル署名が適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided data with a specified hash algorithm.

(継承元 ECDsa)
VerifyData(Stream, Byte[])

指定したデータ ストリームを最後まで読み取って、そのストリームのデジタル署名を検証します。Verifies the digital signature of the specified data stream, reading to the end of the stream.

VerifyData(Stream, Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、現在のキーおよび指定したデータに対してデジタル署名が適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided data with a specified hash algorithm.

(継承元 ECDsa)
VerifyHash(Byte[], Byte[])

デジタル署名が、現在のキーおよび指定したデータ ハッシュに対して適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided data hash.

VerifyHash(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

デジタル署名が、現在のキーおよび指定したデータ ハッシュに対して適切であることを確認します。Verifies that a digital signature is appropriate for the current key and provided data hash.

(継承元 ECDsa)

明示的なインターフェイスの実装

IDisposable.Dispose()

このメンバーの詳細については、「Dispose()」をご覧ください。For a description of this member, see Dispose().

(継承元 AsymmetricAlgorithm)

適用対象