private static string UnixObfuscate(string value)
{
#if __MonoCS__
try
{
using (PasswordDeriveBytes pdb = new PasswordDeriveBytes(
GetCryptoKey(), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }))
using (AesManaged myAes = new AesManaged())
{
myAes.Key = pdb.GetBytes(myAes.KeySize / 8);
myAes.IV = pdb.GetBytes(myAes.BlockSize / 8);
using (ICryptoTransform encryptor = myAes.CreateEncryptor())
{
byte[] data = System.Text.Encoding.UTF8.GetBytes(value);
byte[] crypt = encryptor.TransformFinalBlock(data, 0, data.Length);
return Convert.ToBase64String(crypt, Base64FormattingOptions.None);
}
}
}
catch (CryptographicException e)
{
Console.WriteLine("Data was not encrypted. An error occurred.");
Console.WriteLine(e.ToString());
return null;
}
#else
throw new ApplicationException("Should never be reached");
#endif
}