Skip to content

Commit

Permalink
Rename DTLS1_BITMAP to DTLS_BITMAP
Browse files Browse the repository at this point in the history
The 1 in DTLS1 is confusing and is removed. We also tweak the structure
to always be able to track 64 packets regardless of whether we are on a
32 bit or 64 bit system.

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from #18132)
  • Loading branch information
mattcaswell committed Aug 18, 2022
1 parent df60982 commit f6aab7b
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 18 deletions.
16 changes: 8 additions & 8 deletions ssl/record/methods/dtls_meth.c
Expand Up @@ -36,7 +36,7 @@ static int satsub64be(const unsigned char *v1, const unsigned char *v2)
return (int)ret;
}

static int dtls_record_replay_check(OSSL_RECORD_LAYER *rl, DTLS1_BITMAP *bitmap)
static int dtls_record_replay_check(OSSL_RECORD_LAYER *rl, DTLS_BITMAP *bitmap)
{
int cmp;
unsigned int shift;
Expand All @@ -50,15 +50,15 @@ static int dtls_record_replay_check(OSSL_RECORD_LAYER *rl, DTLS1_BITMAP *bitmap)
shift = -cmp;
if (shift >= sizeof(bitmap->map) * 8)
return 0; /* stale, outside the window */
else if (bitmap->map & (1UL << shift))
else if (bitmap->map & ((uint64_t)1 << shift))
return 0; /* record previously received */

SSL3_RECORD_set_seq_num(&rl->rrec[0], seq);
return 1;
}

static void dtls_record_bitmap_update(OSSL_RECORD_LAYER *rl,
DTLS1_BITMAP *bitmap)
DTLS_BITMAP *bitmap)
{
int cmp;
unsigned int shift;
Expand All @@ -75,12 +75,12 @@ static void dtls_record_bitmap_update(OSSL_RECORD_LAYER *rl,
} else {
shift = -cmp;
if (shift < sizeof(bitmap->map) * 8)
bitmap->map |= 1UL << shift;
bitmap->map |= (uint64_t)1 << shift;
}
}

static DTLS1_BITMAP *dtls_get_bitmap(OSSL_RECORD_LAYER *rl, SSL3_RECORD *rr,
unsigned int *is_next_epoch)
static DTLS_BITMAP *dtls_get_bitmap(OSSL_RECORD_LAYER *rl, SSL3_RECORD *rr,
unsigned int *is_next_epoch)
{
*is_next_epoch = 0;

Expand Down Expand Up @@ -108,7 +108,7 @@ static void dtls_set_in_init(OSSL_RECORD_LAYER *rl, int in_init)
rl->in_init = in_init;
}

static int dtls_process_record(OSSL_RECORD_LAYER *rl, DTLS1_BITMAP *bitmap)
static int dtls_process_record(OSSL_RECORD_LAYER *rl, DTLS_BITMAP *bitmap)
{
int i;
int enc_err;
Expand Down Expand Up @@ -387,7 +387,7 @@ int dtls_get_more_records(OSSL_RECORD_LAYER *rl)
SSL3_RECORD *rr;
unsigned char *p = NULL;
unsigned short version;
DTLS1_BITMAP *bitmap;
DTLS_BITMAP *bitmap;
unsigned int is_next_epoch;

rl->num_recs = 0;
Expand Down
11 changes: 9 additions & 2 deletions ssl/record/methods/recmethod_local.h
Expand Up @@ -13,6 +13,13 @@
#include "../../ssl_local.h"
#include "../record_local.h"

typedef struct dtls_bitmap_st {
/* Track 64 packets */
uint64_t map;
/* Max record number seen so far, 64-bit value in big-endian encoding */
unsigned char max_seq_num[SEQ_NUM_SIZE];
} DTLS_BITMAP;

/* Protocol version specific function pointers */
struct record_functions_st
{
Expand Down Expand Up @@ -172,9 +179,9 @@ struct ossl_record_layer_st
record_pqueue processed_rcds;

/* records being received in the current epoch */
DTLS1_BITMAP bitmap;
DTLS_BITMAP bitmap;
/* renegotiation starts a new set of sequence numbers */
DTLS1_BITMAP next_bitmap;
DTLS_BITMAP next_bitmap;

/*
* Whether we are currently in a hanshake or not. Only maintained for DTLS
Expand Down
7 changes: 0 additions & 7 deletions ssl/record/record.h
Expand Up @@ -92,13 +92,6 @@ typedef struct tls_record_st {
#endif
} TLS_RECORD;

typedef struct dtls1_bitmap_st {
/* Track 32 packets on 32-bit systems and 64 - on 64-bit systems */
unsigned long map;
/* Max record number seen so far, 64-bit value in big-endian encoding */
unsigned char max_seq_num[SEQ_NUM_SIZE];
} DTLS1_BITMAP;

typedef struct record_pqueue_st {
uint16_t epoch;
struct pqueue_st *q;
Expand Down
2 changes: 1 addition & 1 deletion util/indent.pro
Expand Up @@ -188,7 +188,7 @@
-T DSO_METHOD
-T DSO_NAME_CONVERTER_FUNC
-T DSO_VMS_INTERNAL
-T DTLS1_BITMAP
-T DTLS_BITMAP
-T DTLS1_RECORD_DATA
-T DTLS1_STATE
-T Dl_info
Expand Down

0 comments on commit f6aab7b

Please sign in to comment.