/*
 * =====================================================================================
 *
 *  Filename:  kg_DH.h
 *
 *  Description:  KG DH
 *
 *  Version:  1.0
 *  Created:  Jia Ma@04/07/2020 13:46:00 PM
 *  Revision:  none
 *  Compiler:  gcc
 *
 *  Company:  Samsung Electronics
 *  Copyright (c) 2020 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */
#ifndef __KG_DH_H__
#define __KG_DH_H__

#include <stdint.h>
#include <string.h>
#include "kg_log.h"
#include "kg_defs.h"
#include "kg_utils.h"
#include "kg_rpmb.h"
#include "kg_openssl.h"
#include "kg_err.h"
#include "tee_internal_api.h"


DH* KG_dh_gen_dh_keys();

int KG_dh_get_keypair(uint8_t **out_pub, int *out_pub_len, uint8_t **out_priv, int *out_priv_len);

DH* KG_reload_dh(BIGNUM *priv_key);

int KG_dh_gen_shared_key(uint8_t *server_pub, int len, uint8_t *dh_secret, uint32_t *dh_secret_len, kg_dh_data_t* dh_data); 

#endif /* __KG_DH_H__ */
