KeyDerivationParameters.BuildForSP800108(IBuffer, IBuffer) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект KeyDerivationParameters для использования в режиме счетчика, функция наследования ключа кода проверки подлинности сообщений на основе хэша (HMAC).
public:
static KeyDerivationParameters ^ BuildForSP800108(IBuffer ^ label, IBuffer ^ context);
static KeyDerivationParameters BuildForSP800108(IBuffer const& label, IBuffer const& context);
public static KeyDerivationParameters BuildForSP800108(IBuffer label, IBuffer context);
function buildForSP800108(label, context)
Public Shared Function BuildForSP800108 (label As IBuffer, context As IBuffer) As KeyDerivationParameters
Параметры
- label
- IBuffer
Буфер, указывающий назначение производного материала ключа.
- context
- IBuffer
Буфер, указывающий сведения, связанные с производным материалом ключа. Например, контекст может определить стороны, которые наследуют материал ключа, и, при необходимости, nonce, известные сторонам.
Возвращаемое значение
Относится к параметрам, используемым при наследоваве ключей.
Примеры
public void SampleDeriveFromSP800108()
{
// Create a string that contains the algorithm name.
String strAlgName = KeyDerivationAlgorithmNames.Sp800108CtrHmacSha256;
// Open the specified algorithm.
KeyDerivationAlgorithmProvider objKdfProv = KeyDerivationAlgorithmProvider.OpenAlgorithm(strAlgName);
// Specify the requested size, in bytes, of the derived key.
UInt32 targetSize = 32;
// Create a buffer that contains the label value.
String strPurpose = "Purpose";
IBuffer buffLabel = CryptographicBuffer.ConvertStringToBinary(strPurpose, BinaryStringEncoding.Utf8);
// Create a buffer that contains the context value.
byte[] Nonce = { 1, 1, 0, 0, 0, 0, 0, 0};
IBuffer buffContext = CryptographicBuffer.CreateFromByteArray(Nonce);
// Create the derivation parameters.
KeyDerivationParameters kdf800108Params = KeyDerivationParameters.BuildForSP800108(buffLabel, buffContext);
// Create a secret value.
IBuffer buffSecret = CryptographicBuffer.GenerateRandom(32);
// Create a key from the secret value.
CryptographicKey keyOriginal = objKdfProv.CreateKey(buffSecret);
// Derive a key based on the original key and the derivation parameters.
IBuffer keyDerived = CryptographicEngine.DeriveKeyMaterial(
keyOriginal,
kdf800108Params,
targetSize);
// Encode the key to a hexadecimal value (for display)
String strKeyHex = CryptographicBuffer.EncodeToHexString(keyDerived);
}
Комментарии
Для открытия поставщика алгоритмов KDF SP800108 с функцией OpenAlgorithm можно использовать следующие имена алгоритмов:
- KeyDerivationAlgorithmNames.Sp800108CtrHmacMd5
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha1
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha256
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha384
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha512