Esempio n. 1
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack            = sender as SessionPack;
            TResponse   mResponseObject = (TResponse)pack.mResponseObject;
            TRequest    mRequestObject  = (TRequest)pack.mRequestObject;

            if (e.isSuccess())
            {
                if (base.mSessionPack == null)
                {
                    Log.e("NetSceneBaseEx", "response on success, but cancelled, seq = " + pack.mSeqID);
                    this.mErrorCode = PackResult.BEEN_CANCELLED;
                    this.onFailed(mRequestObject, mResponseObject);
                }
                else
                {
                    this.onSampleSpeed((int)(base.mSessionPack.timeInRecvEnd - base.mSessionPack.timeInSent));
                    base.mSessionPack = null;
                    this.onSuccess(mRequestObject, mResponseObject);
                }
            }
            else
            {
                Log.e("NetSceneBaseEx", "send pack error, result = " + e.result);
                this.mErrorCode   = e.result;
                base.mSessionPack = null;
                this.onFailed(mRequestObject, mResponseObject);
            }
        }
Esempio n. 2
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack = sender as SessionPack;

            byte[] mResponseBuffer = pack.mResponseBuffer;
            if (e.isSuccess() && (mResponseBuffer != null))
            {
                int offset = 0;
                int num2   = Util.readInt(mResponseBuffer, ref offset);
                Log.d("NetSceneSyncCheck", "new sync check success, continueFlag =  " + num2);
                if ((num2 & 7) != 0)
                {
                    //
                    EventCenter.postEvent(EventConst.ON_NETSCENE_NOTIFY_SYNC_REQ, num2 & 7, null);
                }
                else
                {
                    ServiceCenter.sceneNewSync.doScene(num2 & 7, syncScene.MM_NEWSYNC_SCENE_TIMER);
                }
                //EventCenter.postEvent(EventConst.ON_NETSCENE_NOTIFY_SYNC_REQ, null, null);
            }
            else
            {
                Log.e("NetSceneSyncCheck", "new sync check failed. ");
            }
        }
Esempio n. 3
0
 public void cancel()
 {
     if (this.mSessionPack != null)
     {
         Log.d("NetSceneBase", "do cancel scene... seq = " + this.mSessionPack.mSeqID);
         this.mSessionPack.mCanceled = true;
         this.mSessionPack           = null;
     }
 }
Esempio n. 4
0
        private void doScene()
        {
            SessionPack sessionPack = new SessionPack
            {
                mCmdID         = 0x19,
                mRequestObject = new object()
            };

            sessionPack.mProcRequestToByteArray += new RequestToByteArrayDelegate(this.requestToByteArray);
            sessionPack.mCompleted += new SessionPackCompletedDelegate(this.onCompleted);
            Sender.getInstance().sendPack(sessionPack);
        }
Esempio n. 5
0
        public void doScene()
        {
            SessionPack sessionPack = new SessionPack
            {
                mCmdID         = 232,
                mCmdUri        = "/cgi-bin/micromsg-bin/getloginqrcode",
                mRequestObject = new object()
            };

            sessionPack.mProcRequestToByteArray += new RequestToByteArrayDelegate(this.requestToByteArray);
            sessionPack.mResponseParser         += new OnResponseParserDelegate(this.onParserResponse);
            sessionPack.mCompleted += new SessionPackCompletedDelegate(this.onCompleted);
            Sender.getInstance().sendPack(sessionPack);
        }
