FreeCalypso > hg > fc-sim-tools
comparison pcsc/connect.c @ 1:f7a03e53bb2c
fc-pcsc-atr ported over
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 14 Mar 2021 01:09:23 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:f4479a0d4cea | 1:f7a03e53bb2c |
---|---|
1 #include <string.h> | |
2 #include <strings.h> | |
3 #include <stdio.h> | |
4 #include <stdlib.h> | |
5 #include <pcsclite.h> | |
6 #include <winscard.h> | |
7 | |
8 extern SCARDCONTEXT hContext; | |
9 extern char *reader_list; | |
10 extern unsigned select_reader_num; | |
11 | |
12 SCARDHANDLE hCard; | |
13 char *selected_reader; | |
14 | |
15 select_reader_by_num() | |
16 { | |
17 char *cp; | |
18 unsigned num; | |
19 | |
20 for (cp = reader_list, num = 0; *cp; num++) { | |
21 if (num == select_reader_num) { | |
22 selected_reader = cp; | |
23 return(0); | |
24 } | |
25 cp += strlen(cp) + 1; | |
26 } | |
27 fprintf(stderr, | |
28 "error: requested reader #%u, but only %u reader(s) found\n", | |
29 select_reader_num, num); | |
30 SCardReleaseContext(hContext); | |
31 exit(1); | |
32 } | |
33 | |
34 connect_to_card() | |
35 { | |
36 LONG rv; | |
37 DWORD dwActiveProtocol; | |
38 | |
39 rv = SCardConnect(hContext, selected_reader, SCARD_SHARE_EXCLUSIVE, | |
40 SCARD_PROTOCOL_T0, &hCard, &dwActiveProtocol); | |
41 if (rv != SCARD_S_SUCCESS) { | |
42 fprintf(stderr, "SCardConnect: %s\n", pcsc_stringify_error(rv)); | |
43 SCardReleaseContext(hContext); | |
44 exit(1); | |
45 } | |
46 return(0); | |
47 } |