/// <summary> /// Decrypt binary data /// </summary> public byte[] DecryptData(EncryptedBlob blob, string private_asymmetric_key) { _rsa.FromXmlString(private_asymmetric_key); _aes.Key = _rsa.Decrypt(blob.EncryptedSymmetricKey, true); _aes.IV = _rsa.Decrypt(blob.EncryptedSymmetricIV, true); using (ICryptoTransform decryptor = _aes.CreateDecryptor()) { return(decryptor.TransformFinalBlock(blob.EncryptedData, 0, blob.EncryptedData.Length)); } }
/// <summary> /// Encrypt binary data /// </summary> public EncryptedBlob EncryptData(byte[] raw_binary_data, string public_asymmetric_key) { _aes.GenerateKey(); _aes.GenerateIV(); byte[] encrypted_data; using (ICryptoTransform encryptor = _aes.CreateEncryptor()) { encrypted_data = encryptor.TransformFinalBlock(raw_binary_data, 0, raw_binary_data.Length); } EncryptedBlob blob = new EncryptedBlob(); blob.EncryptedData = encrypted_data; _rsa.FromXmlString(public_asymmetric_key); blob.EncryptedSymmetricKey = _rsa.Encrypt(_aes.Key, true); blob.EncryptedSymmetricIV = _rsa.Encrypt(_aes.IV, true); return(blob); }
/// <summary> /// Decrypt a string /// </summary> public string DecryptString(EncryptedBlob blob, string private_asymmetric_key) { return(_unicode.GetString(DecryptData(blob, private_asymmetric_key))); }