components/coolkey/patches/17-cky_factory.h.patch
changeset 6401 8e624b116c1d
equal deleted inserted replaced
6400:19257b6c5395 6401:8e624b116c1d
       
     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