Example #1
0
        //158 - "SETBADGE": "B^"
        public void Listener158()
        {
            int    badgeLen = Base64Encoding.DecodeInt(mPacketBody.Substring(0, 2));
            string badge    = mPacketBody.Substring(2, badgeLen);

            if (ArgumentEncoding.decodeInt(mPacketBody.Substring(mPacketBody.Length - 1, 1)) == 1)
            {
                if (mUserInfo.Badges.Contains(badge))
                {
                    mUserInfo.sBadge = badge;
                }
            }
            else
            {
                if (mUserInfo.sBadge == badge)
                {
                    mUserInfo.sBadge = "";
                }
            }

            InstanceManager.Game.Users.SetBadge(mUserInfo.userId, mUserInfo.sBadge);

            mUserInfo = InstanceManager.Game.Users.GetUser(mUserInfo.userId);

            mMessage.Init(228); //Cd
            mMessage.appendArgumentInt(mRoomInstance.GetUser(mSessionID).RoomUserID);
            mMessage.appendString(mUserInfo.sBadge);
            mMessage.appendChar(2);
            mRoomInstance.RoomBroadcast(mMessage);
        }
Example #2
0
        //75 - "MOVE": "AK"
        public void Listener75()
        {
            int x = Base64Encoding.DecodeInt(mPacketBody.Substring(0, 2));
            int y = Base64Encoding.DecodeInt(mPacketBody.Substring(2));

            mRoomInstance.Interactor.RequestMovePlayer(mSessionID, x, y, null, false);
        }
        private void WriteBase64Text(byte[] buffer, int offset, int count)
        {
            if (this.base64Chars == null)
            {
                this.base64Chars = new byte[0x200];
            }
            Base64Encoding encoding = XmlConverter.Base64Encoding;

            while (count >= 3)
            {
                int byteCount = Math.Min((int)((this.base64Chars.Length / 4) * 3), (int)(count - (count % 3)));
                int num2      = (byteCount / 3) * 4;
                encoding.GetChars(buffer, offset, byteCount, this.base64Chars, 0);
                this.signingWriter.WriteText(this.base64Chars, 0, num2);
                if (this.text)
                {
                    this.writer.WriteText(this.base64Chars, 0, num2);
                }
                offset += byteCount;
                count  -= byteCount;
            }
            if (count > 0)
            {
                encoding.GetChars(buffer, offset, count, this.base64Chars, 0);
                this.signingWriter.WriteText(this.base64Chars, 0, 4);
                if (this.text)
                {
                    this.writer.WriteText(this.base64Chars, 0, 4);
                }
            }
        }
Example #4
0
        private async Task InternalWriteBase64TextAsync(byte[] buffer, int offset, int count)
        {
            Base64Encoding encoding = XmlConverter.Base64Encoding;

            while (count >= 3)
            {
                int             byteCount = Math.Min(bufferLength / 4 * 3, count - count % 3);
                int             charCount = byteCount / 3 * 4;
                int             charOffset;
                BytesWithOffset bufferResult = await GetBufferAsync(charCount).ConfigureAwait(false);

                byte[] chars = bufferResult.Bytes;
                charOffset = bufferResult.Offset;
                Advance(encoding.GetChars(buffer, offset, byteCount, chars, charOffset));
                offset += byteCount;
                count  -= byteCount;
            }
            if (count > 0)
            {
                int             charOffset;
                BytesWithOffset bufferResult = await GetBufferAsync(4).ConfigureAwait(false);

                byte[] chars = bufferResult.Bytes;
                charOffset = bufferResult.Offset;
                Advance(encoding.GetChars(buffer, offset, count, chars, charOffset));
            }
        }
