Пример #1
0
        /// <summary>
        /// verify KEY_B
        /// </summary>
        private void BtnTestKeyB_Click(object sender, EventArgs e)
        {
            byte[] keyB = HexString.FromHexString(this.KeyB.Text.Trim(), "-");

            this.TraceMsg.Trace("Test KeyB : " + BitConverter.ToString(keyB), true);
            TestKey(M1KeyMode.KEY_B, keyB);
        }
Пример #2
0
        public byte[] GetBytes(object obj, int length)
        {
            DateTime dt = (DateTime)obj;

            String str;

            if (length == 3)
            {
                str = dt.ToString("yyMMdd");
            }
            else if (length == 4)
            {
                str = dt.ToString("yyyyMMdd");
            }
            else if (length == 2)
            {
                str = dt.ToString("MMdd");
            }
            else
            {
                str = null;
            }

            return(HexString.FromHexString(str));
        }
Пример #3
0
        private void BtnCreateUserRootKey_Click(object sender, EventArgs e)
        {
            int selected = this.Dongles.SelectedIndex;

            byte[] userRootKey = HexString.FromHexString(this.UserRootKey.Text.Trim(), "-");
            String userId      = this.UserID.Text.Trim();

            DongleUserInfo keyInfo = DongleUserInfo.CreateTestDongleKeyInfo(DongleType.USER_ROOT, userId);

            ResultArgs arg = this.dongle.CreateUserRootDongle(userId, userRootKey, keyInfo);

            if (arg.Succ)
            {
                this.TraceMsg.Trace(String.Format("Create user root key ok! "), true);
                UserRootDongleResult res = (UserRootDongleResult)arg.Result;

                this.TraceMsg.Trace(res.ToString());
                logger.Debug(res.ToString());
            }
            else
            {
                this.TraceMsg.Trace(String.Format("Create user root key Error! err msg = {0}", this.dongle.LastErrorMessage), true);
            }

            // refresh dongle
            RefreshDongle(false);
        }
Пример #4
0
        public IHttpActionResult ReadSector(dynamic request)
        {
            int       sector  = Convert.ToInt32(request.sector);
            M1KeyMode keyMode = Enum.Parse(typeof(M1KeyMode), Convert.ToString(request.mode), true);

            byte[] key = HexString.FromHexString(Convert.ToString(request.key), "-");

            logger.Debug(String.Format("read sector {0}, mode = {1}, key={2} ", sector, keyMode, BitConverter.ToString(key)));

            return(Json <ResultArgs> (CardUtil.ReadSector(sector, keyMode, key)));
        }
Пример #5
0
        public byte[] GetBytes(object obj, int length)
        {
            String str = obj as String;

            if (String.IsNullOrEmpty(str))
            {
                return(ByteUtil.Malloc(length));
            }

            return(ArrayUtil.CopyFrom(HexString.FromHexString(str), length));
        }
Пример #6
0
        private void BtnInitialize_Click(object sender, EventArgs e)
        {
            byte[]    key     = HexString.FromHexString(this.AuthenKey.Text.Trim(), "-");
            M1KeyMode keyMode = (M1KeyMode)Enum.Parse(typeof(M1KeyMode), AuthenKeyType.Items[AuthenKeyType.SelectedIndex] as String, true);
            ICard     card    = new MifareCard(
                ContextManager.GetLogger(),
                //ConfigManager.GetKeyService(),
                null,
                ContextManager.GetCardReader(),
                keyMode,
                key);

            card.Initialize(ContextManager.GetCardTemplete().SegmentAddr);
        }
