2020-06-16 19:21:06 +02:00
|
|
|
#include <stdint.h>
|
2020-06-16 09:42:38 +02:00
|
|
|
|
|
|
|
|
2020-06-16 19:21:06 +02:00
|
|
|
#include "n2n.h"
|
2020-06-16 21:42:02 +02:00
|
|
|
#include "speck.h"
|
|
|
|
|
2020-06-17 10:05:50 +02:00
|
|
|
|
2020-06-16 19:21:06 +02:00
|
|
|
typedef struct speck_context_t he_context_t;
|
|
|
|
|
|
|
|
|
|
|
|
/* Header encryption indicators */
|
2020-06-16 09:42:38 +02:00
|
|
|
#define HEADER_ENCRYPTION_UNKNOWN 0
|
|
|
|
#define HEADER_ENCRYPTION_NONE 1
|
|
|
|
#define HEADER_ENCRYPTION_ENABLED 2
|
|
|
|
|
|
|
|
|
2020-06-16 19:21:06 +02:00
|
|
|
uint32_t packet_header_decrypt (uint8_t packet[], uint8_t packet_len,
|
2020-06-16 09:42:38 +02:00
|
|
|
char * community_name, he_context_t * ctx);
|
|
|
|
|
|
|
|
|
2020-06-16 19:27:51 +02:00
|
|
|
int8_t packet_header_decrypt_if_required (uint8_t packet[], uint16_t packet_len,
|
|
|
|
struct sn_community * communities);
|
2020-06-16 19:21:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
int32_t packet_header_encrypt (uint8_t packet[], uint8_t header_len, he_context_t * ctx);
|
|
|
|
|
|
|
|
|
2020-06-16 21:42:02 +02:00
|
|
|
void packet_header_setup_key (char * community_name, he_context_t * ctx);
|