|
1 Upstream fixes already included in the latest community updates to coolkey v1.1.0 |
|
2 |
|
3 Adds header definitions for card management and applet issues. |
|
4 |
|
5 --- ORIGINAL/./src/libckyapplet/cky_factory.h 2016-06-24 16:08:05.440339982 -0400 |
|
6 +++ ././src/libckyapplet/cky_factory.h 2016-06-24 12:38:38.531037129 -0400 |
|
7 @@ -25,10 +25,11 @@ |
|
8 /* |
|
9 * Various Class bytes |
|
10 */ |
|
11 -#define CKY_CLASS_ISO7816 0x00 |
|
12 +#define CKY_CLASS_ISO7816 0x00 |
|
13 +#define CKY_CLASS_ISO7816_CHAIN 0x10 |
|
14 #define CKY_CLASS_GLOBAL_PLATFORM 0x80 |
|
15 -#define CKY_CLASS_SECURE 0x84 |
|
16 -#define CKY_CLASS_COOLKEY 0xb0 |
|
17 +#define CKY_CLASS_SECURE 0x84 |
|
18 +#define CKY_CLASS_COOLKEY 0xb0 |
|
19 |
|
20 /* |
|
21 * Applet Instruction Bytes |
|
22 @@ -66,6 +67,8 @@ |
|
23 /* nonce validated & Secure Channel */ |
|
24 #define CKY_INS_IMPORT_KEY 0x32 |
|
25 #define CKY_INS_COMPUTE_CRYPT 0x36 |
|
26 +#define CKY_INS_COMPUTE_ECC_SIGNATURE 0x37 |
|
27 +#define CKY_INS_COMPUTE_ECC_KEY_AGREEMENT 0x38 |
|
28 #define CKY_INS_CREATE_PIN 0x40 |
|
29 #define CKY_INS_CHANGE_PIN 0x44 |
|
30 #define CKY_INS_CREATE_OBJ 0x5A |
|
31 @@ -86,7 +89,17 @@ |
|
32 #define CAC_INS_SIGN_DECRYPT 0x42 |
|
33 #define CAC_INS_VERIFY_PIN 0x20 |
|
34 #define CAC_INS_GET_PROPERTIES 0x56 |
|
35 +#define CAC_INS_READ_FILE 0x52 |
|
36 + |
|
37 #define CAC_SIZE_GET_PROPERTIES 48 |
|
38 +#define CAC_P1_STEP 0x80 |
|
39 +#define CAC_P1_FINAL 0x00 |
|
40 +#define CAC_LOGIN_GLOBAL 0x00 |
|
41 + |
|
42 +/* PIV */ |
|
43 +#define PIV_LOGIN_LOCAL 0x80 |
|
44 +#define PIV_LOGIN_GLOBAL CAC_LOGIN_GLOBAL |
|
45 +#define PIV_INS_GEN_AUTHENTICATE 0x87 |
|
46 |
|
47 /* |
|
48 * Fixed return sized from various commands |
|
49 @@ -119,6 +132,7 @@ |
|
50 #define CKY_DES_ECB_NOPAD 0x21 |
|
51 |
|
52 /* operations (Cipher Direction) */ |
|
53 +#define CKY_DIR_NONE 0x00 |
|
54 #define CKY_DIR_SIGN 0x01 |
|
55 #define CKY_DIR_VERIFY 0x02 |
|
56 #define CKY_DIR_ENCRYPT 0x03 |
|
57 @@ -169,7 +183,8 @@ |
|
58 CKY_BEGIN_PROTOS |
|
59 |
|
60 /* function based factorys */ |
|
61 -CKYStatus CKYAPDUFactory_SelectFile(CKYAPDU *apdu, const CKYBuffer *AID); |
|
62 +CKYStatus CKYAPDUFactory_SelectFile(CKYAPDU *apdu, CKYByte p1, CKYByte p2, |
|
63 + const CKYBuffer *AID); |
|
64 CKYStatus CKYAPDUFactory_SelectCardManager(CKYAPDU *apdu); |
|
65 CKYStatus CKYAPDUFactory_GetCPLCData(CKYAPDU *apdu); |
|
66 CKYStatus CKYAPDUFactory_ListKeys(CKYAPDU *apdu, CKYByte sequence); |
|
67 @@ -182,6 +197,12 @@ |
|
68 CKYStatus CKYAPDUFactory_ComputeCryptOneStep(CKYAPDU *apdu, CKYByte keyNumber, |
|
69 CKYByte mode, CKYByte direction, CKYByte location, |
|
70 const CKYBuffer *data, const CKYBuffer *sig); |
|
71 +CKYStatus CKYAPDUFactory_ComputeECCSignatureOneStep(CKYAPDU *apdu, CKYByte keyNumber, |
|
72 + CKYByte location, |
|
73 + const CKYBuffer *data, const CKYBuffer *sig); |
|
74 +CKYStatus CKYAPDUFactory_ComputeECCKeyAgreementOneStep(CKYAPDU *apdu, CKYByte keyNumber, |
|
75 + CKYByte location, |
|
76 + const CKYBuffer *publicData, const CKYBuffer *secretKey); |
|
77 CKYStatus CKYAPDUFactory_CreatePIN(CKYAPDU *apdu, CKYByte pinNumber, |
|
78 CKYByte maxAttempts, const char *pinValue); |
|
79 CKYStatus CKYAPDUFactory_VerifyPIN(CKYAPDU *apdu, CKYByte pinNumber, |
|
80 @@ -190,7 +211,8 @@ |
|
81 const char *oldPin, const char *newPin); |
|
82 CKYStatus CKYAPDUFactory_ListPINs(CKYAPDU *apdu); |
|
83 CKYStatus CKYAPDUFactory_Logout(CKYAPDU *apdu, CKYByte pinNumber); |
|
84 - |
|
85 +CKYStatus CKYAPDUFactory_WriteObject(CKYAPDU *apdu, unsigned long objectID, |
|
86 + CKYOffset offset,CKYSize size,CKYBuffer *data); |
|
87 /* Future add WriteObject */ |
|
88 CKYStatus CKYAPDUFactory_CreateObject(CKYAPDU *apdu, unsigned long objectID, |
|
89 CKYSize size, unsigned short readACL, unsigned short writeACL, |
|
90 @@ -210,10 +232,18 @@ |
|
91 CKYStatus CKYAPDUFactory_GetIssuerInfo(CKYAPDU *apdu); |
|
92 CKYStatus CKYAPDUFactory_GetBuiltinACL(CKYAPDU *apdu); |
|
93 |
|
94 -CKYStatus CACAPDUFactory_SignDecrypt(CKYAPDU *apdu, const CKYBuffer *data); |
|
95 -CKYStatus CACAPDUFactory_VerifyPIN(CKYAPDU *apdu, const char *pin); |
|
96 +CKYStatus CACAPDUFactory_SignDecrypt(CKYAPDU *apdu, CKYByte type, |
|
97 + const CKYBuffer *data); |
|
98 +CKYStatus CACAPDUFactory_VerifyPIN(CKYAPDU *apdu, CKYByte keyRef, |
|
99 + const char *pin); |
|
100 CKYStatus CACAPDUFactory_GetCertificate(CKYAPDU *apdu, CKYSize size); |
|
101 +CKYStatus CACAPDUFactory_ReadFile(CKYAPDU *apdu, unsigned short offset, |
|
102 + CKYByte type, CKYByte count); |
|
103 CKYStatus CACAPDUFactory_GetProperties(CKYAPDU *apdu); |
|
104 +CKYStatus PIVAPDUFactory_GetData(CKYAPDU *apdu, const CKYBuffer *object, |
|
105 + CKYByte count); |
|
106 +CKYStatus PIVAPDUFactory_SignDecrypt(CKYAPDU *apdu, CKYByte chain, CKYByte alg, |
|
107 + CKYByte key, int len, const CKYBuffer *data); |
|
108 |
|
109 CKY_END_PROTOS |
|
110 |