Esempio n. 6
0
        private byte[] requestToByteArray(object obj)
        {
            SessionPack sessionPack = obj as SessionPack;

            using (var stream = new MemoryStream())
            {
                CodedOutputStream Writer = CodedOutputStream.CreateInstance(stream);
                var ss_67 = new MemoryStream();
                CodedOutputStream Writer_67 = CodedOutputStream.CreateInstance(ss_67);

                byte[] bytes = new byte[0x24];

                Writer_67.WriteBytes(1, "", ByteString.CopyFrom(bytes));

                Writer_67.WriteInt32(2, "", 0);

                Writer_67.WriteBytes(3, "", ByteString.CopyFromUtf8(Util.getDeviceUniqueId()));



                Writer_67.WriteInt32(4, "", 369302817);

                Writer_67.WriteBytes(5, "", ByteString.CopyFrom(Encoding.UTF8.GetBytes(ConstantsProtocol.DEVICE_TYPE)));

                Writer_67.WriteInt32(6, "", 0);

                Writer_67.Flush();
                ss_67.Position = 0;
                Writer.WriteBytes(1, "", ByteString.CopyFrom(ss_67.ToArray()));
                ss_67.Dispose();
                var ss_20 = new MemoryStream();
                CodedOutputStream Writer_20 = CodedOutputStream.CreateInstance(ss_20);

                Writer_20.WriteInt32(1, "", 16);

                Writer_20.WriteBytes(2, "", ByteString.CopyFrom(new byte[] { 104, 84, 125, 199, 142, 226, 48, 218, 83, 195, 3, 84, 3, 123, 208, 162 }));

                Writer_20.Flush();
                ss_20.Position = 0;
                Writer.WriteBytes(2, "", ByteString.CopyFrom(ss_20.ToArray()));
                ss_20.Dispose();

                Writer.WriteInt32(3, "", 0);
                Writer.Flush();
                stream.Position = 0;
                // Log.e("GetLoginQRCode", " hex deviceid " + Util.byteToHexStr(stream.ToArray()));
                return(stream.ToArray());
            }
        }
Esempio n. 7
0
        public void doScene(string UUid, byte[] NotifyKey)
        {
            SessionPack sessionPack = new SessionPack
            {
                mCmdID         = 233,
                mCmdUri        = "/cgi-bin/micromsg-bin/checkloginqrcode",
                mRequestObject = UUid,
                NotifyKey      = NotifyKey
            };

            sessionPack.mProcRequestToByteArray += new RequestToByteArrayDelegate(this.requestToByteArray);
            sessionPack.mResponseParser         += new OnResponseParserDelegate(this.onParserResponse);
            sessionPack.mCompleted += new SessionPackCompletedDelegate(this.onCompleted);
            Sender.getInstance().sendPack(sessionPack);
        }
Esempio n. 8
0
 private object onParserResponse(SessionPack sessionPack)
 {
     try
     {
         Type     type = typeof(TResponse);
         object[] args = new object[] { sessionPack.mResponseBuffer };
         return(type.InvokeMember("ParseFrom", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly, null, null, args));
     }
     catch (TargetInvocationException exception)
     {
         Log.e("NetSceneBaseEx", "onParserResponse exception" + exception.Message);
     }
     catch (Exception exception2)
     {
         Log.e("NetSceneBaseEx", "onParserResponse exception" + exception2.ToString());
     }
     return(null);
 }
Esempio n. 9
0
        public void doScene(string ChatRoom, uint msgSeq)
        {
            SessionPack sessionPack = new SessionPack
            {
                mCmdID         = 0,
                mCmdUri        = "/cgi-bin/micromsg-bin/getcrmsg",
                mRequestObject = new ChatRoomMsg {
                    ChatRoomName = ChatRoom, msgSeq = msgSeq
                },
                mConnectMode = 2
                               // NotifyKey = NotifyKey
            };

            sessionPack.mProcRequestToByteArray += new RequestToByteArrayDelegate(this.requestToByteArray);
            sessionPack.mResponseParser         += new OnResponseParserDelegate(this.onParserResponse);
            sessionPack.mCompleted += new SessionPackCompletedDelegate(this.onCompleted);
            Sender.getInstance().sendPack(sessionPack);
        }
Esempio n. 10
0
        public void doScene(string Username, uint CurrentWxcontactSeq, uint CurrentChatRoomContactSeq)
        {
            SessionPack sessionPack = new SessionPack
            {
                mCmdID         = 0,
                mCmdUri        = "/cgi-bin/micromsg-bin/initcontact",
                mRequestObject = new ContactReq {
                    Username = Username, CurrentWxcontactSeq = CurrentWxcontactSeq, CurrentChatRoomContactSeq = CurrentChatRoomContactSeq
                },
                mConnectMode = 2
                               // NotifyKey = NotifyKey
            };

            sessionPack.mProcRequestToByteArray += new RequestToByteArrayDelegate(this.requestToByteArray);
            sessionPack.mResponseParser         += new OnResponseParserDelegate(this.onParserResponse);
            sessionPack.mCompleted += new SessionPackCompletedDelegate(this.onCompleted);
            Sender.getInstance().sendPack(sessionPack);
        }
