Пример #1
0
        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();
        }
Пример #2
0
        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();
        }