Exemplo n.º 1
0
        public ORCACard(PhysicalCard.PhysicalCard card) : base(card)
        {
            // get serial no and friends.

            PhysicalCard.Desfire.DesfireCard c = card as PhysicalCard.Desfire.DesfireCard;
            serial  = (int)c.getApplication(AID_SPECIAL).getFile(0xF).Data.MakeLong(5, 3);
            balance = c.getApplication(AID_ORCA).getFile(0x04).Data.MakeUint16(41, false);
        }
Exemplo n.º 2
0
        public ORCACard(PhysicalCard.PhysicalCard card) : base(card)
        {
            // get serial no and friends.

            PhysicalCard.Desfire.DesfireCard c = card as PhysicalCard.Desfire.DesfireCard;
            serial  = (int)c.getApplication(AID_SPECIAL).getFile(0xF).Data.MakeLong(5, 3);
            balance = c.getApplication(AID_ORCA).getFile(0x04).Data.MakeUint16(41, false);

            PhysicalCard.Desfire.File.RecordFile recFile = (PhysicalCard.Desfire.File.RecordFile)(c.getApplication(AID_ORCA).getFile(0x02));

            PhysicalCard.Desfire.File.Settings.RecordSettings recSettings = (PhysicalCard.Desfire.File.Settings.RecordSettings)recFile.Settings;

            ORCATransitEvent[] evs = new ORCATransitEvent[recSettings.CurRecords];

            for (int evIdx = 0; evIdx < recSettings.CurRecords; evIdx++)
            {
                evs[evIdx] = ORCATransitEvent.parseRecrd(recFile[evIdx]);
            }
            events = evs;
        }
Exemplo n.º 3
0
 public MykiCard(PhysicalCard.PhysicalCard c) : base(c)
 {
     if (c is PhysicalCard.Desfire.DesfireCard)
     {
         PhysicalCard.Desfire.DesfireCard dCard = (c as PhysicalCard.Desfire.DesfireCard);
         try
         {
             byte[] meta = dCard.getApplication(AID_MYKI_A).getFile(15).Data.CopyReverseFrom(0, 16);
             serialUpper = meta.getBitsFromBuffer(96, 32);
             serialLower = meta.getBitsFromBuffer(64, 32);
         }
         catch
         {
             throw new ArgumentException("Could not parse Myki data.");
         }
     }
     else
     {
         throw new ArgumentException("Not a Myki card");
     }
 }