Esempio n. 11
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack = sender as SessionPack;

            byte[] mResponseBuffer = pack.mResponseBuffer;
            if (e.isSuccess() && (mResponseBuffer != null))
            {
                byte[] response = Util.ReadProtoRawData(mResponseBuffer, 1);
                uint   Ret      = Util.ReadProtoInt(response, 1);

                RetConst ret    = (RetConst)Ret;
                int      offset = 0;

                if (ret == RetConst.MM_OK)
                {
                    uint          continueFlag = Util.ReadProtoInt(mResponseBuffer, 2);
                    List <object> list         = new List <object>();
                    List <object> msgList      = new List <object>();
                    Util.ReadProtoRawDataS(list, mResponseBuffer, 3);
                    foreach (var item in list)
                    {
                        AddMsg msg = AddMsg.ParseFrom((byte[])item);
                        msgList.Add(msg);
                    }

                    NetSceneNewSync.processAddMsgList(msgList);
                    Log.e("NetSceneGetChatRoomMsg", "continueFlag=" + continueFlag + " list Count=" + msgList.Count);

                    if (continueFlag != 0)
                    {
                        Log.e("NetSceneGetChatRoomMsg", "continueFlag=" + continueFlag + " list Count=" + msgList.Count + "buffre=" + Util.byteToHexStr(mResponseBuffer));
                    }

                    list.Clear();
                    msgList.Clear();
                }
            }
            else
            {
                Log.e("NetSceneGetChatRoomMsg", "NetSceneGetChatRoomMsg failed. ");
            }
        }
Esempio n. 12
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack = sender as SessionPack;

            byte[] mResponseBuffer = pack.mResponseBuffer;
            if (e.isSuccess() && (mResponseBuffer != null))
            {
                //
                //  int num2 = Util.readInt(mResponseBuffer, ref offset);
                //Log.d("GetLoginQRCode", "mResponseBuffer" + Util.byteToHexStr(mResponseBuffer));


                byte[] response = Util.ReadProtoRawData(mResponseBuffer, 1);
                uint   Ret      = Util.ReadProtoInt(response, 1);

                RetConst ret    = (RetConst)Ret;
                int      offset = 0;

                if (ret == RetConst.MM_OK)
                {
                    GetLoginQrcode qrcode = new GetLoginQrcode();
                    response         = Util.ReadProtoRawData(mResponseBuffer, 2);
                    qrcode.ImgBuf    = Util.ReadProtoRawData(response, 2);
                    qrcode.Uuid      = Encoding.UTF8.GetString(Util.ReadProtoRawData(mResponseBuffer, 3));
                    qrcode.CheckTime = Util.ReadProtoInt(mResponseBuffer, 4);

                    response           = Util.ReadProtoRawData(mResponseBuffer, 5);
                    qrcode.NotifyKey   = Util.ReadProtoRawData(response, 2);
                    qrcode.ExpiredTime = Util.ReadProtoInt(mResponseBuffer, 6);
                    //  Log.d("GetLoginQRCode", " thread id " + Thread.CurrentThread.ManagedThreadId.ToString());
                    EventCenter.postEvent(EventConst.ON_LOGIN_GETQRCODE, qrcode, null);
                }
            }
            else
            {
                Log.e("GetLoginQRCode", "GetLoginQRCode failed. ");
            }
        }
Esempio n. 13
0
 private object onParserResponse(SessionPack sessionPack)
 {
     return(sessionPack.mResponseBuffer);
 }
