class PKCS12KDF |
Namespace class contains static functions which are used to generate a key for PKCS#12 operations.
See Section B from PKCS 12 v1.0.
Public Member Functions | |
---|---|
IMPORT_C void | DeriveKeyL(TDes8 &, TIDByteType, const TDesC8 &, const TDesC8 &, const TUint) |
IMPORT_C HBufC8 * | GeneratePasswordLC(const TDesC &) |
Private Member Functions | |
---|---|
PKCS12KDF() | |
void | Process6cL(TDes8 &, const TDesC8 &, TInt) |
Public Member Enumerations | |
---|---|
enum | TIDByteType { EIDByteEncryptKey = 1, EIDByteIV = 2, EIDByteMACKey = 3 } |
IMPORT_C void | DeriveKeyL | ( | TDes8 & | aKey, |
TIDByteType | aIDType, | |||
const TDesC8 & | aPasswd, | |||
const TDesC8 & | aSalt, | |||
const TUint | aIterations | |||
) | [static] |
Generate a key for the supplied password and salt. This implementation uses SHA1 as the hashing algorithm.
TDes8 & aKey | Descriptor which will hold key. On entry its length must be set to the expected key length. |
TIDByteType aIDType | Whether this function is being called to generate an (en|de)cryption key, an initialization vector, or a key for MAC-ing. See SB.3 of spec. |
const TDesC8 & aPasswd | Password string. To comply with PKCS#12 spec, this must have 2-byte big-endian characters with a terminating null character. |
const TDesC8 & aSalt | Used with aPasswd to generate key. |
const TUint aIterations | Number of times to call the hash function for each block in the key. |
IMPORT_C HBufC8 * | GeneratePasswordLC | ( | const TDesC & | aDes | ) | [static] |
Convert the supplied string to a byte string, as described in SB.1 of the PKCS 12 v1.0.
Each character is converted to a big endian two-byte value, and a terminating NULL character is appended to the end.
const TDesC & aDes | String to use as password. |
void | Process6cL | ( | TDes8 & | Ij, |
const TDesC8 & | B, | |||
TInt | v | |||
) | [private, static] |
Helper function for DeriveKeyL modifies part of I, as described in step 6c of SB.2.
ID byte value used to generate (en|de)cryption key, IV, or MAC key. See SB.3 of spec.
EIDByteEncryptKey = 1 |
Generates a key for (en|de)cryption. |
EIDByteIV = 2 |
Generates an initialization vector. |
EIDByteMACKey = 3 |
Generates a key for MAC-ing. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.