Version FC

Dependencies:   DmTftLibrary eeprom SX1280Lib filesystem mbed

Fork of MSNV2-Terminal_V1-5 by Francis CHATAIN

Committer:
FCH_31
Date:
Mon Oct 22 09:37:50 2018 +0000
Revision:
41:5a436163dddf
Parent:
8:cd489b7c49a0
avec radio;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FCH_31 8:cd489b7c49a0 1 /*
FCH_31 8:cd489b7c49a0 2 * MISNet
FCH_31 8:cd489b7c49a0 3 *
FCH_31 8:cd489b7c49a0 4 * Frame: Cipher Management
FCH_31 8:cd489b7c49a0 5 *
FCH_31 8:cd489b7c49a0 6 * Created on: August 17, 2018 Author: Francis CHATAIN
FCH_31 8:cd489b7c49a0 7 *
FCH_31 8:cd489b7c49a0 8 */
FCH_31 8:cd489b7c49a0 9 #ifndef __CIPHER_H__
FCH_31 8:cd489b7c49a0 10 #define __CIPHER_H__
FCH_31 8:cd489b7c49a0 11
FCH_31 8:cd489b7c49a0 12 #define MBEDTLS_USER_CONFIG_FILE "config-ccm.h"
FCH_31 8:cd489b7c49a0 13 #include "mbed.h"
FCH_31 8:cd489b7c49a0 14 #include "mbedtls/ccm.h"
FCH_31 8:cd489b7c49a0 15
FCH_31 8:cd489b7c49a0 16
FCH_31 8:cd489b7c49a0 17 // ======================================= Define
FCH_31 8:cd489b7c49a0 18
FCH_31 8:cd489b7c49a0 19 #define KEY_AUTH 0
FCH_31 8:cd489b7c49a0 20 #define KEY_DATA 8
FCH_31 8:cd489b7c49a0 21 #define HEADER 2
FCH_31 8:cd489b7c49a0 22 #define PLAIN_DATA_SIZE 32
FCH_31 8:cd489b7c49a0 23 #define CIPHER_DATA_SIZE PLAIN_DATA_SIZE
FCH_31 8:cd489b7c49a0 24 #define KEY_SIZE 16
FCH_31 8:cd489b7c49a0 25 #define NONCE_SIZE 13
FCH_31 8:cd489b7c49a0 26 #define MISNET_SIZE HEADER + CIPHER_DATA_SIZE
FCH_31 8:cd489b7c49a0 27 #define KEY_STORE_SIZE 16
FCH_31 8:cd489b7c49a0 28 #define DEBUG false
FCH_31 8:cd489b7c49a0 29
FCH_31 8:cd489b7c49a0 30
FCH_31 8:cd489b7c49a0 31 // ======================================= Class content
FCH_31 8:cd489b7c49a0 32 class Cipher
FCH_31 8:cd489b7c49a0 33 {
FCH_31 8:cd489b7c49a0 34 // Public variable /method
FCH_31 8:cd489b7c49a0 35 public:
FCH_31 8:cd489b7c49a0 36
FCH_31 8:cd489b7c49a0 37
FCH_31 8:cd489b7c49a0 38 // Private variable /method
FCH_31 8:cd489b7c49a0 39 private:
FCH_31 8:cd489b7c49a0 40 uint32_t counters [KEY_STORE_SIZE] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; // counter 32bits long int
FCH_31 8:cd489b7c49a0 41 uint8_t key_store[KEY_STORE_SIZE][KEY_SIZE] = {
FCH_31 8:cd489b7c49a0 42 { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 },
FCH_31 8:cd489b7c49a0 43 { 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 },
FCH_31 8:cd489b7c49a0 44 { 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 },
FCH_31 8:cd489b7c49a0 45 { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 },
FCH_31 8:cd489b7c49a0 46 { 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05 },
FCH_31 8:cd489b7c49a0 47 { 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 },
FCH_31 8:cd489b7c49a0 48 { 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 },
FCH_31 8:cd489b7c49a0 49 { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 },
FCH_31 8:cd489b7c49a0 50 { 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10 },
FCH_31 8:cd489b7c49a0 51 { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
FCH_31 8:cd489b7c49a0 52 { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 },
FCH_31 8:cd489b7c49a0 53 { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 },
FCH_31 8:cd489b7c49a0 54 { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 },
FCH_31 8:cd489b7c49a0 55 { 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 },
FCH_31 8:cd489b7c49a0 56 { 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70 },
FCH_31 8:cd489b7c49a0 57 { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }
FCH_31 8:cd489b7c49a0 58 };
FCH_31 8:cd489b7c49a0 59
FCH_31 8:cd489b7c49a0 60 // Protected variable /method
FCH_31 8:cd489b7c49a0 61 protected:
FCH_31 8:cd489b7c49a0 62
FCH_31 8:cd489b7c49a0 63 } ;
FCH_31 8:cd489b7c49a0 64
FCH_31 8:cd489b7c49a0 65 #endif