Cryptographic Token Interface Standard

PKCS#11


CK_KEA_DERIVE Reference

CK_KEA_DERIVE_PARAMS

CK_KEA_DERIVE_PARAMS is a structure that provides the parameters to the CKM_KEA_DERIVE mechanism. More...


Data Fields

CK_BBOOL isSender
 Option for generating the key (called a TEK). More...

CK_ULONG ulRandomLen
 size of random Ra and Rb, in bytes. More...

CK_BYTE_PTR pRandomA
 pointer to Ra data. More...

CK_BYTE_PTR pRandomB
 pointer to Rb data. More...

CK_ULONG ulPublicDataLen
 other party's KEA public key size. More...

CK_BYTE_PTR pPublicData
 pointer to other party's KEA public key value. More...


Detailed Description

CK_KEA_DERIVE_PARAMS

CK_KEA_DERIVE_PARAMS is a structure that provides the parameters to the CKM_KEA_DERIVE mechanism.
isSender Option for generating the key (called a TEK). The value is TRUE if the sender (originator) generates the TEK, FALSE if the recipient is regenerating the TEK.
ulRandomLen size of random Ra and Rb, in bytes
pRandomA pointer to Ra data
pRandomB pointer to Rb data
ulPublicDataLen other party's KEA public key size
pPublicData pointer to other party's KEA public key value

CK_KEA_DERIVE_PARAMS_PTR

CK_KEA_DERIVE_PARAMS_PTR points to a CK_KEA_DERIVE_PARAMS structure. It is implementation-dependent.

KEA mechanisms

KEA key pair generation

The KEA key pair generation mechanism, denoted CKM_KEA_KEY_PAIR_GEN, is a key pair generation mechanism

It does not have a parameter.

The mechanism generates KEA public/private key pairs with a particular prime, subprime and base, as specified in the CKA_PRIME, CKA_SUBPRIME, and CKA_BASE attributes of the template for the public key. Note that this version of Cryptoki does not include a mechanism for generating these KEA parameters.

The mechanism contributes the CKA_CLASS, CKA_KEY_TYPE and CKA_VALUE attributes to the new public key and the CKA_CLASS, CKA_KEY_TYPE, CKA_PRIME, CKA_SUBPRIME, CKA_BASE, and CKA_VALUE attributes to the new private key. Other attributes supported by the KEA public and private key types (specifically, the flags indicating which functions the keys support) may also be specified in the templates for the keys, or else are assigned default initial values.

For this mechanism, the ulMinKeySize and ulMaxKeySize fields of the CK_MECHANISM_INFO structure specify the supported range of KEA prime sizes, in bits.

KEA key derivation

The KEA key derivation mechanism, denoted CKM_KEA_DERIVE, is a mechanism for key derivation based on KEA, the Key Exchange Algorithm.

It has a parameter, a CK_KEA_DERIVE_PARAMS structure.

This mechanism derives a secret value, and truncates the result according to the CKA_KEY_TYPE attribute of the template and, if it has one and the key type supports it, the CKA_VALUE_LEN attribute of the template. (The truncation removes bytes from the leading end of the secret value.) The mechanism contributes the result as the CKA_VALUE attribute of the new key; other attributes required by the key type must be specified in the template.

The derived key inherits the values of the CKA_SENSITIVE, CKA_ALWAYS_SENSITIVE, CKA_EXTRACTABLE, and CKA_NEVER_EXTRACTABLE attributes from the base key. The values of the CKA_SENSITIVE and CKA_EXTRACTABLE attributes may be overridden in the template for the derived key, however. Of course, if the base key has the CKA_ALWAYS_SENSITIVE attribute set to TRUE, then the template may not specify that the derived key should have the CKA_SENSITIVE attribute set to FALSE; similarly, if the base key has the CKA_NEVER_EXTRACTABLE attribute set to TRUE, then the template may not specify that the derived key should have the CKA_EXTRACTABLE attribute set to TRUE.

For this mechanism, the ulMinKeySize and ulMaxKeySize fields of the CK_MECHANISM_INFO structure specify the supported range of KEA prime sizes, in bits.

MAYFLY mechanism parameters

CK_MAYFLY_DERIVE_PARAMS

CK_MAYFLY_DERIVE_PARAMS is a structure that provides the parameters to the CKM_MAYFLY_DERIVE mechanism. It is defined as follows:


Field Documentation

CK_BBOOL isSender
 

Option for generating the key (called a TEK). The value is TRUE if the sender (originator) generates the TEK, FALSE if the recipient is regenerating the TEK.

CK_ULONG ulRandomLen
 

size of random Ra and Rb, in bytes.

CK_BYTE_PTR pRandomA
 

pointer to Ra data.

CK_BYTE_PTR pRandomB
 

pointer to Rb data.

CK_ULONG ulPublicDataLen
 

other party's KEA public key size.

CK_BYTE_PTR pPublicData
 

pointer to other party's KEA public key value.


RSA Security Inc. Public-Key Cryptography Standards - PKCS#11 - v200