SEcube
SEcube Open Source Library - Device
se3_common.h
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include "se3c0def.h"
10 #include "aes256.h"
11 #include "sha256.h"
12 #include "pbkdf2.h"
13 
14 extern const uint8_t se3_magic[SE3_MAGIC_SIZE];
15 
23 uint16_t se3_req_len_data(uint16_t len_data_and_headers);
24 
32 uint16_t se3_req_len_data_and_headers(uint16_t len_data);
33 
41 uint16_t se3_resp_len_data(uint16_t len_data_and_headers);
42 
50 uint16_t se3_resp_len_data_and_headers(uint16_t len_data);
51 
59 uint16_t se3_nblocks(uint16_t len);
60 
61 /*
62 enum {
63  SE3_PAYL_CRYPTO = 1,
64  SE3_PAYL_SIGN = 2,
65  SE3_PAYL_CRYPTO_SIGN = 3
66 };*/
67 
68 typedef struct se3_payload_cryptoctx_ {
69  B5_tAesCtx aesenc;
70  B5_tAesCtx aesdec;
71  B5_tHmacSha256Ctx hmac;
72  uint8_t hmac_key[B5_AES_256];
73  uint8_t auth[B5_SHA256_DIGEST_SIZE];
75 void se3_payload_cryptoinit(se3_payload_cryptoctx* ctx, const uint8_t* key);
76 void se3_payload_encrypt(se3_payload_cryptoctx* ctx, uint8_t* auth, uint8_t* iv, uint8_t* data, uint16_t nblocks, uint16_t flags);
77 bool se3_payload_decrypt(se3_payload_cryptoctx* ctx, const uint8_t* auth, const uint8_t* iv, uint8_t* data, uint16_t nblocks, uint16_t flags);
uint16_t se3_nblocks(uint16_t len)
Compute number of SE3_COMM_BLOCK blocks, given length in Bytes.
Definition: se3_common.c:66
uint16_t se3_req_len_data(uint16_t len_data_and_headers)
Compute length of data in a request in terms of SE3_COMM_BLOCK blocks.
Definition: se3_common.c:10
#define B5_AES_256
Definition: aes256.h:42
uint16_t se3_req_len_data_and_headers(uint16_t len_data)
Compute length of data in a request accounting for headers.
Definition: se3_common.c:24
uint16_t se3_resp_len_data(uint16_t len_data_and_headers)
Compute length of data in a request in terms of SE3_COMM_BLOCK blocks.
Definition: se3_common.c:38
Definition: se3_common.h:68
Definition: aes256.h:75
uint16_t se3_resp_len_data_and_headers(uint16_t len_data)
Compute length of data in a response accounting for headers.
Definition: se3_common.c:52
Definition: sha256.h:103