KeyDerivationParameters.BuildForSP800108(IBuffer, IBuffer) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
カウンター モードのハッシュベースのメッセージ認証コード (HMAC) キー派生関数で使用する KeyDerivationParameters オブジェクトを作成します。
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);
}
注釈
OpenAlgorithm 関数で次のアルゴリズム名を使用して、SP800108 KDF アルゴリズム プロバイダーを開くことができます。
- KeyDerivationAlgorithmNames.Sp800108CtrHmacMd5
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha1
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha256
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha384
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha512