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