Example #5
0
            static void OnGetBufferComplete(IAsyncEventArgs state)
            {
                GetBufferEventResult result = ((GetBufferAsyncEventArgs)state).Result;
                InternalWriteBase64TextAsyncWriter thisPtr    = (InternalWriteBase64TextAsyncWriter)state.AsyncState;
                XmlWriteBase64AsyncArguments       writerArgs = thisPtr.writerState.Arguments;

                Exception completionException = null;
                bool      completeSelf        = false;

                try
                {
                    if (state.Exception != null)
                    {
                        completionException = state.Exception;
                        completeSelf        = true;
                    }
                    else
                    {
                        byte[] chars  = result.Buffer;
                        int    offset = result.Offset;

                        Base64Encoding encoding  = XmlConverter.Base64Encoding;
                        int            byteCount = Math.Min(bufferLength / 4 * 3, writerArgs.Count - writerArgs.Count % 3);
                        int            charCount = byteCount / 3 * 4;

                        thisPtr.writer.Advance(encoding.GetChars(
                                                   writerArgs.Buffer,
                                                   writerArgs.Offset,
                                                   byteCount,
                                                   chars,
                                                   offset));

                        if (byteCount >= 3)
                        {
                            writerArgs.Offset += byteCount;
                            writerArgs.Count  -= byteCount;
                        }

                        if (thisPtr.InternalWriteBase64TextAsync(thisPtr.writerState) == AsyncCompletionResult.Completed)
                        {
                            completeSelf = true;
                        }
                    }
                }
                catch (Exception exception)
                {
                    if (Fx.IsFatal(exception))
                    {
                        throw;
                    }

                    completionException = exception;
                    completeSelf        = true;
                }

                if (completeSelf)
                {
                    thisPtr.writerState.Complete(false, completionException);
                }
            }
        public override void ChannelRead(IChannelHandlerContext ctx, object msg)
        {
            Client      client  = Engine.Locator.ClientController.GetClient(ctx.Channel);
            IByteBuffer message = msg as IByteBuffer;

            if (message.GetByte(0) == 60)
            {
                string policy =
                    "<?xml version=\"1.0\"?>\r\n<!DOCTYPE cross-domain-policy SYSTEM \"/xml/dtds/cross-domain-policy.dtd\">\r\n<cross-domain-policy>\r\n   <allow-access-from domain=\"*\" to-ports=\"1-65535\" />\r\n</cross-domain-policy>\0";
                ctx.Channel.WriteAndFlushAsync(Unpooled.CopiedBuffer(Encoding.GetEncoding(0).GetBytes(policy))).Wait();
            }
            else
            {
                while (message.ReadableBytes >= 5)
                {
                    int length = Base64Encoding.DecodeInt32(message.ReadBytes(3).ToArray());

                    if (length > 0)
                    {
                        IByteBuffer packet = message.ReadBytes(length);

                        Engine.Locator.PacketController.Handle(client, packet);
                    }
                }
            }

            base.ChannelRead(ctx, msg);
        }
Example #7
0
        public void newData(string data)
        {
            switch (state)
            {
            case 0:     //New stack
                sb    = new StringBuilder();
                state = 1;
                newData(data);
                break;

            case 1:     //Message Header
                sb.Append(data);
                if (sb.Length == headersize)
                {
                    waitFor = Base64Encoding.DecodeInt(sb.ToString());
                    sb      = new StringBuilder();
                    state   = 2;
                }
                break;

            case 2:     //Message
                sb.Append(data);
                if (sb.Length == waitFor)
                {
                    stackDone = true;
                    state     = 0;
                }
                break;
            }
        }
Example #8
0
        public static void HandleBytes(Session Session, ref byte[] Bytes)
        {
            if (Encoding.ASCII.GetString(Bytes) == "<policy-file-request/>\x0")
            {
                Session.Send(PolicyFileRequest);
                return;
            }

            var Pointer = new int();

            try
            {
                for (; Pointer < Bytes.Length;)
                {
                    var MessageLength = Base64Encoding.DecodeInt32(new byte[] { Bytes[Pointer++], Bytes[Pointer++], Bytes[Pointer++] });
                    var MessageId     = Base64Encoding.DecodeInt32(new byte[] { Bytes[Pointer++], Bytes[Pointer++] });

                    var ContextLength = (MessageLength - 2);
                    var Context       = new byte[ContextLength];

                    Array.Copy(Bytes, Pointer, Context, 0, ContextLength);

                    Pointer += ContextLength;

                    var InMessage = new InMessage(MessageId, Context);

                    HandleEvent(Session, InMessage);
                }
            }
            catch { }
        }
        public void Verify_Decode()
        {
            var e       = new Base64Encoding();
            var decoded = e.GetBytes(EncodedMessage);

            Assert.AreEqual(Message, decoded);
        }
