ECDiffieHellman.DeriveKeyFromHmac Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет производный ключ с помощью заданного алгоритма HMAC (код проверки подлинности на основе хэша).
Перегрузки
| Имя | Описание |
|---|---|
| DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) |
При реализации в производном классе выполняет производные ключи с помощью указанного алгоритма HMAC (хэш-код проверки подлинности сообщений) с необязательными предварительно заданными или добавленными данными. |
| DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[]) |
Выполняет производный ключ с помощью заданного алгоритма HMAC (код проверки подлинности на основе хэша). |
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[])
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
При реализации в производном классе выполняет производные ключи с помощью указанного алгоритма HMAC (хэш-код проверки подлинности сообщений) с необязательными предварительно заданными или добавленными данными.
public:
virtual cli::array <System::Byte> ^ DeriveKeyFromHmac(System::Security::Cryptography::ECDiffieHellmanPublicKey ^ otherPartyPublicKey, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, cli::array <System::Byte> ^ hmacKey, cli::array <System::Byte> ^ secretPrepend, cli::array <System::Byte> ^ secretAppend);
public virtual byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[]? hmacKey, byte[]? secretPrepend, byte[]? secretAppend);
public virtual byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] hmacKey, byte[] secretPrepend, byte[] secretAppend);
abstract member DeriveKeyFromHmac : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName * byte[] * byte[] * byte[] -> byte[]
override this.DeriveKeyFromHmac : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName * byte[] * byte[] * byte[] -> byte[]
Public Overridable Function DeriveKeyFromHmac (otherPartyPublicKey As ECDiffieHellmanPublicKey, hashAlgorithm As HashAlgorithmName, hmacKey As Byte(), secretPrepend As Byte(), secretAppend As Byte()) As Byte()
Параметры
- otherPartyPublicKey
- ECDiffieHellmanPublicKey
Открытый ключ другой стороны.
- hashAlgorithm
- HashAlgorithmName
Хэш-алгоритм, используемый для получения материала ключа.
- hmacKey
- Byte[]
Ключ для HMAC.
- secretPrepend
- Byte[]
Значение, которое необходимо добавить в производный секрет перед хэшированием.
- secretAppend
- Byte[]
Значение для добавления в производный секрет перед хэшированием.
Возвращаемое значение
HMAC общего секрета после подготовки или добавления данных по запросу.
Исключения
Производный класс должен переопределить этот метод.
Кривая, используемая с помощью этого ключа, отличается otherPartyPublicKey от размера кривой.
–или–
Параметр hashAlgorithm не задает хэш.
otherPartyPublicKey равно null.
Кривая, используемая otherPartyPublicKey по сравнению с кривой из этого ключа.
–или–
Этот экземпляр представляет только открытый ключ.
Комментарии
Этот метод внутренне выполняет Diffie-Hellman ключевое соглашение с эллиптической кривой для создания общего секрета (z).
В hmacKey противном nullслучае возвращаемое значение из этого метода является результатом HMAC-HASH(z, secretPrepend || z || secretAppend) использования указанного алгоритма HMAC, где || обозначает объединение. В противном случае возвращаемое значение из этого метода является результатом HMAC-HASH(hmacKey, secretPrepend || z || secretAppend).
Если значение secretPrepend или secretAppend есть null, они обрабатываются как пустые массивы.
Применяется к
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[])
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
- Исходный код:
- ECDiffieHellman.cs
Выполняет производный ключ с помощью заданного алгоритма HMAC (код проверки подлинности на основе хэша).
public:
cli::array <System::Byte> ^ DeriveKeyFromHmac(System::Security::Cryptography::ECDiffieHellmanPublicKey ^ otherPartyPublicKey, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, cli::array <System::Byte> ^ hmacKey);
public byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[]? hmacKey);
public byte[] DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] hmacKey);
member this.DeriveKeyFromHmac : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName * byte[] -> byte[]
Public Function DeriveKeyFromHmac (otherPartyPublicKey As ECDiffieHellmanPublicKey, hashAlgorithm As HashAlgorithmName, hmacKey As Byte()) As Byte()
Параметры
- otherPartyPublicKey
- ECDiffieHellmanPublicKey
Открытый ключ другой стороны.
- hashAlgorithm
- HashAlgorithmName
Хэш-алгоритм, используемый для получения материала ключа.
- hmacKey
- Byte[]
Ключ для HMAC.
Возвращаемое значение
HMAC общего секрета.
Исключения
Кривая, используемая с помощью этого ключа, отличается otherPartyPublicKey от размера кривой.
–или–
Параметр hashAlgorithm не задает хэш.
otherPartyPublicKey равно null.
Кривая, используемая otherPartyPublicKey по сравнению с кривой из этого ключа.
–или–
Этот экземпляр представляет только открытый ключ.
Комментарии
Эта перегрузка DeriveKeyFromHmac вызывает метод, передаваемый null в качестве предустановленных и добавочных значений.