Udostępnij za pośrednictwem


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 zapewnia implementację tej klasy.

Aby użyć systemu kluczy publicznych do cyfrowego podpisania komunikatu, nadawca najpierw stosuje funkcję skrótu do komunikatu w celu utworzenia skrótu komunikatu. Następnie nadawca szyfruje skrót komunikatu przy użyciu klucza prywatnego 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 komunikatu przy użyciu tego samego algorytmu skrótu, którego użył nadawca. Jeśli skrót komunikatu obliczany przez odbiorcę jest dokładnie zgodny z skrótem komunikatu odebranym 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 każdą osobę, ponieważ klucz publiczny nadawcy jest powszechną wiedzą.

Ważne

Twórcy algorytmu DSA wycofali swoje poparcie. Rozważ użycie RSA klasy lub ECDsa klasy zamiast DSA klasy. Użyj DSA tylko w celu zapewnienia 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 artykule 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 2048-bitowych i kluczy 3072-bitowych. Nie wszystkie pochodne implementacje tego typu obsługują rozszerzenia FIPS 186-3 do 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 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 zgłasza wartość NotImplementedException.

(Odziedziczone po AsymmetricAlgorithm)
KeySize

Pobiera lub ustawia rozmiar w bitach modułu 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 podpis DSA dla określonej wartości skrótu w wskazanym formacie.

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 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 przy użyciu hasła opartego 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 PEM.

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

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

(Odziedziczone po AsymmetricAlgorithm)
ExportParameters(Boolean)

Gdy zastąpisz klasę pochodną, 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, zakodowanym 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 X.509 SubjectPublicKeyInfo, zakodowanym 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 bieżące wystąpienie.

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

W przypadku zastąpienia 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)

W przypadku zastąpienia 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 klasy pochodnej zaimportuje klucz publiczny/prywatny z struktury PKCS#8 EncryptedPrivateKeyInfo po odszyfrowaniu 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 klasy pochodnej zaimportuje 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 formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

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

W przypadku zastąpienia w klasie pochodnej importuje zaszyfrowany klucz zakodowany w formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

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

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

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

W przypadku zastąpienia w klasie pochodnej importuje zaszyfrowany klucz zakodowany w formacie PEM RFC 7468, zastępując klucze dla tego obiektu.

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

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

ImportFromPem(ReadOnlySpan<Char>)

W przypadku zastąpienia w klasie pochodnej importuje tekstowy klucz zakodowany tekstowo RFC 7468, zastępując klucze dla tego obiektu.

(Odziedziczone po AsymmetricAlgorithm)
ImportParameters(DSAParameters)

Po przesłonięciu w klasie pochodnej importuje określony DSAParameterselement .

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

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

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

W przypadku zastąpienia w klasie 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)

W przypadku zastąpienia 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 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(Byte[], Int32, Int32, 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 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.

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ć sygnaturę DSA dla określonej wartości skrótu w wskazanym formacie i umieścić ją w podanym buforze.

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

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

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

Próbuje utworzyć sygnaturę DSA dla określonej wartości skrótu w wskazanym formacie i umieścić ją w podanym buforze.

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

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

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

Po zastąpieniu w klasie pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do udostępnionego 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 udostępnionego buforu przy użyciu hasła opartego na znakach.

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

Podczas zastępowania w klasie pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 EncryptedPrivateKeyInfo do udostępnionego 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 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 char, zakodowanym PEM.

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

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

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Po zastąpieniu klasy pochodnej próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo do udostępnionego buforu.

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

Próbuje wyeksportować bieżący klucz w formacie PKCS#8 PrivateKeyInfo zakodowanym w PEM do udostępnionego buforu.

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

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

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

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

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

Próbuje wyeksportować bieżący klucz w formacie X.509 SubjectPublicKeyInfo zakodowanym w PEM do udostępnionego buforu.

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

Próbuje obliczyć wartość skrótu podanych danych do udostępnionego 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ć sygnaturę 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)

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 weryfikuje DSA podpis dla określonych danych.

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

Sprawdza, czy sygnatura cyfrowa jest prawidłowa dla podanego skrótu.

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

Sprawdza, czy sygnatura cyfrowa jest prawidłowa dla podanego skrótu danych.

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

Sprawdza, czy sygnatura cyfrowa jest prawidłowa dla podanego skrótu.

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

Sprawdza, czy sygnatura cyfrowa jest prawidłowa 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 elementu członkowskiego, zobacz Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy

Zobacz też