author | Stephen Gaul Jr <steve.gaul@oracle.com> |
Tue, 12 Jul 2016 17:34:11 -0700 | |
changeset 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 |
/* |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
2 |
* This file is to be used for in-house testing purposes only, it has been |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
3 |
* modified from the test program source of the CACKey v0.7.4 component |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
4 |
* and adapted for use with this Solaris coolkey v1.1.0 userland component. |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
7 |
#include "mypkcs11.h" |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
8 |
#include <sys/types.h> |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
9 |
#include <string.h> |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
10 |
#include <unistd.h> |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
11 |
#include <stdlib.h> |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
12 |
#include <stdio.h> |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
13 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
14 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
15 |
static char *pkcs11_attribute_to_name(CK_ATTRIBUTE_TYPE attrib) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
16 |
static char retbuf[1024]; |
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 |
switch (attrib) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
19 |
case 0x00000000: return "CKA_CLASS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
20 |
case 0x00000001: return "CKA_TOKEN"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
21 |
case 0x00000002: return "CKA_PRIVATE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
22 |
case 0x00000003: return "CKA_LABEL"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
23 |
case 0x00000010: return "CKA_APPLICATION"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
24 |
case 0x00000011: return "CKA_VALUE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
25 |
case 0x00000012: return "CKA_OBJECT_ID"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
26 |
case 0x00000080: return "CKA_CERTIFICATE_TYPE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
27 |
case 0x00000081: return "CKA_ISSUER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
28 |
case 0x00000082: return "CKA_SERIAL_NUMBER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
29 |
case 0x00000083: return "CKA_AC_ISSUER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
30 |
case 0x00000084: return "CKA_OWNER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
31 |
case 0x00000085: return "CKA_ATTR_TYPES"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
32 |
case 0x00000086: return "CKA_TRUSTED"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
33 |
case 0x00000100: return "CKA_KEY_TYPE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
34 |
case 0x00000101: return "CKA_SUBJECT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
35 |
case 0x00000102: return "CKA_ID"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
36 |
case 0x00000103: return "CKA_SENSITIVE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
37 |
case 0x00000104: return "CKA_ENCRYPT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
38 |
case 0x00000105: return "CKA_DECRYPT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
39 |
case 0x00000106: return "CKA_WRAP"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
40 |
case 0x00000107: return "CKA_UNWRAP"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
41 |
case 0x00000108: return "CKA_SIGN"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
42 |
case 0x00000109: return "CKA_SIGN_RECOVER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
43 |
case 0x0000010A: return "CKA_VERIFY"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
44 |
case 0x0000010B: return "CKA_VERIFY_RECOVER"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
45 |
case 0x0000010C: return "CKA_DERIVE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
46 |
case 0x00000110: return "CKA_START_DATE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
47 |
case 0x00000111: return "CKA_END_DATE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
48 |
case 0x00000120: return "CKA_MODULUS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
49 |
case 0x00000121: return "CKA_MODULUS_BITS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
50 |
case 0x00000122: return "CKA_PUBLIC_EXPONENT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
51 |
case 0x00000123: return "CKA_PRIVATE_EXPONENT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
52 |
case 0x00000124: return "CKA_PRIME_1"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
53 |
case 0x00000125: return "CKA_PRIME_2"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
54 |
case 0x00000126: return "CKA_EXPONENT_1"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
55 |
case 0x00000127: return "CKA_EXPONENT_2"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
56 |
case 0x00000128: return "CKA_COEFFICIENT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
57 |
case 0x00000130: return "CKA_PRIME"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
58 |
case 0x00000131: return "CKA_SUBPRIME"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
59 |
case 0x00000132: return "CKA_BASE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
60 |
case 0x00000133: return "CKA_PRIME_BITS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
61 |
case 0x00000134: return "CKA_SUB_PRIME_BITS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
62 |
case 0x00000160: return "CKA_VALUE_BITS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
63 |
case 0x00000161: return "CKA_VALUE_LEN"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
64 |
case 0x00000162: return "CKA_EXTRACTABLE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
65 |
case 0x00000163: return "CKA_LOCAL"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
66 |
case 0x00000164: return "CKA_NEVER_EXTRACTABLE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
67 |
case 0x00000165: return "CKA_ALWAYS_SENSITIVE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
68 |
case 0x00000166: return "CKA_KEY_GEN_MECHANISM"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
69 |
case 0x00000170: return "CKA_MODIFIABLE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
70 |
case 0x00000180: return "CKA_EC_PARAMS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
71 |
case 0x00000181: return "CKA_EC_POINT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
72 |
case 0x00000200: return "CKA_SECONDARY_AUTH"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
73 |
case 0x00000201: return "CKA_AUTH_PIN_FLAGS"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
74 |
case 0x00000300: return "CKA_HW_FEATURE_TYPE"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
75 |
case 0x00000301: return "CKA_RESET_ON_INIT"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
76 |
case 0x00000302: return "CKA_HAS_RESET"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
77 |
case 0xce5363b4: return "CKA_CERT_SHA1_HASH"; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
78 |
case 0xce5363b5: return "CKA_CERT_MD5_HASH"; |
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 |
snprintf(retbuf, sizeof(retbuf), "0x%08lx", (unsigned long) attrib); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
82 |
retbuf[sizeof(retbuf) - 1] = '\0'; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
83 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
84 |
return(retbuf); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
85 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
86 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
87 |
int main_pkcs11(void) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
88 |
CK_FUNCTION_LIST_PTR pFunctionList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
89 |
CK_RV (*C_CloseSession)(CK_SESSION_HANDLE hSession) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
90 |
CK_RV (*C_Decrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
91 |
CK_RV (*C_DecryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
92 |
CK_RV (*C_Encrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
93 |
CK_RV (*C_EncryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
94 |
CK_RV (*C_Finalize)(CK_VOID_PTR pReserved) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
95 |
CK_RV (*C_FindObjects)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
96 |
CK_RV (*C_FindObjectsFinal)(CK_SESSION_HANDLE hSession) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
97 |
CK_RV (*C_FindObjectsInit)(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
98 |
CK_RV (*C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
99 |
CK_RV (*C_GetInfo)(CK_INFO_PTR pInfo) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
100 |
CK_RV (*C_GetSessionInfo)(CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
101 |
CK_RV (*C_GetSlotInfo)(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
102 |
CK_RV (*C_GetSlotList)(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
103 |
CK_RV (*C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
104 |
CK_RV (*C_Initialize)(CK_VOID_PTR pInitArgs) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
105 |
CK_RV (*C_Login)(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
106 |
CK_RV (*C_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY notify, CK_SESSION_HANDLE_PTR phSession) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
107 |
CK_RV (*C_Sign)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
108 |
CK_RV (*C_SignInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey) = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
109 |
CK_C_INITIALIZE_ARGS initargs; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
110 |
CK_INFO clientinfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
111 |
CK_ULONG numSlots, currSlot; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
112 |
CK_SLOT_ID_PTR slots; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
113 |
CK_SLOT_INFO slotInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
114 |
CK_TOKEN_INFO tokenInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
115 |
CK_SESSION_HANDLE hSession; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
116 |
CK_SESSION_INFO sessionInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
117 |
CK_OBJECT_HANDLE hObject, *privateKeyObjects_root, *privateKeyObjects, *currPrivKey; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
118 |
CK_ULONG ulObjectCount; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
119 |
CK_ATTRIBUTE template[] = { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
120 |
{CKA_CLASS, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
121 |
{CKA_TOKEN, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
122 |
{CKA_LABEL, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
123 |
{CKA_PRIVATE, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
124 |
{CKA_ID, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
125 |
{CKA_SERIAL_NUMBER, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
126 |
{CKA_SUBJECT, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
127 |
{CKA_ISSUER, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
128 |
{CKA_CERTIFICATE_TYPE, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
129 |
{CKA_KEY_TYPE, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
130 |
{CKA_SIGN, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
131 |
{CKA_VALUE, NULL, 0}, |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
132 |
{CKA_TRUSTED, NULL, 0} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
133 |
}, *curr_attr; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
134 |
CK_ULONG curr_attr_idx; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
135 |
CK_ULONG byte_idx; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
136 |
CK_UTF8CHAR user_pin[1024], *pucValue; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
137 |
CK_OBJECT_CLASS objectClass; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
138 |
CK_BYTE signature[1024], encrypted_buf[16384], decrypted_buf[16384]; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
139 |
CK_ULONG signature_len, encrypted_buflen, decrypted_buflen; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
140 |
CK_MECHANISM mechanism = {CKM_RSA_PKCS, NULL, 0}; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
141 |
CK_RV chk_rv; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
142 |
char *fgets_ret; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
143 |
int i; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
144 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
145 |
chk_rv = C_GetFunctionList(&pFunctionList); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
146 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
147 |
printf("C_GetFunctionList() failed."); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
148 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
149 |
return(1); |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
152 |
C_CloseSession = pFunctionList->C_CloseSession; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
153 |
C_Decrypt = pFunctionList->C_Decrypt; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
154 |
C_DecryptInit = pFunctionList->C_DecryptInit; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
155 |
C_Encrypt = pFunctionList->C_Encrypt; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
156 |
C_EncryptInit = pFunctionList->C_EncryptInit; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
157 |
C_Finalize = pFunctionList->C_Finalize; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
158 |
C_FindObjects = pFunctionList->C_FindObjects; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
159 |
C_FindObjectsFinal = pFunctionList->C_FindObjectsFinal; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
160 |
C_FindObjectsInit = pFunctionList->C_FindObjectsInit; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
161 |
C_GetAttributeValue = pFunctionList->C_GetAttributeValue; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
162 |
C_GetInfo = pFunctionList->C_GetInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
163 |
C_GetSessionInfo = pFunctionList->C_GetSessionInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
164 |
C_GetSlotInfo = pFunctionList->C_GetSlotInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
165 |
C_GetSlotList = pFunctionList->C_GetSlotList; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
166 |
C_GetTokenInfo = pFunctionList->C_GetTokenInfo; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
167 |
C_Initialize = pFunctionList->C_Initialize; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
168 |
C_Login = pFunctionList->C_Login; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
169 |
C_OpenSession = pFunctionList->C_OpenSession; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
170 |
C_Sign = pFunctionList->C_Sign; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
171 |
C_SignInit = pFunctionList->C_SignInit; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
172 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
173 |
privateKeyObjects = malloc(sizeof(*privateKeyObjects) * 1024); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
174 |
privateKeyObjects_root = privateKeyObjects; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
175 |
for (i = 0; i < 1024; i++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
176 |
privateKeyObjects[i] = CK_INVALID_HANDLE; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
177 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
178 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
179 |
initargs.CreateMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
180 |
initargs.DestroyMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
181 |
initargs.LockMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
182 |
initargs.UnlockMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
183 |
initargs.flags = CKF_OS_LOCKING_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
184 |
initargs.LibraryParameters = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
185 |
initargs.pReserved = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
186 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
187 |
chk_rv = C_Initialize(&initargs); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
188 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
189 |
initargs.CreateMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
190 |
initargs.DestroyMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
191 |
initargs.LockMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
192 |
initargs.UnlockMutex = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
193 |
initargs.flags = 0; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
194 |
initargs.LibraryParameters = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
195 |
initargs.pReserved = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
196 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
197 |
chk_rv = C_Initialize(&initargs); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
198 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
199 |
printf("C_Initialize() failed."); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
200 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
201 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
202 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
203 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
204 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
205 |
chk_rv = C_GetInfo(&clientinfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
206 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
207 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
208 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
209 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
210 |
printf("PKCS#11 Client Version: %i.%i, Library Version %i.%i\n", clientinfo.cryptokiVersion.major, clientinfo.cryptokiVersion.minor, clientinfo.libraryVersion.major, clientinfo.libraryVersion.minor); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
211 |
printf("PKCS#11 ManufID: %.*s, LibraryDesc: %.*s\n", 32, clientinfo.manufacturerID, 32, clientinfo.libraryDescription); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
212 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
213 |
chk_rv = C_GetSlotList(FALSE, NULL, &numSlots); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
214 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
215 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
216 |
} |
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 |
printf("Number of Slots: %lu\n", numSlots); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
219 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
220 |
slots = malloc(sizeof(*slots) * numSlots); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
221 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
222 |
chk_rv = C_GetSlotList(FALSE, slots, &numSlots); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
223 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
224 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
225 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
226 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
227 |
for (currSlot = 0; currSlot < numSlots; currSlot++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
228 |
printf(" Slot %lu:\n", currSlot); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
229 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
230 |
chk_rv = C_GetSlotInfo(slots[currSlot], &slotInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
231 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
232 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
233 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
234 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
235 |
printf(" Id : %lu\n", (unsigned long) slots[currSlot]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
236 |
printf(" Desc : %.*s\n", 32, slotInfo.slotDescription); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
237 |
printf(" ManufID: %.*s\n", 32, slotInfo.manufacturerID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
238 |
printf(" HWVers : %i.%i\n", slotInfo.hardwareVersion.major, slotInfo.hardwareVersion.minor); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
239 |
printf(" FWVers : %i.%i\n", slotInfo.firmwareVersion.major, slotInfo.firmwareVersion.minor); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
240 |
printf(" Flags : "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
241 |
if ((slotInfo.flags & CKF_TOKEN_PRESENT) == CKF_TOKEN_PRESENT) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
242 |
printf("CKF_TOKEN_PRESENT "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
243 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
244 |
if ((slotInfo.flags & CKF_REMOVABLE_DEVICE) == CKF_REMOVABLE_DEVICE) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
245 |
printf("CKF_REMOVABLE_DEVICE "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
246 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
247 |
if ((slotInfo.flags & CKF_HW_SLOT) == CKF_HW_SLOT) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
248 |
printf("CKF_HW_SLOT "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
249 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
250 |
printf("\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
251 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
252 |
if ((slotInfo.flags & CKF_TOKEN_PRESENT) == CKF_TOKEN_PRESENT) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
253 |
printf(" Token:\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
254 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
255 |
chk_rv = C_GetTokenInfo(slots[currSlot], &tokenInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
256 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
257 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
258 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
259 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
260 |
printf(" Label : %.*s\n", 32, tokenInfo.label); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
261 |
printf(" ManufID: %.*s\n", 32, tokenInfo.manufacturerID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
262 |
printf(" Model : %.*s\n", 16, tokenInfo.model); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
263 |
printf(" SerNo : %.*s\n", 16, tokenInfo.serialNumber); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
264 |
printf(" HWVers : %i.%i\n", tokenInfo.hardwareVersion.major, tokenInfo.hardwareVersion.minor); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
265 |
printf(" FWVers : %i.%i\n", tokenInfo.firmwareVersion.major, tokenInfo.firmwareVersion.minor); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
266 |
printf(" Flags : "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
267 |
if ((tokenInfo.flags & CKF_RNG) == CKF_RNG) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
268 |
printf("CKF_RNG "); |
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 |
if ((tokenInfo.flags & CKF_WRITE_PROTECTED) == CKF_WRITE_PROTECTED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
271 |
printf("CKF_WRITE_PROTECTED "); |
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 |
if ((tokenInfo.flags & CKF_LOGIN_REQUIRED) == CKF_LOGIN_REQUIRED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
274 |
printf("CKF_LOGIN_REQUIRED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
275 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
276 |
if ((tokenInfo.flags & CKF_USER_PIN_INITIALIZED) == CKF_USER_PIN_INITIALIZED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
277 |
printf("CKF_USER_PIN_INITIALIZED "); |
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 |
if ((tokenInfo.flags & CKF_RESTORE_KEY_NOT_NEEDED) == CKF_RESTORE_KEY_NOT_NEEDED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
280 |
printf("CKF_RESTORE_KEY_NOT_NEEDED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
281 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
282 |
if ((tokenInfo.flags & CKF_CLOCK_ON_TOKEN) == CKF_CLOCK_ON_TOKEN) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
283 |
printf("CKF_CLOCK_ON_TOKEN "); |
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 ((tokenInfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH) == CKF_PROTECTED_AUTHENTICATION_PATH) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
286 |
printf("CKF_PROTECTED_AUTHENTICATION_PATH "); |
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 |
if ((tokenInfo.flags & CKF_DUAL_CRYPTO_OPERATIONS) == CKF_DUAL_CRYPTO_OPERATIONS) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
289 |
printf("CKF_DUAL_CRYPTO_OPERATIONS "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
290 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
291 |
if ((tokenInfo.flags & CKF_TOKEN_INITIALIZED) == CKF_TOKEN_INITIALIZED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
292 |
printf("CKF_TOKEN_INITIALIZED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
293 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
294 |
if ((tokenInfo.flags & CKF_SECONDARY_AUTHENTICATION) == CKF_SECONDARY_AUTHENTICATION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
295 |
printf("CKF_SECONDARY_AUTHENTICATION "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
296 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
297 |
if ((tokenInfo.flags & CKF_USER_PIN_COUNT_LOW) == CKF_USER_PIN_COUNT_LOW) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
298 |
printf("CKF_USER_PIN_COUNT_LOW "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
299 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
300 |
if ((tokenInfo.flags & CKF_USER_PIN_FINAL_TRY) == CKF_USER_PIN_FINAL_TRY) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
301 |
printf("CKF_USER_PIN_FINAL_TRY "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
302 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
303 |
if ((tokenInfo.flags & CKF_USER_PIN_LOCKED) == CKF_USER_PIN_LOCKED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
304 |
printf("CKF_USER_PIN_LOCKED "); |
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 ((tokenInfo.flags & CKF_USER_PIN_TO_BE_CHANGED) == CKF_USER_PIN_TO_BE_CHANGED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
307 |
printf("CKF_USER_PIN_TO_BE_CHANGED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
308 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
309 |
if ((tokenInfo.flags & CKF_SO_PIN_COUNT_LOW) == CKF_SO_PIN_COUNT_LOW) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
310 |
printf("CKF_SO_PIN_COUNT_LOW "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
311 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
312 |
if ((tokenInfo.flags & CKF_SO_PIN_FINAL_TRY) == CKF_SO_PIN_FINAL_TRY) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
313 |
printf("CKF_SO_PIN_FINAL_TRY "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
314 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
315 |
if ((tokenInfo.flags & CKF_SO_PIN_LOCKED) == CKF_SO_PIN_LOCKED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
316 |
printf("CKF_SO_PIN_LOCKED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
317 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
318 |
if ((tokenInfo.flags & CKF_SO_PIN_TO_BE_CHANGED) == CKF_SO_PIN_TO_BE_CHANGED) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
319 |
printf("CKF_SO_PIN_TO_BE_CHANGED "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
320 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
321 |
printf("\n"); |
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 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
324 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
325 |
chk_rv = C_OpenSession(slots[0], CKF_SERIAL_SESSION, NULL, NULL, &hSession); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
326 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
327 |
chk_rv = C_GetTokenInfo(slots[0], &tokenInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
328 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
329 |
return(1); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
330 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
331 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
332 |
if ((tokenInfo.flags & CKF_LOGIN_REQUIRED) == CKF_LOGIN_REQUIRED && (tokenInfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH) == 0) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
333 |
fgets_ret = NULL; |
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 |
while (fgets_ret == NULL) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
336 |
printf("** ENTER PIN: "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
337 |
fflush(stdout); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
338 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
339 |
fgets_ret = fgets((char *) user_pin, sizeof(user_pin), stdin); |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
342 |
if (strlen((char *) user_pin) >= 1) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
343 |
while (user_pin[strlen((char *) user_pin) - 1] < ' ') { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
344 |
user_pin[strlen((char *) user_pin) - 1] = '\0'; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
345 |
} |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
348 |
chk_rv = C_Login(hSession, CKU_USER, user_pin, strlen((char *) user_pin)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
349 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
350 |
chk_rv = C_Login(hSession, CKU_USER, NULL, 0); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
351 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
352 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
353 |
printf("Login to device succeed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
354 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
355 |
printf("Login to device failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
356 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
357 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
358 |
chk_rv = C_GetSessionInfo(hSession, &sessionInfo); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
359 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
360 |
printf("Session Info:\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
361 |
printf(" Slot ID: %lu\n", (unsigned long) sessionInfo.slotID); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
362 |
printf(" Dev Err: %lu\n", (unsigned long) sessionInfo.ulDeviceError); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
363 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
364 |
printf(" State : "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
365 |
if (sessionInfo.state == CKS_RO_PUBLIC_SESSION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
366 |
printf("CKS_RO_PUBLIC_SESSION\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
367 |
} else if (sessionInfo.state == CKS_RO_USER_FUNCTIONS) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
368 |
printf("CKS_RO_USER_FUNCTIONS\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
369 |
} else if (sessionInfo.state == CKS_RW_PUBLIC_SESSION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
370 |
printf("CKS_RW_PUBLIC_SESSION\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
371 |
} else if (sessionInfo.state == CKS_RW_USER_FUNCTIONS) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
372 |
printf("CKS_RW_USER_FUNCTIONS\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
373 |
} else if (sessionInfo.state == CKS_RO_PUBLIC_SESSION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
374 |
printf("CKS_RW_SO_FUNCTIONS\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
375 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
376 |
printf("Unknown (%lu)", (unsigned long) sessionInfo.state); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
377 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
378 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
379 |
printf(" Flags : "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
380 |
if ((sessionInfo.flags & CKF_RW_SESSION) == CKF_RW_SESSION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
381 |
printf("CKF_RW_SESSION "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
382 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
383 |
if ((sessionInfo.flags & CKF_SERIAL_SESSION) == CKF_SERIAL_SESSION) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
384 |
printf("CKF_SERIAL_SESSION "); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
385 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
386 |
printf("\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
387 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
388 |
printf("GetSessionInfo() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
389 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
390 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
391 |
chk_rv = C_FindObjectsInit(hSession, NULL, 0); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
392 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
393 |
while (1) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
394 |
chk_rv = C_FindObjects(hSession, &hObject, 1, &ulObjectCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
395 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
396 |
printf("FindObjects() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
397 |
break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
398 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
399 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
400 |
if (ulObjectCount == 0) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
401 |
break; |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
404 |
if (ulObjectCount != 1) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
405 |
printf("FindObjects() returned a weird number of objects. Asked for 1, got %lu.\n", ulObjectCount); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
406 |
break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
407 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
408 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
409 |
printf(" Object Info (object %lu):\n", (unsigned long) hObject); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
410 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
411 |
for (curr_attr_idx = 0; curr_attr_idx < (sizeof(template) / sizeof(template[0])); curr_attr_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
412 |
curr_attr = &template[curr_attr_idx]; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
413 |
if (curr_attr->pValue) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
414 |
free(curr_attr->pValue); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
415 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
416 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
417 |
curr_attr->pValue = NULL; |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
420 |
chk_rv = C_GetAttributeValue(hSession, hObject, &template[0], sizeof(template) / sizeof(template[0])); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
421 |
if (chk_rv == CKR_ATTRIBUTE_TYPE_INVALID || chk_rv == CKR_ATTRIBUTE_SENSITIVE || chk_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
|
422 |
chk_rv = CKR_OK; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
423 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
424 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
425 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
426 |
for (curr_attr_idx = 0; curr_attr_idx < (sizeof(template) / sizeof(template[0])); curr_attr_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
427 |
curr_attr = &template[curr_attr_idx]; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
428 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
429 |
if (((CK_LONG) curr_attr->ulValueLen) != ((CK_LONG) -1)) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
430 |
curr_attr->pValue = malloc(curr_attr->ulValueLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
431 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
432 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
433 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
434 |
chk_rv = C_GetAttributeValue(hSession, hObject, &template[0], sizeof(template) / sizeof(template[0])); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
435 |
if (chk_rv == CKR_OK || chk_rv == CKR_ATTRIBUTE_SENSITIVE || chk_rv == CKR_ATTRIBUTE_TYPE_INVALID || chk_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
|
436 |
for (curr_attr_idx = 0; curr_attr_idx < (sizeof(template) / sizeof(template[0])); curr_attr_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
437 |
curr_attr = &template[curr_attr_idx]; |
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 |
if (curr_attr->pValue) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
440 |
switch (curr_attr->type) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
441 |
case CKA_LABEL: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
442 |
printf(" [%lu] %20s: %.*s\n", hObject, pkcs11_attribute_to_name(curr_attr->type), (int) curr_attr->ulValueLen, (char *) curr_attr->pValue); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
443 |
break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
444 |
case CKA_CLASS: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
445 |
objectClass = *((CK_OBJECT_CLASS *) curr_attr->pValue); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
446 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
447 |
if (objectClass == CKO_PRIVATE_KEY) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
448 |
*privateKeyObjects = hObject; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
449 |
privateKeyObjects++; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
450 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
451 |
case CKA_TOKEN: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
452 |
case CKA_ID: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
453 |
case CKA_SERIAL_NUMBER: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
454 |
case CKA_PRIVATE: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
455 |
case CKA_CERTIFICATE_TYPE: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
456 |
case CKA_KEY_TYPE: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
457 |
case CKA_SIGN: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
458 |
case CKA_DECRYPT: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
459 |
case CKA_TRUSTED: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
460 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
461 |
pucValue = curr_attr->pValue; |
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 |
printf(" [%lu] %20s: ", hObject, pkcs11_attribute_to_name(curr_attr->type)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
464 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
465 |
for (byte_idx = 0; byte_idx < curr_attr->ulValueLen; byte_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
466 |
printf("%02x ", (unsigned int) pucValue[byte_idx]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
467 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
468 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
469 |
printf(";; %p/%lu\n", curr_attr->pValue, curr_attr->ulValueLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
470 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
471 |
break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
472 |
case CKA_SUBJECT: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
473 |
case CKA_ISSUER: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
474 |
pucValue = curr_attr->pValue; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
475 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
476 |
printf(" [%lu] %20s: ", hObject, pkcs11_attribute_to_name(curr_attr->type)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
477 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
478 |
for (byte_idx = 0; byte_idx < curr_attr->ulValueLen; byte_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
479 |
printf("\\x%02x", (unsigned int) pucValue[byte_idx]); |
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 |
printf(" ;; %p/%lu\n", curr_attr->pValue, curr_attr->ulValueLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
483 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
484 |
break; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
485 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
486 |
default: |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
487 |
printf(" [%lu] %20s: %p/%lu\n", hObject, pkcs11_attribute_to_name(curr_attr->type), curr_attr->pValue, curr_attr->ulValueLen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
488 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
489 |
break; |
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 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
492 |
printf(" [%lu] %20s: (not found)\n", hObject, pkcs11_attribute_to_name(curr_attr->type)); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
493 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
494 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
495 |
free(curr_attr->pValue); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
496 |
curr_attr->pValue = NULL; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
497 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
498 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
499 |
printf("GetAttributeValue()/2 failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
500 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
501 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
502 |
printf("GetAttributeValue(hObject=%lu)/1 failed (rv = %lu).\n", (unsigned long) hObject, (unsigned long) chk_rv); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
503 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
504 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
505 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
506 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
507 |
chk_rv = C_FindObjectsFinal(hSession); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
508 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
509 |
printf("FindObjectsFinal() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
510 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
511 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
512 |
printf("FindObjectsInit() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
513 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
514 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
515 |
printf("--- Operations ---\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
516 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
517 |
for (currPrivKey = privateKeyObjects_root; *currPrivKey != CK_INVALID_HANDLE; currPrivKey++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
518 |
chk_rv = C_SignInit(hSession, &mechanism, *currPrivKey); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
519 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
520 |
signature_len = sizeof(signature); |
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 |
chk_rv = C_Sign(hSession, (CK_BYTE_PTR) "Test", strlen("Test"), (CK_BYTE_PTR) &signature, &signature_len); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
523 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
524 |
printf("[%04lu/%02lx] Signature: ", (unsigned long) *currPrivKey, (unsigned long) mechanism.mechanism); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
525 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
526 |
for (byte_idx = 0; byte_idx < signature_len; byte_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
527 |
printf("%02x ", (unsigned int) signature[byte_idx]); |
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 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
530 |
printf("\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
531 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
532 |
printf("Sign() failed.\n"); |
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 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
535 |
printf("SignInit() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
536 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
537 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
538 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
539 |
for (currPrivKey = privateKeyObjects_root; *currPrivKey != CK_INVALID_HANDLE; currPrivKey++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
540 |
chk_rv = C_EncryptInit(hSession, &mechanism, *currPrivKey); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
541 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
542 |
encrypted_buflen = sizeof(encrypted_buf); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
543 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
544 |
chk_rv = C_Encrypt(hSession, (CK_BYTE_PTR) "Test", strlen("Test"), encrypted_buf, &encrypted_buflen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
545 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
546 |
printf("[%04lu/%02lx] Encrypted(Test): ", (unsigned long) *currPrivKey, (unsigned long) mechanism.mechanism); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
547 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
548 |
for (byte_idx = 0; byte_idx < encrypted_buflen; byte_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
549 |
printf("%02x ", (unsigned int) encrypted_buf[byte_idx]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
550 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
551 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
552 |
printf("\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
553 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
554 |
printf("Encrypt() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
555 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
556 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
557 |
printf("EncryptInit() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
558 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
559 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
560 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
561 |
for (currPrivKey = privateKeyObjects_root; *currPrivKey != CK_INVALID_HANDLE; currPrivKey++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
562 |
chk_rv = C_DecryptInit(hSession, &mechanism, *currPrivKey); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
563 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
564 |
decrypted_buflen = sizeof(decrypted_buf); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
565 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
566 |
chk_rv = C_Decrypt(hSession, (CK_BYTE_PTR) "\x4c\x36\x0f\x86\x2d\xb7\xb2\x46\x92\x11\x7e\x5f\xd1\xeb\x2c\xb0\xdb\x34\x60\xb8\x0c\xf8\x27\xb5\xfb\xce\xd1\xf4\x58\xa3\x20\x52\x9d\x97\x08\xd8\x2b\x5e\xb2\x37\x46\x72\x45\x7c\x66\x23\x53\xb5\xa5\x16\x61\x96\xbc\x5c\x8d\x85\x18\x24\xcf\x74\x7f\xc2\x23\x15\xd6\x42\x72\xa5\x2b\x29\x29\x1d\xa6\xea\x2b\xcb\x57\x59\xb3\x5f\xe2\xf8\x30\x12\x2f\x1b\xfa\xbd\xa9\x19\xef\x5c\xbb\x48\xdc\x28\x42\xdd\x90\xbe\x63\xeb\x59\x0c\xaf\x59\xcb\xe4\x6a\xf2\x56\x24\x41\xc2\x77\x7b\xc9\xf8\x02\x0f\x67\x3d\x2a\x98\x91\x14\xa2\x57", 128, decrypted_buf, &decrypted_buflen); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
567 |
if (chk_rv == CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
568 |
printf("[%04lu/%02lx] Decrypted(It works!): ", (unsigned long) *currPrivKey, (unsigned long) mechanism.mechanism); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
569 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
570 |
for (byte_idx = 0; byte_idx < decrypted_buflen; byte_idx++) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
571 |
printf("%02x ", (unsigned int) decrypted_buf[byte_idx]); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
572 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
573 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
574 |
printf("\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
575 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
576 |
printf("Decrypt() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
577 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
578 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
579 |
printf("DecryptInit() failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
580 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
581 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
582 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
583 |
chk_rv = C_CloseSession(hSession); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
584 |
if (chk_rv != CKR_OK) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
585 |
printf("CloseSession failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
586 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
587 |
} else { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
588 |
printf("OpenSession failed.\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
589 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
590 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
591 |
C_Finalize(NULL); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
592 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
593 |
if (slots) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
594 |
free(slots); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
595 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
596 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
597 |
if (privateKeyObjects_root) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
598 |
free(privateKeyObjects_root); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
599 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
600 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
601 |
return(0); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
602 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
603 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
604 |
int main(void) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
605 |
int retval = 0, ck_retval; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
606 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
607 |
printf("Testing libcoolkey...\n"); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
608 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
609 |
ck_retval = main_pkcs11(); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
610 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
611 |
if (ck_retval != 0) { |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
612 |
retval = ck_retval; |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
613 |
} |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
614 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
615 |
printf("Testing libcoolkey... DONE. Status = %i\n", ck_retval); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
616 |
|
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
617 |
return(retval); |
8e624b116c1d
PSARC/2016/219 Coolkey PKCS#11 provider for smartcard devices
Stephen Gaul Jr <steve.gaul@oracle.com>
parents:
diff
changeset
|
618 |
} |