using System;
using System.Security.Cryptography;
using System.Text;

// Token: 0x02000160 RID: 352
public class BytesEncrypter
{
	// Token: 0x06000A25 RID: 2597 RVA: 0x0002D3A0 File Offset: 0x0002B5A0
	public static byte[] EncryptRijndael(byte[] src, string saltString, string password)
	{
		RijndaelManaged rijndaelManaged = new RijndaelManaged();
		byte[] key;
		byte[] iv;
		BytesEncrypter.GenerateKeyFromPassword(saltString, password, rijndaelManaged.KeySize, out key, rijndaelManaged.BlockSize, out iv);
		rijndaelManaged.Key = key;
		rijndaelManaged.IV = iv;
		ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor();
		byte[] result = cryptoTransform.TransformFinalBlock(src, 0, src.Length);
		cryptoTransform.Dispose();
		return result;
	}

	// Token: 0x06000A26 RID: 2598 RVA: 0x0002D3F4 File Offset: 0x0002B5F4
	public static byte[] DecryptRijndael(byte[] src, string saltString, string password)
	{
		RijndaelManaged rijndaelManaged = new RijndaelManaged();
		byte[] key;
		byte[] iv;
		BytesEncrypter.GenerateKeyFromPassword(saltString, password, rijndaelManaged.KeySize, out key, rijndaelManaged.BlockSize, out iv);
		rijndaelManaged.Key = key;
		rijndaelManaged.IV = iv;
		ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor();
		byte[] result = cryptoTransform.TransformFinalBlock(src, 0, src.Length);
		cryptoTransform.Dispose();
		return result;
	}

	// Token: 0x06000A27 RID: 2599 RVA: 0x0002D448 File Offset: 0x0002B648
	private static void GenerateKeyFromPassword(string saltString, string password, int keySize, out byte[] key, int blockSize, out byte[] iv)
	{
		byte[] bytes = Encoding.UTF8.GetBytes(saltString);
		Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, bytes, 1000);
		key = rfc2898DeriveBytes.GetBytes(keySize / 8);
		iv = rfc2898DeriveBytes.GetBytes(blockSize / 8);
	}
}
