#ifndef _TZ_KEY_H_
#define _TZ_KEY_H_

#include <swd_log.h>
#include <hwvault_general.h>

typedef enum {
    KEY_TYPE_AUTHTOKEN,
    KEY_TYPE_REK_KDF,

    KEY_TYPE_MAX
} key_type_t;


#define HV_AES_KEY_SIZE 32
#define HV_HMAC_KEY_SIZE 32
#define HV_SHA256_HASH_SIZE 32
#define HV_GCM_TAG_SIZE 16
#define HV_GCM_IV_SIZE 12
#define HV_SALT_SIZE 32
#define HV_MIN_SALT_LEN 8

uint32_t tz_get_key_ex(uint8_t *key, uint32_t key_type, const uint8_t *salt, const uint32_t salt_len);
uint32_t tz_get_key(uint8_t *key, uint32_t key_len, const uint8_t *salt, const uint32_t salt_len);

#endif /*_TZ_KEY_H_*/
