public string Decrypt(string keyMaterial, Encrypted encrypted) { CryptographicKey key = SymmetricKeyFromMaterial(keyMaterial); IBuffer encryptedBuffer = CryptographicBuffer.DecodeFromBase64String(encrypted.Value); IBuffer decryptedBuffer = CryptographicEngine.Decrypt(key, encryptedBuffer, null); return CryptographicBuffer.ConvertBinaryToString(encrypted.Encoding, decryptedBuffer); }
/// <summary> /// Encrypts the text using the keyMaterial. This encryption only works with /// PKCS7 algorithms which handle the padding and also non CBC algorithms so /// that it doesn't have to deal with creating an initialization vector /// </summary> public Encrypted Encrypt(string keyMaterial, string text) { CryptographicKey key = SymmetricKeyFromMaterial(keyMaterial); // Create a buffer that contains the encoded message to be encrypted. IBuffer buffMsg = CryptographicBuffer.ConvertStringToBinary(text, BinaryStringEncoding.Utf8); IBuffer encryptedBuffer = CryptographicEngine.Encrypt(key, buffMsg, null); string encryptedValue = CryptographicBuffer.EncodeToBase64String(encryptedBuffer); var encrypted = new Encrypted(EncryptAlgorithm, BinaryStringEncoding.Utf8, encryptedValue); return encrypted; }