Init
This commit is contained in:
61
User/meshcore/meshcore.h
Normal file
61
User/meshcore/meshcore.h
Normal file
@@ -0,0 +1,61 @@
|
||||
#ifndef MESHCORE_HEADER
|
||||
#define MESHCORE_HEADER
|
||||
|
||||
#include "packetstructs.h"
|
||||
#include "string.h"
|
||||
#include "sx1262.h"
|
||||
#include "lib/cifra/aes.h"
|
||||
#include "lib/cifra/sha2.h"
|
||||
#include "lib/cifra/hmac.h"
|
||||
#include "lib/base64.h"
|
||||
#include "util/log.h"
|
||||
#include <ctype.h>
|
||||
#include "stdio.h"
|
||||
|
||||
// requires at least a 256 byte data
|
||||
FrameStruct decodeFrame (unsigned char *data, unsigned char dataLen);
|
||||
|
||||
#define KEY_SIZE 16 // 128-bit AES
|
||||
#define HMAC_SIZE 2 // SHA256 output size
|
||||
|
||||
int aes_encrypt_ecb (const uint8_t *key, const uint8_t *input, size_t ilen,
|
||||
uint8_t *output);
|
||||
|
||||
// AES-ECB decrypt (same as Arduino's aes.decryptBlock)
|
||||
int aes_decrypt_ecb (const uint8_t *key, const uint8_t *input, size_t ilen,
|
||||
uint8_t *output);
|
||||
|
||||
// HMAC-SHA256
|
||||
int hmac_sha256 (const uint8_t *key, size_t keylen, const uint8_t *input,
|
||||
size_t ilen, uint8_t *output);
|
||||
|
||||
// Verify MAC + Decrypt
|
||||
int mac_then_decrypt (const uint8_t *aes_key, const uint8_t *input, size_t ilen,
|
||||
uint8_t *plaintext);
|
||||
|
||||
void hexdump (const char *label, const uint8_t *data, size_t len);
|
||||
|
||||
#define AESKeyCount 8
|
||||
|
||||
// EncryptedPayloadStruct decodeEncryptedPayload(FrameStruct frame);
|
||||
|
||||
GroupTextMessage decodeGroupMessage (FrameStruct frame);
|
||||
|
||||
void printGroupMessage (GroupTextMessage msg);
|
||||
|
||||
AdvertisementPayload decodeAdvertisement (FrameStruct frame);
|
||||
|
||||
void printAdvertisement (AdvertisementPayload advert);
|
||||
|
||||
void printFrameHeader (FrameStruct frame);
|
||||
|
||||
#define AESKeyCount 8
|
||||
|
||||
extern const uint8_t aesKeys[AESKeyCount][17];
|
||||
|
||||
void sendFrame (FrameStruct frame);
|
||||
void sendGroupMessage (GroupTextMessage msg);
|
||||
void makeSendGroupMessage (char *txt, uint8_t keyIndex);
|
||||
void sendAdvert();
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user