summaryrefslogtreecommitdiff
path: root/tests/dtls-sliding-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dtls-sliding-window.c')
-rw-r--r--tests/dtls-sliding-window.c271
1 files changed, 124 insertions, 147 deletions
diff --git a/tests/dtls-sliding-window.c b/tests/dtls-sliding-window.c
index f26112401a..d8e3c783c5 100644
--- a/tests/dtls-sliding-window.c
+++ b/tests/dtls-sliding-window.c
@@ -41,37 +41,14 @@ struct record_parameters_st {
unsigned epoch;
};
-typedef struct {
- unsigned char i[8];
-} gnutls_uint64;
#define gnutls_assert_val(x) x
void _dtls_reset_window(struct record_parameters_st *rp);
-int _dtls_record_check(struct record_parameters_st *rp, const gnutls_uint64 * _seq);
-
-/* taken from nettle */
-#ifdef WORDS_BIGENDIAN
-# define BSWAP64(x) x
-#else
-# define BSWAP64(x) \
- ((((uint64_t)(x) & 0xff) << 56) \
- | (((uint64_t)(x) & 0xff00) << 40) \
- | (((uint64_t)(x) & 0xff0000) << 24) \
- | (((uint64_t)(x) & 0xff000000) << 8) \
- | (((uint64_t)(x) >> 8) & 0xff000000) \
- | (((uint64_t)(x) >> 24) & 0xff0000) \
- | (((uint64_t)(x) >> 40) & 0xff00) \
- | ((uint64_t)(x) >> 56) )
-#endif
+int _dtls_record_check(struct record_parameters_st *rp, uint64_t _seq);
#define DTLS_SW_NO_INCLUDES
#include "../lib/dtls-sw.c"
-static void uint64_set(gnutls_uint64* t, uint64_t v)
-{
- memcpy(t->i, &v, 8);
-}
-
#define RESET_WINDOW \
memset(&state, 0, sizeof(state))
@@ -79,78 +56,78 @@ static void uint64_set(gnutls_uint64* t, uint64_t v)
state.dtls_sw_next = (((x)&DTLS_SEQ_NUM_MASK))
#define SET_WINDOW_LAST_RECV(x) \
- uint64_set(&t, BSWAP64(x)); \
+ t = x; \
state.dtls_sw_have_recv = 1
static void check_dtls_window_uninit_0(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
- uint64_set(&t, 0);
+ t = 0;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_uninit_large(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
- uint64_set(&t, BSWAP64(LARGE_INT+1+64));
+ t = LARGE_INT+1+64;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_uninit_very_large(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
- uint64_set(&t, BSWAP64(INT_OVER_32_BITS));
+ t = INT_OVER_32_BITS;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_12(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- uint64_set(&t, BSWAP64(2));
+ t = 2;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_19(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- uint64_set(&t, BSWAP64(9));
+ t = 9;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_skip1(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
unsigned i;
RESET_WINDOW;
@@ -158,15 +135,15 @@ static void check_dtls_window_skip1(void **glob_state)
SET_WINDOW_LAST_RECV(1);
for (i=2;i<256;i+=2) {
- uint64_set(&t, BSWAP64(i));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = i;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
}
static void check_dtls_window_skip3(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
unsigned i;
RESET_WINDOW;
@@ -174,327 +151,327 @@ static void check_dtls_window_skip3(void **glob_state)
SET_WINDOW_LAST_RECV(1);
for (i=5;i<256;i+=2) {
- uint64_set(&t, BSWAP64(i));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = i;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
}
static void check_dtls_window_21(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(2);
- uint64_set(&t, BSWAP64(1));
+ t = 1;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_91(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(9);
- uint64_set(&t, BSWAP64(1));
+ t = 1;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_large_21(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
SET_WINDOW_LAST_RECV(LARGE_INT+2);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
+ t = LARGE_INT+1;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_large_12(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
SET_WINDOW_LAST_RECV(LARGE_INT+1);
- uint64_set(&t, BSWAP64(LARGE_INT+2));
+ t = LARGE_INT+2;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_large_91(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
SET_WINDOW_LAST_RECV(LARGE_INT+9);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
+ t = LARGE_INT+1;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_large_19(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
SET_WINDOW_LAST_RECV(LARGE_INT+1);
- uint64_set(&t, BSWAP64(LARGE_INT+9));
+ t = LARGE_INT+9;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_very_large_12(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
- uint64_set(&t, BSWAP64(INT_OVER_32_BITS+2));
+ t = INT_OVER_32_BITS+2;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_very_large_91(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+9);
- uint64_set(&t, BSWAP64(INT_OVER_32_BITS+1));
+ t = INT_OVER_32_BITS+1;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_very_large_19(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
- uint64_set(&t, BSWAP64(INT_OVER_32_BITS+9));
+ t = INT_OVER_32_BITS+9;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_outside(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- uint64_set(&t, BSWAP64(1+64));
+ t = 1+64;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_large_outside(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
SET_WINDOW_LAST_RECV(LARGE_INT+1);
- uint64_set(&t, BSWAP64(LARGE_INT+1+64));
+ t = LARGE_INT+1+64;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_very_large_outside(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
- uint64_set(&t, BSWAP64(INT_OVER_32_BITS+1+64));
+ t = INT_OVER_32_BITS+1+64;
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_dup1(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT-1);
SET_WINDOW_LAST_RECV(LARGE_INT);
- uint64_set(&t, BSWAP64(LARGE_INT));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+1;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+16));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+16;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
- assert_int_equal(_dtls_record_check(&state, &t), -3);
+ t = LARGE_INT+1;
+ assert_int_equal(_dtls_record_check(&state, t), -3);
}
static void check_dtls_window_dup2(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT-1);
SET_WINDOW_LAST_RECV(LARGE_INT);
- uint64_set(&t, BSWAP64(LARGE_INT));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+16));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+16;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+1;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+16));
- assert_int_equal(_dtls_record_check(&state, &t), -3);
+ t = LARGE_INT+16;
+ assert_int_equal(_dtls_record_check(&state, t), -3);
}
static void check_dtls_window_dup3(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT-1);
SET_WINDOW_LAST_RECV(LARGE_INT);
- uint64_set(&t, BSWAP64(LARGE_INT));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+16));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+16;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+15));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+15;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+14));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+14;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+5));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+5;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+5));
- assert_int_equal(_dtls_record_check(&state, &t), -3);
+ t = LARGE_INT+5;
+ assert_int_equal(_dtls_record_check(&state, t), -3);
}
static void check_dtls_window_out_of_order(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT-1);
SET_WINDOW_LAST_RECV(LARGE_INT);
- uint64_set(&t, BSWAP64(LARGE_INT));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+8));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+8;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+7));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+7;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+6));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+6;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+5));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+5;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+4));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+4;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+3));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+3;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+2));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+2;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+1));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+1;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(LARGE_INT+9));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT+9;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
}
static void check_dtls_window_epoch_higher(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT-1);
SET_WINDOW_LAST_RECV(LARGE_INT);
- uint64_set(&t, BSWAP64(LARGE_INT));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = LARGE_INT;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64((LARGE_INT+8)|0x1000000000000LL));
- assert_int_equal(_dtls_record_check(&state, &t), -1);
+ t = (LARGE_INT+8)|0x1000000000000LL;
+ assert_int_equal(_dtls_record_check(&state, t), -1);
}
static void check_dtls_window_epoch_lower(void **glob_state)
{
struct record_parameters_st state;
- gnutls_uint64 t;
+ uint64_t t;
RESET_WINDOW;
- uint64_set(&t, BSWAP64(0x1000000000000LL));
+ t = 0x1000000000000LL;
state.epoch = 1;
SET_WINDOW_NEXT(0x1000000000000LL);
SET_WINDOW_LAST_RECV((0x1000000000000LL) + 1);
- uint64_set(&t, BSWAP64(2 | 0x1000000000000LL));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = 2 | 0x1000000000000LL;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(3 | 0x1000000000000LL));
- assert_int_equal(_dtls_record_check(&state, &t), 0);
+ t = 3 | 0x1000000000000LL;
+ assert_int_equal(_dtls_record_check(&state, t), 0);
- uint64_set(&t, BSWAP64(5));
- assert_int_equal(_dtls_record_check(&state, &t), -1);
+ t = 5;
+ assert_int_equal(_dtls_record_check(&state, t), -1);
}