ISARA Radiate™ Quantum-safe Library Version 3.1

Quantum-safe cryptographic primitives and algorithms.

iqr_kdf.h
Go to the documentation of this file.
1 
21 #ifndef IQR_KDF_H
22 #define IQR_KDF_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #include "iqr_api.h"
29 #include "iqr_hash.h"
30 #include "iqr_retval.h"
31 
32 #include <stddef.h>
33 #include <stdint.h>
34 
35 // ---------------------------------------------------------------------------------------------------------------------------------
36 // RFC 5869 HKDF.
37 // ---------------------------------------------------------------------------------------------------------------------------------
38 
88 IQR_API
89 iqr_retval iqr_RFC5869HKDFDeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *salt, size_t salt_size,
90  const uint8_t *ikm, size_t ikm_size, const uint8_t *info, size_t info_size, uint8_t *key, size_t key_size);
91 
92 // ---------------------------------------------------------------------------------------------------------------------------------
93 // NIST SP 800-56C Option 1 Concatenation KDF.
94 // ---------------------------------------------------------------------------------------------------------------------------------
95 
131 IQR_API
132 iqr_retval iqr_ConcatenationKDFDeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *shared_secret,
133  size_t shared_secret_size, const uint8_t *other_info, size_t other_info_size, uint8_t *key, size_t key_size);
134 
135 // ---------------------------------------------------------------------------------------------------------------------------------
136 // Internet Engineering Taskforce's (IETF's) RFC 2898, PBKDF2.
137 // ---------------------------------------------------------------------------------------------------------------------------------
138 
171 IQR_API
172 iqr_retval iqr_PBKDF2DeriveKey(const iqr_Context *ctx, iqr_HashAlgorithmType hash_algo, const uint8_t *password,
173  size_t password_size, const uint8_t *salt, size_t salt_size, uint32_t iteration_count, uint8_t *key, size_t key_size);
174 
175 #ifdef __cplusplus
176 }
177 #endif
178 
179 #endif /* IQR_KDF_H */
iqr_HashAlgorithmType
Definition: iqr_hash.h:46
struct iqr_Context_struct iqr_Context
Definition: iqr_context.h:35
ISARA Radiate Quantum-Safe Library's return values.
iqr_retval
Definition: iqr_retval.h:28
ISARA Radiate Quantum-Safe Library's API declarations.
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)
ISARA Radiate Quantum-Safe Library's Hash object API.
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)
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)