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[]

Значение для добавления в производный секрет перед хэшированием.

Возвращаемое значение

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.

Возвращаемое значение

Byte[]

HMAC общего секрета.

Исключения

Кривая, используемая с помощью этого ключа, отличается otherPartyPublicKey от размера кривой.

–или–

Параметр hashAlgorithm не задает хэш.

otherPartyPublicKey равно null.

Кривая, используемая otherPartyPublicKey по сравнению с кривой из этого ключа.

–или–

Этот экземпляр представляет только открытый ключ.

Комментарии

Эта перегрузка DeriveKeyFromHmac вызывает метод, передаваемый null в качестве предустановленных и добавочных значений.

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