/*
 * =====================================================================================
 *
 *  Filename:  kg_policy.h
 *
 *  Description:  KG policy parsing and verification
 *
 *  Version:  1.0
 *  Created:  04/02/2020 13:29:00 PM
 *  Revision:  none
 *  Compiler:  gcc
 *
 *  Company:  Samsung Electronics
 *  Copyright (c) 2020 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */
#ifndef __KG_POLICY_H__
#define __KG_POLICY_H__

#include <stdint.h>
#include <stdlib.h>
#include "kg_err.h"
#include "kg_log.h"
#include "kg_rpmb.h"
#include "kg_utils.h"
#include "jsmn.h"
#include "tee_internal_api.h"

#define KG_POLICY_METADATA           "metaData"
#define KG_POLICY_VERSION            "version"
#define KG_POLICY_KGID               "kgID"
#define KG_POLICY_COUNTER            "counter"
#define KG_POLICY_SERVERTIME         "serverTimeStamp"
#define KG_POLICY_SIGNATURE          "policySignature"
#define KG_POLICY_POLICY             "policies"
#define KG_POLICY_POLICYTIME         "timeStamp"
#define KG_POLICY_ACTION             "action"
#define KG_POLICY_KGSTATE            "kgTaState"

uint32_t parse_policy(const char *policy, uint32_t policy_len, kg_metadata_t* metadata);

int jsoneq(const char *json, jsmntok_t *tok, const char *s);

#endif /* __KG_POLICY_H__ */
