#ifndef __EM_TOKEN_MANAGER_H
#define __EM_TOKEN_MANAGER_H

int em_token_is_from_fac(const uint8_t *cert, const int len_cert);
int em_token_is_installed(em_context *ctx);
int em_token_get_status(em_context *ctx);
int em_token_install(em_context *ctx);
int em_token_get_usage_count(em_context *ctx);
int em_token_get_only_mode(em_context *ctx, uint8_t *out, uint32_t *len_out);
int em_token_get_mode_information(em_context *ctx);
int em_token_get_mode_information_for_bit(em_context *ctx);

int em_token_check_time_msg(uint8_t *message, uint32_t len_message, em_context *ctx);
int em_token_get_expiry_date(em_context *ctx, char *out_date);
int em_token_get_info(em_context *ctx);
int em_token_check_lsec_tok_cond(em_context *ctx);

int em_do_init_core(em_context *ctx);
int em_ft_token_mode(em_context *ctx);
int em_token_is_dev_device(em_context *ctx);
int em_token_get_token_id(em_context *ctx);
int em_token_get_priority_time(em_context *ctx);
int em_token_set_priority_time(em_context *ctx);
int em_token_verify_token(em_context *ctx, em_parsed_token *parsed_token, em_token_ptr *token_ptr);

#endif
