Skip to content

Commit

Permalink
[review] Secure key services: gets PKCS#11 API (2.40-e01) from Cryptolib
Browse files Browse the repository at this point in the history
Fixes in pkcs11.h
Remove ugly CK_xBYTE.

Signed-off-by: Etienne Carriere <[email protected]>
  • Loading branch information
etienne-lms committed Jun 6, 2018
1 parent 233de3b commit 76902a3
Showing 1 changed file with 22 additions and 20 deletions.
42 changes: 22 additions & 20 deletions libsks/include/pkcs11.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ extern "C" {
#define BIT(x) (1ul << (x))
#endif

#define CK_16BYTE 16
#define CK_32BYTE 32
#define CK_64BYTE 64

/*
* PKCS#11 Cryptoki API v2.40-errata01, See specification from:
* http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/errata01/os/pkcs11-base-v2.40-errata01-os-complete.html
Expand Down Expand Up @@ -91,8 +87,7 @@ struct CK_ATTRIBUTE {
/*
* Values for CK_ATTRIBUTE_TYPE
*
* This does not cover the whole IDs defined by the PKCS#11. To be updated
* when needed.
* This does not cover the full PKCS#11 IDs.
*/
#define CKF_ARRAY_ATTRIBUTE BIT(30)
#define CKA_VENDOR_DEFINED BIT(31)
Expand Down Expand Up @@ -220,7 +215,11 @@ typedef CK_OBJECT_CLASS * CK_OBJECT_CLASS_PTR;
typedef CK_ULONG CK_KEY_TYPE;
typedef CK_KEY_TYPE * CK_KEY_TYPE_PTR;

/* Values for type CK_KEY_TYPE */
/*
* Values for type CK_KEY_TYPE
*
* This does not cover the full PKCS#11 IDs.
*/
#define CKK_VENDOR_DEFINED BIT(31)
#define CKK_RSA 0x000
#define CKK_DSA 0x001
Expand All @@ -231,6 +230,7 @@ typedef CK_KEY_TYPE * CK_KEY_TYPE_PTR;
#define CKK_DES3 0x015
#define CKK_AES 0x01f
#define CKK_HOTP 0x023
#define CKK_MD5_HMAC 0x027
#define CKK_SHA_1_HMAC 0x028
#define CKK_SHA256_HMAC 0x02b
#define CKK_SHA384_HMAC 0x02c
Expand All @@ -251,8 +251,7 @@ typedef CK_MECHANISM_TYPE * CK_MECHANISM_TYPE_PTR;
/*
* Values for type CK_MECHANISM_TYPE
*
* This does not cover the whole IDs defined by the PKCS#11. To be updated
* when needed.
* This does not cover the full PKCS#11 IDs.
*/
#define CKM_VENDOR_DEFINED BIT(31)
#define CKM_RSA_PKCS_KEY_PAIR_GEN 0x00000
Expand Down Expand Up @@ -283,6 +282,9 @@ typedef CK_MECHANISM_TYPE * CK_MECHANISM_TYPE_PTR;
#define CKM_DES3_CBC_PAD 0x00136
#define CKM_DES3_CMAC_GENERAL 0x00137
#define CKM_DES3_CMAC 0x00138
#define CKM_MD5 0x00210
#define CKM_MD5_HMAC 0x00211
#define CKM_MD5_HMAC_GENERAL 0x00212
#define CKM_SHA_1 0x00220
#define CKM_SHA_1_HMAC 0x00221
#define CKM_SHA_1_HMAC_GENERAL 0x00222
Expand Down Expand Up @@ -399,7 +401,7 @@ typedef struct CK_AES_CBC_ENCRYPT_DATA_PARAMS *
CK_AES_CBC_ENCRYPT_DATA_PARAMS_PTR;

struct CK_AES_CBC_ENCRYPT_DATA_PARAMS {
CK_BYTE iv[CK_16BYTE];
CK_BYTE iv[16];
CK_BYTE_PTR pData;
CK_ULONG length;
};
Expand All @@ -410,7 +412,7 @@ typedef struct CK_AES_CTR_PARAMS * CK_AES_CTR_PARAMS_PTR;

struct CK_AES_CTR_PARAMS {
CK_ULONG ulCounterBits;
CK_BYTE cb[CK_16BYTE];
CK_BYTE cb[16];
};

/* AES GCM parameters */
Expand Down Expand Up @@ -551,9 +553,9 @@ typedef struct CK_INFO * CK_INFO_PTR;

struct CK_INFO {
CK_VERSION cryptokiVersion;
CK_UTF8CHAR manufacturerID[CK_32BYTE];
CK_UTF8CHAR manufacturerID[32];
CK_FLAGS flags;
CK_UTF8CHAR libraryDescription[CK_32BYTE];
CK_UTF8CHAR libraryDescription[32];
CK_VERSION libraryVersion;
};

Expand All @@ -562,8 +564,8 @@ typedef struct CK_SLOT_INFO CK_SLOT_INFO;
typedef struct CK_SLOT_INFO * CK_SLOT_INFO_PTR;

struct CK_SLOT_INFO {
CK_UTF8CHAR slotDescription[CK_64BYTE];
CK_UTF8CHAR manufacturerID[CK_32BYTE];
CK_UTF8CHAR slotDescription[64];
CK_UTF8CHAR manufacturerID[32];
CK_FLAGS flags;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
Expand All @@ -579,10 +581,10 @@ typedef struct CK_TOKEN_INFO CK_TOKEN_INFO;
typedef struct CK_TOKEN_INFO * CK_TOKEN_INFO_PTR;

struct CK_TOKEN_INFO {
CK_UTF8CHAR label[CK_32BYTE];
CK_UTF8CHAR manufacturerID[CK_32BYTE];
CK_UTF8CHAR model[CK_16BYTE];
CK_CHAR serialNumber[CK_16BYTE];
CK_UTF8CHAR label[32];
CK_UTF8CHAR manufacturerID[32];
CK_UTF8CHAR model[16];
CK_CHAR serialNumber[16];
CK_FLAGS flags;
CK_ULONG ulMaxSessionCount;
CK_ULONG ulSessionCount;
Expand All @@ -596,7 +598,7 @@ struct CK_TOKEN_INFO {
CK_ULONG ulFreePrivateMemory;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
CK_CHAR utcTime[CK_16BYTE];
CK_CHAR utcTime[16];
};

/* Values for field flags of struct ck_token_info */
Expand Down

0 comments on commit 76902a3

Please sign in to comment.