public bool MifareAuthenticate(MifareKey keyType, int sector) { if (CardStillPresent()) // Check if Card still present { var request = (byte[])PAPDU_MIFARE_AUTHENTICATE.Clone(); var block = sector * 4; request[6] = (byte)(block & 0xFF00); // always zero request[7] = (byte)(block & 0xFF); request[8] = (byte)keyType; return(ParseResponse(Transmit(request))); } throw new CardRemovedException(); }
public bool MifareLoadKey(MifareKey keyType, byte[] key) { Debug.Assert(key.Length == 6); if (CardStillPresent()) // Check if Card still present { var request = new byte[PAPDU_MIFARE_LOAD_KEYS.Length + key.Length]; Array.Copy(PAPDU_MIFARE_LOAD_KEYS, request, PAPDU_MIFARE_LOAD_KEYS.Length); request[3] = (byte)keyType; Array.Copy(key, 0, request, PAPDU_MIFARE_LOAD_KEYS.Length, key.Length); return(ParseResponse(Transmit(request))); } throw new CardRemovedException(); }