KM_GenerateKeyPair
Generate a key pair.
NOTE This function uses the following callback:
Synopsis
#include <kmlib.h>
CK_RV KM_GenerateKeyPair (
CK_SESSION_HANDLE hSession,
CK_KEY_TYPE keyType,
CK_SIZE keySizeInBits,
CK_ATTRIBUTE * pPublicKeyTpl,
CK_COUNT publicKeyTplSize,
CK_ATTRIBUTE * pPrivateKeyTpl,
CK_COUNT privateKeyTplSize,
CK_OBJECT_HANDLE * phPublicKey,
CK_OBJECT_HANDLE * phPrivateKey
);
Parameter | Description |
---|---|
hSession | Handle to an open session. |
keyType |
The type of key pair to generate. Options are: >CKK_RSA >CKK_DSA >CKK_DH |
keySizeInBits |
Size, in bits, of the key pair to generate. The size ranges for the supported key types are: >CKK_RSA - 512 to 4096 bits in 256 bit increments >CKK_DSA - 512 to 1024 bits in 64 bit increments >CKK_DH - 512 to 2048 bits in 256 bit increments |
pPublicKeyTpl | The attribute template the public key will have. |
publicKeyTplSize | The number of attributes in pPublicKeyTpl. |
pPrivateKeyTpl | The attribute template the public key will have. |
privateKeyTplSize |
The number of attributes in pPrivateKeyTpl. |
phPublicKey | Location to store the handle of the new public key. |
phPrivateKey |
Location to store the handle of the new private 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_OK
CKR_OPERATION_ACTIVE
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