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. Исходная форма, описанная в 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[], 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 с паролем на основе символов.

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

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

ImportFromPem(ReadOnlySpan<Char>)

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

ImportParameters(DSAParameters)

При переопределении в производном классе импортирует указанный DSAParametersобъект.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

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

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

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

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

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

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

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

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

Создает и возвращает 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 в предоставленный буфер.

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

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

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

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

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

Пытается экспортировать текущий ключ в формате 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)

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

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