CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
kdf.h
Go to the documentation of this file.
1
24
25#pragma once
26#include <stdbool.h>
27#include <stddef.h>
28#include <stdint.h>
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#define KDF_SALT_LEN 8
35#define KDF_INITIAL_HASH_MAX 64
36
38typedef enum {
42
44typedef enum {
49
70
82
85
94kdf_status_t kdf_do_parse(const uint8_t *bytes, size_t len, kdf_do_t *out);
95
102kdf_status_t kdf_do_build(const kdf_do_t *kdf, uint8_t *out, size_t out_cap,
103 size_t *out_len);
104
114kdf_status_t kdf_do_build_disabled(uint8_t *out, size_t out_cap, size_t *out_len);
115
116#ifdef __cplusplus
117}
118#endif
119
#define KDF_SALT_LEN
OpenPGP KDF Data Object (tag F9) byte codec.
Definition kdf.h:34
kdf_hash_t
Hash algorithms accepted inside KDF-DO (inner tag 0x82).
Definition kdf.h:44
@ KDF_HASH_NONE
Definition kdf.h:45
@ KDF_HASH_SHA256
Definition kdf.h:46
@ KDF_HASH_SHA512
Definition kdf.h:47
kdf_status_t kdf_do_parse(const uint8_t *bytes, size_t len, kdf_do_t *out)
Parse a KDF-DO byte sequence into structured form.
kdf_status_t kdf_do_build_disabled(uint8_t *out, size_t out_cap, size_t *out_len)
Convenience helper: produce the "KDF disabled" KDF-DO body — three bytes (81 01 00) — that hosts expe...
kdf_status_t kdf_do_build(const kdf_do_t *kdf, uint8_t *out, size_t out_cap, size_t *out_len)
Serialise a kdf_do_t into the wire byte sequence.
void kdf_do_clear(kdf_do_t *out)
Zeroes out the structure.
#define KDF_INITIAL_HASH_MAX
Definition kdf.h:35
kdf_algo_t
KDF algorithm identifiers (DO 0xF9 inner tag 0x81).
Definition kdf.h:38
@ KDF_ALGO_NONE
Definition kdf.h:39
@ KDF_ALGO_PBKDF2
Definition kdf.h:40
kdf_status_t
KDF-DO codec error codes.
Definition kdf.h:72
@ KDF_OK
Definition kdf.h:73
@ KDF_ERR_BAD_ALGO
Definition kdf.h:78
@ KDF_ERR_BAD_LENGTH
Definition kdf.h:76
@ KDF_ERR_NULL
Definition kdf.h:74
@ KDF_ERR_BUF_TOO_SMALL
Definition kdf.h:75
@ KDF_ERR_BAD_HASH
Definition kdf.h:79
@ KDF_ERR_BAD_TAG
Definition kdf.h:77
@ KDF_ERR_BAD_HASH_LEN
Definition kdf.h:80
Parsed KDF-DO contents.
Definition kdf.h:51
kdf_algo_t algo
Definition kdf.h:52
uint8_t rc_salt[8]
Definition kdf.h:59
uint8_t pw3_initial_len
Definition kdf.h:68
uint8_t pw3_initial[64]
Definition kdf.h:67
bool has_rc_salt
Definition kdf.h:58
uint8_t pw1_initial_len
Definition kdf.h:65
uint8_t pw1_salt[8]
Definition kdf.h:57
bool has_pw3_initial
Definition kdf.h:66
uint8_t pw1_initial[64]
Definition kdf.h:64
kdf_hash_t hash
Definition kdf.h:53
uint8_t pw3_salt[8]
Definition kdf.h:61
bool has_pw3_salt
Definition kdf.h:60
bool has_pw1_initial
Definition kdf.h:63
uint32_t iter_count
Definition kdf.h:54
bool has_pw1_salt
Definition kdf.h:56