DSA Класс

Определение

Представляет абстрактный базовый класс, от которого должны наследоваться все реализации алгоритма цифровой подписи (DSA).

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
Наследование
Производный
Атрибуты

Комментарии

Класс и производные DSA классы можно использовать для создания цифровых подписей, которые помогают защитить целостность данных. предоставляет DSACryptoServiceProvider реализацию этого класса.

Чтобы использовать систему с открытым ключом для цифровой подписи сообщения, отправитель сначала применяет хэш-функцию к сообщению, чтобы создать дайджест сообщения. Затем отправитель шифрует дайджест сообщения с помощью закрытого ключа отправителя, чтобы создать личную подпись отправителя. Получив сообщение и подпись, получатель расшифровывает подпись с помощью открытого ключа отправителя для восстановления хэша сообщения и хэширует сообщение с помощью того же хэш-алгоритма, что и отправитель. Если хэйджест сообщения, вычисляемый получателем, точно соответствует хэш-коду, полученному от отправителя, получатель может предположить, что сообщение не было изменено во время передачи. Обратите внимание, что подпись может быть проверена любым пользователем, так как открытый ключ отправителя является общеизвестным.

Важно!

Создатели алгоритма DSA отозвали его поддержку. Рассмотрите RSA возможность использования класса или ECDsa класса вместо DSA класса . Используйте DSA только для совместимости с устаревшими приложениями и данными.

Существуют две разные версии алгоритма DSA. Исходная форма, описанная в FIPS 186-2, требует использования SHA-1 в качестве хэш-алгоритма и поддерживает длину ключа от 512 бит до 1024 бит с шагом в 64 бита. Обновленная версия алгоритма была описана в fips 186-3, которая позволила использовать семейство хэш-алгоритмов SHA-2 и добавила поддержку 2048-разрядных и 3072-разрядных ключей. Не все производные реализации этого типа поддерживают усовершенствования FIPS 186-3 для DSA. Поддержку можно определить с помощью 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[])

При переопределении в производном классе создает подпись DSA для указанного хэш-значения.

CreateSignature(Byte[], DSASignatureFormat)

Создает сигнатуру 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 с паролем, основанным на символах.

(Унаследовано от 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()

Экспортирует часть текущего ключа с открытым ключом в формате X.509 SubjectPublicKeyInfo в кодировке PEM.

(Унаследовано от AsymmetricAlgorithm)
FromXmlString(String)

Восстанавливает объект DSA из XML-строки.

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)

При переопределении в производном классе импортирует пару открытого и закрытого ключей из структуры PKCS#8 EncryptedPrivateKeyInfo после расшифровки с помощью символьного пароля и заменяет ключи для этого объекта.

(Унаследовано от AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

Импортирует зашифрованный закрытый ключ в формате RFC 7468 в кодировке PEM, заменяя ключи для этого объекта.

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

При переопределении в производном классе импортирует зашифрованный ключ в формате RFC 7468 с кодировкой PEM, заменяя ключи для этого объекта.

(Унаследовано от AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Импортирует зашифрованный закрытый ключ в формате RFC 7468 в кодировке PEM, заменяя ключи для этого объекта.

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

При переопределении в производном классе импортирует зашифрованный ключ в формате RFC 7468 с кодировкой PEM, заменяя ключи для этого объекта.

(Унаследовано от AsymmetricAlgorithm)
ImportFromPem(ReadOnlySpan<Char>)

Импортирует зашифрованный ключ в формате RFC 7468 в кодировке PEM, заменив ключи для этого объекта.

ImportFromPem(ReadOnlySpan<Char>)

При переопределении в производном классе импортирует ключ в формате RFC 7468 с текстовой кодировкой, заменяя ключи для этого объекта.

(Унаследовано от AsymmetricAlgorithm)
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)

Вычисляет хэш-значение заданного массива байтов с помощью указанного алгоритма хэширования и подписывает результирующее хэш-значение.

SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

Вычисляет хэш-значение указанных данных и подписывает его с помощью указанного формата сигнатуры.

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

Вычисляет хэш-значение фрагмента заданного массива байтов с помощью указанного алгоритма хэширования и подписывает результирующее хэш-значение.

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

Вычисляет хэш-значение указанных данных и подписывает его с помощью указанного формата сигнатуры.

SignData(Stream, HashAlgorithmName)

Вычисляет хэш-значение заданного потока с помощью указанного алгоритма хэширования и подписывает результирующее хэш-значение.

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

Вычисляет хэш-значение указанных данных и подписывает его с помощью указанного формата сигнатуры.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

Вычисляет хэш-значение указанных данных и подписывает его с помощью указанного формата сигнатуры.

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

Вычисляет хэш-значение указанных данных и подписывает его с помощью указанного формата сигнатуры.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
ToXmlString(Boolean)

Создает и возвращает XML-представление текущего объекта DSA.

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)

Пытается экспортировать текущий ключ в формате PKCS#8 PrivateKeyInfo с кодировкой PEM в предоставленный буфер.

(Унаследовано от AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в предоставленный буфер.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

При переопределении в производном классе пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в предоставленный буфер.

(Унаследовано от AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

Пытается экспортировать текущий ключ в формате X.509 SubjectPublicKeyInfo в кодировке PEM в предоставленный буфер.

(Унаследовано от 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)

Проверяет допустимость цифровой подписи путем вычисления хэш-значения заданных данных с помощью указанного алгоритма хэширования и его сравнения с предоставленной подписью.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

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

Проверяет допустимость цифровой подписи путем вычисления хэш-значения данных во фрагменте массива байтов с помощью указанного алгоритма хэширования и его сравнения с предоставленной подписью.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

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

Проверяет допустимость цифровой подписи путем вычисления хэш-значения данных в диапазоне байтов с помощью указанного хэш-алгоритма и его сравнения с предоставленной подписью.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

VerifyData(Stream, Byte[], HashAlgorithmName)

Проверяет допустимость цифровой подписи путем вычисления хэш-значения заданного потока с помощью указанного алгоритма хэширования и его сравнения с предоставленной подписью.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

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

Проверяет допустимость цифровой подписи для предоставленных данных.

VerifySignature(Byte[], Byte[])

При переопределении в производном классе проверяет подпись DSA для указанных данных.

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

Проверяет допустимость цифровой подписи для предоставленного хэша.

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

Проверяет допустимость цифровой подписи для предоставленного хэша данных.

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

Проверяет допустимость цифровой подписи для предоставленного хэша.

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

Проверяет допустимость цифровой подписи для предоставленного хэша.

Явные реализации интерфейса

IDisposable.Dispose()

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Описание этого члена см. в разделе Dispose().

(Унаследовано от AsymmetricAlgorithm)

Применяется к

См. также раздел