Encrypting data
Collapse the table of content
Expand the table of content

Encrypting data (HTML)

The following example shows how to use the encrypt method to encrypt data.



function encryptDataBuffer(keyMaterial, stringToEncrypt, algNameString, keysize, ivBuffer) {

    // Input arguments:
    //    keyMaterial.......Buffer that contains random key material (see the GenerateRandom method)
    //    stringToEncrypt...String that contains information to be encrypted
    //    algNameString.....String that contains the name of the symmetric algrorithm to use
    //    keysize...........Requested key size
    //    ivBuffer..........Buffer that contains the initialization buffer (this can be random data or custom defined)

    var encryptedBuffer;

    try {
            
        // Convert the input string to binary.
        var inputDataBuffer = Windows.Security.Cryptography.CryptographicBuffer.convertStringToBinary(stringToEncrypt, Windows.Security.Cryptography.BinaryStringEncoding.utf8);
            
        // Open the algorithm provider for the algorithm specified on input.
        var algorithmProvider = Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider.openAlgorithm(algNameString);

        // Check that the requested key size specified on input does not exceed the maximum size supported by the algorithm.
        if (keysize > algorithmProvider.supportedKeyLengths.max) {
            // Handle error.
        }

        // Create a symmetric key.
        var symmetricKey = algorithmProvider.createSymmetricKey(keyMaterial);
            
        // Check the padding scheme and determine whether the data must be aligned.
        if (algorithmProvider.padding != Windows.Security.Cryptography.Core.CryptographicPadding.block) {
            // Data must be aligned by block size.
            var i = inputDataBuffer.length % algorithmProvider.blockLength;
            if (i > 0) {
               // Handle error.
            }
        }

        // Encrypt the input data.
        encryptedBuffer = Windows.Security.Cryptography.Core.CryptographicEngine.encrypt(symmetricKey, inputDataBuffer, ivBuffer);
    }
    catch (e) {
        // Handle error.
    }
        
    return encryptedBuffer;
}

Related topics

Encrypting and decrypting data

 

 

Show:
© 2018 Microsoft