Cryptographic Token Interface Standard |
PKCS#11 |
typedef struct CK_SSL3_RANDOM_DATA { CK_BYTE_PTR pClientRandom; CK_ULONG ulClientRandomLen; CK_BYTE_PTR pServerRandom; CK_ULONG ulServerRandomLen; } CK_SSL3_RANDOM_DATA;
pClientRandom | pointer to the client's random data |
ulClientRandomLen | length in bytes of the client's random data |
pServerRandom | pointer to the server's random data |
ulServerRandomLen | length in bytes of the server's random data CK_SSL3_MASTER_KEY_DERIVE_PARAMS; CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR |
CK_SSL3_MASTER_KEY_DERIVE_PARAMS is a structure that provides the parameters to the CKM_SSL3_MASTER_KEY_DERIVE mechanism. It is defined as follows:
typedef struct CK_SSL3_MASTER_KEY_DERIVE_PARAMS { CK_SSL3_RANDOM_DATA RandomInfo; CK_VERSION_PTR pVersion; } CK_SSL3_MASTER_KEY_DERIVE_PARAMS;
RandomInfo | client's and server's random data information. |
pVersion | pointer to a '''CK_VERSION '''structure which receives the SSL protocol version information |
CK_SSL3_MASTER_KEY_DERIVE_PARAMS_PTR is a pointer to a CK_SSL3_MASTER_KEY_DERIVE_PARAMS.
typedef struct CK_SSL3_KEY_MAT_OUT { CK_OBJECT_HANDLE hClientMacSecret; CK_OBJECT_HANDLE hServerMacSecret; CK_OBJECT_HANDLE hClientKey; CK_OBJECT_HANDLE hServerKey; CK_BYTE_PTR pIVClient; CK_BYTE_PTR pIVServer; } CK_SSL3_KEY_MAT_OUT;
hClientMacSecret | key handle for the resulting Client MAC Secret key |
hServerMacSecret | key handle for the resulting Server MAC Secret key |
hClientKey | key handle for the resulting Client Secret key |
hServerKey | key handle for the resulting Server Secret key |
pIVClient | pointer to a location which receives the initialization vector (IV) created for the client (if any) |
pIVServer | pointer to a location which receives the initialization vector (IV) created for the server (if any) |
CK_SSL3_KEY_MAT_OUT_PTR is a pointer to a CK_SSL3_KEY_MAT_OUT.
typedef struct CK_SSL3_KEY_MAT_PARAMS { CK_ULONG ulMacSizeInBits; CK_ULONG ulKeySizeInBits; CK_ULONG ulIVSizeInBits; CK_BBOOL bIsExport; CK_SSL3_RANDOM_DATA RandomInfo; CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial; } CK_SSL3_KEY_MAT_PARAMS;
ulMacSizeInBits | the length (in bits) of the MACing keys agreed upon during the protocol handshake phase |
ulKeySizeInBits | the length (in bits) of the secret keys agreed upon during the protocol handshake phase |
ulIVSizeInBits | the length (in bits) of the IV agreed upon during the protocol handshake phase. If no IV is required, the length should be set to 0 |
bIsExport | a Boolean value which indicates whether the keys have to be derived for an export version of the protocol |
RandomInfo | client's and server's random data information. |
pReturnedKeyMaterial | points to a '''CK_SSL3_KEY_MAT_OUT''' structures which receives the handles for the keys generated and the IVs |
CK_SSL3_KEY_MAT_PARAMS_PTR is a pointer to a CK_SSL3_KEY_MAT_PARAMS.