author | John Beck <John.Beck@Oracle.COM> |
Thu, 13 Oct 2016 08:06:14 -0700 | |
changeset 7109 | f298ea535620 |
parent 6401 | 8e624b116c1d |
permissions | -rw-r--r-- |
6401
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
1 |
In-house patch created to avoid the multiple declaration for log variable. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
2 |
This is necessary only when building the component with Solaris Studio. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
3 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
4 |
This patch is Solaris buildenv specific and may not be suitable for upstream. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
5 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
6 |
Other modifications were introduced to keep this in sync with upstream patches |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
7 |
of the coolkey.cpp source file. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
8 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
9 |
For example, the addition of RSA, EC, or both mechanisms support the variance |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
10 |
of different types of smart cards, where some cards support only EC, some only RSA. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
11 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
12 |
--- ORIGINAL/./src/coolkey/coolkey.cpp 2016-06-24 16:07:19.284028543 -0400 |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
13 |
+++ ././src/coolkey/coolkey.cpp 2016-06-27 13:38:03.637785724 -0400 |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
14 |
@@ -34,15 +34,19 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
15 |
#include "cky_base.h" |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
16 |
#include "params.h" |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
17 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
18 |
-#define NULL 0 |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
19 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
20 |
/* static module data -------------------------------- */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
21 |
- |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
22 |
-static Log *log = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
23 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
24 |
+// XXX - Solaris studio compiler specific |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
25 |
+// changed variable name from "log" to "mylog" as we need to |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
26 |
+// avoid multiple declarations of a variable named "log" |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
27 |
+static Log *mylog = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
28 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
29 |
static SlotList *slotList = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
30 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
31 |
-static OSLock finalizeLock(false); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
32 |
+static OSLock *finalizeLock = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
33 |
+#define FINALIZE_GETLOCK() if (finalizeLock) finalizeLock->getLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
34 |
+#define FINALIZE_RELEASELOCK() if (finalizeLock) finalizeLock->releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
35 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
36 |
static CK_BBOOL initialized = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
37 |
static CK_BBOOL finalizing = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
38 |
@@ -68,11 +72,25 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
39 |
/********************************************************************** |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
40 |
************************** MECHANISM TABLE *************************** |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
41 |
**********************************************************************/ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
42 |
-static MechInfo |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
43 |
-mechanismList[] = { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
44 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
45 |
+static const MechInfo |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
46 |
+rsaMechanismList[] = { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
47 |
{CKM_RSA_PKCS, { 1024, 4096, CKF_HW | CKF_SIGN | CKF_DECRYPT } } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
48 |
}; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
49 |
-static unsigned int numMechanisms = sizeof(mechanismList)/sizeof(MechInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
50 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
51 |
+static const MechInfo |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
52 |
+ecMechanismList[] = { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
53 |
+ {CKM_ECDSA,{256,521,CKF_HW | CKF_SIGN | CKF_EC_F_P}},{ CKM_ECDSA_SHA1, {256, 521, CKF_HW | CKF_SIGN | CKF_EC_F_P}},{ CKM_ECDH1_DERIVE,{256, 521, CKF_HW | CKF_DERIVE | CKF_EC_F_P} } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
54 |
+}; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
55 |
+static const MechInfo |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
56 |
+allMechanismList[] = { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
57 |
+ {CKM_RSA_PKCS, { 1024, 4096, CKF_HW | CKF_SIGN | CKF_DECRYPT } }, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
58 |
+ {CKM_ECDSA,{256,521,CKF_HW | CKF_SIGN | CKF_EC_F_P}},{ CKM_ECDSA_SHA1, {256, 521, CKF_HW | CKF_SIGN | CKF_EC_F_P}},{ CKM_ECDH1_DERIVE,{256, 521, CKF_HW | CKF_DERIVE | CKF_EC_F_P} } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
59 |
+}; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
60 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
61 |
+unsigned int numRSAMechanisms = sizeof(rsaMechanismList)/sizeof(MechInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
62 |
+unsigned int numECMechanisms = sizeof(ecMechanismList)/sizeof(MechInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
63 |
+unsigned int numAllMechanisms = sizeof(allMechanismList)/sizeof(MechInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
64 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
65 |
/* ------------------------------------------------------------ */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
66 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
67 |
@@ -86,11 +104,11 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
68 |
for (i = 0; i < ulCount; ++i) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
69 |
CK_ATTRIBUTE_PTR pT = pTemplate + i; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
70 |
if (pT->pValue && pT->ulValueLen == 4) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
71 |
- log->log( |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
72 |
+ mylog->log( |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
73 |
"template [%02lu] type: %04lx, pValue: %08lx, ulValueLen: %08lx, value: %lu\n", |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
74 |
i, pT->type, pT->pValue, pT->ulValueLen, *(CK_ULONG_PTR)pT->pValue); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
75 |
} else |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
76 |
- log->log("template [%02lu] type: %04lx, pValue: %08lx, ulValueLen: %08lx\n", |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
77 |
+ mylog->log("template [%02lu] type: %04lx, pValue: %08lx, ulValueLen: %08lx\n", |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
78 |
i, pT->type, pT->pValue, pT->ulValueLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
79 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
80 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
81 |
@@ -101,7 +119,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
82 |
#define NOTSUPPORTED(name, args) \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
83 |
CK_RV name args \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
84 |
{ \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
85 |
- log->log(#name " called (notSupported)\n"); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
86 |
+ mylog->log(#name " called (notSupported)\n"); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
87 |
return CKR_FUNCTION_NOT_SUPPORTED; \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
88 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
89 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
90 |
@@ -112,11 +130,11 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
91 |
return CKR_CRYPTOKI_NOT_INITIALIZED; \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
92 |
} \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
93 |
try { \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
94 |
- log->log(#name " called\n"); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
95 |
+ mylog->log(#name " called\n"); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
96 |
slotList->name2 use_args ; \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
97 |
return CKR_OK; \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
98 |
} catch(PKCS11Exception& e) { \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
99 |
- e.log(log); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
100 |
+ e.log(mylog); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
101 |
return e.getCRV(); \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
102 |
} \ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
103 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
104 |
@@ -164,7 +182,6 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
105 |
NOTSUPPORTED(C_GenerateKeyPair, (CK_SESSION_HANDLE,CK_MECHANISM_PTR,CK_ATTRIBUTE_PTR,CK_ULONG,CK_ATTRIBUTE_PTR,CK_ULONG,CK_OBJECT_HANDLE_PTR,CK_OBJECT_HANDLE_PTR)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
106 |
NOTSUPPORTED(C_WrapKey, (CK_SESSION_HANDLE,CK_MECHANISM_PTR,CK_OBJECT_HANDLE,CK_OBJECT_HANDLE,CK_BYTE_PTR,CK_ULONG_PTR)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
107 |
NOTSUPPORTED(C_UnwrapKey, (CK_SESSION_HANDLE,CK_MECHANISM_PTR,CK_OBJECT_HANDLE,CK_BYTE_PTR,CK_ULONG,CK_ATTRIBUTE_PTR,CK_ULONG,CK_OBJECT_HANDLE_PTR)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
108 |
-NOTSUPPORTED(C_DeriveKey, (CK_SESSION_HANDLE,CK_MECHANISM_PTR,CK_OBJECT_HANDLE,CK_ATTRIBUTE_PTR,CK_ULONG,CK_OBJECT_HANDLE_PTR)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
109 |
NOTSUPPORTED(C_GetFunctionStatus, (CK_SESSION_HANDLE)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
110 |
NOTSUPPORTED(C_CancelFunction, (CK_SESSION_HANDLE)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
111 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
112 |
@@ -198,6 +215,10 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
113 |
SUPPORTED(C_GenerateRandom, generateRandom, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
114 |
(CK_SESSION_HANDLE hSession ,CK_BYTE_PTR data,CK_ULONG dataLen), |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
115 |
(hSession, data, dataLen)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
116 |
+SUPPORTED(C_DeriveKey,derive, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
117 |
+ (CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
118 |
+ CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey ), |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
119 |
+ (hSession, pMechanism, hBaseKey, pTemplate, ulAttributeCount, phKey)) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
120 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
121 |
/* non-specialized functions supported with the slot directly */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
122 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
123 |
@@ -208,11 +229,13 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
124 |
if( initialized ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
125 |
return CKR_CRYPTOKI_ALREADY_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
126 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
127 |
- if (!finalizeLock.isValid()) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
128 |
+ if (finalizeLock && !finalizeLock->isValid()) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
129 |
return CKR_CANT_LOCK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
130 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
131 |
CK_C_INITIALIZE_ARGS* initArgs = (CK_C_INITIALIZE_ARGS*) pInitArgs; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
132 |
+ OSLock::setThreadSafe(0); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
133 |
if( initArgs != NULL ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
134 |
+ bool needThreads; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
135 |
/* work around a bug in NSS where the library parameters are only |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
136 |
* send if locking is requested */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
137 |
if (initArgs->LibraryParameters) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
138 |
@@ -220,28 +243,38 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
139 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
140 |
Params::ClearParams(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
141 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
142 |
- if( (initArgs->flags & CKF_OS_LOCKING_OK) || initArgs->LockMutex ){ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
143 |
+ needThreads = ((initArgs->flags & CKF_OS_LOCKING_OK) != 0); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
144 |
+ OSLock::setThreadSafe(needThreads); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
145 |
+ /* don't get a finalize lock unless someone initializes us asking |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
146 |
+ * us to use threads */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
147 |
+ if (needThreads && !finalizeLock) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
148 |
+ finalizeLock = new OSLock(true); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
149 |
+ if (finalizeLock == NULL) return CKR_HOST_MEMORY; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
150 |
+ } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
151 |
+ /* only support OS LOCKING threads */ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
152 |
+ if( ((initArgs->flags & CKF_OS_LOCKING_OK) == 0) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
153 |
+ && initArgs->LockMutex ){ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
154 |
throw PKCS11Exception(CKR_CANT_LOCK); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
155 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
156 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
157 |
char * logFileName = getenv("COOL_KEY_LOG_FILE"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
158 |
if (logFileName) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
159 |
if (strcmp(logFileName,"SYSLOG") == 0) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
160 |
- log = new SysLog(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
161 |
+ mylog = new SysLog(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
162 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
163 |
- log = new FileLog(logFileName); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
164 |
+ mylog = new FileLog(logFileName); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
165 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
166 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
167 |
- log = new DummyLog(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
168 |
+ mylog = new DummyLog(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
169 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
170 |
- log->log("Initialize called, hello %d\n", 5); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
171 |
- CKY_SetName("coolkey"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
172 |
- slotList = new SlotList(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
173 |
+ mylog->log("Initialize called, hello %d\n", 5); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
174 |
+ CKY_SetName((char *) "coolkey"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
175 |
+ slotList = new SlotList(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
176 |
initialized = TRUE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
177 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
178 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
179 |
- if( log ) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
180 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
181 |
+ if( mylog ) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
182 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
183 |
return e.getReturnValue(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
184 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
185 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
186 |
@@ -254,14 +287,14 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
187 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
188 |
// XXX cleanup all data structures !!! |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
189 |
//delete sessionManager; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
190 |
- log->log("Finalizing...\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
191 |
+ mylog->log("Finalizing...\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
192 |
// don't race the setting of finalizing. If C_WaitEvent gets passed |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
193 |
// the finalizing call first, we know it will set waitEvent before |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
194 |
// we can get the lock, so we only need to protect setting finalizing |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
195 |
// to true. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
196 |
- finalizeLock.getLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
197 |
+ FINALIZE_GETLOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
198 |
finalizing = TRUE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
199 |
- finalizeLock.releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
200 |
+ FINALIZE_RELEASELOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
201 |
if (waitEvent) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
202 |
/* we're waiting on a slot event, shutdown first to allow |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
203 |
* the wait function to complete before we pull the rug out. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
204 |
@@ -272,11 +305,11 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
205 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
206 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
207 |
delete slotList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
208 |
- delete log; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
209 |
- finalizeLock.getLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
210 |
+ delete mylog; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
211 |
+ FINALIZE_GETLOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
212 |
finalizing = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
213 |
initialized = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
214 |
- finalizeLock.releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
215 |
+ FINALIZE_RELEASELOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
216 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
217 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
218 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
219 |
@@ -287,7 +320,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
220 |
if( ! initialized ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
221 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
222 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
223 |
- log->log("C_GetInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
224 |
+ mylog->log("C_GetInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
225 |
ckInfo.manufacturerID[31] = ' '; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
226 |
ckInfo.libraryDescription[31] = ' '; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
227 |
*p = ckInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
228 |
@@ -302,12 +335,12 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
229 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
230 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
231 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
232 |
- log->log("Called C_GetSlotInfo\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
233 |
+ mylog->log("Called C_GetSlotInfo\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
234 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
235 |
return slotList->getSlot( |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
236 |
slotIDToIndex(slotID))->getSlotInfo(pSlotInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
237 |
} catch( PKCS11Exception &excep ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
238 |
- excep.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
239 |
+ excep.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
240 |
return excep.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
241 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
242 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
243 |
@@ -319,12 +352,12 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
244 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
245 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
246 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
247 |
- log->log("C_GetTokenInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
248 |
+ mylog->log("C_GetTokenInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
249 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
250 |
return slotList->getSlot( |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
251 |
slotIDToIndex(slotID))->getTokenInfo(pTokenInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
252 |
} catch( PKCS11Exception &excep ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
253 |
- excep.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
254 |
+ excep.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
255 |
return excep.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
256 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
257 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
258 |
@@ -333,23 +366,47 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
259 |
C_GetMechanismList(CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
260 |
CK_ULONG_PTR pulCount) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
261 |
{ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
262 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
263 |
+ const MechInfo *mechanismList = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
264 |
+ unsigned int numMechanisms = 0; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
265 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
266 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
267 |
if( ! initialized ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
268 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
269 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
270 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
271 |
CK_RV rv = CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
272 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
273 |
- log->log("C_GetMechanismList called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
274 |
+ mylog->log("C_GetMechanismList called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
275 |
if( pulCount == NULL ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
276 |
throw PKCS11Exception(CKR_ARGUMENTS_BAD); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
277 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
278 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
279 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
280 |
- if( ! slotList->getSlot( |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
281 |
- slotIDToIndex(slotID))->isTokenPresent() ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
282 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
283 |
+ Slot *slot = slotList->getSlot(slotIDToIndex(slotID)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
284 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
285 |
+ if( ! slot || ! slot->isTokenPresent() ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
286 |
return CKR_TOKEN_NOT_PRESENT; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
287 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
288 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
289 |
+ switch (slot->getAlgs()) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
290 |
+ case ALG_ECC|ALG_RSA: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
291 |
+ mechanismList = allMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
292 |
+ numMechanisms = numAllMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
293 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
294 |
+ case ALG_ECC: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
295 |
+ mechanismList = ecMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
296 |
+ numMechanisms = numECMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
297 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
298 |
+ case ALG_NONE: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
299 |
+ case ALG_RSA: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
300 |
+ default: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
301 |
+ mechanismList = rsaMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
302 |
+ numMechanisms = numRSAMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
303 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
304 |
+ } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
305 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
306 |
if( pMechanismList != NULL ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
307 |
if( *pulCount < numMechanisms ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
308 |
rv = CKR_BUFFER_TOO_SMALL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
309 |
@@ -362,11 +419,11 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
310 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
311 |
*pulCount = numMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
312 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
313 |
- log->log("C_GetMechanismList returning %d\n", rv); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
314 |
+ mylog->log("C_GetMechanismList returning %d\n", rv); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
315 |
return rv; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
316 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
317 |
} catch(PKCS11Exception &excep ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
318 |
- excep.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
319 |
+ excep.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
320 |
return excep.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
321 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
322 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
323 |
@@ -376,30 +433,56 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
324 |
C_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
325 |
CK_MECHANISM_INFO_PTR pInfo) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
326 |
{ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
327 |
+ const MechInfo *mechanismList = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
328 |
+ unsigned int numMechanisms = 0; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
329 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
330 |
if( ! initialized ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
331 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
332 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
333 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
334 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
335 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
336 |
- log->log("C_GetMechanismInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
337 |
+ mylog->log("C_GetMechanismInfo called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
338 |
if( pInfo == NULL ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
339 |
throw PKCS11Exception(CKR_ARGUMENTS_BAD); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
340 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
341 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
342 |
- if( ! slotList->getSlot(slotIDToIndex(slotID))->isTokenPresent() ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
343 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
344 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
345 |
+ Slot *slot = slotList->getSlot(slotIDToIndex(slotID)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
346 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
347 |
+ if( ! slot || ! slot->isTokenPresent() ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
348 |
return CKR_TOKEN_NOT_PRESENT; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
349 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
350 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
351 |
+ switch (slot->getAlgs()) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
352 |
+ case ALG_ECC|ALG_RSA: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
353 |
+ mechanismList = allMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
354 |
+ numMechanisms = numAllMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
355 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
356 |
+ case ALG_ECC: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
357 |
+ mechanismList = ecMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
358 |
+ numMechanisms = numECMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
359 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
360 |
+ case ALG_NONE: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
361 |
+ case ALG_RSA: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
362 |
+ default: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
363 |
+ mechanismList = rsaMechanismList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
364 |
+ numMechanisms = numRSAMechanisms; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
365 |
+ break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
366 |
+ } |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
367 |
+ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
368 |
for(unsigned int i=0; i < numMechanisms; ++i ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
369 |
if( mechanismList[i].mech == type ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
370 |
*pInfo = mechanismList[i].info; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
371 |
- log->log("C_GetMechanismInfo got info about %d\n", type); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
372 |
+ mylog->log("C_GetMechanismInfo got info about %d\n", type); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
373 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
374 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
375 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
376 |
- log->log("C_GetMechanismInfo failed to find info about %d\n", type); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
377 |
+ mylog->log("C_GetMechanismInfo failed to find info about %d\n", type); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
378 |
return CKR_MECHANISM_INVALID; // mechanism not in the list |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
379 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
380 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
381 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
382 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
383 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
384 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
385 |
@@ -412,7 +495,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
386 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
387 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
388 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
389 |
- log->log("C_OpenSession called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
390 |
+ mylog->log("C_OpenSession called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
391 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
392 |
#ifdef LATER // the CSP isn't setting this bit right now. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
393 |
if( ! (flags & CKF_SERIAL_SESSION) ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
394 |
@@ -430,7 +513,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
395 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
396 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
397 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
398 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
399 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
400 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
401 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
402 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
403 |
@@ -442,13 +525,13 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
404 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
405 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
406 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
407 |
- log->log("C_CloseSession(0x%x) called\n", hSession); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
408 |
+ mylog->log("C_CloseSession(0x%x) called\n", hSession); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
409 |
// !!!XXX Hack |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
410 |
// If nothing else, we need to logout the token when all |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
411 |
// its sessions are closed. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
412 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
413 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
414 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
415 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
416 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
417 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
418 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
419 |
@@ -460,14 +543,14 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
420 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
421 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
422 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
423 |
- log->log("C_CloseAllSessions(0x%x) called\n", slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
424 |
+ mylog->log("C_CloseAllSessions(0x%x) called\n", slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
425 |
slotList->validateSlotID(slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
426 |
// !!!XXX Hack |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
427 |
// If nothing else, we need to logout the token when all |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
428 |
// its sessions are closed. |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
429 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
430 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
431 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
432 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
433 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
434 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
435 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
436 |
@@ -481,7 +564,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
437 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
438 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
439 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
440 |
- log->log("C_FindObjectsInit called, %lu templates\n", ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
441 |
+ mylog->log("C_FindObjectsInit called, %lu templates\n", ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
442 |
dumpTemplates(pTemplate, ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
443 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
444 |
if( pTemplate == NULL && ulCount != 0 ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
445 |
@@ -490,7 +573,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
446 |
slotList->findObjectsInit(hSession, pTemplate, ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
447 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
448 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
449 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
450 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
451 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
452 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
453 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
454 |
@@ -504,22 +587,22 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
455 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
456 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
457 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
458 |
- log->log("C_FindObjects called, max objects = %lu\n", ulMaxObjectCount ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
459 |
+ mylog->log("C_FindObjects called, max objects = %lu\n", ulMaxObjectCount ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
460 |
if( phObject == NULL && ulMaxObjectCount != 0 ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
461 |
throw PKCS11Exception(CKR_ARGUMENTS_BAD); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
462 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
463 |
slotList->findObjects(hSession, phObject, ulMaxObjectCount, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
464 |
pulObjectCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
465 |
count = *pulObjectCount; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
466 |
- log->log("returned %lu objects:", count ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
467 |
+ mylog->log("returned %lu objects:", count ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
468 |
CK_ULONG i; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
469 |
for (i = 0; i < count; ++i) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
470 |
- log->log(" 0x%08lx", phObject[i]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
471 |
+ mylog->log(" 0x%08lx", phObject[i]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
472 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
473 |
- log->log("\n" ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
474 |
+ mylog->log("\n" ); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
475 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
476 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
477 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
478 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
479 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
480 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
481 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
482 |
@@ -542,7 +625,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
483 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
484 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
485 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
486 |
- log->log("C_Login called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
487 |
+ mylog->log("C_Login called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
488 |
if( userType != CKU_USER ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
489 |
throw PKCS11Exception(CKR_USER_TYPE_INVALID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
490 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
491 |
@@ -552,7 +635,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
492 |
slotList->login(hSession, pPin, ulPinLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
493 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
494 |
} catch(PKCS11Exception &e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
495 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
496 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
497 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
498 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
499 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
500 |
@@ -566,7 +649,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
501 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
502 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
503 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
504 |
- log->log("C_GetAttributeValue called, %lu templates for object 0x%08lx\n", ulCount, hObject); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
505 |
+ mylog->log("C_GetAttributeValue called, %lu templates for object 0x%08lx\n", ulCount, hObject); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
506 |
dumpTemplates(pTemplate, ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
507 |
if( pTemplate == NULL && ulCount != 0 ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
508 |
throw PKCS11Exception(CKR_ARGUMENTS_BAD); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
509 |
@@ -576,7 +659,7 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
510 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
511 |
} catch(PKCS11Exception& e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
512 |
CK_RV rv = e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
513 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
514 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
515 |
if (rv == CKR_ATTRIBUTE_TYPE_INVALID || |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
516 |
rv == CKR_BUFFER_TOO_SMALL) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
517 |
dumpTemplates(pTemplate, ulCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
518 |
@@ -595,24 +678,24 @@ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
519 |
CK_RV |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
520 |
C_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved) |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
521 |
{ |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
522 |
- finalizeLock.getLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
523 |
+ FINALIZE_GETLOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
524 |
if( ! initialized ) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
525 |
- finalizeLock.releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
526 |
+ FINALIZE_RELEASELOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
527 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
528 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
529 |
if (finalizing) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
530 |
- finalizeLock.releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
531 |
+ FINALIZE_RELEASELOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
532 |
return CKR_CRYPTOKI_NOT_INITIALIZED; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
533 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
534 |
waitEvent = TRUE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
535 |
- finalizeLock.releaseLock(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
536 |
+ FINALIZE_RELEASELOCK(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
537 |
try { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
538 |
- log->log("C_WaitForSlotEvent called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
539 |
+ mylog->log("C_WaitForSlotEvent called\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
540 |
slotList->waitForSlotEvent(flags, pSlot, pReserved); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
541 |
waitEvent = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
542 |
return CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
543 |
} catch(PKCS11Exception& e) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
544 |
- e.log(log); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
545 |
+ e.log(mylog); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
546 |
waitEvent = FALSE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
547 |
return e.getCRV(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
548 |
} |