diff --git a/ccid/src/cats-test.c b/ccid/src/cats-test.c index 783e5d8..cc141d6 100644 --- a/ccid/src/cats-test.c +++ b/ccid/src/cats-test.c @@ -311,8 +311,10 @@ main(int argc, char *argv[]) (int)recvlen); r = parse_EstablishPACEChannel_OutputData(recvbuf, recvlen); - if (r != SCARD_S_SUCCESS) + if (r != SCARD_S_SUCCESS) { + printb("EstablishPACEChannel", recvbuf, recvlen); goto err; + } printf("Established PACE channel returned in %.0fs.\n", difftime(t_end, t_start)); diff --git a/ccid/src/pcscutil.c b/ccid/src/pcscutil.c index 0d21acf..f1cbcf5 100644 --- a/ccid/src/pcscutil.c +++ b/ccid/src/pcscutil.c @@ -23,7 +23,7 @@ LONG pcsc_connect(unsigned int readernum, DWORD dwShareMode, DWORD dwPreferredProtocols, - SCARDCONTEXT *hContext, LPSTR *readers, LPSCARDHANDLE phCard, + LPSCARDCONTEXT phContext, LPSTR *readers, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol) { LONG r; @@ -31,7 +31,7 @@ pcsc_connect(unsigned int readernum, DWORD dwShareMode, DWORD dwPreferredProtoco char *reader; size_t l, i; - r = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &hContext); + r = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, phContext); if (r != SCARD_S_SUCCESS) { fprintf(stderr, "Could not connect to PC/SC Service\n"); goto err; @@ -39,7 +39,7 @@ pcsc_connect(unsigned int readernum, DWORD dwShareMode, DWORD dwPreferredProtoco readerslen = SCARD_AUTOALLOCATE; - r = SCardListReaders(hContext, NULL, (LPSTR) readers, &readerslen); + r = SCardListReaders(*phContext, NULL, (LPSTR) readers, &readerslen); if (r != SCARD_S_SUCCESS) { fprintf(stderr, "Could not get readers\n"); goto err; @@ -58,7 +58,7 @@ pcsc_connect(unsigned int readernum, DWORD dwShareMode, DWORD dwPreferredProtoco } - r = SCardConnect(hContext, reader, dwShareMode, dwPreferredProtocols, + r = SCardConnect(*phContext, reader, dwShareMode, dwPreferredProtocols, phCard, pdwActiveProtocol); if (r != SCARD_S_SUCCESS) { fprintf(stderr, "Could not connect to %s\n", reader); diff --git a/ccid/src/pcscutil.h b/ccid/src/pcscutil.h index 988c76e..693b1cb 100644 --- a/ccid/src/pcscutil.h +++ b/ccid/src/pcscutil.h @@ -24,11 +24,13 @@ #endif #include +#include #ifdef HAVE_PCSCLITE_H #include #define stringify_error(r) { if (r != SCARD_S_SUCCESS) fputs(pcsc_stringify_error(r), stderr); } #else #define stringify_error(r) { if (r != SCARD_S_SUCCESS) fprintf(stderr, "PC/SC error code %u\n", (unsigned int) r); } +#define SCARD_PROTOCOL_ANY (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1) #endif #ifdef HAVE_READER_H