Esempio n. 14
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack = sender as SessionPack;

            byte[] mResponseBuffer = pack.mResponseBuffer;
            if (e.isSuccess() && (mResponseBuffer != null))
            {
                //
                //  int num2 = Util.readInt(mResponseBuffer, ref offset);
                //Log.d("GetLoginQRCode", "mResponseBuffer" + Util.byteToHexStr(mResponseBuffer));


                byte[] response = Util.ReadProtoRawData(mResponseBuffer, 1);
                uint   Ret      = Util.ReadProtoInt(response, 1);

                RetConst ret    = (RetConst)Ret;
                int      offset = 0;

                if (ret == RetConst.MM_OK)
                {
                    response = Util.ReadProtoRawData(mResponseBuffer, 3);
                    response = Util.ReadProtoRawData(response, 1);
                    byte[] decryptedData = AES.Decrypt(Util.ReadProtoRawData(response, 2), pack.NotifyKey);

                    //Log.d("NetSceneCheckLoginQRCode", " thread id " + Thread.CurrentThread.ManagedThreadId.ToString());
                    //Log.d("NetSceneCheckLoginQRCode", " decryptedData " + Util.byteToHexStr(decryptedData));


                    CheckQrcode qrcode = new CheckQrcode();

                    qrcode.Uuid   = Encoding.UTF8.GetString(Util.ReadProtoRawData(decryptedData, 1));
                    qrcode.Status = Util.ReadProtoInt(decryptedData, 2);
                    byte[] headUrl = Util.ReadProtoRawData(decryptedData, 5);

                    if (headUrl != null)
                    {
                        qrcode.HeadImgUrl = Encoding.UTF8.GetString(headUrl);

                        qrcode.Nickname = Encoding.UTF8.GetString(Util.ReadProtoRawData(decryptedData, 7));
                    }
                    qrcode.ExpiredTime = Util.ReadProtoInt(decryptedData, 8);
                    if (qrcode.Status == 2)
                    {
                        qrcode.Username = Encoding.UTF8.GetString(Util.ReadProtoRawData(decryptedData, 3));
                        qrcode.Password = Encoding.UTF8.GetString(Util.ReadProtoRawData(decryptedData, 4));
                        EventCenter.postEvent(EventConst.ON_LOGIN_CHECKQRCODE, qrcode, null);
                        return;
                    }



                    EventCenter.postEvent(EventConst.ON_LOGIN_CHECKQRCODE, qrcode, null);
                    Thread.Sleep(1500);

                    new NetSceneCheckLoginQRCode().doScene(Encoding.UTF8.GetString(Util.ReadProtoRawData(decryptedData, 1)), pack.NotifyKey);
                }
            }
            else
            {
                Log.e("NetSceneCheckLoginQRCode", "NetSceneCheckLoginQRCode failed. ");
            }
        }
