DSA クラス

定義

デジタル署名アルゴリズム (DSA) のすべての実装が継承する必要がある抽象基本クラスを表します。

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
継承
派生
属性

注釈

DSA クラスと派生クラスを使用して、データの整合性を保護するのに役立つデジタル署名を作成できます。 DSACryptoServiceProviderは、このクラスの実装を提供します。

公開キー システムを使用してメッセージにデジタル署名するには、送信者が最初にメッセージにハッシュ関数を適用してメッセージ ダイジェストを作成します。 送信者は、送信者の秘密キーを使用してメッセージ ダイジェストを暗号化し、送信者の個人署名を作成します。 メッセージと署名を受信すると、受信者は送信者の公開キーを使用して署名を復号化してメッセージ ダイジェストを回復し、送信者が使用したのと同じハッシュ アルゴリズムを使用してメッセージをハッシュします。 受信側が計算するメッセージ ダイジェストが送信者から受信したメッセージ ダイジェストと正確に一致する場合、受信側は、転送中にメッセージが変更されなかったと見なすことができます。 送信者の公開キーは一般的な知識であるため、署名はだれでも検証できることに注意してください。

Important

DSA アルゴリズムの作成者は、そのサポートを取り消しました。 RSA クラスの代わりに、ECDsa クラスまたは DSA クラスを使用することを検討してください。 DSAは、レガシ アプリケーションとデータとの互換性のためにのみ使用します。

DSA アルゴリズムには 2 つの異なるバージョンが存在します。 FIPS 186-2 で説明されている元の形式では、ハッシュ アルゴリズムとして SHA-1 を使用する必要があり、512 ビットから 1024 ビットまでのキー長を 64 ビットずつサポートします。 アルゴリズムの更新バージョンが FIPS 186-3 で説明され、SHA-2 ファミリのハッシュ アルゴリズムの使用が可能になり、2048 ビット キーと 3072 ビット キーのサポートが追加されました。 この型のすべての派生実装で、DSA に対する FIPS 186-3 の機能強化がサポートされているわけではありません。 サポートは、 LegalKeySizes プロパティを使用して検出できます。

コンストラクター

名前 説明
DSA()

DSA クラスの新しいインスタンスを初期化します。

フィールド

名前 説明
KeySizeValue

非対称アルゴリズムで使用されるキーの剰余のサイズをビット単位で表します。

(継承元 AsymmetricAlgorithm)
LegalKeySizesValue

非対称アルゴリズムでサポートされるキー サイズを指定します。

(継承元 AsymmetricAlgorithm)

プロパティ

名前 説明
KeyExchangeAlgorithm

派生クラスでオーバーライドされると、キー交換アルゴリズムの名前を取得します。 それ以外の場合は、 NotImplementedExceptionをスローします。

(継承元 AsymmetricAlgorithm)
KeySize

非対称アルゴリズムで使用されるキーの剰余のサイズをビット単位で取得または設定します。

(継承元 AsymmetricAlgorithm)
LegalKeySizes

非対称アルゴリズムでサポートされているキー サイズを取得します。

(継承元 AsymmetricAlgorithm)
SignatureAlgorithm

派生クラスで実装された場合は、署名アルゴリズムの名前を取得します。 それ以外の場合は、常に NotImplementedExceptionをスローします。

(継承元 AsymmetricAlgorithm)

メソッド

名前 説明
Clear()

AsymmetricAlgorithm クラスによって使用されるすべてのリソースを解放します。

(継承元 AsymmetricAlgorithm)
Create()

非対称アルゴリズムの実行に使用される既定の暗号化オブジェクトを作成します。

Create(DSAParameters)

指定した DSA キー パラメーターを使用して、新しいエフェメラル DSA キーを作成します。

Create(Int32)

指定したキー サイズを持つ新しいエフェメラル DSA キーを作成します。

Create(String)
古い.

非対称アルゴリズムの実行に使用する指定された暗号化オブジェクトを作成します。

CreateSignature(Byte[], DSASignatureFormat)

指定された形式で指定されたハッシュ値の DSA 署名を作成します。

CreateSignature(Byte[])

派生クラスでオーバーライドされた場合は、指定したハッシュ値の DSA シグネチャを作成します。

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

指定された形式で指定されたハッシュ値の DSA 署名を作成します。

Dispose()

AsymmetricAlgorithm クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

