DIMA/trial4/defines.h
2021-01-13 14:32:48 +01:00

105 lines
2.2 KiB
C

/* ERROR CODES TO BE USED IN DIMA */
#define DIMASTATUS int
#define DIMASUCCESS 0
#define DIMAFAILURE -1
#define DIMAFILENOTFOUND -1001
#define DIMAINPUTERROR -1002
#define DIMAOUTPUTERROR -1003
#define DIMAINVALIDSTATE -1004
#define DIMASHAFAILURE -1005
#define DIMAECCFAILURE -1006
#define DIMARSAFAILURE -1007
#define DIMADRBGFAILURE -1008
#define DIMAHKDFFAILURE -1009
#define DIMAPKFAILURE -1010
#define DIMAFAILUREUNKWN -1111
////////////////////////////////////////////////
/* CONSTANTS TO BE USED IN DIMA */
#define SHA256_DGST_SIZE 32 //bytes
#define UDS_SIZE 8
#define HKDF_KEY_SIZE 32
#define HKDF_ALG MBEDTLS_MD_SHA256
#define ECC_CURVE MBEDTLS_ECP_DP_SECP256R1 //mbedtls_ecp_group_id
#define RSA_HASH_ID MBEDTLS_MD_SHA256
#define RSA_SIZE 2048 //4096
#define RSA_EXP 65537
#define KEY_BUF_SIZE 16000
/* SPECIFIC AND SPECIAL VALUES */
/* DO NOT CHANGE THIS BLOCK */
#define IDENTITY "Identity"
#define ALIAS "Alias"
#define SESSION "Session"
#define ACCUM_BUFF_OFFSET 2
#define ENTROPY_LEN 32
////////////////////////////////////////////////
/* DEFAULT CONFIGURATIONS */
#define DEBUG 1 //print all values when 1
#define isRSA 0
#define isECC 1
#define DFL_PKC isRSA // isECC, 1 = ECC, 0= RSA
//#define BIN 2
#define PEM 0
#define DER 1
#define DFL_FORM PEM
//#define DFL_PUB "keys/DID_pub." DFL_FORM
//#define DFL_PRIV "SecureStorage/DID_priv" DFL_FORM
//DRBG entropy source
#define SW_PRNG 0
#define HW_TRNG 1
#define DETERM 2
#define DFL_ENT DETERM
//////////////////////////////////////////////////
/* typedefs */
typedef struct
{
/*
Use this typedef to define settings and vlaues to be passed to deriveECCKeyPair()
To be used or exchanging data between ROM and FW
*/
int ENT_MODE; //SW_PRNG,HW_TRNG,DETERM,
int PKC_MODE; //isRSA, isECC
const uint8_t * seed;
const char * phrase; //IDENTITY,ALIAS,SESSION
int KEY_FORM; //BIN,PEM,DER
char * pub_file;
char * priv_file;
} KeyDrv_context;
typedef struct
{
/**
Use this typedef to feed info to hash calculator
**/
const char * filename; //in file
size_t inLen;
uint8_t * outbuf; //out buf
} Hash_contxt;
//useless structure ^ this one