Example #10
0
        private ClientMessage TryParseAsOldCrypto(byte[] packet)
        {
            try
            {
                int i = 0;
                while (i < packet.Length)
                {
                    int lenght = Base64Encoding.DecodeInt32(new byte[] { (byte)packet[i++], (byte)packet[i++], (byte)packet[i++] });
                    if (lenght > 0)
                    {
                        uint id = Base64Encoding.DecodeUInt32(new byte[] { (byte)packet[i++], (byte)packet[i++] });
                        if (id > 0)
                        {
                            byte[] bytes = new byte[lenght - 2];
                            for (int j = 0; j < bytes.Length; j++)
                            {
                                bytes[j] = packet[i++];
                            }

                            OldCryptoClientMessage crypto = new OldCryptoClientMessage();
                            crypto.Init(id, bytes);
                            return(crypto);
                        }
                    }
                }
            }
            catch
            {
                return(null);
            }

            return(null);
        }
Example #11
0
        private void WriteBase64Text(byte[] buffer, int offset, int count)
        {
            if (_base64Chars == null)
            {
                _base64Chars = new byte[512];
            }
            Base64Encoding encoding = XmlConverter.Base64Encoding;

            while (count >= 3)
            {
                int byteCount = Math.Min(_base64Chars.Length / 4 * 3, count - count % 3);
                int charCount = byteCount / 3 * 4;
                encoding.GetChars(buffer, offset, byteCount, _base64Chars, 0);
                _signingWriter.WriteText(_base64Chars, 0, charCount);
                if (_text)
                {
                    _writer.WriteText(_base64Chars, 0, charCount);
                }
                offset += byteCount;
                count  -= byteCount;
            }
            if (count > 0)
            {
                encoding.GetChars(buffer, offset, count, _base64Chars, 0);
                _signingWriter.WriteText(_base64Chars, 0, 4);
                if (_text)
                {
                    _writer.WriteText(_base64Chars, 0, 4);
                }
            }
        }
Example #12
0
        public void handlePacketData(byte[] data)
        {
            int pos = 0;

            while (pos < data.Length)
            {
                try
                {
                    int MessageLength = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++] });
                    int MessageId     = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++] });

                    byte[] Content = new byte[MessageLength - 2];

                    for (int i = 0; i < Content.Length && pos < data.Length; i++)
                    {
                        Content[i] = data[pos++];
                    }
                    if (onNewPacket != null)
                    {
                        using (ClientMessage message = ClientMessageFactory.GetClientMessage(MessageId, Content))
                        {
                            onNewPacket.Invoke(message);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logging.HandleException(e, "packet handling");
                    con.Dispose();
                }
            }
        }
Example #13
0
 public bool TryReadBase64(byte[] buffer, int offset, int count, out int actual)
 {
     if (this.type == ValueHandleType.Base64)
     {
         actual = Math.Min(this.length, count);
         this.GetBase64(buffer, offset, actual);
         this.offset += actual;
         this.length -= actual;
         return(true);
     }
     if (((this.type == ValueHandleType.UTF8) && (count >= 3)) && ((this.length % 4) == 0))
     {
         try
         {
             int charCount = Math.Min((count / 3) * 4, this.length);
             actual       = Base64Encoding.GetBytes(this.bufferReader.Buffer, this.offset, charCount, buffer, offset);
             this.offset += charCount;
             this.length -= charCount;
             return(true);
         }
         catch (FormatException)
         {
         }
     }
     actual = 0;
     return(false);
 }
