SP800108HmacCounterKdf.DeriveBytes Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
DeriveBytes(Byte[], HashAlgorithmName, Byte[], Byte[], Int32) |
Derives a key of a specified length. |
DeriveBytes(Byte[], HashAlgorithmName, String, String, Int32) |
Derives a key of a specified length. |
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32) |
Derives a key of a specified length. |
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>) |
Fills a buffer with a derived key. |
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32) |
Derives a key of a specified length. |
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Byte>) |
Fills a buffer with a derived key. |
DeriveBytes(Byte[], HashAlgorithmName, Byte[], Byte[], Int32)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Derives a key of a specified length.
public:
static cli::array <System::Byte> ^ DeriveBytes(cli::array <System::Byte> ^ key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, cli::array <System::Byte> ^ label, cli::array <System::Byte> ^ context, int derivedKeyLengthInBytes);
public static byte[] DeriveBytes (byte[] key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, byte[] label, byte[] context, int derivedKeyLengthInBytes);
static member DeriveBytes : byte[] * System.Security.Cryptography.HashAlgorithmName * byte[] * byte[] * int -> byte[]
Public Shared Function DeriveBytes (key As Byte(), hashAlgorithm As HashAlgorithmName, label As Byte(), context As Byte(), derivedKeyLengthInBytes As Integer) As Byte()
Parameters
- key
- Byte[]
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- Byte[]
The label that identifies the purpose for the derived key.
- context
- Byte[]
The context containing information related to the derived key.
- derivedKeyLengthInBytes
- Int32
The length of the derived key, in bytes.
Returns
An array containing the derived key.
Exceptions
hashAlgorithm
has a Name which is empty.
derivedKeyLengthInBytes
is negative or larger than the maximum number of bytes
that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
The current platform does not have a supported implementation of HMAC.
Applies to
DeriveBytes(Byte[], HashAlgorithmName, String, String, Int32)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Derives a key of a specified length.
public:
static cli::array <System::Byte> ^ DeriveBytes(cli::array <System::Byte> ^ key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, System::String ^ label, System::String ^ context, int derivedKeyLengthInBytes);
public static byte[] DeriveBytes (byte[] key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, string label, string context, int derivedKeyLengthInBytes);
static member DeriveBytes : byte[] * System.Security.Cryptography.HashAlgorithmName * string * string * int -> byte[]
Public Shared Function DeriveBytes (key As Byte(), hashAlgorithm As HashAlgorithmName, label As String, context As String, derivedKeyLengthInBytes As Integer) As Byte()
Parameters
- key
- Byte[]
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- String
The label that identifies the purpose for the derived key.
- context
- String
The context containing information related to the derived key.
- derivedKeyLengthInBytes
- Int32
The length of the derived key, in bytes.
Returns
An array containing the derived key.
Exceptions
hashAlgorithm
has a Name which is empty.
derivedKeyLengthInBytes
is negative or larger than the maximum number of bytes
that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
label
or context
contains text that cannot be converted to UTF-8.
The current platform does not have a supported implementation of HMAC.
Remarks
label
and context
will be converted to bytes using the UTF-8 encoding. for other encodings, perform the conversion using the desired encoding and use an overload which accepts the label and context as a sequence of bytes.
Applies to
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Derives a key of a specified length.
public:
static cli::array <System::Byte> ^ DeriveBytes(ReadOnlySpan<System::Byte> key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, ReadOnlySpan<System::Byte> label, ReadOnlySpan<System::Byte> context, int derivedKeyLengthInBytes);
public static byte[] DeriveBytes (ReadOnlySpan<byte> key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, ReadOnlySpan<byte> label, ReadOnlySpan<byte> context, int derivedKeyLengthInBytes);
static member DeriveBytes : ReadOnlySpan<byte> * System.Security.Cryptography.HashAlgorithmName * ReadOnlySpan<byte> * ReadOnlySpan<byte> * int -> byte[]
Public Shared Function DeriveBytes (key As ReadOnlySpan(Of Byte), hashAlgorithm As HashAlgorithmName, label As ReadOnlySpan(Of Byte), context As ReadOnlySpan(Of Byte), derivedKeyLengthInBytes As Integer) As Byte()
Parameters
- key
- ReadOnlySpan<Byte>
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- ReadOnlySpan<Byte>
The label that identifies the purpose for the derived key.
- context
- ReadOnlySpan<Byte>
The context containing information related to the derived key.
- derivedKeyLengthInBytes
- Int32
The length of the derived key, in bytes.
Returns
An array containing the derived key.
Exceptions
hashAlgorithm
has a Name which is null
.
hashAlgorithm
has a Name which is empty.
derivedKeyLengthInBytes
is negative or larger than the maximum number of bytes
that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
The current platform does not have a supported implementation of HMAC.
Applies to
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Fills a buffer with a derived key.
public:
static void DeriveBytes(ReadOnlySpan<System::Byte> key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, ReadOnlySpan<System::Byte> label, ReadOnlySpan<System::Byte> context, Span<System::Byte> destination);
public static void DeriveBytes (ReadOnlySpan<byte> key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, ReadOnlySpan<byte> label, ReadOnlySpan<byte> context, Span<byte> destination);
static member DeriveBytes : ReadOnlySpan<byte> * System.Security.Cryptography.HashAlgorithmName * ReadOnlySpan<byte> * ReadOnlySpan<byte> * Span<byte> -> unit
Public Shared Sub DeriveBytes (key As ReadOnlySpan(Of Byte), hashAlgorithm As HashAlgorithmName, label As ReadOnlySpan(Of Byte), context As ReadOnlySpan(Of Byte), destination As Span(Of Byte))
Parameters
- key
- ReadOnlySpan<Byte>
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- ReadOnlySpan<Byte>
The label that identifies the purpose for the derived key.
- context
- ReadOnlySpan<Byte>
The context containing information related to the derived key.
Exceptions
hashAlgorithm
has a Name which is null
.
hashAlgorithm
has a Name which is empty.
destination
is larger than the maximum number of bytes that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
The current platform does not have a supported implementation of HMAC.
Applies to
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Derives a key of a specified length.
public:
static cli::array <System::Byte> ^ DeriveBytes(ReadOnlySpan<System::Byte> key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, ReadOnlySpan<char> label, ReadOnlySpan<char> context, int derivedKeyLengthInBytes);
public static byte[] DeriveBytes (ReadOnlySpan<byte> key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, ReadOnlySpan<char> label, ReadOnlySpan<char> context, int derivedKeyLengthInBytes);
static member DeriveBytes : ReadOnlySpan<byte> * System.Security.Cryptography.HashAlgorithmName * ReadOnlySpan<char> * ReadOnlySpan<char> * int -> byte[]
Public Shared Function DeriveBytes (key As ReadOnlySpan(Of Byte), hashAlgorithm As HashAlgorithmName, label As ReadOnlySpan(Of Char), context As ReadOnlySpan(Of Char), derivedKeyLengthInBytes As Integer) As Byte()
Parameters
- key
- ReadOnlySpan<Byte>
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- ReadOnlySpan<Char>
The label that identifies the purpose for the derived key.
- context
- ReadOnlySpan<Char>
The context containing information related to the derived key.
- derivedKeyLengthInBytes
- Int32
The length of the derived key, in bytes.
Returns
An array containing the derived key.
Exceptions
hashAlgorithm
has a Name which is null
.
hashAlgorithm
has a Name which is empty.
derivedKeyLengthInBytes
is negative or larger than the maximum number of bytes
that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
label
or context
contains text that cannot be converted to UTF-8.
The current platform does not have a supported implementation of HMAC.
Remarks
label
and context
will be converted to bytes using the UTF-8 encoding. for other encodings, perform the conversion using the desired encoding and use an overload which accepts the label and context as a sequence of bytes.
Applies to
DeriveBytes(ReadOnlySpan<Byte>, HashAlgorithmName, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Byte>)
- Source:
- SP800108HmacCounterKdf.cs
- Source:
- SP800108HmacCounterKdf.cs
Fills a buffer with a derived key.
public:
static void DeriveBytes(ReadOnlySpan<System::Byte> key, System::Security::Cryptography::HashAlgorithmName hashAlgorithm, ReadOnlySpan<char> label, ReadOnlySpan<char> context, Span<System::Byte> destination);
public static void DeriveBytes (ReadOnlySpan<byte> key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm, ReadOnlySpan<char> label, ReadOnlySpan<char> context, Span<byte> destination);
static member DeriveBytes : ReadOnlySpan<byte> * System.Security.Cryptography.HashAlgorithmName * ReadOnlySpan<char> * ReadOnlySpan<char> * Span<byte> -> unit
Public Shared Sub DeriveBytes (key As ReadOnlySpan(Of Byte), hashAlgorithm As HashAlgorithmName, label As ReadOnlySpan(Of Char), context As ReadOnlySpan(Of Char), destination As Span(Of Byte))
Parameters
- key
- ReadOnlySpan<Byte>
The key-derivation key.
- hashAlgorithm
- HashAlgorithmName
The HMAC algorithm.
- label
- ReadOnlySpan<Char>
The label that identifies the purpose for the derived key.
- context
- ReadOnlySpan<Char>
The context containing information related to the derived key.
Exceptions
hashAlgorithm
has a Name which is null
.
hashAlgorithm
has a Name which is empty.
destination
is larger than the maximum number of bytes that can be derived.
hashAlgorithm
is not a known or supported hash algorithm.
label
or context
contains text that cannot be converted to UTF-8.
The current platform does not have a supported implementation of HMAC.
Remarks
label
and context
will be converted to bytes using the UTF-8 encoding. for other encodings, perform the conversion using the desired encoding and use an overload which accepts the label and context as a sequence of bytes.