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
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
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 pasuje do skrótu 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żna

Twórcy algorytmu DSA wycofali swoje poparcie. 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 z 512 bitów do 1024 bitów w przyrostach 64 bitów. Zaktualizowana wersja algorytmu została opisana w standardzie FIPS 186-3, która umożliwiła korzystanie z rodziny algorytmów wyznaczania wartości skrótu SHA-2 i dodano obsługę kluczy bitowych 2048 i kluczy 3072-bitowych. 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

Nazwa Opis
DSA()

Inicjuje nowe wystąpienie klasy DSA.

Pola

Nazwa Opis
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

Nazwa Opis
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 modulu 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

Nazwa Opis
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[], DSASignatureFormat)

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

CreateSignature(Byte[])

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

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

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

Dispose()

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

(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 określony obiekt jest równy bieżącemu obiektowi.

(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 algorytmem PEM.

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

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

(Odziedziczone po AsymmetricAlgorithm)
ExportParameters(Boolean)

Po zastąpieniu klasy pochodnej 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, zakodowany jako PEM.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

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

(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()

Pobiera Type bieżącego wystąpienia.

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

Po zastąpieniu 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)

Po zastąpieniu 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 klucz publiczny/prywatnypair 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 klasy pochodnej importuje klucz publiczny/prywatny 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 klucz publiczny/prywatnypair 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 klasy pochodnej importuje klucz publiczny/prywatny 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 formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

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

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

ImportFromPem(ReadOnlySpan<Char>)

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

ImportParameters(DSAParameters)

Po zastąpieniu 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 klasy pochodnej importuje klucz publiczny/prywatny 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 Object.

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

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

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[], Int32, Int32, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje ją 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(Stream, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje ją 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.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

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

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

Oblicza wartość skrótu określonych danych i podpisuje ją 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ć podpis DSA dla określonego skrótu w podanym 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 podanego buforu przy użyciu hasła opartego na znakach.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, 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 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 w formacie 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 w formacie 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 X.509 SubjectPublicKeyInfo 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 do dostarczonego buforu.

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 podanym 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, DSASignatureFormat)

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

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 go z podanym podpisem.

VerifyData(Byte[], Int32, Int32, 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(ReadOnlySpan<Byte>, ReadOnlySpan<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(Stream, 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 go z podanym podpisem.

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[], DSASignatureFormat)

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

VerifySignature(Byte[], Byte[])

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

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<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.

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

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

Jawne implementacje interfejsu

Nazwa Opis
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 elementu członkowskiego, zobacz Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy

Zobacz też