26#define ALIRO_SHA256_BLOCK 64u
27#define ALIRO_SHA256_LEN 32u
33 uint8_t buf[ALIRO_SHA256_BLOCK];
37void aliro_sha256_init(
struct aliro_sha256 *s);
38void aliro_sha256_update(
struct aliro_sha256 *s,
const void *data,
size_t len);
39void aliro_sha256_final(
struct aliro_sha256 *s, uint8_t out[ALIRO_SHA256_LEN]);
42void aliro_sha256(
const void *data,
size_t len, uint8_t out[ALIRO_SHA256_LEN]);
45void aliro_hmac_sha256(
const uint8_t *key,
size_t key_len,
const void *msg,
size_t msg_len,
46 uint8_t out[ALIRO_SHA256_LEN]);
54void aliro_hkdf_extract(
const uint8_t *salt,
size_t salt_len,
const uint8_t *ikm,
size_t ikm_len,
55 uint8_t prk[ALIRO_SHA256_LEN]);
56int aliro_hkdf_expand(
const uint8_t prk[ALIRO_SHA256_LEN],
const uint8_t *info,
size_t info_len,
57 uint8_t *out,
size_t out_len);
58int aliro_hkdf(
const uint8_t *salt,
size_t salt_len,
const uint8_t *ikm,
size_t ikm_len,
59 const uint8_t *info,
size_t info_len, uint8_t *out,
size_t out_len);
66int aliro_x963_kdf(
const uint8_t *z,
size_t z_len,
const uint8_t *info,
size_t info_len,
67 uint8_t *out,
size_t out_len);