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[]
Значение, добавляемое к производному секрету перед хэшированием.
Возвращаемое значение
Код 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.
Возвращаемое значение
Код HMAC общего секрета.
Исключения
Размер кривой, используемой параметром otherPartyPublicKey
, отличается от размера кривой из этого ключа.
-или-
В параметре hashAlgorithm
не указан хэш.
otherPartyPublicKey
имеет значение null
.
Кривая, используемая параметром otherPartyPublicKey
, отличается от кривой из этого ключа.
-или-
Этот экземпляр представляет только открытый ключ.
Комментарии
Эта перегрузка вызывает метод , DeriveKeyFromHmac передавая null
в качестве значений в начале и добавлении.