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

注釈

このクラスは、Windows CNG ライブラリとのプラットフォーム相互運用を行う場合にのみ直接使用する必要があります。 プラットフォーム相互運用が必要ない場合は、特定の派生実装ではなく、 ECDsa.Create ファクトリ メソッドを使用する必要があります。

コンストラクター

名前 説明
ECDsaCng()

ランダムなキー ペアを使用して、 ECDsaCng クラスの新しいインスタンスを初期化します。

ECDsaCng(CngKey)

指定したECDsaCng オブジェクトを使用して、CngKey クラスの新しいインスタンスを初期化します。

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)

適用対象