Example #14
0
        [Test] public void Base64()
        {
            // All bytes from 0 to ff
            byte[] sbuf = new byte[256]; for (int i = 0; i != 256; ++i)
            {
                sbuf[i] = (byte)i;
            }
            byte[] dbuf = Encoding.ASCII.GetBytes("AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj" +
                                                  "JCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZH" +
                                                  "SElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWpr" +
                                                  "bG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6P" +
                                                  "kJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKz" +
                                                  "tLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX" +
                                                  "2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7" +
                                                  "/P3+/w==");

            int len = Base64Encoding.EncodeSize(sbuf.Length);

            Assert.Equal(dbuf.Length, len);

            int dst_length;

            byte[] dst = new byte[len];
            Base64Encoding.Encode(sbuf, dst, out dst_length);
            Assert.Equal(dbuf.Length, dst_length);
            for (int i = 0; i != dbuf.Length; ++i)
            {
                Assert.Equal(dbuf[i], dst[i]);
            }

            len = Base64Encoding.DecodeSize(dbuf.Length);
            Assert.True(len >= sbuf.Length);

            int src_length;

            byte[] src = new byte[len];
            Base64Encoding.Decode(dst, src, out src_length);
            Assert.Equal(sbuf.Length, src_length);
            for (int i = 0; i != sbuf.Length; ++i)
            {
                Assert.Equal(sbuf[i], src[i]);
            }

            // Random binary data
            Random r = new Random();

            for (int i = 0; i != sbuf.Length; ++i)
            {
                sbuf[i] = (byte)(r.Next(0xFF));
            }

            Base64Encoding.Encode(sbuf, dst, out dst_length);
            Base64Encoding.Decode(dst, src, out src_length);
            Assert.Equal(sbuf.Length, src_length);
            for (int i = 0; i != sbuf.Length; ++i)
            {
                Assert.Equal(sbuf[i], src[i]);
            }
        }
        public void Encode()
        {
            Base64Encoding e = new Base64Encoding();

            i = "test";
            o = e.Encode(i);
            Assert.Equal(o, "dGVzdA==");

            i = "test0";
            o = e.Encode(i);
            Assert.Equal(o, "dGVzdDA=");

            i = "test00";
            o = e.Encode(i);
            Assert.Equal(o, "dGVzdDAw");

            i = "test01";
            o = e.Encode(i);
            Assert.Equal(o, "dGVzdDAx");

            i = "test000";
            o = e.Encode(i);
            Assert.Equal(o, "dGVzdDAwMA==");

            o = e.Encode(new byte[] { 0, });
            Assert.Equal(o, "AA==");

            o = e.Encode(new byte[] { 0, 0, });
            Assert.Equal(o, "AAA=");

            o = e.Encode(new byte[] { 0, 0, 0, });
            Assert.Equal(o, "AAAA");

            i =
                "Man is distinguished, not only by his reason, but by this singular passion from "
                +
                "other animals, which is a lust of the mind, that by a perseverance of delight "
                +
                "in the continued and indefatigable generation of knowledge, exceeds the short"
                +
                "vehemence of any carnal pleasure."
            ;
            string o_encoded =
                "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz"
                +
                "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg"
                +
                "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu"
                +
                "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo"
                +
                "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
            ;

            o = e.Encode(i);
            //Assert.Equal(o, o_encoded);

            return;
        }
Example #16
0
        public static string DecryptCookie(string str)
        {
            var base64 = Crypt.Decrypt(str, cookieKey);

            string result = Base64Encoding.DecodeBase64(base64);

            return(result);
        }