Пример #7
0
        public IHttpActionResult Personalize(dynamic request)
        {
            int       sector  = Convert.ToInt32(request.sector);
            M1KeyMode keyMode = Enum.Parse(typeof(M1KeyMode), Convert.ToString(request.mode), true);

            byte[] key = HexString.FromHexString(Convert.ToString(request.key), "-");

            CardInfo cardInfo = JsonConvert.DeserializeObject <CardInfo>(Convert.ToString(request.data));

            logger.Debug(String.Format("personalize : {0}, keyMode={1}, Key={2}",
                                       sector, keyMode, BitConverter.ToString(key)));
            logger.Debug(cardInfo.ToString());

            return(Json <ResultArgs>(new ResultArgs(true, cardInfo, "OK")));
        }
        public IHttpActionResult Create(dynamic request)
        {
            String userId  = Convert.ToString(request.userId);
            String rootKey = Convert.ToString(request.rootKey);

            byte[] rootKeyBytes = HexString.FromHexString(rootKey);

            String jsonString = Convert.ToString(request.keyInfo);

            DongleUserInfo keyInfo = JsonConvert.DeserializeObject <DongleUserInfo>(jsonString);

            ResultArgs ret = DongleUtil.dongle.CreateUserRootDongle(userId, rootKeyBytes, keyInfo);

            return(Json <ResultArgs>(ret));
        }
Пример #9
0
        public IHttpActionResult Init(dynamic request)
        {
            String userId = Convert.ToString(request.userid);

            byte[] sn     = HexString.FromHexString(Convert.ToString(request.sn), "-");
            ushort sector = Convert.ToUInt16(request.sector);

            return(Json <ResultArgs>(
                       new ResultArgs(true, M1KeyServiceUtil.ComputeKey(
                                          new CardInitRequest()
            {
                UserId = userId,
                SN = sn,
                Sector = sector
            }), "ok")));
        }
Пример #10
0
        public void Test_2()
        {
            String hexString = "10 01 23 45 32 30 31 38 31 32 30 36 30 30 30 31 " +
                               "01 00 00 00 20 12 31 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " +
                               "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00";

            byte[] buffer = HexString.FromHexString(hexString, " ");

            VirtualCard vc       = new VirtualCard(buffer);
            CardInfo    cardInfo = vc.Parse <CardInfo>();

            Console.WriteLine(cardInfo.ToString());
        }
Пример #11
0
        /// <summary>
        /// test control block
        /// </summary>
        private void BtnWriteControlBlock_Click(object sender, EventArgs e)
        {
            this.TraceMsg.Trace("Write sector Control block", true);

            byte[] keyA = HexString.FromHexString(this.KeyA.Text.Trim(), "-");
            byte[] keyB = HexString.FromHexString(this.KeyB.Text.Trim(), "-");
            byte[] key  = HexString.FromHexString(this.AuthenKey.Text.Trim(), "-");

            M1KeyMode mode = (M1KeyMode)Enum.Parse(typeof(M1KeyMode), AuthenKeyType.Items[AuthenKeyType.SelectedIndex] as String, true);

            foreach (CheckBox cb in this.cardSectorSelected)
            {
                if (!cb.Checked)
                {
                    continue;
                }

                int sector = int.Parse(cb.Text.Trim());
                if (this.reader.ChangeControlBlock(sector, mode, key, keyA, keyB))
                {
                    this.TraceMsg.Trace(String.Format("Write sector {0} block ok!", sector));
                }
            }
        }
Пример #12
0
 /// <summary>
 /// Read Sector with KEY_B
 /// </summary>
 private void BtnReadSectorB_Click(object sender, EventArgs e)
 {
     this.TraceMsg.Trace("Read Card by KeyB..." + this.KeyB.Text.Trim(), true);
     byte[] keyB = HexString.FromHexString(this.KeyB.Text.Trim(), "-");
     ReadSector(M1KeyMode.KEY_B, keyB);
 }
Пример #13
0
 /// <summary>
 /// Read Sector with KEY_A
 /// </summary>
 private void BtnReadSectorA_Click(object sender, EventArgs e)
 {
     this.TraceMsg.Trace("Read Card Sector With Key_A ..." + this.KeyA.Text.Trim(), true);
     byte[] keyA = HexString.FromHexString(this.KeyA.Text.Trim(), "-");
     ReadSector(M1KeyMode.KEY_A, keyA);
 }