Modules | |
CryptoCell Key Derivation specific errors | |
Data Structures | |
struct | CRYS_KDF_OtherInfo_t |
Macros | |
#define | CRYS_KDF_MAX_SIZE_OF_SHARED_SECRET_VALUE 1024 |
#define | CRYS_KDF_COUNT_OF_OTHER_INFO_ENTRIES 5 |
#define | CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY 64 |
#define | CRYS_KDF_MAX_SIZE_OF_KEYING_DATA 2048 |
#define | CRYS_KDF_ASN1_KeyDerivFunc(ZZSecret_ptr, ZZSecretSize, OtherInfo_ptr, KDFhashMode, KeyingData_ptr, KeyLenInBytes) CRYS_KDF_KeyDerivFunc((ZZSecret_ptr),(ZZSecretSize),(OtherInfo_ptr),(KDFhashMode),CRYS_KDF_ASN1_DerivMode,(KeyingData_ptr),(KeyLenInBytes)) |
#define | CRYS_KDF_ConcatKeyDerivFunc(ZZSecret_ptr, ZZSecretSize, OtherInfo_ptr, KDFhashMode, KeyingData_ptr, KeyLenInBytes) CRYS_KDF_KeyDerivFunc((ZZSecret_ptr),(ZZSecretSize),(OtherInfo_ptr),(KDFhashMode),CRYS_KDF_ConcatDerivMode,(KeyingData_ptr),(KeyLenInBytes)) |
Enumerations |
Functions | |
CRYSError_t | CRYS_KDF_KeyDerivFunc (uint8_t *ZZSecret_ptr, uint32_t ZZSecretSize, CRYS_KDF_OtherInfo_t *OtherInfo_ptr, CRYS_KDF_HASH_OpMode_t KDFhashMode, CRYS_KDF_DerivFuncMode_t derivation_mode, uint8_t *KeyingData_ptr, uint32_t KeyingDataSizeBytes) |
CRYS_KDF_KeyDerivFunc performs key derivation according to one of the modes defined in standards: ANS X9.42-2001, ANS X9.63, ISO/IEC 18033-2. More... | |
#define CRYS_KDF_ASN1_KeyDerivFunc | ( | ZZSecret_ptr, | |
ZZSecretSize, | |||
OtherInfo_ptr, | |||
KDFhashMode, | |||
KeyingData_ptr, | |||
KeyLenInBytes | |||
) | CRYS_KDF_KeyDerivFunc((ZZSecret_ptr),(ZZSecretSize),(OtherInfo_ptr),(KDFhashMode),CRYS_KDF_ASN1_DerivMode,(KeyingData_ptr),(KeyLenInBytes)) |
CRYS_KDF_ASN1_KeyDerivFunc is A MACRO that performs key derivation according to ASN1 DER encoding method defined in standard ANS X9.42-2001, 7.2.1. For a description of the parameters see CRYS_KDF_KeyDerivFunc.
Definition at line 191 of file crys_kdf.h.
#define CRYS_KDF_ConcatKeyDerivFunc | ( | ZZSecret_ptr, | |
ZZSecretSize, | |||
OtherInfo_ptr, | |||
KDFhashMode, | |||
KeyingData_ptr, | |||
KeyLenInBytes | |||
) | CRYS_KDF_KeyDerivFunc((ZZSecret_ptr),(ZZSecretSize),(OtherInfo_ptr),(KDFhashMode),CRYS_KDF_ConcatDerivMode,(KeyingData_ptr),(KeyLenInBytes)) |
CRYS_KDF_ConcatKeyDerivFunc is a MACRO that performs key derivation according to concatenation mode defined in standard ANS X9.42-2001, 7.2.2. For a description of the parameters see CRYS_KDF_KeyDerivFunc.
Definition at line 201 of file crys_kdf.h.
#define CRYS_KDF_COUNT_OF_OTHER_INFO_ENTRIES 5 |
Number of other info entries.
Definition at line 65 of file crys_kdf.h.
#define CRYS_KDF_MAX_SIZE_OF_KEYING_DATA 2048 |
Maximal size of keying data in bytes.
Definition at line 69 of file crys_kdf.h.
#define CRYS_KDF_MAX_SIZE_OF_OTHER_INFO_ENTRY 64 |
Maximal size of other info entry. Size is in bytes
Definition at line 67 of file crys_kdf.h.
#define CRYS_KDF_MAX_SIZE_OF_SHARED_SECRET_VALUE 1024 |
Shared secret value max size in bytes
Definition at line 61 of file crys_kdf.h.
Key derivation modes.
Definition at line 93 of file crys_kdf.h.
HASH operation modes
Definition at line 73 of file crys_kdf.h.
CRYSError_t CRYS_KDF_KeyDerivFunc | ( | uint8_t * | ZZSecret_ptr, |
uint32_t | ZZSecretSize, | ||
CRYS_KDF_OtherInfo_t * | OtherInfo_ptr, | ||
CRYS_KDF_HASH_OpMode_t | KDFhashMode, | ||
CRYS_KDF_DerivFuncMode_t | derivation_mode, | ||
uint8_t * | KeyingData_ptr, | ||
uint32_t | KeyingDataSizeBytes | ||
) |
CRYS_KDF_KeyDerivFunc performs key derivation according to one of the modes defined in standards: ANS X9.42-2001, ANS X9.63, ISO/IEC 18033-2.
The present implementation of the function allows the following operation modes:
The purpose of this function is to derive a keying data from the shared secret value and some other optional shared information (SharedInfo).
All buffers arguments are represented in Big-Endian format.
[in] | ZZSecret_ptr | A pointer to shared secret value octet string. |
[in] | ZZSecretSize | The size of the shared secret value in bytes. The maximal size is defined as: CRYS_KDF_MAX_SIZE_OF_SHARED_SECRET_VALUE. |
[in] | OtherInfo_ptr | The pointer to structure, containing the data, shared by two entities of agreement and the data sizes. This argument may be optional in several modes (if it is not needed - set NULL). On two ISO/IEC 18033-2 modes - set NULL. On KDF ASN1 mode the OtherInfo and its AlgorithmID entry are mandatory. |
[in] | KDFhashMode | The KDF identifier of hash function to be used. The hash function output must be at least 160 bits. |
[in] | derivation_mode | Specifies one of above described derivation modes. |
[out] | KeyingData_ptr | A pointer to the buffer for derived keying data. |
[in] | KeyingDataSizeBytes | The size in bytes of the keying data to be derived. The maximal size is defined as: CRYS_KDF_MAX_SIZE_OF_KEYING_DATA. |