DSA Klasa

Definicja

Reprezentuje abstrakcyjną klasę bazową, z której wszystkie implementacje algorytmu podpisu cyfrowego (DSA) muszą dziedziczyć.

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type DSA = class
    inherit AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
Dziedziczenie
Pochodne
Atrybuty

Uwagi

Klasy i klasy pochodne umożliwiają DSA tworzenie podpisów cyfrowych, które pomagają chronić integralność danych. Element DSACryptoServiceProvider udostępnia implementację tej klasy.

Aby użyć systemu kluczy publicznych do cyfrowego podpisania komunikatu, nadawca najpierw stosuje funkcję skrótu do wiadomości w celu utworzenia skrótu komunikatu. Następnie nadawca szyfruje skrót wiadomości kluczem prywatnym nadawcy w celu utworzenia podpisu osobistego nadawcy. Po otrzymaniu komunikatu i podpisu odbiorca odszyfrowuje podpis przy użyciu klucza publicznego nadawcy w celu odzyskania skrótu komunikatu i skrótów wiadomości przy użyciu tego samego algorytmu skrótu, którego użył nadawca. Jeśli skrót komunikatu obliczany przez odbiorcę dokładnie odpowiada skrótowi komunikatu odebranego od nadawcy, odbiorca może założyć, że komunikat nie został zmieniony podczas przesyłania. Należy pamiętać, że podpis można zweryfikować przez dowolną osobę, ponieważ klucz publiczny nadawcy jest powszechną wiedzą.

Ważne

Twórcy algorytmu DSA wycofali swoje wsparcie. Rozważ użycie RSA klasy lub ECDsa klasy zamiast DSA klasy . Używaj DSA tylko w celu zachowania zgodności ze starszymi aplikacjami i danymi.

Istnieją dwie różne wersje algorytmu DSA. Oryginalna forma opisana w standardzie FIPS 186-2 wymaga użycia algorytmu SHA-1 jako algorytmu wyznaczania wartości skrótu i obsługuje długości kluczy od 512 bitów do 1024 bitów w przyrostach 64 bitów. Zaktualizowana wersja algorytmu została opisana w artykule FIPS 186-3, który umożliwił korzystanie z rodziny algorytmów wyznaczania wartości skrótu SHA-2 i dodano obsługę kluczy bitowych 2048 i kluczy bitowych 3072. Nie wszystkie pochodne implementacje tego typu obsługują rozszerzenia FIPS 186-3 dla DSA. Obsługę można wykryć za pośrednictwem LegalKeySizes właściwości .

Konstruktory

DSA()

Inicjuje nowe wystąpienie klasy DSA.

Pola

KeySizeValue

Reprezentuje rozmiar w bitach modułu klucza używanego przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
LegalKeySizesValue

Określa rozmiary kluczy, które są obsługiwane przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)

Właściwości

KeyExchangeAlgorithm

Po zastąpieniu w klasie pochodnej pobiera nazwę algorytmu wymiany kluczy. W przeciwnym razie zwraca wartość NotImplementedException.

(Odziedziczone po AsymmetricAlgorithm)
KeySize

Pobiera lub ustawia rozmiar w bitach modulo klucza używanego przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
LegalKeySizes

Pobiera rozmiary kluczy obsługiwane przez algorytm asymetryczny.

(Odziedziczone po AsymmetricAlgorithm)
SignatureAlgorithm

Po zaimplementowaniu w klasie pochodnej pobiera nazwę algorytmu podpisu. W przeciwnym razie zawsze zgłasza wartość NotImplementedException.

(Odziedziczone po AsymmetricAlgorithm)

Metody

Clear()

Zwalnia wszystkie zasoby używane przez klasę AsymmetricAlgorithm .

(Odziedziczone po AsymmetricAlgorithm)
Create()

Tworzy domyślny obiekt kryptograficzny używany do wykonywania algorytmu asymetrycznego.

Create(DSAParameters)

Tworzy nowy efemeryczny klucz DSA z określonymi parametrami klucza DSA.

