//It's possible CryptographicException can be thrown if the keys are changed. public XElement Decrypt(XElement encryptedElement) { if (encryptedElement == null) { throw new ArgumentNullException(nameof(encryptedElement)); } using var aesObj = new AesGcmService(_key); return(XElement.Parse(aesObj.Decrypt(encryptedElement.Element("value")?.Value))); }
public EncryptedXmlInfo Encrypt(XElement plaintextElement) { if (plaintextElement == null) { throw new ArgumentNullException(nameof(plaintextElement)); } using var aesObj = new AesGcmService(_key); var element = new XElement("encryptedKey", new XComment(" This key is encrypted with AES-256-GCM. "), new XElement("value", aesObj.Encrypt(plaintextElement.ToString()))); return(new EncryptedXmlInfo(element, typeof(AesGcmXmlDecryptor))); }