Пример #1
0
 public static List<CardInfo> GetReaderNames()
 {
   List<CardInfo> lst = new List<CardInfo>();
   SmartCardIO cardIO = new SmartCardIO();
   List<String> connectedCards = cardIO.GetConnected();
 
   foreach (String s in connectedCards)
   {
     CardInfo info = new CardInfo();
     ABC4TrustSmartCard smartCard = new ABC4TrustSmartCard(s);
     info.ReaderName = s;
     string version;
     ErrorCode err = smartCard.GetVersion(out version);
     if (err.IsOK)
     {
       info.CardVersion = version;
     }
     CardMode cardMode;
     err = smartCard.GetMode(out cardMode);
     if (err.IsOK)
     {
       info.CardMode = (int)cardMode;
     }
     lst.Add(info);
   }
   return lst;
 }
Пример #2
0
    public SmartCardTransaction(ABC4TrustSmartCard device, SCardReaderDisposition disMethod = SCardReaderDisposition.Leave)
    {
      this.device = device;
      this.disMethod = disMethod;
      int noRetry = 10;
      int i = 0;
      if (device.doProfile)
      {
        profileLogger = Logger.Instance.getLog(device.pInfo.loggerToUse);
        timer = new AbcTimer();
        timer.Start();
      }

      while (TryTransaction() != 0)
      {
        if (i < noRetry)
        {
          System.Threading.Thread.Sleep(1000);
        }
        else
        {
          // TODO find a better exception.
          throw new Exception("Could not get exclusive lock on card");
        }
        ++i;
      } 
    }
Пример #3
0
        private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataGrid dGrid = sender as DataGrid;

            if (dGrid.SelectedCells.Count == 0)
            {
                return;
            }
            CardInfo cInfo;

            try
            {
                cInfo = (CardInfo)dGrid.SelectedCells[0].Item;
            }
            catch (Exception)
            {
                return;
            }
            this.smartCard = new ABC4TrustSmartCard.ABC4TrustSmartCard(cInfo.ReaderName);
            this.sIO       = this.smartCard.sIO;
            if ((CardMode)cInfo.CardMode == CardMode.VIRGIN)
            {
                this.modeButton.Click += modeButton_Root_Click;
                String content = "SetRootMode";
                this.modeButton.Content    = content;
                this.modeButton.Visibility = Visibility.Visible;
            }
            if ((CardMode)cInfo.CardMode == CardMode.ROOT)
            {
                this.initCard.Visibility = Visibility.Visible;
            }
        }
Пример #4
0
        private void UpdateDataGrid()
        {
            SmartCardIO   cardIO         = new SmartCardIO();
            List <String> connectedCards = cardIO.GetConnected();

            cardInfoLst = new List <CardInfo>();

            foreach (String s in connectedCards)
            {
                CardInfo info = new CardInfo();
                ABC4TrustSmartCard.ABC4TrustSmartCard smartCard = new ABC4TrustSmartCard.ABC4TrustSmartCard(s);
                info.ReaderName = s;
                string    version;
                ErrorCode err = smartCard.GetVersion(out version);
                if (err.IsOK)
                {
                    info.CardVersion = version;
                }
                CardMode cardMode;
                err = smartCard.GetMode(out cardMode);
                if (err.IsOK)
                {
                    info.CardMode = (int)cardMode;
                }
                cardInfoLst.Add(info);
            }

            this.dataGrid1.ItemsSource = cardInfoLst;
            this.modeButton.Visibility = Visibility.Hidden;
            this.initCard.Visibility   = Visibility.Hidden;
        }
Пример #5
0
 public SmartCard(String readerName, byte[] pin)
 {
   this.device = new ABC4TrustSmartCard(readerName);
   this.pin = pin;
 }
Пример #6
0
 public SmartCard(String readerName, string pin, bool doProfile = false)
 {
   this.device = new ABC4TrustSmartCard(readerName);
   this.pin = Encoding.ASCII.GetBytes(pin);
 }
    private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
      DataGrid dGrid = sender as DataGrid;
      if (dGrid.SelectedCells.Count == 0)
      {
        return;
      }
      CardInfo cInfo;
      try
      {
        cInfo = (CardInfo)dGrid.SelectedCells[0].Item;
      }
      catch (Exception)
      {
        return;
      }
      this.smartCard = new ABC4TrustSmartCard.ABC4TrustSmartCard(cInfo.ReaderName);
      this.sIO = this.smartCard.sIO;
      if ((CardMode)cInfo.CardMode == CardMode.VIRGIN)
      {
        this.modeButton.Click += modeButton_Root_Click;
        String content = "SetRootMode";
        this.modeButton.Content = content;
        this.modeButton.Visibility = Visibility.Visible;        
      }
      if ((CardMode)cInfo.CardMode == CardMode.ROOT)
      {
        this.initCard.Visibility = Visibility.Visible;
      }

    }
    private void UpdateDataGrid()
    {
      SmartCardIO cardIO = new SmartCardIO();
      List<String> connectedCards = cardIO.GetConnected();
      cardInfoLst = new List<CardInfo>();
      
      foreach (String s in connectedCards)
      {
        CardInfo info = new CardInfo();
        ABC4TrustSmartCard.ABC4TrustSmartCard smartCard = new ABC4TrustSmartCard.ABC4TrustSmartCard(s);
        info.ReaderName = s;
        string version;
        ErrorCode err = smartCard.GetVersion(out version);
        if (err.IsOK)
        {
          info.CardVersion = version;
        }
        CardMode cardMode;
        err = smartCard.GetMode(out cardMode);
        if (err.IsOK)
        {
          info.CardMode = (int)cardMode;
        }
        cardInfoLst.Add(info);
      }

      this.dataGrid1.ItemsSource = cardInfoLst;
      this.modeButton.Visibility = Visibility.Hidden;
      this.initCard.Visibility = Visibility.Hidden;
    }