From: Nikos Mavrogiannopoulos Date: Sun, 28 Jul 2013 09:05:00 +0000 (+0200) Subject: use common macros to calculate the overhead. X-Git-Tag: gnutls_3_2_3pre0~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6ffe3a5e0102feb7b6fa49a70962c0a1073397ff;p=thirdparty%2Fgnutls.git use common macros to calculate the overhead. --- diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h index e5eb7150e1..b9904b2c57 100644 --- a/lib/gnutls_int.h +++ b/lib/gnutls_int.h @@ -183,12 +183,12 @@ typedef enum record_flush_t #define MAX_RECORD_HEADER_SIZE DTLS_RECORD_HEADER_SIZE #define MAX_USER_SEND_SIZE(session) (IS_DTLS(session)?((size_t)gnutls_dtls_get_data_mtu(session)):(size_t)session->security_parameters.max_record_send_size) -#define MAX_RECORD_SEND_SIZE(session) (IS_DTLS(session)?((size_t)gnutls_dtls_get_mtu(session)):(size_t)session->security_parameters.max_record_send_size+MAX_RECORD_OVERHEAD) +#define MAX_RECORD_SEND_SIZE(session) (IS_DTLS(session)?((size_t)gnutls_dtls_get_mtu(session)):(size_t)session->security_parameters.max_record_send_size+MAX_RECORD_OVERHEAD(session)) #define MAX_RECORD_RECV_SIZE(session) ((size_t)session->security_parameters.max_record_recv_size) #define MAX_PAD_SIZE 255 #define EXTRA_COMP_SIZE 2048 -#define MAX_RECORD_OVERHEAD (MAX_CIPHER_BLOCK_SIZE/*iv*/+MAX_PAD_SIZE+EXTRA_COMP_SIZE+MAX_HASH_SIZE/*MAC*/) -#define MAX_RECV_SIZE(session) (MAX_RECORD_OVERHEAD+MAX_RECORD_RECV_SIZE(session)+RECORD_HEADER_SIZE(session)) +#define MAX_RECORD_OVERHEAD(session) (MAX_CIPHER_BLOCK_SIZE/*iv*/+MAX_PAD_SIZE+(gnutls_compression_get(session)!=GNUTLS_COMP_NULL)?EXTRA_COMP_SIZE:0+MAX_HASH_SIZE/*MAC*/) +#define MAX_RECV_SIZE(session) (MAX_RECORD_OVERHEAD(session)+MAX_RECORD_RECV_SIZE(session)+RECORD_HEADER_SIZE(session)) #define TLS_HANDSHAKE_HEADER_SIZE 4 #define DTLS_HANDSHAKE_HEADER_SIZE (TLS_HANDSHAKE_HEADER_SIZE+8) diff --git a/lib/gnutls_record.h b/lib/gnutls_record.h index aff6f96979..0e21552151 100644 --- a/lib/gnutls_record.h +++ b/lib/gnutls_record.h @@ -51,13 +51,11 @@ static int get_max_decrypted_data(gnutls_session_t session) { int ret; - if (gnutls_compression_get (session) != GNUTLS_COMP_NULL || - session->internals.priorities.allow_large_records != 0) - ret = MAX_RECORD_RECV_SIZE(session) + EXTRA_COMP_SIZE; - else - ret = MAX_RECORD_RECV_SIZE(session); + ret = MAX_RECORD_RECV_SIZE(session) + MAX_RECORD_OVERHEAD(session); - ret += MAX_PAD_SIZE + MAX_HASH_SIZE + MAX_CIPHER_BLOCK_SIZE; + if (session->internals.priorities.allow_large_records != 0 && + gnutls_compression_get(session)==GNUTLS_COMP_NULL) + ret += EXTRA_COMP_SIZE; return ret; }