Example #17
0
        /// <summary>
        /// Handles a given amount of data in a given byte array, by attempting to parse messages from the received data and process them in the message handler.
        /// </summary>
        /// <param name="Data">The byte array with the data to process.</param>
        /// <param name="numBytesToProcess">The actual amount of bytes in the byte array to process.</param>
        public void HandleConnectionData(ref byte[] data)
        {
            // Gameclient protocol or policyrequest?
            if (data[0] != 64)
            {
                IonEnvironment.GetLog().WriteInformation("Client " + mID + " sent non-gameclient message: " + IonEnvironment.GetDefaultTextEncoding().GetString(data));

                string xmlPolicy =
                    "<?xml version=\"1.0\"?>\r\n" +
                    "<!DOCTYPE cross-domain-policy SYSTEM \"/xml/dtds/cross-domain-policy.dtd\">\r\n" +
                    "<cross-domain-policy>\r\n" +
                    "<allow-access-from domain=\"*\" to-ports=\"1-31111\" />\r\n" +
                    "</cross-domain-policy>\x0";

                IonEnvironment.GetLog().WriteInformation("Client " + mID + ": sending XML cross domain policy file: " + xmlPolicy);
                mConnection.SendData(xmlPolicy);

                mMessageHandler.GetResponse().Initialize(ResponseOpcodes.SecretKey); // "@A"
                mMessageHandler.GetResponse().Append("ION/Deltar");
                mMessageHandler.SendResponse();
            }
            else
            {
                int pos = 0;
                while (pos < data.Length)
                {
                    try
                    {
                        // Total length of message (without this): 3 Base64 bytes
                        int messageLength = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++] });

                        // ID of message: 2 Base64 bytes
                        uint messageID = Base64Encoding.DecodeUInt32(new byte[] { data[pos++], data[pos++] });

                        // Data of message: (messageLength - 2) bytes
                        byte[] Content = new byte[messageLength - 2];
                        for (int i = 0; i < Content.Length; i++)
                        {
                            Content[i] = data[pos++];
                        }

                        // Create message object
                        ClientMessage message = new ClientMessage(messageID, Content);

                        // Handle message object
                        mMessageHandler.HandleRequest(message);
                    }
                    catch (IndexOutOfRangeException) // Bad formatting!
                    {
                        IonEnvironment.GetHabboHotel().GetClients().StopClient(mID);
                    }
                    catch (Exception ex)
                    {
                        IonEnvironment.GetLog().WriteUnhandledExceptionError("GameClient.HandleConnectionData", ex);
                    }
                }
            }
        }
Example #18
0
        public bool SendModCommandToServer(string command, int issuer, int target, string message)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(Base64Encoding.EncodeInt(999, 2));

            sb.Append(Base64Encoding.EncodeInt(command.Length, 2));
            sb.Append(command);

            sb.Append(Base64Encoding.EncodeInt(issuer.ToString().Length, 2));
            sb.Append(issuer);

            sb.Append(Base64Encoding.EncodeInt(target.ToString().Length, 2));
            sb.Append(target);

            sb.Append(Base64Encoding.EncodeInt(message.Length, 2));
            sb.Append(message);

            string packet = Base64Encoding.EncodeInt(sb.Length, 3) + sb.ToString();

            IPEndPoint ip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(Settings.ListenPort));

            Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                server.Connect(ip);
            }
            catch
            {
                return(false);
            }


            byte[] data = new byte[1024];
            int    receivedDataLength = server.Receive(data);
            string stringData         = Encoding.ASCII.GetString(data, 0, receivedDataLength);

            if (stringData == "@@" + Convert.ToChar(1))
            {
                server.Send(Encoding.ASCII.GetBytes(packet));
                data = new byte[1024];
                receivedDataLength = server.Receive(data);
                stringData         = Encoding.ASCII.GetString(data, 0, receivedDataLength);
            }



            server.Shutdown(SocketShutdown.Both);
            server.Close();

            if (stringData == "ACK")
            {
                return(true);
            }
            return(false);
        }
