/******************************************************************************/
/* Component Name   ICU-M Interface Library (ICUMIF)                          */
/******************************************************************************/
/* Product      : ICU-M Firmware                                              */
/******************************************************************************/
/*******************************************************************************
* Copyright(C) 2021-2023 Renesas Electronics Corporation.                       
*                                                                               
*          RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY                     
*                                                                               
* These instructions, statements, and programs are the confidential information 
* of Renesas Electronics Corporation. They must be used and modified solely for 
* the purpose for which it was furnished by Renesas Electronics Corporation.    
* All part of them must not be reproduced nor disclosed to others in any form,  
* without the prior written permission of Renesas Electronics Corporation.      
*******************************************************************************/
#if !defined(R_ICUMIF_API_ECDH_H)
#define R_ICUMIF_API_ECDH_H

/**********************************************************************************/
/* Defines                                                                       */
/**********************************************************************************/
#define SET_SHARED_SECRET    (0u)
#define OUTPUT_SHARED_SECRET (1u)

/**********************************************************************************/
/* Service parameters                                                             */
/**********************************************************************************/

typedef struct ISD_ECDH
{
    r_key_group_t           ecc_priv_key_group;
    r_key_index_t           ecc_priv_key_id;
    r_key_group_t           ecc_pub_key_group;
    r_key_index_t           ecc_pub_key_id;
    r_key_group_t           shared_key_group;
    r_key_index_t           shared_key_id;
    r_kdf_algo_t            kdf_algo;
    r_hash_primitive_t      hash_primitive;
    r_job_slice_t           job_slice;
    union
    {
        const uint8_t       *p_info;
        uint64_t            padding_sys64;
    } ptr;
    uint16_t                counter;
    uint8_t                 info_size_in_bytes;
    uint16_t                key_size_in_bytes;
    union
    {
        uint8_t             *p_shared_secret;
        uint64_t            padding_sys64;
    } ptr2;
    uint8_t                 output_select;
} ISD_ECDH_t;

#endif /* R_ICUMIF_API_ECDH_H */
