KeyDerivationParameters.BuildForSP800108(IBuffer, IBuffer) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuat objek KeyDerivationParameters untuk digunakan dalam mode penghitung, fungsi derivasi kunci kode autentikasi pesan berbasis hash (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
Parameter
- label
- IBuffer
Buffer yang menentukan tujuan untuk bahan kunci turunan.
- context
- IBuffer
Buffer yang menentukan informasi yang terkait dengan bahan kunci turunan. Misalnya, konteksnya dapat mengidentifikasi pihak-pihak yang berasal dari materi keying dan, opsional, nonce yang diketahui oleh para pihak.
Mengembalikan
Mengacu pada parameter yang digunakan selama derivasi kunci.
Contoh
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);
}
Keterangan
Anda dapat menggunakan nama algoritma berikut dengan fungsi OpenAlgorithm untuk membuka penyedia algoritma KDF SP800108:
- KeyDerivationAlgorithmNames.Sp800108CtrHmacMd5
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha1
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha256
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha384
- KeyDerivationAlgorithmNames.Sp800108CtrHmacSha512