Поделиться через


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

При реализации в производном классе выполняет формирование ключа с использованием указанного алгоритма 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

Выполняет формирование ключа с использованием указанного алгоритма 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 в качестве значений в начале и добавлении.

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