corePKCS11
V3.0.0
PKCS #11 Cryptoki Library
|
|
Go to the documentation of this file.
26 #ifndef _CORE_PKCS11_H_
27 #define _CORE_PKCS11_H_
32 #pragma pack(push, cryptoki, 1)
65 #define CK_DEFINE_FUNCTION( returnType, name ) returnType name
72 #define CK_DECLARE_FUNCTION( returnType, name ) returnType name
79 #define CK_DECLARE_FUNCTION_POINTER( returnType, name ) returnType( CK_PTR name )
86 #define CK_CALLBACK_FUNCTION( returnType, name ) returnType( CK_PTR name )
92 #define pkcs11SHA256_DIGEST_LENGTH 32UL
100 #define pkcs11ECDSA_P256_SIGNATURE_LENGTH 64UL
106 #define pkcs11ECDSA_P256_KEY_BITS 256UL
112 #define pkcs11RSA_PUBLIC_EXPONENT { 0x01, 0x00, 0x01 }
119 #define pkcs11RSA_2048_MODULUS_BITS 2048UL
125 #define pkcs11RSA_2048_SIGNATURE_LENGTH ( pkcs11RSA_2048_MODULUS_BITS / 8UL )
134 #define pkcs11RSA_SIGNATURE_INPUT_LENGTH 51UL
141 #define pkcs11ELLIPTIC_CURVE_NISTP256 "1.2.840.10045.3.1.7"
147 #define pkcs11MAX_LABEL_LENGTH 32UL
153 #define pkcs11DER_ENCODED_OID_P256 { 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07 }
161 #ifndef pkcs11configIMPORT_PRIVATE_KEYS_SUPPORTED
162 #define pkcs11configIMPORT_PRIVATE_KEYS_SUPPORTED 1
185 #define pkcs11STUFF_APPENDED_TO_RSA_SIG { 0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20 }
190 #if defined( __PASTE ) && defined( __CC_ARM )
206 typedef struct PKCS11_CertificateTemplate
243 CK_ULONG * pxSlotCount );
289 CK_ULONG ulLabelNameLen,
290 CK_OBJECT_CLASS xClass,
291 CK_OBJECT_HANDLE_PTR pxHandle );
315 uint8_t * puc51ByteHashOidBuffer );
319 #pragma pack(pop, cryptoki)
CK_ATTRIBUTE xObjectClass
CKA_CLASS, set to CKO_CERTIFICATE.
Definition: core_pkcs11.h:208
CK_RV xInitializePKCS11(void)
Initializes a PKCS #11 session.
Definition: core_pkcs11.c:151
Certificate Template The object class must be the first attribute in the array.
Definition: core_pkcs11.h:207
CK_RV xGetSlotList(CK_SLOT_ID **ppxSlotId, CK_ULONG *pxSlotCount)
Get a list of available PKCS #11 slots.
Definition: core_pkcs11.c:72
CK_RV vAppendSHA256AlgorithmIdentifierSequence(const uint8_t *puc32ByteHashedMessage, uint8_t *puc51ByteHashOidBuffer)
Appends digest algorithm sequence to SHA-256 hash for RSA signatures.
Definition: core_pkcs11.c:375
CK_ATTRIBUTE xTokenObject
CKA_TOKEN.
Definition: core_pkcs11.h:213
CK_RV xInitializePkcs11Token(void)
Initializes a PKCS #11 module and token.
Definition: core_pkcs11.c:177
CK_ATTRIBUTE xLabel
CKA_LABEL.
Definition: core_pkcs11.h:212
CK_ATTRIBUTE xCertificateType
CKA_CERTIFICATE_TYPE, set to CKC_X_509.
Definition: core_pkcs11.h:210
CK_ATTRIBUTE xValue
CKA_VALUE, the DER byte array of the certificate contents.
Definition: core_pkcs11.h:211
CK_ATTRIBUTE xSubject
CKA_SUBJECT, this parameter is required by the PKCS #11 standard.
Definition: core_pkcs11.h:209
CK_RV xInitializePkcs11Session(CK_SESSION_HANDLE *pxSession)
Initializes the PKCS #11 module and opens a session.
Definition: core_pkcs11.c:254
CK_RV xFindObjectWithLabelAndClass(CK_SESSION_HANDLE xSession, char *pcLabelName, CK_ULONG ulLabelNameLen, CK_OBJECT_CLASS xClass, CK_OBJECT_HANDLE_PTR pxHandle)
Searches for an object with a matching label and class provided.
Definition: core_pkcs11.c:310