32 行
1.1 KiB
C
32 行
1.1 KiB
C
#ifndef PAZE_HKDF_H
|
|
#define PAZE_HKDF_H
|
|
#include "paze/paze_types.h"
|
|
#include "paze/hash.h"
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* HKDF-Extract: PRK = HMAC(salt, IKM)。out 长度 = alg->digest_len */
|
|
paze_status_t paze_hkdf_extract(const paze_hash_alg_t *alg,
|
|
const uint8_t *salt, size_t saltlen,
|
|
const uint8_t *ikm, size_t ikmlen,
|
|
uint8_t *prk);
|
|
|
|
/* HKDF-Expand: 输出 L 字节(L <= 255*digest_len) */
|
|
paze_status_t paze_hkdf_expand(const paze_hash_alg_t *alg,
|
|
const uint8_t *prk, size_t prklen,
|
|
const uint8_t *info, size_t infolen,
|
|
uint8_t *out, size_t outlen);
|
|
|
|
/* HKDF = Extract+Expand */
|
|
paze_status_t paze_hkdf(const paze_hash_alg_t *alg,
|
|
const uint8_t *salt, size_t saltlen,
|
|
const uint8_t *ikm, size_t ikmlen,
|
|
const uint8_t *info, size_t infolen,
|
|
uint8_t *out, size_t outlen);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|