SEcube
SEcube Open Source Library - Device
Functions
se3_cmd1_crypto.c File Reference

L1 handlers for crypto operations. More...

#include "se3_cmd1_crypto.h"

Functions

uint16_t L1d_crypto_init (uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
 initialize a crypto context More...
 
uint16_t L1d_crypto_update (uint16_t req_size, const uint8_t *req, uint16_t *resp_size, uint8_t *resp)
 use a crypto context More...
 
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 More...
 
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 More...
 

Detailed Description

L1 handlers for crypto operations.

Author
Nicola Ferri

Function Documentation

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

initialize a crypto context

L1 CRYPTO_INIT handler.

L1_crypto_init : (algo:ui16, mode:ui16, key_id:ui32) => (sid:ui32)

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

L1 CRYPTO_SET_TIME handler.

crypto_list : () => (count:ui16, algoinfo0, algoinfo1, ...) algoinfo : (name[16], type:u16, block_size:u16, key_size:u16)

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

L1 CRYPTO_SET_TIME handler.

crypto_set_time : (devtime:ui32) => ()

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

use a crypto context

L1 CRYPTO_UPDATE handler.

L1_crypto_update : ( sid:ui32, flags:ui16, datain1-len:ui16, datain2-len:ui16, pad-to-16[6], datain1[datain1-len], pad-to-16[...], datain2[datain2-len]) => (dataout-len, pad-to-16[14], dataout[dataout-len])