Version FC
Dependencies: DmTftLibrary eeprom SX1280Lib filesystem mbed
Fork of MSNV2-Terminal_V1-5 by
Cipher.h@41:5a436163dddf, 2018-10-22 (annotated)
- 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?
User | Revision | Line number | New 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 |