Create(Int32)

Tworzy nowy efemeryczny klucz DSA o określonym rozmiarze klucza.

Create(String)
Przestarzałe.

Tworzy określony obiekt kryptograficzny używany do wykonywania algorytmu asymetrycznego.

CreateSignature(Byte[])

Po zastąpieniu w klasie pochodnej tworzy DSA podpis dla określonej wartości skrótu.

CreateSignature(Byte[], DSASignatureFormat)

Tworzy sygnaturę DSA dla określonej wartości skrótu w wskazanym formacie.

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

Tworzy sygnaturę DSA dla określonej wartości skrótu w wskazanym formacie.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy AsymmetricAlgorithm.

(Odziedziczone po AsymmetricAlgorithm)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez klasę AsymmetricAlgorithm i opcjonalnie zwalnia zarządzane zasoby.

(Odziedziczone po AsymmetricAlgorithm)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na bajtach.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na bajtach zakodowanym za pomocą protokołu PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach zakodowanym za pomocą protokołu PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportParameters(Boolean)

Po zastąpieniu klasy pochodnej program eksportuje element DSAParameters.

ExportPkcs8PrivateKey()

Eksportuje bieżący klucz w formacie PKCS#8 PrivateKeyInfo.

(Odziedziczone po AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

Eksportuje bieżący klucz w formacie PKCS#8 PrivateKeyInfo, kodowany PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Eksportuje część klucza publicznego bieżącego klucza w formacie SubjectPublicKeyInfo X.509.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

Eksportuje część klucza publicznego bieżącego klucza w formacie SubjectPublicKeyInfo X.509, zakodowany jako PEM.

(Odziedziczone po AsymmetricAlgorithm)
FromXmlString(String)

Rekonstruuje DSA obiekt z ciągu XML.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetMaxSignatureSize(DSASignatureFormat)

Pobiera największy rozmiar (w bajtach) dla podpisu wygenerowanego przez ten klucz w wskazanym formacie.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

Podczas zastępowania w klasie pochodnej oblicza wartość skrótu określonej części tablicy bajtów przy użyciu określonego algorytmu tworzenia skrótów.

HashData(Stream, HashAlgorithmName)

Podczas zastępowania w klasie pochodnej oblicza wartość skrótu określonego strumienia binarnego przy użyciu określonego algorytmu tworzenia skrótów.

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

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na bajtach, zastępując klucze dla tego obiektu.

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

Po zastąpieniu w klasie pochodnej importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na bajtach, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na znakach, zastępując klucze dla tego obiektu.

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

Po zastąpieniu w klasie pochodnej importuje publiczny/prywatny kluczpair z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu przy użyciu hasła opartego na znakach, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Importuje zaszyfrowany klucz prywatny zakodowany w standardzie RFC 7468 Z kodowaniem PEM, zastępując klucze dla tego obiektu.

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

Po zastąpieniu w klasie pochodnej importuje zaszyfrowany klucz zakodowany za pomocą standardu PEM RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Importuje zaszyfrowany klucz prywatny zakodowany w standardzie RFC 7468 Z kodowaniem PEM, zastępując klucze dla tego obiektu.

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

Po zastąpieniu w klasie pochodnej importuje zaszyfrowany klucz zakodowany za pomocą standardu PEM RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportFromPem(ReadOnlySpan<Char>)

Importuje klucz zakodowany w standardzie RFC 7468 PEM, zastępując klucze dla tego obiektu.

ImportFromPem(ReadOnlySpan<Char>)

Po zastąpieniu w klasie pochodnej importuje tekstowy klucz zakodowany w formacie RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportParameters(DSAParameters)

Podczas zastępowania w klasie pochodnej importuje określony DSAParameterselement .

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny/prywatny z struktury PKCS#8 PrivateKeyInfo po odszyfrowaniu, zastępując klucze dla tego obiektu.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Po zastąpieniu w klasie pochodnej importuje klucz publiczny/prywatnypair z struktury PKCS#8 PrivateKeyInfo po odszyfrowaniu, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny ze struktury SubjectPublicKeyInfo X.509 po odszyfrowaniu, zastępując klucze dla tego obiektu.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Po zastąpieniu w klasie pochodnej importuje klucz publiczny z struktury SubjectPublicKeyInfo X.509 po odszyfrowaniu, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SignData(Byte[], HashAlgorithmName)

Oblicza wartość skrótu określonej tablicy bajtów przy użyciu określonego algorytmu skrótu i podpisuje wynikową wartość skrótu.

SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje je przy użyciu określonego formatu podpisu.

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

Oblicza wartość skrótu części określonej tablicy bajtów przy użyciu określonego algorytmu skrótu i podpisuje wynikową wartość skrótu.

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

Oblicza wartość skrótu określonych danych i podpisuje je przy użyciu określonego formatu podpisu.

SignData(Stream, HashAlgorithmName)

Oblicza wartość skrótu określonego strumienia przy użyciu określonego algorytmu skrótu i podpisuje wynikowej wartości skrótu.

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje je przy użyciu określonego formatu podpisu.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje je przy użyciu określonego formatu podpisu.

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje je przy użyciu określonego formatu podpisu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
ToXmlString(Boolean)

Tworzy i zwraca reprezentację ciągu XML bieżącego DSA obiektu.

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

Próbuje utworzyć podpis DSA dla określonej wartości skrótu w wskazanym formacie i umieścić go w podanym buforze.

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

Próbuje utworzyć sygnaturę DSA dla określonego skrótu w udostępnionym buforze.

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

Próbuje utworzyć podpis DSA dla określonej wartości skrótu w wskazanym formacie i umieścić go w podanym buforze.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na bajtach.

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

Po zastąpieniu klasy pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na bajtach.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na znakach.

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

Po zastąpieniu w klasie pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do dostarczonego buforu przy użyciu hasła opartego na znakach.

(Odziedziczone po AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na bajtach zakodowanym za pomocą klucza PEM.

(Odziedziczone po AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

Eksportuje bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo z hasłem opartym na znakach zakodowanym za pomocą protokołu PEM.

(Odziedziczone po AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo do dostarczonego buforu.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Po zastąpieniu w klasie pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo do dostarczonego buforu.

(Odziedziczone po AsymmetricAlgorithm)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo zakodowany w formacie PEM do dostarczonego buforu.

(Odziedziczone po AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie SubjectPublicKeyInfo X.509 do dostarczonego buforu.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Po zastąpieniu w klasie pochodnej próbuje wyeksportować bieżący klucz w formacie SubjectPublicKeyInfo X.509 do dostarczonego buforu.

(Odziedziczone po AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Próbuje wyeksportować bieżący klucz w formacie X.509 SubjectPublicKeyInfo zakodowany w formacie PEM do dostarczonego buforu.

(Odziedziczone po AsymmetricAlgorithm)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Próbuje obliczyć wartość skrótu podanych danych w udostępnionym buforze.

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

Próbuje utworzyć podpis DSA dla określonych danych w wskazanym formacie i umieścić go w podanym buforze.

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

Próbuje utworzyć podpis DSA dla określonych danych w udostępnionym buforze.

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

Próbuje utworzyć podpis DSA dla określonych danych w wskazanym formacie i umieścić go w podanym buforze.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu określonych danych przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podanym podpisem.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu danych w części tablicy bajtów przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podanym podpisem.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu danych w zakresie bajtów przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podanym podpisem.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

VerifyData(Stream, Byte[], HashAlgorithmName)

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu określonego strumienia przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podanym podpisem.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanych danych.

VerifySignature(Byte[], Byte[])

Po zastąpieniu w klasie pochodnej sprawdza DSA podpis dla określonych danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanego skrótu.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanego skrótu danych.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanego skrótu.

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

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanego skrótu.

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Aby uzyskać opis tego członka, zobacz Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy

Zobacz też