ECDiffieHellman.DeriveKeyFromHash Метод

Определение

Выполняет формирование ключа с использованием указанного хэш-алгоритма.Performs key derivation using a specified hash algorithm.

Перегрузки

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Выполняет формирование ключа с использованием указанного хэш-алгоритма.Performs key derivation using a specified hash algorithm.

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

При реализации в производном классе выполняет формирование ключа с использованием указанного хэш-алгоритма с дополнительными данными, добавленными в начале или конце.When implemented in a derived class, performs key derivation using a specified hash algorithm with optional prepended or appended data.

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName)

Выполняет формирование ключа с использованием указанного хэш-алгоритма.Performs key derivation using a specified hash algorithm.

public:
 cli::array <System::Byte> ^ DeriveKeyFromHash(System::Security::Cryptography::ECDiffieHellmanPublicKey ^ otherPartyPublicKey, System::Security::Cryptography::HashAlgorithmName hashAlgorithm);
public byte[] DeriveKeyFromHash (System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
member this.DeriveKeyFromHash : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName -> byte[]
Public Function DeriveKeyFromHash (otherPartyPublicKey As ECDiffieHellmanPublicKey, hashAlgorithm As HashAlgorithmName) As Byte()

Параметры

otherPartyPublicKey
ECDiffieHellmanPublicKey

Открытый ключ другой стороны.The other party's public key.

hashAlgorithm
HashAlgorithmName

Хэш-алгоритм, используемый для получения материала ключа.The hash algorithm to use to derive the key material.

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

Byte[]

Хэш общего секрета.The hash of the shared secret.

Исключения

Размер кривой, используемой параметром otherPartyPublicKey, отличается от размера кривой из этого ключа.The curve used by otherPartyPublicKey has a different size than the curve from this key.

-или--or-

В параметре hashAlgorithm не указан хэш.The hashAlgorithm parameter does not specify a hash.

otherPartyPublicKey имеет значение null.otherPartyPublicKey is null.

Кривая, используемая параметром otherPartyPublicKey, отличается от кривой из этого ключа.The curve used by otherPartyPublicKey is different than the curve from this key.

-или--or-

Этот экземпляр представляет только открытый ключ.This instance represents only a public key.

Комментарии

This overload calls the <xref:System.Security.Cryptography.ECDiffieHellman.DeriveKeyFromHash%2A> method passing null as the prepend and append values.

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

DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[])

При реализации в производном классе выполняет формирование ключа с использованием указанного хэш-алгоритма с дополнительными данными, добавленными в начале или конце.When implemented in a derived class, performs key derivation using a specified hash algorithm with optional prepended or appended data.

public:
 virtual cli::array <System::Byte> ^ DeriveKeyFromHash(System::Security::Cryptography::ECDiffieHellmanPublicKey ^ otherPartyPublicKey, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, cli::array <System::Byte> ^ secretPrepend, cli::array <System::Byte> ^ secretAppend);
public virtual byte[] DeriveKeyFromHash (System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[]? secretPrepend, byte[]? secretAppend);
public virtual byte[] DeriveKeyFromHash (System.Security.Cryptography.ECDiffieHellmanPublicKey otherPartyPublicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] secretPrepend, byte[] secretAppend);
abstract member DeriveKeyFromHash : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName * byte[] * byte[] -> byte[]
override this.DeriveKeyFromHash : System.Security.Cryptography.ECDiffieHellmanPublicKey * System.Security.Cryptography.HashAlgorithmName * byte[] * byte[] -> byte[]
Public Overridable Function DeriveKeyFromHash (otherPartyPublicKey As ECDiffieHellmanPublicKey, hashAlgorithm As HashAlgorithmName, secretPrepend As Byte(), secretAppend As Byte()) As Byte()

Параметры

otherPartyPublicKey
ECDiffieHellmanPublicKey

Открытый ключ другой стороны.The other party's public key.

hashAlgorithm
HashAlgorithmName

Хэш-алгоритм, используемый для получения материала ключа.The hash algorithm to use to derive the key material.

secretPrepend
Byte[]

Значение, добавляемое к производному секрету (в начало) перед хэшированием.A value to prepend to the derived secret before hashing.

secretAppend
Byte[]

Значение, добавляемое к производному секрету перед хэшированием.A value to append to the derived secret before hashing.

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

Byte[]

Хэш общего секрета после добавления данных по запросу в начале или конце.The hash of the shared secret after prepending or appending data as requested.

Исключения

Производный класс должен переопределять этот метод.A derived class must override this method.

Размер кривой, используемой параметром otherPartyPublicKey, отличается от размера кривой из этого ключа.The curve used by otherPartyPublicKey has a different size than the curve from this key.

-или--or-

В параметре hashAlgorithm не указан хэш.The hashAlgorithm parameter does not specify a hash.

otherPartyPublicKey имеет значение null.otherPartyPublicKey is null.

Кривая, используемая параметром otherPartyPublicKey, отличается от кривой из этого ключа.The curve used by otherPartyPublicKey is different than the curve from this key.

-или--or-

Этот экземпляр представляет только открытый ключ.This instance represents only a public key.

Комментарии

This method internally performs the Elliptic Curve Diffie-Hellman key agreement to produce the shared secret (z). Возвращаемое значение этого метода является результатом HASH(secretPrepend || z || secretAppend) использования указанного хэш-алгоритма, где || обозначает объединение.The return value from this method is the result of HASH(secretPrepend || z || secretAppend) using the specified hash algorithm, where || signifies concatenation.

Если значение secretPrepend или secretAppend равно null , они рассматриваются как пустые массивы.If the value of secretPrepend or secretAppend is null, they are treated as empty arrays.

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