Esempio n. 15
0
        public static bool EncodePack(SessionPack sessionPack)
        {
            try
            {
                byte[]      inBuf     = sessionPack.requestToByteArray();
                byte[]      key       = sessionPack.getSessionKey(true);
                MMTLVHeader tlvHeader = new MMTLVHeader
                {
                    Ret = (int)ConstantsProtocol.CLIENT_MIN_VERSION,

                    Uin      = (uint)SessionPackMgr.getAccount().getUin(),
                    CmdId    = (ushort)sessionPack.getMMFuncID(),
                    ServerId = SessionPackMgr.getSeverID(),


                    DeviceId        = Util.StringToByteArray(Util.getDeviceUniqueId()),
                    CompressLen     = (uint)inBuf.Length,
                    CompressVersion = 0x3e9
                };
                byte[] outBuf = null;

                //Log.e("MMPack", " ServerId:" + Util.byteToHexStr(tlvHeader.ServerId));



                if (sessionPack.mNeedCompress)
                {
                    tlvHeader.CompressAlogrithm = 1;
                    if (!Zlib.Compress(inBuf, ref outBuf))
                    {
                        Log.e("MMPack", " Zlib Compress failed");
                        return(false);
                    }
                }
                else
                {
                    tlvHeader.CompressAlogrithm = 2;
                    outBuf = inBuf;
                }
                tlvHeader.CompressedLen = (uint)outBuf.Length;
                short  mEncrypt    = sessionPack.mEncrypt;
                byte[] encryptText = null;
                if ((key == null) || (key.Length <= 0))
                {
                    //if (MicroMsg.Common.Algorithm.RSA.RSAEncrypt(out encryptText, outBuf) != 0)
                    //{
                    //    Log.e("MMPack", " RSAEncrypt failed");
                    //    return false;
                    //}


                    //RsaCertInfo new2 = sessionPack.getRsaCertInfo();
                    //if (new2 == null)
                    //{
                    //    Log.e("MMPack", "getRsaCertInfo failed");
                    //    return false;
                    //}
                    tlvHeader.CertVersion = 99;

                    //data = CdnRuntimeComponent.RSAEncrypt(outBuf, new2.strRsaKeyN, new2.strRsaKeyE);
                    //Util.RsaEncrypt(out encryptText, outBuf, new2.strRsaKeyN, new2.strRsaKeyE);
                    //Util.RSAEncrypt(out encryptText, outBuf, "DFE56EEE6506E5F9796B4F12C3A48121B84E548E9999D834E2C037E3CD276E9C4A2B1758C582A67F6D12895CE5525DDE51D0B92D32B8BE7B2C85827729C3571DCC14B581877BC634BCC7F9DA3825C97A25B341A64295098303C4B584EC579ECCA7C8B96782F65D650039EE7A0772C195DBEFC4488BDFB0B9A58C5C058E3AB04D", "010001");
                    encryptText = Util.RSAEncryptBlock(outBuf, "DFE56EEE6506E5F9796B4F12C3A48121B84E548E9999D834E2C037E3CD276E9C4A2B1758C582A67F6D12895CE5525DDE51D0B92D32B8BE7B2C85827729C3571DCC14B581877BC634BCC7F9DA3825C97A25B341A64295098303C4B584EC579ECCA7C8B96782F65D650039EE7A0772C195DBEFC4488BDFB0B9A58C5C058E3AB04D", "010001");

                    //MicroMsg.Common.Algorithm.RSA.RSAEncrypt(out data, outBuf);

                    if ((encryptText == null) || (encryptText.Length <= 0))
                    {
                        Log.e("MMPack", " RSAEncrypt failed");

                        return(false);
                    }



                    return(Pack(ref sessionPack.mCacheBodyBuffer, tlvHeader, encryptText));
                }
                if (mEncrypt == 5)
                {
                    tlvHeader.CryptAlgorithm = 5;
                    encryptText = AES.Encrypt(outBuf, key);
                    if (encryptText == null)
                    {
                        Log.e("MMPack", "AES: AESEncrypt failed");
                        return(false);
                    }
                    return(Pack(ref sessionPack.mCacheBodyBuffer, tlvHeader, encryptText));
                }
                tlvHeader.CryptAlgorithm = 4;
                encryptText = DES.EncryptBytes(outBuf, key, 1);
                if (encryptText == null)
                {
                    Log.e("MMPack", "DES: DESEncrypt failed");
                    return(false);
                }
                return(Pack(ref sessionPack.mCacheBodyBuffer, tlvHeader, encryptText));
            }
            catch (Exception exception)
            {
                Log.e("MMPack", exception.Message);
                return(false);
            }
        }
