GenerateRsaKeyPair

Synopsis

CK_RV GenerateRsaKeyPair(
CK_SESSION_HANDLE hSession,
char * txt,
int ftok,
int priv,
CK_SIZE modulusBits,
int expType,
CK_OBJECT_HANDLE * phPublicKey,
CK_OBJECT_HANDLE * phPrivateKey);

Description

Generate an RSA key pair.

Parameters

hSession

Open session handle

txt

Optional label

ftok

1 for a Token object, 0 for Session object

priv

1 for private object, 0 for public object

modulusBits

Size of modulus to generate

expType

0 for random exponent, 1 for Fermat 4 exponent (\x00010001), 2 for smallest valid exponent (3)

phPublicKey

Reference to object handle to hold created public key

phPrivateKey

Reference to object handle to hold created private key

On Successful Return

*phPublicKey — handle to newly created public key

*phPrivateKey — handle to newly created private key

In addition to the Public key attributes set via the parameters, the following are set:

CKA_CLASS CKO_PUBLIC_KEY 
CKA_KEY_TYPE CKK_RSA
CKA_SUBJECT_STR “SUBJECT”
CKA_ENCRYPT TRUE
CKA_VERIFY TRUE
CKA_WRAP FALSE
CKA_EXTRACTABLE TRUE

In addition to the Private key attributes set via the parameters, the following are set:

CKA_CLASS 
CKO_PRIVATE_KEY 
CKA_KEY_TYPE 
CKK_RSA 
CKA_SUBJECT_STR “SUBJECT” 
CKA_ID 123 
CKA_SENSITIVE TRUE 
CKA_DECRYPT TRUE 
CKA_SIGN TRUE 
CKA_UNWRAP FALSE 
CKA_EXTRACTABLE TRUE