NAME
CSSM_CSP_CreateDeriveKeyContext — Create a cryptographic context to derive a symmetric
key (CDSA)
SYNOPSIS
# include <cssm.h>
| CSSM_RETURN CSSMAPI CSSM_CSP_CreateDeriveKeyContext(CSSM_CSP_HANDLE CSPHandle,
 CSSM_ALGORITHMS AlgorithmID,
 CSSM_KEY_TYPE DeriveKeyType,
 uint32 DeriveKeyLengthInBits,
 const CSSM_ACCESS_CREDENTIALS *AccessCred,
 const CSSM_KEY *BaseKey,
 uint32 IterationCount,
 const CSSM_DATA *Salt,
 const CSSM_CRYPTO_DATA *Seed,
 CSSM_CC_HANDLE *NewContextHandle)
 | 
LIBRARY
Common Security Services Manager library (cdsa$incssm300_shr.exe)
PARAMETERS
| CSPHandle (input) | 
|  |  | The handle that describes the add-in Cryptographic
Service Provider module used to perform this function. If a NULL
handle is specified, CSSM returns an error. | 
| AlgorithmID (input) | 
|  |  | The algorithm identification number for a derived
key algorithm. | 
| DeriveKeyType (input) | 
|  |  | The type of symmetric key to derive. | 
| DeriveKeyLengthInBits (input) | 
|  |  | The logical length of the key in bits to be derived
( LogicalKeySizeInBits) | 
| AccessCred (input/optional) | 
|  |  | A pointer to the set of one or more credentials
required to access the base key. The credentials structure can contain
an immediate value for the credential, such as a passphrase, or
the caller can specify a callback function the CSP can use to obtain
one or more credentials. If the BaseKey is NULL,
then this parameter is optional. | 
| BaseKey (input/optional) | 
|  |  | The base key used to derive the new key. The base
key can be a public key, a private key, or a symmetric key | 
| IterationCount (input/optional) | 
|  |  | The number of iterations to be performed during
the derivation process. Used heavily by password-based derivation
methods. | 
| Salt (input/optional) | 
|  |  | A Salt used in deriving the key. | 
| Seed (input/optional) | 
|  |  | A seed used to generate a random number. The caller
can either pass a seed and seed length in bytes or pass a callback
function. If Seed is NULL, the Cryptographic
Service Provider will use its default seed-handling mechanism. | 
| NewContextHandle (output) | 
|  |  | Cryptographic context handle. | 
DESCRIPTION
This function creates a cryptographic context to derive a
symmetric key, given a handle of a CSP, an algorithm, the type of
symmetric key to derive, the length of the derived key, and an optional
seed or an optional AccessCredentials structure
from which to derive a new key. The cryptographic context handle
is returned. The cryptographic context handle can be used for calling
the cryptographic derive key function.
RETURN VALUE
A CSSM_RETURN value indicating success or specifying a particular
error condition. The value CSSM_OK indicates success. All other
values represent an error condition.
SEE ALSO
Books
Intel CDSA Application Developer's Guide
Online Help
Functions: CSSM_DeriveKey