Example #1
0
        private void Monitor_CardInserted(object sender, CardStatusEventArgs e)
        {
            var contextFactory = ContextFactory.Instance;

            try
            {
                using (var ctx = contextFactory.Establish(SCardScope.System))
                {
                    using (var isoReader = new IsoReader(ctx, monitor.ReaderNames[0], SCardShareMode.Shared, SCardProtocol.Any, false))
                    {
                        var apdu = new CommandApdu(IsoCase.Case2Short, isoReader.ActiveProtocol)
                        {
                            CLA         = 0xFF,
                            Instruction = (InstructionCode)0xCA,
                            P1          = 0x00,
                            P2          = 0x00,
                            Le          = 0x00
                        };

                        var response = isoReader.Transmit(apdu);
                        var data     = response.GetData();
                        UidReceived(this, new CardUidReceivedEventArgs(data));
                        LogAction?.Invoke("SCardWatcher Received : " + BitConverter.ToString(data));
                    }
                }
            }
            catch (Exception ex)
            {
                LogAction?.Invoke("SCardWatcher Error - " + ex);
            }
        }
Example #2
0
        void cardMonitor_CardInserted(object sender, CardStatusEventArgs e)
        {
            var cardReader = new SCardReader(cardContext);

            cardReader.Connect(e.ReaderName, SCardShareMode.Shared, SCardProtocol.T0 | SCardProtocol.T1);

            int rxBuffLen = 32;

            byte[] recieveBuff = new byte[rxBuffLen];
            cardReader.Transmit(new byte[] { 0xFF, 0xCA, 0x00, 0x00, 0x04 }, recieveBuff, ref rxBuffLen);

            string tag = BitConverter.ToString(recieveBuff, 0, rxBuffLen);

            if (IsMonitoring == true)
            {
                base.RaiseTagRead(tag);
                foreach (var listener in TagListeners)
                {
                    listener.TagRead(new RFIDTag
                    {
                        RFIDTagType = RFIDTag.TagType.Short,
                        Tag         = tag
                    });
                }
            }

            cardReader.Disconnect(SCardReaderDisposition.Leave);
        }
Example #3
0
 void Initialized(object sender, CardStatusEventArgs args)
 {
     SCardMonitor monitor = (SCardMonitor)sender;
     //Console.WriteLine(">> Initialized Event for reader: " + args.ReaderName);
     //Console.WriteLine("   ATR: " + StringAtr(args.Atr));
     //Console.WriteLine("   State: " + args.State + "\n");
 }
Example #4
0
 private void _Removed(string eventName, CardStatusEventArgs unknown)
 {
     if (eventCardRemoved != null)
     {
         eventCardRemoved();
     }
 }
Example #5
0
        /// <summary>
        /// <para>Card inserted event.</para>
        /// <para>If TrainMode is off, starts reading a card and initiates the authentication with the card</para>
        /// <para>If TrainMode is on, starts to perfom the pairing with the card</para>
        /// </summary>
        /// <param name="info">The info send by the event</param>
        private void CardInserted(CardStatusEventArgs info)
        {
            if (!TrainMode)
            {
                var res = Authenticate(info.ReaderName);
                if (isTrusted(res))
                {
                    Console.Beep(6200, 50);
                    Console.Beep(6200, 50);
                    Console.Beep(6200, 50);
                    Console.Beep(6200, 50);
                    Console.Beep(6200, 50);
                    Console.Beep(6200, 50);
                    _isOk(res);
                }

                else
                {
                    Console.Beep(2200, 200);
                    Console.Beep(1200, 200);
                    _isOk(new AltsInfo {
                        Authenticated = false, AuthDeviceId = "Not Trusted"
                    });
                }
            }

            else
            {
                Console.Out.WriteLine("trainMode On");
                TrustDevice(info.ReaderName);
                TrainMode = false;
            }
        }
Example #6
0
 private void Monitor_CardInserted(object sender, CardStatusEventArgs e)
 {
     if (CardInserted != null)
     {
         CardInserted(this, new EventArgs());
     }
 }
