#include "evercrypt_targetconfig.h"
#include "libintvector.h"
#include "kremlin/internal/types.h"
#include "kremlin/lowstar_endianness.h"
#include <string.h>
#include "kremlin/internal/target.h"
#ifndef __EverCrypt_HKDF_H
#define __EverCrypt_HKDF_H
#include "EverCrypt_HMAC.h"
#include "Hacl_Spec.h"
void
EverCrypt_HKDF_expand_sha1(
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
void
EverCrypt_HKDF_extract_sha1(
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
void
EverCrypt_HKDF_expand_sha2_256(
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
void
EverCrypt_HKDF_extract_sha2_256(
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
void
EverCrypt_HKDF_expand_sha2_384(
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
void
EverCrypt_HKDF_extract_sha2_384(
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
void
EverCrypt_HKDF_expand_sha2_512(
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
void
EverCrypt_HKDF_extract_sha2_512(
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
void
EverCrypt_HKDF_expand(
Spec_Hash_Definitions_hash_alg a,
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
void
EverCrypt_HKDF_extract(
Spec_Hash_Definitions_hash_alg a,
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
KRML_DEPRECATED("expand")
void
EverCrypt_HKDF_hkdf_expand(
Spec_Hash_Definitions_hash_alg a,
uint8_t *okm,
uint8_t *prk,
uint32_t prklen,
uint8_t *info,
uint32_t infolen,
uint32_t len
);
KRML_DEPRECATED("extract")
void
EverCrypt_HKDF_hkdf_extract(
Spec_Hash_Definitions_hash_alg a,
uint8_t *prk,
uint8_t *salt,
uint32_t saltlen,
uint8_t *ikm,
uint32_t ikmlen
);
#define __EverCrypt_HKDF_H_DEFINED
#endif