summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2022-07-27 14:44:28 +0100
committerMatt Caswell <matt@openssl.org>2022-08-18 16:38:14 +0100
commitf6aab7b1e1410cf28ec45410aa4ee54f40baf13d (patch)
tree07b618cc0e19f5d17c9e306fe7f4d5b2b3c8d72d /ssl
parentdf60982574338309856d4f746a2b641c108b1276 (diff)
Rename DTLS1_BITMAP to DTLS_BITMAP
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 https://github.com/openssl/openssl/pull/18132)
Diffstat (limited to 'ssl')
-rw-r--r--ssl/record/methods/dtls_meth.c16
-rw-r--r--ssl/record/methods/recmethod_local.h11
-rw-r--r--ssl/record/record.h7
3 files changed, 17 insertions, 17 deletions
diff --git a/ssl/record/methods/dtls_meth.c b/ssl/record/methods/dtls_meth.c
index e24614a1bd..d5dae75c4f 100644
--- a/ssl/record/methods/dtls_meth.c
+++ b/ssl/record/methods/dtls_meth.c
@@ -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;
@@ -50,7 +50,7 @@ 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);
@@ -58,7 +58,7 @@ static int dtls_record_replay_check(OSSL_RECORD_LAYER *rl, DTLS1_BITMAP *bitmap)
}
static void dtls_record_bitmap_update(OSSL_RECORD_LAYER *rl,
- DTLS1_BITMAP *bitmap)
+ DTLS_BITMAP *bitmap)
{
int cmp;
unsigned int shift;
@@ -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;
@@ -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;
@@ -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;
diff --git a/ssl/record/methods/recmethod_local.h b/ssl/record/methods/recmethod_local.h
index 69cb77938b..d85e377b68 100644
--- a/ssl/record/methods/recmethod_local.h
+++ b/ssl/record/methods/recmethod_local.h
@@ -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
{
@@ -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
diff --git a/ssl/record/record.h b/ssl/record/record.h
index d6f46efa52..0d2f0adf3e 100644
--- a/ssl/record/record.h
+++ b/ssl/record/record.h
@@ -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;