Exemplo n.º 1
0
        private byte[] Transmit(byte[] send)
        {
            try
            {
                reader.Reconnect(SCardShareMode.Shared, SCardProtocol.Any, SCardReaderDisposition.Leave);
            }
            catch (NoSmartcardException)
            {
                return(null);
            }

            byte[] recv = new byte[1024];

            int recvLength = reader.Transmit(send, recv);

            recv = recv.Where((val, idx) => idx < recvLength).ToArray();
            Console.WriteLine(string.Join("", send.Select(val => $"{val:x02}")));
            Console.WriteLine(string.Join("", recv.Select(val => $"{val:x02}")));
            if (!(recv[recv.Length - 2] == 0x90 && recv[recv.Length - 1] == 0x00))
            {
                return(null);
            }

            var response = recv.Where((val, idx) => 1 <= idx && idx < recv.Length - 2).ToArray();

            return(response);
        }