Example #19
0
        public void HandleConnectionData(ref byte[] data)
        {
            if (data[0] == 64)
            {
                int pos = 0;
                while (pos < data.Length)
                {
                    try
                    {
                        int  MessageLength = Base64Encoding.DecodeInt32(new byte[] { data[pos++], data[pos++], data[pos++] });
                        uint MessageId     = Base64Encoding.DecodeUInt32(new byte[] { data[pos++], data[pos++] });

                        byte[] Content = new byte[MessageLength - 2];
                        for (int j = 0; j < Content.Length; j++)
                        {
                            Content[j] = data[pos++];
                        }
                        if (this.MessageHandler == null)
                        {
                            this.InitHandler();
                        }
                        ClientMessage Message = new ClientMessage(MessageId, Content);
                        if (Message != null)
                        {
                            try
                            {
                                if (int.Parse(PhoenixEnvironment.GetConfig().data["debug"]) == 1)
                                {
                                    Logging.WriteLine(string.Concat(new object[] { "[", ClientId, "] --> [", Message.Id, "] ", Message.Header, Message.GetBody() }));
                                }
                            }
                            catch
                            {
                            }
                            MessageEvent MessageHandler;
                            if (PhoenixEnvironment.GetPacketManager().Get(Message.Id, out MessageHandler))
                            {
                                MessageHandler.parse(this, Message);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Logging.LogException("Error: " + ex.ToString());
                        this.Disconnect();
                    }
                }
            }
            else
            {
                if (true)
                {
                    this.Connection.SendData(CrossdomainPolicy.GetXmlPolicy());
                    this.Connection.Dispose();
                }
            }
        }
        public bool ReadByte(byte byte_) //returns if packet is fully readed
        {
            if (this.Lenght != null)
            {
                if (this.Packet == null)
                {
                    this.Packet = new byte[(int)this.Lenght];
                }

                this.Packet[this.Pointer++] = byte_;
            }
            else
            {
                if (this.LenghtBytes == null)
                {
                    if (this.RC4 == null)
                    {
                        this.LenghtBytes = new byte?[3] {
                            null, null, null
                        };
                    }
                    else
                    {
                        this.LenghtBytes = new byte?[6] {
                            null, null, null, null, null, null
                        };
                    }
                }

                int i = 0;
                for (; i < this.LenghtBytes.Length; i++)
                {
                    if (this.LenghtBytes[i] == null)
                    {
                        this.LenghtBytes[i] = byte_;
                        break;
                    }
                }

                if (i == this.LenghtBytes.Length - 1)
                {
                    if (this.RC4 == null)
                    {
                        this.Lenght = Base64Encoding.DecodeInt32(this.LenghtBytes.Select(j => (byte)j).ToArray());
                    }
                    else
                    {
                        this.Lenght = Base64Encoding.DecodeInt32(this.RC4.Decipher(this.LenghtBytes.Select(j => (byte)j).ToArray(), false)) * 2;
                    }
                }

                return(false);
            }

            return(this.Pointer == this.Packet.Length);
        }
Example #21
0
 private void btnB64Encode_Click(object sender, EventArgs e)
 {
     try
     {
         txtB64Output.Text = Base64Encoding.EncodeInt(int.Parse(txtBase64Input.Text), 2);
     }
     catch
     {
         MessageBox.Show("Invalid input.");
     }
 }
Example #22
0
 private void btnDecode64_Click(object sender, EventArgs e)
 {
     try
     {
         txtB64Output.Text = Base64Encoding.DecodeInt(txtBase64Input.Text).ToString();
     }
     catch
     {
         MessageBox.Show("Invalid input.");
     }
 }
Example #23
0
 public byte[] GetBytes()
 {
     byte[] buffer  = new byte[this.Length + 3];
     byte[] buffer2 = Base64Encoding.Encodeuint(this.MessageId, 2);
     buffer[0] = buffer2[0];
     buffer[1] = buffer2[1];
     for (int i = 0; i < this.Length; i++)
     {
         buffer[i + 2] = this.Body[i];
     }
     buffer[buffer.Length - 1] = 1;
     return(buffer);
 }
Example #24
0
 public override byte[] GetBytes()
 {
     byte[] Data   = new byte[this.GetLenght() + 3];
     byte[] Header = Base64Encoding.Encodeuint(this.ID, 2);
     Data[0] = Header[0];
     Data[1] = Header[1];
     for (int i = 0; i < this.GetLenght(); i++)
     {
         Data[i + 2] = this.Data[i];
     }
     Data[Data.Length - 1] = 1;
     return(Data);
 }
 public byte[] GetBytes()
 {
     byte[] numArray1 = new byte[this.Length + 3];
     byte[] numArray2 = Base64Encoding.Encodeuint(this.MessageId, 2);
     numArray1[0] = numArray2[0];
     numArray1[1] = numArray2[1];
     for (int index = 0; index < this.Length; ++index)
     {
         numArray1[index + 2] = this.Body[index];
     }
     numArray1[numArray1.Length - 1] = (byte)1;
     return(numArray1);
 }
Example #26
0
        public void ConvertToString_Should_EncodeWhenProvidedWithBytes()
        {
            // Arrange
            var expected = "TgBvAHcAIABpAHMAIAB0AGgAZQAgAHQAaQBtAGUAIABmAG8AcgAgAG" +
                           "EAbABsACAAZwBvAG8AZAAgAG0AZQBuACAAdABvACAAYwBvAG0AZQA=";
            var b = Encoding.Unicode.GetBytes("Now is the time for all good men to come");

            // Act
            var actual = Base64Encoding.ToString(b);

            // Assert
            Assert.Equal(expected, actual);
        }
Example #27
0
 public byte[] GetBytes()
 {
     byte[] Data   = new byte[this.Length + 3];
     byte[] Header = Base64Encoding.Encodeuint(this.MessageId, 2);
     Data[0] = Header[0];
     Data[1] = Header[1];
     for (int i = 0; i < this.Length; i++)
     {
         Data[i + 2] = this.Body[i];
     }
     Data[Data.Length - 1] = 1;
     return(Data);
 }
Example #28
0
        private async Task AddObjectsToNode(string id)
        {
            IObjectsApi objectsApi =
                GeneralTokenConfigurationSettings <IObjectsApi> .SetToken(new ObjectsApi(),
                                                                          await _authServiceAdapter.GetSecondaryTokenTask());

            var objectList = objectsApi.GetObjects(id);

            foreach (KeyValuePair <string, dynamic> objInfo in new DynamicDictionaryItems(objectList.items))
            {
                nodes.Add(new TreeNode(Base64Encoding.Encode((string)objInfo.Value.objectId),
                                       objInfo.Value.objectKey, "object", false));
            }
        }
        private void NewMessage(string data)
        {
            string header   = data.Substring(0, 2);
            int    headerId = Base64Encoding.DecodeInt(header);
            string body     = "";

            if (data.Length > 2)
            {
                body = data.Substring(2);
            }

            mHeaderBody = header;
            mHeaderID   = headerId;
            mPacketBody = body;
            ProcessMessage();
        }
Example #30
0
        /// <summary>
        /// Converts this private key to an RSAParameters object.
        /// </summary>
        /// <returns>A RSAParameters instance containing the parameters from this key.</returns>
        public RSAParameters ToParameters()
        {
            var parameters = new RSAParameters
            {
                InverseQ = Base64Encoding.ToBytes(Coefficient),
                Exponent = Base64Encoding.ToBytes(Exponent),
                Modulus  = Base64Encoding.ToBytes(Modulus),
                DP       = Base64Encoding.ToBytes(PrimeExponentP),
                DQ       = Base64Encoding.ToBytes(PrimeExponentQ),
                P        = Base64Encoding.ToBytes(PrimeP),
                Q        = Base64Encoding.ToBytes(PrimeQ),
                D        = Base64Encoding.ToBytes(PrivateExponent)
            };

            return(parameters);
        }
		public void TestCtor()
		{
			try // null alphabet
			{
				var x = new Base64Encoding(null, Base64Encoding.Mime.LookupTable, '=');

				Assert.Fail(typeof(ArgumentNullException).ToString());
			}
			catch (ArgumentNullException)
			{
			}

			try // bad length alphabet
			{
				var x = new Base64Encoding("1245645", Base64Encoding.Mime.LookupTable, null);

				Assert.Fail(typeof(ArgumentException).ToString());
			}
			catch (ArgumentException)
			{
			}

			try // look-up table null
			{
				var x = new Base64Encoding(Base64Encoding.Mime.Alphabet, null, '=');

				Assert.Fail(typeof(ArgumentNullException).ToString());
			}
			catch (ArgumentNullException)
			{
			}

			try // look-up table bad length
			{
				var x = new Base64Encoding(Base64Encoding.Mime.Alphabet, new Byte[20], null);

				Assert.Fail(typeof(ArgumentNullException).ToString());
			}
			catch (ArgumentException)
			{
			}
		}
        /// <summary>
        /// <see>http://nodejs.org/docs/v0.4.8/api/streams.html#stream.end</see>
        /// </summary>
        public override void end(string data, string encoding)
        {
            Encoding e = null;
            switch (encoding)
            {
                case "ascii":
                    e = Encoding.ASCII;
                    break;
                case "utf8":
                    e = Encoding.UTF8;
                    break;
                case "base64":
                    e = new Base64Encoding();
                    break;
            }
            if (e == null)
                throw new NotSupportedException(); // TODO: Should this raise OnError?

            // Send it across via a NodeBuffer.
            byte[] encoded = e.GetBytes(data);
            this.end(new NodeBuffer(this.Env, encoded, 0, encoded.Length));
        }
Example #33
0
 public Vigenere64()
     : base()
 {
     _b64 = new Base64Encoding();
 }
		public static TryResult<String> TryToBase64String(Value128 data, Base64Encoding base64Encoding)
		{
			if (base64Encoding == null)
			{
				return encodeFailResult;
			}

			Char[] result;

			// Get padding symbol
			var paddingSymbol = base64Encoding.PaddingSymbol;

			if (paddingSymbol.HasValue)
			{
				result = new Char[24];

				result[22] = result[23] = paddingSymbol.Value;
			}
			else
			{
				result = new Char[22];
			}

			var higherHalf = data.HigherHalf;

			var lowerHalf = data.LowerHalf;

			// Get alphabet
			var alphabet = base64Encoding.Alphabet;

			for (Int32 indexH = 0, indexL = 11, shiftH = 58, shiftL = 56; indexH < 10; indexH++, indexL++, shiftH -= 6, shiftL -= 6)
			{
				result[indexH] = alphabet[(Int32) (higherHalf >> shiftH) & 0x3F];

				result[indexL] = alphabet[(Int32) (lowerHalf >> shiftL) & 0x3F];
			}

			result[10] = alphabet[(Int32) (((higherHalf << 2) & 0x3C) | ((lowerHalf >> 62) & 0x03))];

			result[21] = alphabet[(Int32) ((lowerHalf << 4) & 0x30)];

			return TryResult<String>.CreateSuccess(new String(result));
		}
		public static TryResult<Value128> TryFromBase64String(String data, Int32 offset, Base64Encoding base64Encoding)
		{
			// Check input values
			if ((data == null) || (offset > data.Length - base64EncodedSymbolsCount) || (base64Encoding == null))
			{
				return convertFailResult;
			}

			// Get look-up table
			var lookupTable = base64Encoding.LookupTable;

			var lastIndex = offset + 10;

			var symbol10 = (UInt64) lookupTable[data[lastIndex] & 0x7F];

			var symbol21 = (UInt64) lookupTable[data[offset + 21] & 0x7F];

			// Check symbol
			if ((symbol10 | symbol21) == 0xFF)
			{
				return convertFailResult;
			}

			// Calculate higher half
			var higherHalf = symbol10 >> 2;

			// Calculate lower half
			var lowerHalf = symbol10 << 62 | symbol21 >> 4;

			// Decode symbols
			for (Int32 indexH = offset, indexL = offset + 11, shiftH = 58, shiftL = 56; indexH < lastIndex; indexH++, indexL++, shiftH -= 6, shiftL -= 6)
			{
				// Get symbols
				var symbolH = data[indexH] & 0x7F;

				var symbolL = data[indexL] & 0x7F;

				// Get symbols values
				var symbolHValue = (UInt64) lookupTable[symbolH];

				var symbolLValue = (UInt64) lookupTable[symbolL];

				// Check symbol
				if ((symbolHValue | symbolLValue) == 0xFF)
				{
					return convertFailResult;
				}

				higherHalf |= symbolHValue << shiftH;

				lowerHalf |= symbolLValue << shiftL;
			}

			// Initialize a new instance
			var result = new Value128(higherHalf, lowerHalf);

			return TryResult<Value128>.CreateSuccess(result);
		}