(継承元 AsymmetricAlgorithm)
Dispose(Boolean)

AsymmetricAlgorithm クラスによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

(継承元 AsymmetricAlgorithm)
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

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

PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーをバイトベースのパスワードでエクスポートします。

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

現在のキーを PKCS#8 EncryptedPrivateKeyInfo 形式で char ベースのパスワードでエクスポートします。

(継承元 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを、PEM でエンコードされたバイトベースのパスワードでエクスポートします。

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

現在のキーを PKCS#8 EncryptedPrivateKeyInfo 形式で、文字ベースのパスワード PEM でエンコードしてエクスポートします。

(継承元 AsymmetricAlgorithm)
ExportParameters(Boolean)

派生クラスでオーバーライドされると、 DSAParametersをエクスポートします。

ExportPkcs8PrivateKey()

PKCS#8 PrivateKeyInfo 形式で現在のキーをエクスポートします。

(継承元 AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

PKCS#8 PrivateKeyInfo 形式の PEM でエンコードされた現在のキーをエクスポートします。

(継承元 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

現在のキーの公開キー部分を X.509 SubjectPublicKeyInfo 形式でエクスポートします。

(継承元 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

現在のキーの公開キー部分を、PEM でエンコードされた X.509 SubjectPublicKeyInfo 形式でエクスポートします。

(継承元 AsymmetricAlgorithm)
FromXmlString(String)

XML 文字列から DSA オブジェクトを再構築します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetMaxSignatureSize(DSASignatureFormat)

指定された形式でこのキーによって生成される署名の最大サイズ (バイト単位) を取得します。

GetType()

現在のインスタンスの Type を取得します。

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

派生クラスでオーバーライドされた場合は、指定したハッシュ アルゴリズムを使用して、バイト配列の指定した部分のハッシュ値を計算します。

HashData(Stream, HashAlgorithmName)

派生クラスでオーバーライドされると、指定したハッシュ アルゴリズムを使用して、指定したバイナリ ストリームのハッシュ値を計算します。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

バイトベースのパスワードで復号化した後、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キーペアをインポートし、このオブジェクトのキーを置き換えます。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

派生クラスでオーバーライドされると、バイトベースのパスワードで復号化した後、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キーペアをインポートし、このオブジェクトのキーを置き換えます。

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

このオブジェクトのキーを置き換えて、文字ベースのパスワードで暗号化を解除した後、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キーペアをインポートします。

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

派生クラスでオーバーライドされると、char ベースのパスワードで復号化した後、PKCS#8 EncryptedPrivateKeyInfo 構造体から公開/秘密キーペアをインポートし、このオブジェクトのキーを置き換えます。

(継承元 AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

暗号化された RFC 7468 PEM でエンコードされた秘密キーをインポートし、このオブジェクトのキーを置き換えます。

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

暗号化された RFC 7468 PEM でエンコードされた秘密キーをインポートし、このオブジェクトのキーを置き換えます。

ImportFromPem(ReadOnlySpan<Char>)

RFC 7468 PEM でエンコードされたキーをインポートし、このオブジェクトのキーを置き換えます。

ImportParameters(DSAParameters)

派生クラスでオーバーライドされると、指定した DSAParametersをインポートします。

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

復号化後に PKCS#8 PrivateKeyInfo 構造体から公開/秘密キーペアをインポートし、このオブジェクトのキーを置き換えます。

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

派生クラスでオーバーライドされると、復号化後に PKCS#8 PrivateKeyInfo 構造体から公開/秘密キーペアをインポートし、このオブジェクトのキーを置き換えます。

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

復号化後に X.509 SubjectPublicKeyInfo 構造体から公開キーをインポートし、このオブジェクトのキーを置き換えます。

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

派生クラスでオーバーライドされると、復号化後に X.509 SubjectPublicKeyInfo 構造体から公開キーをインポートし、このオブジェクトのキーを置き換えます。

(継承元 AsymmetricAlgorithm)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

指定したデータのハッシュ値を計算し、指定した署名形式を使用して署名します。

SignData(Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、指定したバイト配列のハッシュ値を計算し、結果のハッシュ値に署名します。

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

指定したデータのハッシュ値を計算し、指定した署名形式を使用して署名します。

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

指定したハッシュ アルゴリズムを使用して、指定したバイト配列の一部のハッシュ値を計算し、結果のハッシュ値に署名します。

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

指定したデータのハッシュ値を計算し、指定した署名形式を使用して署名します。

SignData(Stream, HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して、指定したストリームのハッシュ値を計算し、結果のハッシュ値に署名します。

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

指定したデータのハッシュ値を計算し、指定した署名形式を使用して署名します。

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

指定したデータのハッシュ値を計算し、指定した署名形式を使用して署名します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
ToXmlString(Boolean)

現在の DSA オブジェクトの XML 文字列形式を作成して返します。

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

指定したハッシュ値の DSA 署名を指定された形式で作成し、指定されたバッファーに配置しようとします。

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32)

指定したハッシュの DSA 署名を指定されたバッファーに作成しようとします。

TryCreateSignatureCore(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

指定したハッシュ値の DSA 署名を指定された形式で作成し、指定されたバッファーに配置しようとします。

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

バイトベースのパスワードを使用して、PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

派生クラスでオーバーライドされると、バイトベースのパスワードを使用して、PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

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

文字ベースのパスワードを使用して、PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

派生クラスでオーバーライドされると、文字ベースのパスワードを使用して、PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

(継承元 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

PKCS#8 EncryptedPrivateKeyInfo 形式の現在のキーを、PEM でエンコードされたバイトベースのパスワードでエクスポートしようとします。

(継承元 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

現在のキーを PKCS#8 EncryptedPrivateKeyInfo 形式で、文字ベースのパスワード PEM でエンコードしてエクスポートします。

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

PKCS#8 PrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

派生クラスでオーバーライドされると、PKCS#8 PrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

(継承元 AsymmetricAlgorithm)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

PEM でエンコードされた PKCS#8 PrivateKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

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

X.509 SubjectPublicKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

派生クラスでオーバーライドされると、X.509 SubjectPublicKeyInfo 形式の現在のキーを指定されたバッファーにエクスポートしようとします。

(継承元 AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

PEM でエンコードされた X.509 SubjectPublicKeyInfo 形式の現在のキーを、指定されたバッファーにエクスポートしようとします。

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

指定されたデータのハッシュ値を指定されたバッファーに計算しようとします。

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

指定されたデータの DSA 署名を指定された形式で作成し、指定されたバッファーに配置しようとします。

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

指定したデータの DSA 署名を指定されたバッファーに作成しようとします。

TrySignDataCore(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

指定されたデータの DSA 署名を指定された形式で作成し、指定されたバッファーに配置しようとします。

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

指定されたデータに対してデジタル署名が有効であることを確認します。

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

指定したハッシュ アルゴリズムを使用して指定したデータのハッシュ値を計算し、指定された署名と比較することで、デジタル署名が有効であることを確認します。

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

指定されたデータに対してデジタル署名が有効であることを確認します。

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

指定したハッシュ アルゴリズムを使用してバイト配列の一部のデータのハッシュ値を計算し、指定されたシグネチャと比較することで、デジタル署名が有効であることを確認します。

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

指定されたデータに対してデジタル署名が有効であることを確認します。

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName)

デジタル署名が有効であることを確認するには、指定したハッシュ アルゴリズムを使用してバイトスパンのデータのハッシュ値を計算し、指定された署名と比較します。

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

指定されたデータに対してデジタル署名が有効であることを確認します。

VerifyData(Stream, Byte[], HashAlgorithmName)

指定したハッシュ アルゴリズムを使用して指定したストリームのハッシュ値を計算し、指定された署名と比較することで、デジタル署名が有効であることを確認します。

VerifyDataCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

指定されたデータに対してデジタル署名が有効であることを確認します。

VerifyDataCore(Stream, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

指定されたデータに対してデジタル署名が有効であることを確認します。

VerifySignature(Byte[], Byte[], DSASignatureFormat)

指定されたハッシュに対してデジタル署名が有効であることを確認します。

VerifySignature(Byte[], Byte[])

派生クラスでオーバーライドされた場合は、指定したデータの DSA シグネチャを検証します。

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

指定されたハッシュに対してデジタル署名が有効であることを確認します。

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

指定されたデータ ハッシュに対してデジタル署名が有効であることを確認します。

VerifySignatureCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

指定されたハッシュに対してデジタル署名が有効であることを確認します。

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

名前 説明
IDisposable.Dispose()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

このメンバーの説明については、 Dispose()を参照してください。

(継承元 AsymmetricAlgorithm)

適用対象

こちらもご覧ください