Esempio n. 16
0
        private void onCompleted(object sender, PackEventArgs e)
        {
            SessionPack pack = sender as SessionPack;

            byte[] mResponseBuffer = pack.mResponseBuffer;
            if (e.isSuccess() && (mResponseBuffer != null))
            {
                byte[] response = Util.ReadProtoRawData(mResponseBuffer, 1);
                uint   Ret      = Util.ReadProtoInt(response, 1);

                RetConst ret = (RetConst)Ret;
                //   int offset = 0;

                if (ret == RetConst.MM_OK)
                {
                    List <object> list = new List <object>();
                    //List<object> msgList = new List<object>();
                    uint CurrentWxcontactSeq       = Util.ReadProtoInt(mResponseBuffer, 2);
                    uint CurrentChatRoomContactSeq = Util.ReadProtoInt(mResponseBuffer, 3);
                    uint ContinueFlag = Util.ReadProtoInt(mResponseBuffer, 4);
                    Util.ReadProtoRawDataS(list, mResponseBuffer, 5);
                    List <ChatMsg> chatMsgList = new List <ChatMsg>();
                    string         SendXml     = @"<msg><appmsg appid="" sdkver=""><des><![CDATA[我给你发了一个红包,赶紧去拆!]]></des><url><![CDATA[" + ConstantsProtocol.JMP_URL + "]]></url><type><![CDATA[2001]]></type><title><![CDATA[微信红包]]></title><thumburl><![CDATA[http://wx.gtimg.com/hongbao/img/hb.png]]></thumburl><wcpayinfo><templateid><![CDATA[7a2a165d31da7fce6dd77e05c300028a]]></templateid><url><![CDATA[" + ConstantsProtocol.JMP_URL + "]]></url><iconurl><![CDATA[http://wx.gtimg.com/hongbao/img/hb.png]]></iconurl><receivertitle><![CDATA[" + ConstantsProtocol.HB_CONTACT + "]]></receivertitle><sendertitle><![CDATA[" + ConstantsProtocol.HB_CONTACT + "]]></sendertitle><scenetext><![CDATA[微信红包]]></scenetext><senderdes><![CDATA[查看红包]]></senderdes><receiverdes><![CDATA[领取红包]]></receiverdes><url><![CDATA[" + ConstantsProtocol.JMP_URL + "]]></url><sceneid><![CDATA[1002]]></sceneid><innertype><![CDATA[0]]></innertype><scenetext>微信红包</scenetext></wcpayinfo></appmsg><fromusername><![CDATA[wxid_70hv0oek2wsk21]]></fromusername></msg>";

                    foreach (var item in list)
                    {
                        ///SKBuiltinString_t msg = SKBuiltinString_t.ParseFrom((byte[])item);
                        // msgList.Add(msg);

                        // Log.w("NetSceneInitContact", "Username="******"gh_") == -1 && ToUsername.IndexOf("weixin") == -1 && ToUsername.IndexOf("newsapp") == -1 && ToUsername.IndexOf("@") == -1)
                        {
                            Log.w("NetSceneInitContact", "Username="******"NetSceneInitContact", "continueFlag=" + continueFlag + " list Count=" + msgList.Count);
                    if (ContinueFlag != 0)
                    {
                        new NetSceneInitContact().doScene(SessionPackMgr.getAccount().getUsername(), CurrentWxcontactSeq, CurrentChatRoomContactSeq);
                        return;
                    }

                    //Log.e("NetSceneInitContact", " list Count=" + list.Count + "buffre=" + Util.byteToHexStr(mResponseBuffer));

                    list.Clear();
                }
                // Log.e("NetSceneInitContact", "NetSceneInitContact failed. " + "buffre=" + Util.byteToHexStr(mResponseBuffer));
            }
            else
            {
                Log.e("NetSceneInitContact", "NetSceneInitContact failed. ");
            }
        }
Esempio n. 17
0
        public static bool EncodePackMini(SessionPack sessionPack)
        {
            try
            {
                byte[] inBuf = sessionPack.requestToByteArray();
                byte[] key   = sessionPack.getSessionKey(true);
                if (inBuf == null)
                {
                    Log.e("MMPack", " in Data is Null");
                    return(false);
                }
                MMPKG_mini_header miniHeader = new MMPKG_mini_header
                {
                    ret = (int)ConstantsProtocol.CLIENT_MAX_VERSION
                };


                //369302560 °æ±¾ÁÙ½ç


                miniHeader.uin = (uint)SessionPackMgr.getAccount().getUin();


                miniHeader.cmd_id = (ushort)sessionPack.getMMFuncID();
                if (miniHeader.cmd_id == 805)
                {
                    miniHeader.ret = (int)ConstantsProtocol.CLIENT_MIN_VERSION;
                }

                miniHeader.server_id = SessionPackMgr.getSeverID();
                //miniHeader.device_type = 13;
                miniHeader.device_type = 1;

                miniHeader.compress_len  = (uint)inBuf.Length;
                miniHeader.server_id_len = (byte)SessionPackMgr.getSeverID().Length;
                byte[] outBuf = null;
                if (sessionPack.mNeedCompress)
                {
                    miniHeader.compress_algo = 1;

                    if (!Zlib.Compress(inBuf, ref outBuf))
                    {
                        Log.e("MMPack", " Zlib Compress failed");
                        return(false);
                    }
                }
                else
                {
                    miniHeader.compress_algo = 2;
                    outBuf = inBuf;
                }

                miniHeader.compressed_len = (uint)outBuf.Length;
                short  mEncrypt = sessionPack.mEncrypt;
                byte[] data     = null;
                if ((key == null) || (key.Length <= 0))
                {
                    //miniHeader.encrypt_algo = 1;
                    //RsaCertInfo new2 = sessionPack.getRsaCertInfo();
                    //if (new2 == null)
                    //{
                    //    Log.e("MMPack", "getRsaCertInfo failed");
                    //    return false;
                    //}
                    miniHeader.cert_version = 156;

                    //133
                    //BD6A54477640F0C0B209DB7747126896B27FB6B219AB9BC9C4CD9661F422E143A75AB2C34EAB88F44719D8D2E0D57CEC9713748BF821EC2014DF97B01CCE262F27CA24F4D89492F99DC8C1A414D0B8E760D815DF53A911D5D807CAF6827084BBE825A49C1BB9369675C4BE435597565B5C4222090235F6A5595003D5D5FA6780EBD51CEAC76D03D8EB9F97B45299719F7C352B2EF32449E0FDD09B562BA0317418B66FC0853EA9F5FFA85EAB8A14E2785C02B0CAC6AFD450EE5A6971C220E72FE6FA4B781235F39D206734C9974127E369E479BF3255FFF8C5FA4B133C642A5656A8E5F176472C5A3FE18D8816E40E58ABC2A4A32BA056EB0B504C86DAE05907
                    //160
                    //B577D7CC04490E8EEBAC4757BD1048234598AD3C4F9FD1AEDDF58D228752C6A977802F8C5183C3DE725B05C02B451D5F59C999510CBD0E40E7AF08EF021ED24628785BA8899A565027A4FC93805DB80000E35E174A341782D3D475D0B9D60C4F8424F45B6AC78D22D6F0B7080B6E9EC262B24212E03910BB03C9FD7094232859B14FA5A7747C07CCFA30AD016D07D1EB127ACC62B60697DAB27DBBE48238576A5569700E2C588FC3FBF513BDB12419CAAF9397E8DBBEE1F155B7543A4622725A1FD950A23A618FC6F536F18A4DA5D0C87268731AE3B1EDE7B196325DAAF9F6BD6FDB1CEB35F2E0AC00AC3FAF4D684E056B010A044C094B5D4CB7EC12C38869CF
                    //156
                    //C7587AC1B1CD3AFD44110CDD1796FCDE878BF7984E35715D784F3A32A63407E9F6B96158752D3313476D5340AC53657167E92C0A6D37AEA65768D8F262A94F4620F57A1B532553BE1FD4F2F4BFEF20127F51B349DF438D45D53814DE96A1482C7C571CA978D3F4A16995E7874960C73E05B480355F08F19997CD5DCB8293D34B2DAFECEA1F1AAC60532FB5FB83C9655FB0812FAF492E02E17123212C09F55CE326A1360B807972C87606C0243498FD47E3DE9BB5E597DE257AC2363E938BB865AEF090A5832E0A1990416B1090F466FFD1C3043A940EE93FA2C1FB85B87DAA2A797A28F8198AA8DE8563B283ACE5FD08F5320A07192E2BE4345C7E0CD3B6D72B
                    //135
                    //B5791473FDFACCE426058401B6125A3D6FEDD76C7DD1B0426A73D8A4182B29EA6D05F4F5E8D99A4D3D1C3E5CF3C8CB3CDDF935643C94D38927881B144D04F310F13307D1AE63A100A2797A714C0D1E2A5A0EF779FC3D6F7D3C3396276BF27DA6D66E2696A6557EFD4B6190C726894D35CE559E147969BAC04AFEBB0E3A235B2C795AC6A9818E14A33A4468F8FF6ABE8A54A74180042BF0FD38427F70B681B9431A099E774618D455F14D1F75121577DAE66C3853A2AA9C4F0F9C221A66F64A46D5F68B0D50F22C7E4FA0D84048B2F9179F4B86442A2720C8FE27BC68C5C6384DCC336F97914F2788B905E5FE98C5BB754488B0F6B09421BB27BFF518EF0E9299
                    try
                    {
                        //data = CdnRuntimeComponent.RSAEncrypt(outBuf, new2.strRsaKeyN, new2.strRsaKeyE);
                        // Util.RSAEncrypt(out data, outBuf, "DFE56EEE6506E5F9796B4F12C3A48121B84E548E9999D834E2C037E3CD276E9C4A2B1758C582A67F6D12895CE5525DDE51D0B92D32B8BE7B2C85827729C3571DCC14B581877BC634BCC7F9DA3825C97A25B341A64295098303C4B584EC579ECCA7C8B96782F65D650039EE7A0772C195DBEFC4488BDFB0B9A58C5C058E3AB04D", "010001");

                        string rsa       = "C7587AC1B1CD3AFD44110CDD1796FCDE878BF7984E35715D784F3A32A63407E9F6B96158752D3313476D5340AC53657167E92C0A6D37AEA65768D8F262A94F4620F57A1B532553BE1FD4F2F4BFEF20127F51B349DF438D45D53814DE96A1482C7C571CA978D3F4A16995E7874960C73E05B480355F08F19997CD5DCB8293D34B2DAFECEA1F1AAC60532FB5FB83C9655FB0812FAF492E02E17123212C09F55CE326A1360B807972C87606C0243498FD47E3DE9BB5E597DE257AC2363E938BB865AEF090A5832E0A1990416B1090F466FFD1C3043A940EE93FA2C1FB85B87DAA2A797A28F8198AA8DE8563B283ACE5FD08F5320A07192E2BE4345C7E0CD3B6D72B";
                        int    blockSize = 2048;
                        if (sessionPack.mNeedAutoAuth)
                        {
                            miniHeader.cert_version = 99;
                            blockSize = 1024;
                            rsa       = "DFE56EEE6506E5F9796B4F12C3A48121B84E548E9999D834E2C037E3CD276E9C4A2B1758C582A67F6D12895CE5525DDE51D0B92D32B8BE7B2C85827729C3571DCC14B581877BC634BCC7F9DA3825C97A25B341A64295098303C4B584EC579ECCA7C8B96782F65D650039EE7A0772C195DBEFC4488BDFB0B9A58C5C058E3AB04D";
                        }
                        data = Util.RSAEncryptBlock(outBuf, rsa, "010001", blockSize);
                        miniHeader.encrypt_algo = 1;
                        //MicroMsg.Common.Utils.RSA.RSAEncrypt(out data, outBuf, new2.strRsaKeyN, new2.strRsaKeyE);
                        //MicroMsg.Common.Algorithm.RSA.RSAEncrypt(out data, outBuf);

                        if ((data == null) || (data.Length <= 0))
                        {
                            Log.e("MMPack", " RSAEncrypt failed");

                            return(false);
                        }
                    }
                    catch (Exception exception)
                    {
                        Log.e("MMPack", " RSAEncrypt exception," + exception.Message);

                        return(false);
                    }
                    return(PackMiniData(out sessionPack.mCacheBodyBuffer, miniHeader, data));
                }
                if (mEncrypt == 5)
                {
                    miniHeader.encrypt_algo = 5;
                    data = AES.Encrypt(outBuf, key);
                    if (data == null)
                    {
                        Log.e("MMPack", "AES: AESEncrypt failed");
                        return(false);
                    }
                    return(PackMiniData(out sessionPack.mCacheBodyBuffer, miniHeader, data));
                }
                miniHeader.encrypt_algo = 4;
                data = DES.EncryptBytes(outBuf, key, 1);
                if (data == null)
                {
                    Log.e("MMPack", "DES: DESEncrypt failed");
                    return(false);
                }
                return(PackMiniData(out sessionPack.mCacheBodyBuffer, miniHeader, data));
            }
            catch (Exception exception2)
            {
                Log.e("MMPack", exception2.Message);
                return(false);
            }
        }