public MiFareClassicSmartCard(string pin, string cardId, MiFareCard connection, int sector) { if (pin == null) throw new ArgumentNullException("pin"); if (cardId == null) throw new ArgumentNullException("cardId"); if (connection == null) throw new ArgumentNullException("connection"); // add the key to the conection var userKey = PinToKeyBytes(pin, cardId); connection.AddOrUpdateSectorKeySet(new SectorKeySet { KeyType = KeyType.KeyA, Sector = sector, Key = userKey }); this.connection = connection; this.sector = sector; CardId = cardId; }
public MiFareClassicSmartCard(byte[] masterKey, string cardId, MiFareCard connection, int sector) { if (masterKey == null) throw new ArgumentNullException("masterKey"); if (cardId == null) throw new ArgumentNullException("cardId"); if (connection == null) throw new ArgumentNullException("connection"); if(masterKey.Length != 6) throw new ArgumentOutOfRangeException("masterKey", "Key must be exactly 6 bytes"); connection.AddOrUpdateSectorKeySet(new SectorKeySet { KeyType = KeyType.KeyB, Sector = sector, Key = masterKey }); CardId = cardId; this.masterKey = masterKey; this.connection = connection; this.sector = sector; }