Example #7
0
        private void OnCardInserted(object sender, CardStatusEventArgs e)
        {
            SmartCardReaderUtil sCardMonitor = SmartCardReaderUtil.Instance;
            string cardUID = sCardMonitor.GetCardUID();

            if (!string.IsNullOrEmpty(cardUID))
            {
                // Scan smart card successfully
                DAL_User        dalUser = new DAL_User();
                Trinity.BE.User user    = dalUser.GetUserBySmartCardId(cardUID);
                if (user != null)
                {
                    MessageBox.Show("This smart card is already in used by another person. Please user another card.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                // Then stop Smart Card and Start to scan finger print
                sCardMonitor.StopSmartCardMonitor();
                btnScanSmartcard.Enabled = false;

                _currentUser.SmartCardId = cardUID;
                StartToScanFingerprint();

                UpdateNote("Scan smart card successfully. Please scan your finger print to continue", Color.Blue);
                return;
            }
            UpdateNote("Could not scan the smart card", Color.Red);
        }
Example #8
0
 private void CardInsertedHandler(object sender, CardStatusEventArgs args)
 {
     this.Acr122DisableBuzzerOnNewCard();
     this.CardId = this.GetCardId();
     this.OnCardInserted(EventArgs.Empty);
     PcscService.logger.Debug("NFC card placed on reader, cardID: " + this.CardId);
 }
Example #9
0
        private void _monitor_CardInserted(object sender, CardStatusEventArgs e)
        {
            if (e.State == SCRState.Present)
            {
                try
                {
                    BChipSmartCard insertedCard =
                        new BChipSmartCard(e.ReaderName)
                    {
                        ATR           = e.Atr,
                        LastConnected = DateTime.Now,
                        IsConnected   = true
                    };

                    if (insertedCard.Type() == CardType.BChip)
                    {
                        ScanAndLoadConnectedCards(insertedCard);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex);
                }
            }
        }
Example #10
0
File: Form1.cs Project: steffex/eVR
 /// <summary>
 /// CardInserted event
 /// </summary>
 /// <param name="e">CardStatusEventArgs object</param>
 private void CardInserted(CardStatusEventArgs e)
 {
     /*
      * Timing problem with fast card readers; delay should be > 300ms
      */
     System.Threading.Thread.Sleep(EVRCardReaderAppSettings.CardAccessDelay);
     this.ReadingCardData(e.ReaderName);
 }
Example #11
0
        private void OnCardInserted(object sender, CardStatusEventArgs e)
        {
            Debug.WriteLine("OnCardInserted");
            string cardUID = SmartCardReaderUtil.Instance.GetCardUID();

            Debug.WriteLine($"Card UID: {cardUID}");
            SmartCardLoginProcess(cardUID);
        }
Example #12
0
 private void Monitor_CardInserted(object sender, CardStatusEventArgs e)
 {
     if (HorekaNFCReader.connectCard())
     {
         NFCUID = HorekaNFCReader.GetCardUID();
         LoginRequested?.Invoke();
     }
 }
Example #13
0
        static void CardRemoved(object sender, CardStatusEventArgs args)
        {
            SCardMonitor monitor = (SCardMonitor)sender;

            Console.WriteLine(">> CardRemoved Event for reader: "
                              + args.ReaderName);
            Console.WriteLine("   ATR: " + StringAtr(args.Atr));
            Console.WriteLine("   State: " + args.State + "\n");
        }
Example #14
0
        private void CardInserted(object sender, CardStatusEventArgs args)
        {
            Console.WriteLine("Card Inserted");
            var hex = BitConverter.ToString(args.Atr ?? new byte[0]);

            cp.NFCData = hex;
            cp.Invoke((MethodInvoker)(() => this.cp.SetNFCData()));
            ReadData();
        }
Example #15
0
        private void OnCardInserted(object sender, CardStatusEventArgs e)
        {
            Debug.WriteLine("OnCardInserted");
            Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance;
            string cardUID = sCardMonitor.GetCardUID();

            Debug.WriteLine($"Card UID: {cardUID}");
            SmartCardLoginProcess(cardUID);
        }
Example #16
0
 static void ev(string eventName, CardStatusEventArgs args)
 {
     Console.ForegroundColor = ConsoleColor.DarkYellow;
     Console.Write($" {args.ReaderName,-42} ");
     Console.ForegroundColor = ConsoleColor.DarkCyan;
     Console.Write($" {eventName,-15} {"",19}{args.State,-18}");
     /*if ((args.State & SCRState.Present) != 0) GetUID(args.ReaderName);*/
     Console.WriteLine($"{(eventName.Equals("Card Removed") ? "\r\n\n" : "")}");
     Console.ResetColor();
 }
Example #17
0
        private void Monitor_CardRemoved(object sender, CardStatusEventArgs args)
        {
            if (blockCardEvents > 0)
            {
                return;
            }

            StatusMessage?.Invoke("Tag removed on " + args.ReaderName);

            CardRemoved?.Invoke(args.ReaderName);
        }
Example #18
0
        private void OnCardInserted(object sender, CardStatusEventArgs e)
        {
            LogManager.Debug("OnCardInserted...");
            string cardUID = SmartCardReaderUtil.Instance.GetCardUID();

            LogManager.Debug("Smart Card UID: " + cardUID);
            if (!string.IsNullOrEmpty(cardUID) && GetCardInfoSucceeded != null)
            {
                GetCardInfoSucceeded(cardUID);
            }
        }
Example #19
0
        private void CardRemovedHandler(object sender, CardStatusEventArgs args)
        {
            this.CardId = string.Empty;
            EventHandler cardRemoved = this.CardRemoved;

            if (cardRemoved != null)
            {
                cardRemoved((object)this, EventArgs.Empty);
            }
            this.OnCardRemoved(EventArgs.Empty);
            PcscService.logger.Debug("NFC card removed from reader");
        }
Example #20
0
        private void OnCardInitialized(object sender, CardStatusEventArgs e)
        {
            Debug.WriteLine("onCardInitialized");
            string cardUID = SmartCardReaderUtil.Instance.GetCardUID();

            if (string.IsNullOrEmpty(cardUID))
            {
                return;
            }
            Debug.WriteLine($"Card UID: {cardUID}");
            SmartCardLoginProcess(cardUID);
        }
Example #21
0
 private void _monitor_CardRemoved(object sender, CardStatusEventArgs e)
 {
     if (LoadedBChips != null)
     {
         if (LoadedBChips.ReaderName == e.ReaderName)
         {
             ChangePageUi(PageToShow.NoCard, null);
             // single card only.
             // bchip.IsConnected = false;
             LoadedBChips = null;
         }
     }
 }
Example #22
0
        private void OnCardInitialized(object sender, CardStatusEventArgs e)
        {
            Debug.WriteLine("onCardInitialized");
            Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance;
            string cardUID = sCardMonitor.GetCardUID();

            if (string.IsNullOrEmpty(cardUID))
            {
                return;
            }
            Debug.WriteLine($"Card UID: {cardUID}");
            SmartCardLoginProcess(cardUID);
        }
Example #23
0
 private void CardEvent(object sender, CardStatusEventArgs args)
 {
     if (this.Dispatcher.CheckAccess())
     {
         UpdateDataGrid();
     }
     else
     {
         this.Dispatcher.Invoke((Action)(() =>
         {
             UpdateDataGrid();
         }));
     }
 }
Example #24
0
 private static void ProcessEvent(MainForm mf, CardStatusEventArgs ea)
 {
     if ("Present" == ea.State.ToString())
     {
         string uid = GetCardUID(ea.ReaderName);
         if (uid != null)
         {
             try {
                 mf.CardRead(ea.ReaderName, uid);
             } catch (Exception e) {
                 Log.Error(e, "Card event process error.");
             }
         }
     }
 }
Example #25
0
        /// <summary>
        ///   Invoked when a new card was inserted into the reader
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void CardInserted(object sender, CardStatusEventArgs args)
        {
            Log.Info("Card detected.");
            try {
                byte[] uid = UidFromConnectedCard(args.ReaderName);

                // We only care about the first 4 bytes
                byte[] shortUid = new byte[4];
                Array.Copy(uid, shortUid, 4);
                string uidString = BitConverter.ToString(shortUid).Replace("-", string.Empty);
                Log.InfoFormat("Read UID '{0}' from '{1}'.", uidString, args.ReaderName);
                BroadcastUidEvent(shortUid);
            } catch (Exception ex) {
                Log.Error(ex.Message);
                BroadcastErrorEvent(new byte[] { 0 });
            }
        }
Example #26
0
        private void CardInserted(object sender, CardStatusEventArgs e)
        {
            Log.Debug("Card inserted");

            try
            {
                using (var reader = new IsoReader(CardContext, GetReader(), SCardShareMode.Shared, SCardProtocol.Any, false))
                {
                    var id     = GetCardId(reader);
                    var status = GetReaderStatus(reader);

                    var cardName = GetCardName(status.Atr);
                    var cardType = GetInt16(cardName);

                    var isMifare           = cardType == Mifare1KCard || cardType == Mifare4KCard;
                    var isMifareUltralight = cardType == MifareUltralightCard;

                    //var bytes = GetAllCardBytes(reader, isMifareUltralight ? 4 : 16);
                    var isShopCard = true; // IsShopCard(bytes);

                    Log.Debug(String.Format("Card Id: {0}, Shop Card: {1}", BitConverter.ToString(id), isShopCard));

                    if (isShopCard)
                    {
                        var cardString = BitConverter.ToString(cardName.Concat(id).ToArray()).Replace("-", "");

                        EventAggregator.Publish(new CardInserted {
                            CardId = cardString
                        });
                    }
                    else
                    {
                        EventAggregator.Publish(new InvalidCardInserted {
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);

                EventAggregator.Publish(new InvalidCardInserted {
                });
            }
        }
Example #27
0
File: Form1.cs Project: steffex/eVR
 private void Monitor_CardInserted(object sender, CardStatusEventArgs e)
 {
     if (this.InvokeRequired)
     {
         try
         {
             this.Invoke(new MethodInvoker(delegate() { this.CardInserted(e); }));
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     else
     {
         this.CardInserted(e);
     }
 }
Example #28
0
        private void OnCardRemoved(object sender, CardStatusEventArgs e)
        {
            var readerContext = Readers[e.ReaderName];

            if (readerContext.CardContext != null)
            {
                readerContext.IsoReader.Dispose();
                readerContext.IsoReader = null;

                readerContext.CardContext.Cancel();
                readerContext.CardContext.Dispose();
                readerContext.CardContext = null;
            }

            lock (_lock)
            {
                _activeReaderName = string.Empty;
            }
        }
Example #29
0
        private void _cardInitalised(object sender, CardStatusEventArgs e)
        {
            string temp_message = string.Empty;

            if (string.IsNullOrEmpty(_connectedReader) || _monitor == null)
            {
                return;
            }
            if (_monitor.Monitoring)
            {
                _monitoredReaders = _monitor.ReaderNames;
                string monitoredReaders = _monitor.ReaderNames.Aggregate(string.Empty, (current, reader) => current + " " + reader);
                temp_message = string.Format("Now monitoring {0}", monitoredReaders);
                // TODO: Update the UI
            }
            else
            {
                temp_message = "Not monitoring any card readers, won't detect that a new card is inserted.";
            }
        }
Example #30
0
        private void OnCardInserted(object sender, CardStatusEventArgs e)
        {
            lock (_lock)
            {
                // One reader can be active at a time.
                if (_activeReaderName == string.Empty)
                {
                    _activeReaderName = e.ReaderName;
                }
                else
                {
                    return;
                }
            }

            var readerContext = Readers[e.ReaderName];

            readerContext.CardContext = ContextFactory.Instance.Establish(SCardScope.System);
            readerContext.IsoReader   = new IsoReader(
                readerContext.CardContext,
                e.ReaderName,
                SCardShareMode.Shared,
                SCardProtocol.Any,
                false);

////            var uid0 = ReadBinary(0, 0, 4);
            ////        var uid1 = ReadBinary(0, 1, 4);
            ///    if (uid0.Length != 0)
            /// {
            ///  var tagId = new byte[]
            ///{
            ////uid0[0], uid0[1], uid0[2], uid1[0], uid1[1], uid1[2], uid1[3]
            ///};
            ////var tagIdStr = BitConverter.ToString(tagId);
            ////Debug.WriteLine($"TAG ID: {tagIdStr}");
            /// }
            var tagAtrStr = BitConverter.ToString(e.Atr).Replace("-", " ");

            Debug.WriteLine($"TAG ATR: {tagAtrStr}");
            Debug.WriteLine($"TAG STATE: {e.State}");
        }