KM_GenerateSecretKey

Generate a secret key.

NOTE   This function uses the following callbacks:

>UICB_PromptString_t

>UICB_ShowMsg_t

Synopsis

#include <kmlib.h>

CK_RV KM_GenerateSecretKey ( 
   CK_SESSION_HANDLE   hSession, 
   CK_KEY_TYPE         keyType,
   CK_SIZE             keySizeInBits,
   CK_ATTRIBUTE *      pTpl,
   CK_COUNT            tplSize,
   CK_COUNT            numComps, 
   CK_OBJECT_HANDLE *  phKey
);
Parameter Description
hSession Handle to an open session.
keyType

The type of PKCS #11 key to generate. Examples are:

>CKK_AES

>CKK_CAST128

>CKK_DES

>CKK_DES2

>CKK_DES3

>CKK_IDEA

>CKK_RC2

>CKK_RC4

>CKK_GENERIC_SECRET

keySizeInBits

Size, in bits, of the key to generate. This is not needed for fixed length key types. The size ranges for the supported PKCS #11 key types are:

>CKK_AES - 128, 192 or 256 bits

>CKK_CAST128 - 8, 64 or 128 bits

>CKK_DES - 64 bits

>CKK_DES2 - 128 bits

>CKK_DES3 - 192 bits

>CKK_IDEA - 128 bits

>CKK_RC2 - 8 to 1024 bits in 8 bit increments

>CKK_RC4 - 8 to 2048 bits in 8 bit increments

>CKK_GENERIC_SECRET - 8 to "Effectively Infinite" bits

pTpl The attribute template of the new key.
tplSize Number of attributes in pTpl.
numComps The number of components to generate if XORable key components are required. This parameter should be set to 0 or 1 if component generation is not required.
phKey

Location to store the handle of the generated key.

Returns

CKR_ARGUMENTS_BAD
CKR_ATTRIBUTE_READ_ONLY
CKR_ATTRIBUTE_TYPE_INVALID
CKR_ATTRIBUTE_VALUE_INVALID
CKR_CRYPTOKI_NOT_INITIALIZED
CKR_DEVICE_ERROR
CKR_DEVICE_MEMORY
CKR_DEVICE_REMOVED
CKR_FUNCTION_CANCELED
CKR_FUNCTION_FAILED
CKR_GENERAL_ERROR
CKR_HOST_MEMORY
CKR_MECHANISM_INVALID
CKR_MECHANISM_PARAM_INVALID
CKR_OBJECT_HANDLE_INVALID
CKR_OK
CKR_OPERATION_ACTIVE
CKR_RANDOM_NO_RNG
CKR_SESSION_CLOSED
CKR_SESSION_HANDLE_INVALID
CKR_SESSION_READ_ONLY
CKR_TEMPLATE_INCOMPLETE
CKR_TEMPLATE_INCONSISTENT
CKR_TOKEN_WRITE_PROTECTED
CKR_USER_NOT_LOGGED_IN