/*
 * =====================================================================================
 *
 *  Filename:  kg_state_cmd.h
 *
 *  Description:  KG state change related cmd definition
 *
 *  Version:  1.0
 *  Created:  05/08/2020 14:48:00 PM
 *  Revision:  none
 *  Compiler:  gcc
 *
 *  Company:  Samsung Electronics
 *  Copyright (c) 2020 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */
#ifndef __KG_STATE_CMD_H__
#define __KG_STATE_CMD_H__

#include "base64.h"
#include "kg_cert.h"
#include "kg_defs.h"
#include "kg_log.h"
#include "kg_rpmb.h"
#include "kg_state.h"
#include "kg_init.h"
#include "kg_x509.h"
#include "kg_read_data.h"
#include "tee_internal_api.h"

// DEBUG_ONLY
void kg_rpmb_reset();
// DEBUG_ONLY

uint32_t KG_get_ta_status(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);
uint32_t KGBL_get_ta_status(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);
uint32_t kgbl_verify_completetoken(uint8_t *token, uint8_t *sn_hash);
uint32_t KG_get_nonce(tz_nonce_payload_t *sendmsg, tz_nonce_payload_t *respmsg);
uint32_t KG_checking(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);
uint32_t KG_reset_rpmb(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);
uint32_t KG_get_kgid(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);
uint32_t KG_verify_registration_info(tz_verify_reg_info_payload_t *sendmsg, tz_verify_reg_info_payload_t *respmsg);
uint32_t KG_verify_complete_token(tz_common_payload_t *sendmsg, tz_common_payload_t *respmsg);

#endif /* __KG_STATE_CMD_H__ */
