Libtropic API
SDK for the TROPIC01 secure element
Version: master (latest)
Loading...
Searching...
No Matches
libtropic_l3.h File Reference

Layer 3 functions declarations. More...

#include <stdbool.h>
#include <stddef.h>
#include "libtropic_common.h"
Include dependency graph for libtropic_l3.h:

Functions

lt_ret_t lt_out__session_start (lt_handle_t *h, const lt_pkey_index_t pkey_index, lt_host_eph_keys_t *host_eph_keys)
 Initiates secure session.
 
lt_ret_t lt_in__session_start (lt_handle_t *h, const uint8_t *stpub, const lt_pkey_index_t pkey_index, const uint8_t *shipriv, const uint8_t *shipub, lt_host_eph_keys_t *host_eph_keys)
 Decodes TROPIC01's response during secure session's establishment.
 
lt_ret_t lt_out__ping (lt_handle_t *h, const uint8_t *msg_out, const uint16_t msg_len)
 Encodes Ping command payload.
 
lt_ret_t lt_in__ping (lt_handle_t *h, uint8_t *msg_in, const uint16_t msg_len)
 Decodes Ping result payload.
 
lt_ret_t lt_out__pairing_key_write (lt_handle_t *h, const uint8_t *pairing_pub, const uint8_t slot)
 Encodes Pairing_Key_Write command payload.
 
lt_ret_t lt_in__pairing_key_write (lt_handle_t *h)
 Decodes Pairing_Key_Write result payload.
 
lt_ret_t lt_out__pairing_key_read (lt_handle_t *h, const uint8_t slot)
 Encodes Pairing_Key_Read command payload.
 
lt_ret_t lt_in__pairing_key_read (lt_handle_t *h, uint8_t *pubkey)
 Decodes Pairing_Key_Read result payload.
 
lt_ret_t lt_out__pairing_key_invalidate (lt_handle_t *h, const uint8_t slot)
 Encodes Pairing_Key_Invalidate command payload.
 
lt_ret_t lt_in__pairing_key_invalidate (lt_handle_t *h)
 Decodes Pairing_Key_Invalidate result payload.
 
lt_ret_t lt_out__r_config_write (lt_handle_t *h, const enum lt_config_obj_addr_t addr, const uint32_t obj)
 Encodes R_Config_Write command payload.
 
lt_ret_t lt_in__r_config_write (lt_handle_t *h)
 Decodes R_Config_Write result payload.
 
lt_ret_t lt_out__r_config_read (lt_handle_t *h, const enum lt_config_obj_addr_t addr)
 Encodes R_Config_Read command payload.
 
lt_ret_t lt_in__r_config_read (lt_handle_t *h, uint32_t *obj)
 Decodes R_Config_Read result payload.
 
lt_ret_t lt_out__r_config_erase (lt_handle_t *h)
 Encodes R_Config_Erase command payload.
 
lt_ret_t lt_in__r_config_erase (lt_handle_t *h)
 Decodes R_Config_Erase result payload.
 
lt_ret_t lt_out__i_config_write (lt_handle_t *h, const enum lt_config_obj_addr_t addr, const uint8_t bit_index)
 Encodes I_Config_Write command payload.
 
lt_ret_t lt_in__i_config_write (lt_handle_t *h)
 Decodes I_Config_Write result payload.
 
lt_ret_t lt_out__i_config_read (lt_handle_t *h, const enum lt_config_obj_addr_t addr)
 Encodes I_Config_Read command payload.
 
lt_ret_t lt_in__i_config_read (lt_handle_t *h, uint32_t *obj)
 Decodes I_Config_Read result payload.
 
lt_ret_t lt_out__r_mem_data_write (lt_handle_t *h, const uint16_t udata_slot, const uint8_t *data, const uint16_t data_size)
 Encodes R_Mem_Data_Write command payload.
 
lt_ret_t lt_in__r_mem_data_write (lt_handle_t *h)
 Decodes R_Mem_Data_Write result payload.
 
lt_ret_t lt_out__r_mem_data_read (lt_handle_t *h, const uint16_t udata_slot)
 Encodes R_Mem_Data_Read command payload.
 
lt_ret_t lt_in__r_mem_data_read (lt_handle_t *h, uint8_t *data, const uint16_t data_max_size, uint16_t *data_read_size)
 Decodes R_Mem_Data_Read result payload.
 
