public static bool DecryptAsClient(byte[] Src, out byte[] Dest, out int Counter)
 {
     if (Src[0].Equals(0xC3) || Src[0].Equals(0xC4))
     {
         byte[] TempDest;
         SimpleModulus.InitCryptSite(false);
         if (DecodeC3C4(Src, out TempDest, out Counter))
         {
             Dest = TempDest;
             return(true);
         }
         Dest = null;
         return(false);
     }
     else if (Src[0].Equals(0xC1) || Src[0].Equals(0xC2))
     {
         Counter = -1;
         Dest    = Src;
         return(true);
     }
     else
     {
         Counter = -1;
         Dest    = null;
         return(false);
     }
 }
        public static bool EncryptAsClient(byte[] Src, out byte[] Dest, int Counter)
        {
            if (Src[0].Equals(0xC3) || Src[0].Equals(0xC4))
            {
                byte[] TempDest;

                if (EncodeC1C2(Src, out TempDest))
                {
                    byte[] TempDest2;
                    SimpleModulus.InitCryptSite(false);
                    if (EncodeC3C4(TempDest, out TempDest2, Counter))
                    {
                        Dest = TempDest2;
                        return(true);
                    }
                }
                Dest = null;
                return(false);
            }
            else if (Src[0].Equals(0xC1) || Src[0].Equals(0xC2))
            {
                byte[] TempDest2;
                if (EncodeC1C2(Src, out TempDest2))
                {
                    Counter = -1;
                    Dest    = TempDest2;
                    return(true);
                }
                Counter = -1;
                Dest    = null;
                return(false);
            }
            else
            {
                Counter = -1;
                Dest    = null;
                return(false);
            }
        }