[Pcsclite-cvs-commit] r2325 - trunk/PCSC/doc/example
Ludovic Rousseau
rousseau at alioth.debian.org
Wed Jan 10 10:57:33 CET 2007
Author: rousseau
Date: 2007-01-10 10:57:33 +0100 (Wed, 10 Jan 2007)
New Revision: 2325
Modified:
trunk/PCSC/doc/example/pcsc_demo.c
Log:
improve code to be able to also use T=1 cards
Modified: trunk/PCSC/doc/example/pcsc_demo.c
===================================================================
--- trunk/PCSC/doc/example/pcsc_demo.c 2007-01-10 09:41:13 UTC (rev 2324)
+++ trunk/PCSC/doc/example/pcsc_demo.c 2007-01-10 09:57:33 UTC (rev 2325)
@@ -63,6 +63,7 @@
char pbReader[MAX_READERNAME] = "";
int reader_nb;
int i;
+ SCARD_IO_REQUEST *pioSendPci;
SCARD_IO_REQUEST pioRecvPci;
BYTE pbRecvBuffer[10];
BYTE pbSendBuffer[] = { 0xC0, 0xA4, 0x00, 0x00, 0x02, 0x3F, 0x00 };
@@ -173,10 +174,23 @@
printf("\n");
PCSC_ERROR(rv, "SCardStatus")
+ switch(dwActiveProtocol)
+ {
+ case SCARD_PROTOCOL_T0:
+ pioSendPci = SCARD_PCI_T0;
+ break;
+ case SCARD_PROTOCOL_T1:
+ pioSendPci = SCARD_PCI_T1;
+ break;
+ default:
+ printf("Unknown protocol\n");
+ return -1;
+ }
+
/* exchange APDU */
dwSendLength = sizeof(pbSendBuffer);
dwRecvLength = sizeof(pbRecvBuffer);
- rv = SCardTransmit(hCard, SCARD_PCI_T0, pbSendBuffer, dwSendLength,
+ rv = SCardTransmit(hCard, pioSendPci, pbSendBuffer, dwSendLength,
&pioRecvPci, pbRecvBuffer, &dwRecvLength);
PCSC_ERROR(rv, "SCardTransmit")
@@ -187,14 +201,14 @@
/* connect to a card */
dwActiveProtocol = -1;
rv = SCardConnect(hContext, readers[reader_nb], SCARD_SHARE_EXCLUSIVE,
- SCARD_PROTOCOL_T0, &hCard, &dwActiveProtocol);
+ SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1, &hCard, &dwActiveProtocol);
printf(" Protocol: %ld\n", dwActiveProtocol);
PCSC_ERROR(rv, "SCardConnect")
/* exchange APDU */
dwSendLength = sizeof(pbSendBuffer);
dwRecvLength = sizeof(pbRecvBuffer);
- rv = SCardTransmit(hCard, SCARD_PCI_T0, pbSendBuffer, dwSendLength,
+ rv = SCardTransmit(hCard, pioSendPci, pbSendBuffer, dwSendLength,
&pioRecvPci, pbRecvBuffer, &dwRecvLength);
PCSC_ERROR(rv, "SCardTransmit")
@@ -234,7 +248,7 @@
/* exchange APDU */
dwSendLength = sizeof(pbSendBuffer);
dwRecvLength = sizeof(pbRecvBuffer);
- rv = SCardTransmit(hCard, SCARD_PCI_T0, pbSendBuffer, dwSendLength,
+ rv = SCardTransmit(hCard, pioSendPci, pbSendBuffer, dwSendLength,
&pioRecvPci, pbRecvBuffer, &dwRecvLength);
PCSC_ERROR(rv, "SCardTransmit")
More information about the Pcsclite-cvs-commit
mailing list