/******************************************************************************/
/* 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_RSA_ENCRYPT_H)
#define R_ICUMIF_API_RSA_ENCRYPT_H

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

typedef struct ISD_RSA_ENCRYPT
{
    union
    {
        const uint8_t*          p_message;                      /* in */
        uint64_t                padding_sys64;
    } ptr1;
    uint32_t                    message_size_in_bytes;          /* in */
    union
    {
        uint8_t*                p_encrypted_message;            /* out */
        uint64_t                padding_sys64;
    } ptr2;
    uint16_t                    encrypted_message_size_in_bits; /* out */
    union
    {
        const uint8_t*          p_label;                        /* in (option for OAEP) */
        uint64_t                padding_sys64;
    } ptr3;
    uint32_t                    label_size_in_bytes;            /* in (option for OAEP) */
    r_hash_primitive_t          hash_primitive;                 /* in */
    r_message_encoding_format_t message_encoding_format;        /* in */
    r_key_group_t               key_group;                      /* in */
    r_key_index_t               key_id;                         /* in */
    r_number_format_t           encrypted_message_format;       /* in */
    r_job_slice_t               job_slice_mod_exp;              /* in */
} ISD_RSA_ENCRYPT_t;

#endif /* R_ICUMIF_API_RSA_ENCRYPT_H */
