ISARA Quantum Resistant Toolkit  Version 1.1
Quantum resistant cryptographic primitives and algorithms.
iqr_kdf.h
Go to the documentation of this file.
1 
23 #ifndef IQR_KDF_H
24 #define IQR_KDF_H
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #include <stdint.h>
31 #include <stddef.h>
32 
33 #include "iqr_api.h"
34 #include "iqr_hash.h"
35 #include "iqr_retval.h"
36 
37 // ---------------------------------------------------------------------------------------------------------------------------------
38 // RFC-5869 HKDF.
39 // ---------------------------------------------------------------------------------------------------------------------------------
40 
85 IQR_API
87  const uint8_t *salt, size_t salt_size, const uint8_t *ikm, size_t ikm_size, const uint8_t *info, size_t info_size,
88  uint8_t *key, size_t key_size);
89 
90 // ---------------------------------------------------------------------------------------------------------------------------------
91 // NIST SP 800-56A Alternative 1 Concatenation KDF.
92 // ---------------------------------------------------------------------------------------------------------------------------------
93 
124 IQR_API
126  const uint8_t *shared_secret, size_t shared_secret_size, const uint8_t *other_info, size_t other_info_size,
127  uint8_t *key, size_t key_size);
128 
129 // ---------------------------------------------------------------------------------------------------------------------------------
130 // Internet Engineering Taskforce's (IETF's) RFC 2898, PBKDF2.
131 // ---------------------------------------------------------------------------------------------------------------------------------
132 
160 IQR_API
162  const uint8_t *password, size_t password_size, const uint8_t *salt, size_t salt_size,
163  uint32_t iteration_count, uint8_t *key, size_t key_size);
164 
165 #ifdef __cplusplus
166 }
167 #endif
168 
169 #endif /* IQR_KDF_H */
IQR_API iqr_retval iqr_PBKDF2DeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *password, size_t password_size, const uint8_t *salt, size_t salt_size, uint32_t iteration_count, uint8_t *key, size_t key_size)
iqr_HashAlgorithmType
Definition: iqr_hash.h:50
IQR_API iqr_retval iqr_ConcatenationKDFDeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *shared_secret, size_t shared_secret_size, const uint8_t *other_info, size_t other_info_size, uint8_t *key, size_t key_size)
struct iqr_Context_struct iqr_Context
Definition: iqr_context.h:33
iqr_retval
Definition: iqr_retval.h:26
IQR_API iqr_retval iqr_RFC5869HKDFDeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *salt, size_t salt_size, const uint8_t *ikm, size_t ikm_size, const uint8_t *info, size_t info_size, uint8_t *key, size_t key_size)