Creates an object.
CK_ATTRIBUTE_PTR pTemplate,
CK_ULONG ulCount,
CK_OBJECT_HANDLE_PTR phObject )
{
CK_OBJECT_CLASS xClass = 0;
if( ( NULL == pTemplate ) ||
( NULL == phObject ) )
{
xResult = CKR_ARGUMENTS_BAD;
}
if( xResult == CKR_OK )
{
}
if( xResult == CKR_OK )
{
switch( xClass )
{
case CKO_CERTIFICATE:
break;
case CKO_PRIVATE_KEY:
break;
case CKO_PUBLIC_KEY:
break;
default:
xResult = CKR_ATTRIBUTE_VALUE_INVALID;
break;
}
}
return xResult;
}
- Parameters
-
[in] | hSession | Handle of a valid PKCS #11 session. |
[in] | pTemplate | List of attributes of the object to be created. |
[in] | ulCount | Number of attributes in pTemplate. |
[out] | phObject | Pointer to the location where the created object's handle will be placed. |
Object Type | Template Attributes |
Certificate | CKA_CLASS |
CKA_VALUE |
CKA_TOKEN |
CKA_LABEL |
CKA_CERTIFICATE_TYPE |
CKA_VALUE |
EC Private Key | CKA_CLASS |
CKA_KEY_TYPE |
CKA_TOKEN |
CKA_LABEL |
CKA_SIGN |
CKA_EC_PARAMS |
CKA_VALUE |
EC Public Key | CKA_CLASS |
CKA_KEY_TYPE |
CKA_TOKEN |
CKA_VERIFY |
CKA_LABEL |
CKA_EC_PARAMS |
CKA_EC_POINT |
RSA Private Key | CKA_CLASS |
CKA_KEY_TYPE |
CKA_TOKEN |
CKA_LABEL |
CKA_SIGN |
CKA_MODULUS |
CKA_PUBLIC_EXPONENT |
CKA_PRIME_1 |
CKA_PRIME_2 |
CKA_PRIVATE_EXPONENT |
CKA_EXPONENT_1 |
CKA_EXPONENT_2 |
CKA_COEFFICIENT |
- Returns
- CKR_OK if successful. Else, see PKCS #11 specification for more information.
#define CK_DECLARE_FUNCTION(returnType, name)
Macro for defining a PKCS #11 functions.
Definition: iot_pkcs11.h:66
static CK_RV prvCreatePrivateKey(CK_ATTRIBUTE *pxTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR pxObject)
Helper function for importing private keys using template C_CreateObject.
Definition: iot_pkcs11_mbedtls.c:2314
static CK_RV prvGetObjectClass(const CK_ATTRIBUTE *pxTemplate, CK_ULONG ulCount, CK_OBJECT_CLASS *pxClass)
Searches a template for the CKA_CLASS attribute.
Definition: iot_pkcs11_mbedtls.c:519
static P11Session_t * prvSessionPointerFromHandle(CK_SESSION_HANDLE xSession)
Maps an opaque caller session handle into its internal state structure.
Definition: iot_pkcs11_mbedtls.c:287
static CK_RV prvCheckValidSessionAndModule(const P11Session_t *pxSession)
Helper to check if the current session is initialized and valid.
Definition: iot_pkcs11_mbedtls.c:248
static CK_RV prvCreateCertificate(CK_ATTRIBUTE *pxTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR pxObject)
Helper function for parsing the templates of device certificates for C_CreateObject.
Definition: iot_pkcs11_mbedtls.c:1935
CK_RV C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)
Creates an object.
Definition: iot_pkcs11_mbedtls.c:2448
static CK_RV prvCreatePublicKey(CK_ATTRIBUTE *pxTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR pxObject)
Helper function for importing public keys using C_CreateObject.
Definition: iot_pkcs11_mbedtls.c:2359
Session structure.
Definition: iot_pkcs11_mbedtls.c:217