author | Ronald Jordan <ron.jordan@oracle.com> |
Mon, 01 Aug 2016 12:38:38 -0700 | |
branch | s11u3-sru |
changeset 6535 | 8f23248b161c |
permissions | -rw-r--r-- |
6535
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
1 |
Upstream fixes already included in the latest community updates to coolkey v1.1.0 |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
2 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
3 |
Addresses various SCARD API and APDU issues. |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
4 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
5 |
--- ORIGINAL/./src/libckyapplet/cky_card.c 2016-06-24 16:08:04.287949643 -0400 |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
6 |
+++ ././src/libckyapplet/cky_card.c 2016-06-24 12:53:46.337857570 -0400 |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
7 |
@@ -129,6 +129,7 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
8 |
SCardGetStatusChangeFn SCardGetStatusChange; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
9 |
SCardCancelFn SCardCancel; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
10 |
SCARD_IO_REQUEST *SCARD_PCI_T0_; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
11 |
+ SCARD_IO_REQUEST *SCARD_PCI_T1_; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
12 |
} SCard; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
13 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
14 |
#define GET_ADDRESS(library, scard, name) \ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
15 |
@@ -195,6 +196,12 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
16 |
if( status != CKYSUCCESS ) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
17 |
goto fail; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
18 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
19 |
+ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
20 |
+ status = ckyShLibrary_getAddress( library, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
21 |
+ (void**) &scard->SCARD_PCI_T1_, MAKE_DLL_SYMBOL(g_rgSCardT1Pci)); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
22 |
+ if( status != CKYSUCCESS ) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
23 |
+ goto fail; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
24 |
+ } |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
25 |
return scard; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
26 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
27 |
fail: |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
28 |
@@ -837,6 +844,11 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
29 |
rv = ctx->scard->SCardGetStatusChange(ctx->context, timeout, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
30 |
readers, readerCount); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
31 |
if (rv != SCARD_S_SUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
32 |
+ if ((rv == SCARD_E_NO_SERVICE) || (rv == SCARD_E_SERVICE_STOPPED)) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
33 |
+ /* if we were stopped, don't reuse the old context, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
34 |
+ * pcsc-lite hangs */ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
35 |
+ ckyCardContext_release(ctx); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
36 |
+ } |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
37 |
ctx->lastError = rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
38 |
return CKYSCARDERR; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
39 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
40 |
@@ -884,6 +896,7 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
41 |
SCARDHANDLE cardHandle; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
42 |
unsigned long lastError; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
43 |
CKYBool inTransaction; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
44 |
+ unsigned long protocol; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
45 |
}; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
46 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
47 |
static void |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
48 |
@@ -894,6 +907,7 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
49 |
conn->cardHandle = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
50 |
conn->lastError = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
51 |
conn->inTransaction = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
52 |
+ conn->protocol = SCARD_PROTOCOL_T0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
53 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
54 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
55 |
CKYCardConnection * |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
56 |
@@ -934,14 +948,13 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
57 |
{ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
58 |
CKYStatus ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
59 |
unsigned long rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
60 |
- unsigned long protocol; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
61 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
62 |
ret = CKYCardConnection_Disconnect(conn); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
63 |
if (ret != CKYSUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
64 |
return ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
65 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
66 |
rv = conn->scard->SCardConnect( conn->ctx->context, readerName, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
67 |
- SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0, &conn->cardHandle, &protocol); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
68 |
+ SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1, &conn->cardHandle, &conn->protocol); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
69 |
if (rv != SCARD_S_SUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
70 |
conn->lastError = rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
71 |
return CKYSCARDERR; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
72 |
@@ -978,7 +991,7 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
73 |
unsigned long protocol; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
74 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
75 |
rv = conn->scard->SCardReconnect(conn->cardHandle, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
76 |
- SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0, init, &protocol); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
77 |
+ SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 , init, &protocol); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
78 |
if (rv != SCARD_S_SUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
79 |
conn->lastError = rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
80 |
return CKYSCARDERR; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
81 |
@@ -1039,10 +1052,17 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
82 |
return ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
83 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
84 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
85 |
- rv = conn->scard->SCardTransmit(conn->cardHandle, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
86 |
- conn->scard->SCARD_PCI_T0_, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
87 |
- CKYBuffer_Data(&apdu->apduBuf), CKYBuffer_Size(&apdu->apduBuf), |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
88 |
- NULL, response->data, &response->len); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
89 |
+ if( conn->protocol == SCARD_PROTOCOL_T0 ) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
90 |
+ rv = conn->scard->SCardTransmit(conn->cardHandle, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
91 |
+ conn->scard->SCARD_PCI_T0_, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
92 |
+ CKYBuffer_Data(&apdu->apduBuf), CKYBuffer_Size(&apdu->apduBuf), |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
93 |
+ NULL, response->data, &response->len); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
94 |
+ } else { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
95 |
+ rv = conn->scard->SCardTransmit(conn->cardHandle, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
96 |
+ conn->scard->SCARD_PCI_T1_, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
97 |
+ CKYBuffer_Data(&apdu->apduBuf), CKYBuffer_Size(&apdu->apduBuf), |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
98 |
+ NULL, response->data, &response->len); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
99 |
+ } |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
100 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
101 |
if (rv != SCARD_S_SUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
102 |
conn->lastError =rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
103 |
@@ -1057,25 +1077,39 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
104 |
CKYBuffer *response) |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
105 |
{ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
106 |
CKYStatus ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
107 |
+ CKYBuffer getResponse; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
108 |
+ CKYSize size = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
109 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
110 |
ret = CKYCardConnection_TransmitAPDU(conn, apdu, response); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
111 |
if (ret != CKYSUCCESS) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
112 |
return ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
113 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
114 |
+ CKYBuffer_InitEmpty(&getResponse); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
115 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
116 |
- if (CKYBuffer_Size(response) == 2 && CKYBuffer_GetChar(response,0) == 0x61) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
117 |
+ /* automatically handle the response data protocol */ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
118 |
+ while ((ret == CKYSUCCESS) && |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
119 |
+ (size = CKYBuffer_Size(response)) >= 2 && |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
120 |
+ (CKYBuffer_GetChar(response,size-2) == 0x61)) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
121 |
/* get the response */ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
122 |
CKYAPDU getResponseAPDU; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
123 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
124 |
+ CKYBuffer_Zero(&getResponse); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
125 |
CKYAPDU_Init(&getResponseAPDU); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
126 |
CKYAPDU_SetCLA(&getResponseAPDU, 0x00); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
127 |
CKYAPDU_SetINS(&getResponseAPDU, 0xc0); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
128 |
CKYAPDU_SetP1(&getResponseAPDU, 0x00); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
129 |
CKYAPDU_SetP2(&getResponseAPDU, 0x00); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
130 |
- CKYAPDU_SetReceiveLen(&getResponseAPDU, CKYBuffer_GetChar(response,1)); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
131 |
- ret = CKYCardConnection_TransmitAPDU(conn, &getResponseAPDU, response); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
132 |
+ CKYAPDU_SetReceiveLen(&getResponseAPDU, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
133 |
+ CKYBuffer_GetChar(response,size-1)); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
134 |
+ ret = CKYCardConnection_TransmitAPDU(conn, &getResponseAPDU, |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
135 |
+ &getResponse); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
136 |
CKYAPDU_FreeData(&getResponseAPDU); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
137 |
+ if ((ret == CKYSUCCESS) && (CKYBuffer_Size(&getResponse) >= 2)) { |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
138 |
+ CKYBuffer_Resize(response, size-2); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
139 |
+ CKYBuffer_AppendCopy(response,&getResponse); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
140 |
+ } |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
141 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
142 |
+ CKYBuffer_FreeData(&getResponse); |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
143 |
return ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
144 |
} |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
145 |
|
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
146 |
@@ -1086,7 +1120,7 @@ |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
147 |
unsigned long readerLen = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
148 |
unsigned long protocol; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
149 |
unsigned long rv; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
150 |
- CKYSize atrLen; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
151 |
+ CKYSize atrLen = 0; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
152 |
char *readerStr; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
153 |
CKYStatus ret; |
8f23248b161c
22017764 Add Coolkey v1.1.0 to Userland consolidation
Ronald Jordan <ron.jordan@oracle.com>
parents:
diff
changeset
|
154 |