public void Initialize()
        {
            _aesCryptoServiceProviderFactory = new AesCryptoServiceProviderFactory();
            _memoryStreamFactory = new MemoryStreamFactory();
            _cryptoStreamFactory = new CryptoStreamFactory();
            _testAesEncryptionStrategy = new AesEncryptionStrategy(_aesCryptoServiceProviderFactory, _memoryStreamFactory, _cryptoStreamFactory);

            _encoding = new UTF8Encoding();
            byte[] bSalt;
            Rfc2898DeriveBytes oRFC2898_Key;
            Rfc2898DeriveBytes oRFC2898_IV;

            bSalt = Encoding.UTF8.GetBytes("SALTSALT");
            oRFC2898_Key = new Rfc2898DeriveBytes("PASSWORD", bSalt);
            oRFC2898_IV = new Rfc2898DeriveBytes("PASSWORDSALTSALT", bSalt);

            _key = oRFC2898_Key.GetBytes(32);
            _iv = oRFC2898_IV.GetBytes(16);
        }
 public CryptoStreamFactory(ICryptoStreamFactory cryptoStreamFactory)
 {
     _cryptoStreamFactory = cryptoStreamFactory;
 }
 public AesEncryptionStrategy(IAesCryptoServiceProviderFactory aesCryptoServiceProviderFactory, IMemoryStreamFactory memoryStreamFactory, ICryptoStreamFactory cryptoStreamFactory)
 {
     _aesCryptoServiceProviderFactory = aesCryptoServiceProviderFactory;
     _memoryStreamFactory = memoryStreamFactory;
     _cryptoStreamFactory = cryptoStreamFactory;
 }