
/*
 * =====================================================================================
 *
 *       Filename:  hdm_wrapper.h
 *
 *    Description:  HDM definitions for wrap/unwrap manipulation
 *
 *        Version:  1.0
 *        Created:  09/16/2019 15:26:11 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *        Company:  Samsung Electronics
 *        Copyright (c) 2015 by Samsung Electronics, All rights reserved.
 *
 * =====================================================================================
 */

#ifndef _HDM_WRAPPER_H_
#define _HDM_WRAPPER_H_

/**
 * Conditional includes
 */
#ifdef CONFIG_QSEE
#else
//#include "tees_secure_object.h"
#endif

/**
 * HDM includes
 */
#include "tz_hdm_interface.h"
#include "hdm_defs.h"

/**
 * Unwrap
 */
#define HDM_UNWRAP_PROV_UUID                 {0,0,0,{0,0,0,0,0,0x53,0x4b,0x4d}}
#define HDM_UNWRAP_PROV_TA_AUTH_CRYPTOSUITE  "samsung_ta"

/**
 * @brief
 * unwrap
 *
 * @param[in]  *wrapped_ptr - wrapped object
 * @param[in]  *wrapped_ptr_len - wrapped object length
 * @param[in]  is_wrapped_key - is wrapped object (only for QC)
 * @param[out] *unwrapped_ptr - unwrapped object
 * @param[out] *unwrapped_ptr_len - unwrapped object length
 *
 * @return HDM status code
 */
hdm_return_code_t unwrap(uint8_t *wrapped_ptr, uint32_t *wrapped_ptr_len, uint32_t is_wrapped_key, uint8_t *unwrapped_ptr, uint32_t *unwrapped_ptr_len);

#endif /* _HDM_WRAPPER_H_ */
