public override void Write(byte[] b, int off, int len)
 {
     if (_aes)
     {
         byte[] b2 = Cipher.Update(b, off, len);
         if (b2 == null || b2.Length == 0)
         {
             return;
         }
         Outc.Write(b2, 0, b2.Length);
     }
     else
     {
         byte[] b2 = new byte[Math.Min(len, 4192)];
         while (len > 0)
         {
             int sz = Math.Min(len, b2.Length);
             Arcfour.EncryptArcfour(b, off, sz, b2, 0);
             Outc.Write(b2, 0, sz);
             len -= sz;
             off += sz;
         }
     }
 }