/// <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); }
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)); }
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); }
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))); }
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)); }
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); }
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)); }
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"))); }
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()); }
/// <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)); } } }
/// <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); }
/// <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); }