This topic has not yet been rated - Rate this topic

MacAlgorithmProvider.CreateKey | createKey method

Creates a symmetric key that can be used to create the MAC value.

Syntax


var cryptographicKey = macAlgorithmProvider.createKey(keyMaterial);

Parameters

keyMaterial

Type: IBuffer

Random data used to help generate the key. You can call the GenerateRandom method to create the random data.

Return value

Type: CryptographicKey

Symmetric key.

Examples


void CreateHMAC(
    String strMsg,
    String strAlgName,
    out IBuffer buffMsg,
    out CryptographicKey hmacKey,
    out IBuffer buffHMAC)
{
    // Create a MacAlgorithmProvider object for the specified algorithm.
    MacAlgorithmProvider objMacProv = MacAlgorithmProvider.OpenAlgorithm(strAlgName);

    // Demonstrate how to retrieve the name of the algorithm used.
    String strNameUsed = objMacProv.AlgorithmName;

    // Create a buffer that contains the message to be signed.
    BinaryStringEncoding encoding = BinaryStringEncoding.Utf8;
    buffMsg = CryptographicBuffer.ConvertStringToBinary(strMsg, encoding);

    // Create a key to be signed with the message.
    IBuffer buffKeyMaterial = CryptographicBuffer.GenerateRandom(objMacProv.MacLength);
    hmacKey = objMacProv.CreateKey(buffKeyMaterial);

    // Sign the key and message together.
    buffHMAC = CryptographicEngine.Sign(hmacKey, buffMsg);

    // Verify that the HMAC length is correct for the selected algorithm
    if (buffHMAC.Length != objMacProv.MacLength)
    {
        throw new Exception("Error computing digest");
    }
 }


Requirements

Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Namespace

Windows.Security.Cryptography.Core
Windows::Security::Cryptography::Core [C++]

Metadata

Windows.winmd

See also

MacAlgorithmProvider

 

 

Build date: 12/4/2012

© 2013 Microsoft. All rights reserved.