HexToByteArray() public static method

public static HexToByteArray ( int hexNum ) : byte[]
hexNum int
return byte[]
Beispiel #1
0
        internal static byte[] CreateTripleDES(RSAItems rsaItems, byte[] tripleKey)
        {
            List <byte> triplePacket = new List <byte>();

            triplePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_ENC_KEY));
            triplePacket.AddRange(MessageBuilder.AddLength(256));
            //tripleKey = Encoding.ASCII.GetBytes("1234567890123456");
            triplePacket.AddRange(MessageBuilder.EncryptRSA(rsaItems.Modulus, rsaItems.Exponent, tripleKey));

            //KEY VALUE
            byte[] arrCheck = new byte[32];
            for (int i = 0; i < 32; i++)
            {
                arrCheck[i] = (byte)0;
            }
            arrCheck = MessageBuilder.EncryptTriple(arrCheck, arrCheck.Length, tripleKey);
            List <byte> chk = new List <byte>();

            for (int i = 0; i < 16; i++)
            {
                chk.Add(arrCheck[i]);
            }
            triplePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_CHK_VAL));
            triplePacket.AddRange(MessageBuilder.AddLength(16));
            triplePacket.AddRange(chk.ToArray());

            return(triplePacket.ToArray());
        }
Beispiel #2
0
        internal static byte[] CreateKeyChange(DeviceInfo devInfo)
        {
            List <byte> keyChangePacket = new List <byte>();

            //LOCAL IP
            keyChangePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_IP));
            keyChangePacket.AddRange(MessageBuilder.AddLength(6));

            String[] strLocalIP = getLocalIP().Split('.');//devInfo.DevIP.ToString().Split('.');

            String ip12Format = "";

            for (int i = 0; i < strLocalIP.Length; i++)
            {
                ip12Format += String.Format("{0:D3}", Convert.ToInt32(strLocalIP[i]));
            }
            for (int i = 0; i < ip12Format.Length; i++)
            {
                String strByte = ip12Format.Substring(i, 2);

                keyChangePacket.AddRange(MessageBuilder.ConvertIntToBCD(Convert.ToInt32(strByte), 1));
                i++;
            }

            //BRAND
            keyChangePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_BRAND));
            keyChangePacket.AddRange(MessageBuilder.AddLength(devInfo.Brand.Length));
            keyChangePacket.AddRange(Encoding.ASCII.GetBytes(devInfo.Brand));

            //MODEL
            keyChangePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_MODEL));
            keyChangePacket.AddRange(MessageBuilder.AddLength(devInfo.Model.Length));
            keyChangePacket.AddRange(Encoding.ASCII.GetBytes(devInfo.Model));

            //SERIAL
            keyChangePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_SERIAL));
            keyChangePacket.AddRange(MessageBuilder.AddLength(devInfo.TerminalNo.Length));
            keyChangePacket.AddRange(Encoding.ASCII.GetBytes(devInfo.TerminalNo));

            return(keyChangePacket.ToArray());
        }
Beispiel #3
0
        private byte[] CreateRequest(String terminalNo, int messageType, Command cmd, byte[] data, int dataLen)
        {
            /*          General Message for Request
             *  XX      Length
             *  ASCII   Terminal Serial
             *  XX      Message Type
             *  BCD     SequenceNum
             *  BCD     Date
             *  BCD     Time
             *          [Detail]
             *  XX      LRC
             */

            Encoding    encode    = Encoding.GetEncoding(1254);
            List <byte> reqPacket = new List <byte>();
            List <byte> msgPacket = new List <byte>();
            int         allLen    = dataLen;

            this.command  = cmd;
            this.data     = data;
            this.sequence = (MainForm.SequenceNumber++) % MAX_PRCSS_SEC_NUM;

            //SEQUNCE
            reqPacket.AddRange(MessageBuilder.HexToByteArray(GMPCommonTags.TAG_SEQUNCE));
            reqPacket.Add((byte)GMPConstants.LEN_SEQUENCE);
            byte[] arrVal = MessageBuilder.ConvertIntToBCD(this.Sequence, GMPConstants.LEN_SEQUENCE);
            reqPacket.AddRange(arrVal);
            //DATE and TIME
            reqPacket.AddRange(MessageBuilder.GetDateTimeInBytes(DateTime.Now));
            // Fiscal Command
            if (cmd != Command.NULL)
            {
                reqPacket.AddRange(MessageBuilder.HexToByteArray(FPUCommonTags.FPU_FISCAL_COMMAND));
                reqPacket.Add((byte)GMPConstants.LEN_FISCAL_COMMAND);
                reqPacket.Add((byte)cmd);
            }

            if (dataLen > 0)
            {
                reqPacket.AddRange(data);
            }

            // Terminal ID
            msgPacket.AddRange(encode.GetBytes(terminalNo.PadLeft(12, ' ')));
            // Message TAG
            msgPacket.AddRange(MessageBuilder.HexToByteArray(messageType));
            // Message length
            int msgLen = reqPacket.Count;

            msgPacket.AddRange(MessageBuilder.AddLength(msgLen));
            // Message Data
            msgPacket.AddRange(reqPacket);
            // CRC
            short crc = MessageBuilder.CalculateCRC(msgPacket.ToArray(), 0, msgPacket.Count);

            msgPacket.Add((byte)(crc >> 8));
            msgPacket.Add((byte)(crc));

            // All Length
            allLen = msgPacket.Count;
            msgPacket.Insert(0, (byte)(allLen % 256));
            msgPacket.Insert(0, (byte)(allLen / 256));

            return(msgPacket.ToArray());
        }