summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-29 18:53:23 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-29 18:53:23 +0200
commitc46a31a28751b4cad11c7475cfa739fe48dd95ac (patch)
treee2fff310fb1753a8bc897e9d503fd1cbed34ff74
parent3017a0bb1d79f0beb82258f7bc633bde512e0cc9 (diff)
downloadgnutls-c46a31a28751b4cad11c7475cfa739fe48dd95ac.tar.gz
more precise calculation of DTLS overhead
-rw-r--r--lib/gnutls_dtls.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/gnutls_dtls.c b/lib/gnutls_dtls.c
index 4ad513afc6..5e5b80ffe5 100644
--- a/lib/gnutls_dtls.c
+++ b/lib/gnutls_dtls.c
@@ -601,11 +601,9 @@ int total = 0, ret, iv_size;
if (ret < 0)
return gnutls_assert_val(ret);
- /* requires padding */
- iv_size = _gnutls_cipher_get_iv_size(params->cipher_algorithm);
-
if (_gnutls_cipher_is_block (params->cipher_algorithm) == CIPHER_BLOCK)
{
+ iv_size = _gnutls_cipher_get_iv_size(params->cipher_algorithm);
*blocksize = iv_size;
total += iv_size; /* iv_size == block_size in DTLS */
@@ -623,7 +621,12 @@ int total = 0, ret, iv_size;
total += 2;
if (params->mac_algorithm == GNUTLS_MAC_AEAD)
- total += _gnutls_cipher_get_tag_size(params->cipher_algorithm);
+ {
+ iv_size = _gnutls_cipher_get_iv_size(params->cipher_algorithm);
+ total += iv_size;
+
+ total += _gnutls_cipher_get_tag_size(params->cipher_algorithm);
+ }
else
{
ret = _gnutls_hmac_get_algo_len(params->mac_algorithm);