/******************************************************************************/
/* 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_PK_EXPORT_H)
#define R_ICUMIF_API_PK_EXPORT_H

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

typedef struct ISD_PK_EXPORT
{
    union
    {
        uint8_t                *p_modulus;
        uint8_t                *p_pub_point_x;
        uint64_t                padding_sys64;
    } ptr1;
    union
    {
        uint8_t                *p_pub_exp;
        uint8_t                *p_pub_point_y;
        uint64_t                padding_sys64;
    } ptr2;
    union
    {
        uint8_t                *p_signature;
        uint64_t                padding_sys64;
    } ptr3;
    r_number_format_t       key_format;
    r_number_format_t       sig_format;
    r_key_group_t           key_group;
    r_key_index_t           key_id;
    r_key_group_t           sig_key_group;
    r_key_index_t           sig_key_id;
    r_signature_algo_t      sig_algo;
    r_hash_primitive_t      hash_primitive;
    volatile r_ecc_curve_t  curve_id;
    union
    {
        volatile uint16_t       point_x_size_in_bits;
        volatile uint16_t       modulus_size_in_bits;
    } size1;
    union
    {
        volatile uint16_t       point_y_size_in_bits;
        volatile uint16_t       pub_exp_size_in_bits;
    } size2;
    volatile uint16_t       sig_size_in_bits;
    uint8_t                 skip_sign;
} ISD_PK_EXPORT_t;

#endif /* R_ICUMIF_API_PK_EXPORT_H */
