Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.90 KB | None | 0 0
  1. public class CardBase
  2.     {
  3.         int retCode, Protocol, hContext, hCard, Readercount;
  4.         string cardName = null;
  5.         public byte[] ReaderListBuff = new byte[262];
  6.         byte[] ReaderGroupBuff;
  7.         bool diFlag;
  8.         ModWinsCard.SCARD_IO_REQUEST ioRequest;
  9.         int sendLen, RecvLen;
  10.         byte[] RecvBuff = new byte[262];
  11.         byte[] SendBuff = new byte[262];
  12.  
  13.         //Establish context
  14.         public void EstablishContext()
  15.         {
  16.             retCode = ModWinsCard.SCardEstablishContext(ModWinsCard.SCARD_SCOPE_USER, 0, 0, ref hContext);
  17.  
  18.             if (retCode == ModWinsCard.SCARD_S_SUCCESS)
  19.                 Console.WriteLine("SCardEstablishContext...OK");
  20.             else
  21.                 Console.WriteLine(retCode + " Error establish context");
  22.         }
  23.  
  24.         //Get available cardreaders
  25.         public string ListReaders()
  26.         {
  27.             ModWinsCard.SCardListReaders(hContext, ReaderGroupBuff, ReaderListBuff, ref Readercount);
  28.             Console.WriteLine("Readercount:" + Readercount);
  29.  
  30.             //Byte array met ASCII waardes omvormen naar een string, ook nog lege characters trimmen
  31.             cardName = System.Text.Encoding.ASCII.GetString(ReaderListBuff).TrimEnd(new char[] { (char)0 });
  32.             return cardName;
  33.         }
  34.  
  35.         //Connect
  36.         public void Connect()
  37.         {
  38.             Console.WriteLine(ModWinsCard.IOCTL_SMARTCARD_GET_READER_INFO);
  39.             retCode = ModWinsCard.SCardConnect(hContext, cardName, ModWinsCard.SCARD_SHARE_SHARED, ModWinsCard.SCARD_PROTOCOL_T0, ref hCard, ref Protocol);
  40.  
  41.             if (retCode == ModWinsCard.SCARD_S_SUCCESS)
  42.                 Console.WriteLine("Connecting...OK");
  43.             else
  44.                 Console.WriteLine(retCode + " Error connection");
  45.         }
  46.  
  47.         public void Transmit()
  48.         {
  49.             SendBuff[0] = 0xFF;//start
  50.             SendBuff[1] = 0xA4;//instruction card type
  51.             SendBuff[2] = 0x0; //memory adres
  52.             SendBuff[3] = 0x0;
  53.             SendBuff[4] = 0x01;
  54.             SendBuff[5] = 0x1;//I2c
  55.             sendLen = 6;
  56.  
  57.             int receivBufLength = RecvBuff.Length;
  58.  
  59.             ioRequest.dwProtocol = Protocol;
  60.             ioRequest.cbPciLength = 8;
  61.  
  62.             retCode = ModWinsCard.SCardTransmit(hCard, ref ioRequest, ref SendBuff[0], sendLen, ref ioRequest, ref RecvBuff[0], ref receivBufLength);
  63.  
  64.             if (retCode == ModWinsCard.SCARD_S_SUCCESS)
  65.                 Console.WriteLine("Trasmitting...OK");
  66.             else
  67.                 Console.WriteLine(retCode + " Error transmit");
  68.         }
  69.  
  70.         //End connections
  71.         private void Disconnect()
  72.         {
  73.             retCode = ModWinsCard.SCardDisconnect(hCard, ModWinsCard.SCARD_UNPOWER_CARD);
  74.         }
  75.         private void EndEstablishedContext()
  76.         {
  77.             retCode = ModWinsCard.SCardReleaseContext(hContext);
  78.         }
  79.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement