SEcube
SEcube Open Source Library - Device
Macros | Functions | Variables
se3_cmd1.c File Reference

L1 command dispatch and execute. More...

#include "se3_cmd1.h"
#include "se3_cmd1_login.h"
#include "se3_cmd1_config.h"
#include "se3_cmd1_keys.h"
#include "se3_cmd1_crypto.h"
#include "se3_rand.h"

Macros

#define SE3_CMD1_MAX   (16)
 

Functions

static uint16_t L1d_error (uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
 
uint16_t L0d_cmd1 (uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
 L0 command which executes an L1 command. More...
 

Variables

static se3_cmd_func L1d_handlers [SE3_CMD1_MAX]
 

Detailed Description

L1 command dispatch and execute.

Author
Nicola Ferri

Function Documentation

uint16_t L0d_cmd1 ( uint16_t  req_size,
const uint8_t *  req,
uint16_t *  resp_size,
uint8_t *  resp 
)

L0 command which executes an L1 command.

L0 CMD1 command handler.

This handler also manages encryption and login token check

Variable Documentation

se3_cmd_func L1d_handlers[SE3_CMD1_MAX]
static
Initial value:
= {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
}
uint16_t L1d_key_list(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
list all keys in device
Definition: se3_cmd1_keys.c:117
uint16_t L1d_challenge(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
Get a login challenge from the server.
Definition: se3_cmd1_login.c:53
uint16_t L1d_crypto_set_time(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
set device time for key validity
Definition: se3_cmd1_crypto.c:226
uint16_t L1d_logout(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
Log out and release resources.
Definition: se3_cmd1_login.c:174
uint16_t L1d_login(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
respond to challenge, completing login
Definition: se3_cmd1_login.c:123
uint16_t L1d_key_edit(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
insert, delete or update key
Definition: se3_cmd1_keys.c:14
uint16_t L1d_crypto_init(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
initialize a crypto context
Definition: se3_cmd1_crypto.c:14
uint16_t L1d_crypto_list(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
get list of available algorithms
Definition: se3_cmd1_crypto.c:253
uint16_t L1d_crypto_update(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
use a crypto context
Definition: se3_cmd1_crypto.c:126
uint16_t L1d_config(uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
set or get configuration record
Definition: se3_cmd1_config.c:13