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