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