I had a simple class to do some basic local encryption for Windows Phone 8. I wanted to use the class again in a new UWP Windows 10 app for the Windows Store. Unfortunately
You need to read the Documentation about SymmetricAlgorithmProvider and CryptographicEngine.
I have here a little example, how to use these together:
using System;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams;
namespace CryptTest
{
public class AesEnDecryption
{
// Key with 256 and IV with 16 length
private string AES_Key = "Y+3xQDLPWalRKK3U/JuabsJNnuEO91zRiOH5gjgOqck=";
private string AES_IV = "15CV1/ZOnVI3rY4wk4INBg==";
private IBuffer m_iv = null;
private CryptographicKey m_key;
public AesEnDecryption()
{
IBuffer key = Convert.FromBase64String(AES_Key).AsBuffer();
m_iv = Convert.FromBase64String(AES_IV).AsBuffer();
SymmetricKeyAlgorithmProvider provider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
m_key = provider.CreateSymmetricKey(key);
}
public byte[] Encrypt(byte[] input)
{
IBuffer bufferMsg = CryptographicBuffer.ConvertStringToBinary(Encoding.ASCII.GetString(input), BinaryStringEncoding.Utf8);
IBuffer bufferEncrypt = CryptographicEngine.Encrypt(m_key, bufferMsg, m_iv);
return bufferEncrypt.ToArray();
}
public byte[] Decrypt(byte[] input)
{
IBuffer bufferDecrypt = CryptographicEngine.Decrypt(m_key, input.AsBuffer(), m_iv);
return bufferDecrypt.ToArray();
}
}
}
When you want to use another Algorithm then AesCbcPkcs7, then you have to change the SymmetricAlgorithmName