Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CardBase
- {
- int retCode, Protocol, hContext, hCard, Readercount;
- string cardName = null;
- public byte[] ReaderListBuff = new byte[262];
- byte[] ReaderGroupBuff;
- bool diFlag;
- ModWinsCard.SCARD_IO_REQUEST ioRequest;
- int sendLen, RecvLen;
- byte[] RecvBuff = new byte[262];
- byte[] SendBuff = new byte[262];
- //Establish context
- public void EstablishContext()
- {
- retCode = ModWinsCard.SCardEstablishContext(ModWinsCard.SCARD_SCOPE_USER, 0, 0, ref hContext);
- if (retCode == ModWinsCard.SCARD_S_SUCCESS)
- Console.WriteLine("SCardEstablishContext...OK");
- else
- Console.WriteLine(retCode + " Error establish context");
- }
- //Get available cardreaders
- public string ListReaders()
- {
- ModWinsCard.SCardListReaders(hContext, ReaderGroupBuff, ReaderListBuff, ref Readercount);
- Console.WriteLine("Readercount:" + Readercount);
- //Byte array met ASCII waardes omvormen naar een string, ook nog lege characters trimmen
- cardName = System.Text.Encoding.ASCII.GetString(ReaderListBuff).TrimEnd(new char[] { (char)0 });
- return cardName;
- }
- //Connect
- public void Connect()
- {
- Console.WriteLine(ModWinsCard.IOCTL_SMARTCARD_GET_READER_INFO);
- retCode = ModWinsCard.SCardConnect(hContext, cardName, ModWinsCard.SCARD_SHARE_SHARED, ModWinsCard.SCARD_PROTOCOL_T0, ref hCard, ref Protocol);
- if (retCode == ModWinsCard.SCARD_S_SUCCESS)
- Console.WriteLine("Connecting...OK");
- else
- Console.WriteLine(retCode + " Error connection");
- }
- public void Transmit()
- {
- SendBuff[0] = 0xFF;//start
- SendBuff[1] = 0xA4;//instruction card type
- SendBuff[2] = 0x0; //memory adres
- SendBuff[3] = 0x0;
- SendBuff[4] = 0x01;
- SendBuff[5] = 0x1;//I2c
- sendLen = 6;
- int receivBufLength = RecvBuff.Length;
- ioRequest.dwProtocol = Protocol;
- ioRequest.cbPciLength = 8;
- retCode = ModWinsCard.SCardTransmit(hCard, ref ioRequest, ref SendBuff[0], sendLen, ref ioRequest, ref RecvBuff[0], ref receivBufLength);
- if (retCode == ModWinsCard.SCARD_S_SUCCESS)
- Console.WriteLine("Trasmitting...OK");
- else
- Console.WriteLine(retCode + " Error transmit");
- }
- //End connections
- private void Disconnect()
- {
- retCode = ModWinsCard.SCardDisconnect(hCard, ModWinsCard.SCARD_UNPOWER_CARD);
- }
- private void EndEstablishedContext()
- {
- retCode = ModWinsCard.SCardReleaseContext(hContext);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement