X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fsptps.h;h=efca2b3eab05e0b364ec61c780183b6c2e0c22ba;hb=313a752cb5fbf27450d34c15b0085d2d8a4147af;hp=ee41f46f6257bfd573e6838448286c3967ac7b88;hpb=9b9230a0a79c670b86f54fadd2807b864ff9d91f;p=tinc diff --git a/src/sptps.h b/src/sptps.h index ee41f46f..efca2b3e 100644 --- a/src/sptps.h +++ b/src/sptps.h @@ -22,8 +22,7 @@ #include "system.h" -#include "cipher.h" -#include "digest.h" +#include "chacha-poly1305/chacha-poly1305.h" #include "ecdh.h" #include "ecdsa.h" @@ -35,10 +34,13 @@ #define SPTPS_CLOSE 130 // Application closed the connection // Key exchange states -#define SPTPS_KEX 0 // Waiting for the first Key EXchange record -#define SPTPS_SECONDARY_KEX 1 // Ready to receive a secondary Key EXchange record -#define SPTPS_SIG 2 // Waiting for a SIGnature record -#define SPTPS_ACK 3 // Waiting for an ACKnowledgement record +#define SPTPS_KEX 1 // Waiting for the first Key EXchange record +#define SPTPS_SECONDARY_KEX 2 // Ready to receive a secondary Key EXchange record +#define SPTPS_SIG 3 // Waiting for a SIGnature record +#define SPTPS_ACK 4 // Waiting for an ACKnowledgement record + +// Overhead for datagrams +#define SPTPS_DATAGRAM_OVERHEAD 21 typedef bool (*send_data_t)(void *handle, uint8_t type, const char *data, size_t len); typedef bool (*receive_record_t)(void *handle, uint8_t type, const char *data, uint16_t len); @@ -53,8 +55,7 @@ typedef struct sptps { uint16_t reclen; bool instate; - cipher_t *incipher; - digest_t *indigest; + chacha_poly1305_ctx_t *incipher; uint32_t inseqno; uint32_t received; unsigned int replaywin; @@ -62,8 +63,7 @@ typedef struct sptps { char *late; bool outstate; - cipher_t *outcipher; - digest_t *outdigest; + chacha_poly1305_ctx_t *outcipher; uint32_t outseqno; ecdsa_t *mykey;