lt_ret_t lt_out__r_mem_data_erase (lt_handle_t *h, const uint16_t udata_slot)
 Encodes R_Mem_Data_Erase command payload.
 
lt_ret_t lt_in__r_mem_data_erase (lt_handle_t *h)
 Decodes R_Mem_Data_Erase result payload.
 
lt_ret_t lt_out__random_value_get (lt_handle_t *h, const uint16_t rnd_bytes_cnt)
 Encodes Random_Value_Get command payload.
 
lt_ret_t lt_in__random_value_get (lt_handle_t *h, uint8_t *rnd_bytes, const uint16_t rnd_bytes_cnt)
 Decodes Random_Value_Get result payload.
 
lt_ret_t lt_out__ecc_key_generate (lt_handle_t *h, const lt_ecc_slot_t slot, const lt_ecc_curve_type_t curve)
 Encodes ECC_Key_Generate command payload.
 
lt_ret_t lt_in__ecc_key_generate (lt_handle_t *h)
 Decodes ECC_Key_Generate result payload.
 
lt_ret_t lt_out__ecc_key_store (lt_handle_t *h, const lt_ecc_slot_t slot, const lt_ecc_curve_type_t curve, const uint8_t *key)
 Encodes ECC_Key_Store command payload.
 
lt_ret_t lt_in__ecc_key_store (lt_handle_t *h)
 Decodes ECC_Key_Store result payload.
 
lt_ret_t lt_out__ecc_key_read (lt_handle_t *h, const lt_ecc_slot_t slot)
 Encodes ECC_Key_Read command payload.
 
lt_ret_t lt_in__ecc_key_read (lt_handle_t *h, uint8_t *key, const uint8_t key_max_size, lt_ecc_curve_type_t *curve, lt_ecc_key_origin_t *origin)
 Decodes ECC_Key_Read result payload.
 
lt_ret_t lt_out__ecc_key_erase (lt_handle_t *h, const lt_ecc_slot_t slot)
 Encodes ECC_Key_Erase command payload.
 
lt_ret_t lt_in__ecc_key_erase (lt_handle_t *h)
 Decodes ECC_Key_Erase result payload.
 
lt_ret_t lt_out__ecc_ecdsa_sign (lt_handle_t *h, const lt_ecc_slot_t slot, const uint8_t *msg, const uint32_t msg_len)
 Encodes ECDSA_Sign command payload.
 
lt_ret_t lt_in__ecc_ecdsa_sign (lt_handle_t *h, uint8_t *rs)
 Decodes ECDSA_Sign result payload.
 
lt_ret_t lt_out__ecc_eddsa_sign (lt_handle_t *h, const lt_ecc_slot_t ecc_slot, const uint8_t *msg, const uint16_t msg_len)
 Encodes EDDSA_Sign command payload.
 
lt_ret_t lt_in__ecc_eddsa_sign (lt_handle_t *h, uint8_t *rs)
 Decodes EDDSA_Sign result payload.
 
lt_ret_t lt_out__mcounter_init (lt_handle_t *h, const enum lt_mcounter_index_t mcounter_index, const uint32_t mcounter_value)
 Encodes MCounter_Init command payload.
 
lt_ret_t lt_in__mcounter_init (lt_handle_t *h)
 Decodes MCounter_Init command result payload.
 
lt_ret_t lt_out__mcounter_update (lt_handle_t *h, const enum lt_mcounter_index_t mcounter_index)
 Encodes MCounter_Update command payload.
 
lt_ret_t lt_in__mcounter_update (lt_handle_t *h)
 Decodes MCounter_Update result payload.
 
lt_ret_t lt_out__mcounter_get (lt_handle_t *h, const enum lt_mcounter_index_t mcounter_index)
 Encodes MCounter_Get command payload.
 
lt_ret_t lt_in__mcounter_get (lt_handle_t *h, uint32_t *mcounter_value)
 Decodes MCounter_Get result payload.
 
lt_ret_t lt_out__mac_and_destroy (lt_handle_t *h, lt_mac_and_destroy_slot_t slot, const uint8_t *data_out)
 Encodes MAC_And_Destroy command payload.
 
lt_ret_t lt_in__mac_and_destroy (lt_handle_t *h, uint8_t *data_in)
 Decodes MAC_And_Destroy result payload.
 

Detailed Description

License
For the license see file LICENSE.txt file in the root directory of this source tree.