29 lines
780 B
C
29 lines
780 B
C
#ifndef MESHCORE_FRAME_HEADER
|
|
#define MESHCORE_FRAME_HEADER
|
|
|
|
#include "stddef.h"
|
|
#include "stdint.h"
|
|
#include "lib/cifra/aes.h"
|
|
#include "lib/cifra/hmac.h"
|
|
#include "packetstructs.h"
|
|
|
|
|
|
#define KEY_SIZE 16 // 128-bit AES
|
|
#define HMAC_SIZE 2 // meshcore size
|
|
#define MAX_FLOOD_TTL 64
|
|
|
|
FrameStruct decodeFrame (unsigned char *data, unsigned char dataLen);
|
|
|
|
void printFrameHeader (FrameStruct frame) ;
|
|
|
|
void sendFrame (FrameStruct frame);
|
|
|
|
void retransmitFrame (FrameStruct frame) ;
|
|
|
|
// Verify MAC + Decrypt
|
|
|
|
int encrypt_then_mac (const uint8_t *aes_key, const uint8_t keySize, const uint8_t *plaintext, size_t plen, uint8_t *output, size_t *olen);
|
|
|
|
int mac_then_decrypt (const uint8_t *aes_key, const uint8_t keySize, const uint8_t *input, size_t ilen, uint8_t *plaintext);
|
|
|
|
#endif |