Coverage Report

Created: 2025-03-18 06:55

/src/gnutls/lib/record.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (C) 2000-2012 Free Software Foundation, Inc.
3
 *
4
 * Author: Nikos Mavrogiannopoulos
5
 *
6
 * This file is part of GnuTLS.
7
 *
8
 * The GnuTLS is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Lesser General Public License
10
 * as published by the Free Software Foundation; either version 2.1 of
11
 * the License, or (at your option) any later version.
12
 *
13
 * This library is distributed in the hope that it will be useful, but
14
 * WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public License
19
 * along with this program.  If not, see <https://www.gnu.org/licenses/>
20
 *
21
 */
22
23
#ifndef GNUTLS_LIB_RECORD_H
24
#define GNUTLS_LIB_RECORD_H
25
26
#include <gnutls/gnutls.h>
27
#include "buffers.h"
28
#include "constate.h"
29
30
ssize_t _gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
31
            gnutls_handshake_description_t htype,
32
            unsigned int epoch_rel, const void *data,
33
            size_t sizeofdata, size_t min_pad,
34
            unsigned int mflags);
35
36
inline static ssize_t
37
_gnutls_send_int(gnutls_session_t session, content_type_t type,
38
     gnutls_handshake_description_t htype, unsigned int epoch_rel,
39
     const void *_data, size_t data_size, unsigned int mflags)
40
0
{
41
0
  return _gnutls_send_tlen_int(session, type, htype, epoch_rel, _data,
42
0
             data_size, 0, mflags);
43
0
}
Unexecuted instantiation: record.c:_gnutls_send_int
Unexecuted instantiation: cipher.c:_gnutls_send_int
Unexecuted instantiation: handshake-tls13.c:_gnutls_send_int
Unexecuted instantiation: buffers.c:_gnutls_send_int
Unexecuted instantiation: handshake.c:_gnutls_send_int
Unexecuted instantiation: kx.c:_gnutls_send_int
Unexecuted instantiation: sslv2_compat.c:_gnutls_send_int
Unexecuted instantiation: constate.c:_gnutls_send_int
Unexecuted instantiation: alert.c:_gnutls_send_int
Unexecuted instantiation: state.c:_gnutls_send_int
Unexecuted instantiation: cert-cred-x509.c:_gnutls_send_int
Unexecuted instantiation: dtls.c:_gnutls_send_int
Unexecuted instantiation: system_override.c:_gnutls_send_int
Unexecuted instantiation: prf.c:_gnutls_send_int
Unexecuted instantiation: handshake-checks.c:_gnutls_send_int
Unexecuted instantiation: dtls-sw.c:_gnutls_send_int
Unexecuted instantiation: ocsp-api.c:_gnutls_send_int
Unexecuted instantiation: encrypted_extensions.c:_gnutls_send_int
Unexecuted instantiation: certificate_request.c:_gnutls_send_int
Unexecuted instantiation: certificate_verify.c:_gnutls_send_int
Unexecuted instantiation: finished.c:_gnutls_send_int
Unexecuted instantiation: key_update.c:_gnutls_send_int
Unexecuted instantiation: hello_retry.c:_gnutls_send_int
Unexecuted instantiation: session_ticket.c:_gnutls_send_int
Unexecuted instantiation: certificate.c:_gnutls_send_int
Unexecuted instantiation: early_data.c:_gnutls_send_int
Unexecuted instantiation: post_handshake.c:_gnutls_send_int
Unexecuted instantiation: heartbeat.c:_gnutls_send_int
Unexecuted instantiation: key_share.c:_gnutls_send_int
Unexecuted instantiation: pre_shared_key.c:_gnutls_send_int
Unexecuted instantiation: status_request.c:_gnutls_send_int
Unexecuted instantiation: supported_versions.c:_gnutls_send_int
Unexecuted instantiation: cert.c:_gnutls_send_int
44
45
ssize_t _gnutls_recv_int(gnutls_session_t session, content_type_t type,
46
       uint8_t *data, size_t sizeofdata, void *seq,
47
       unsigned int ms);
48
49
inline static unsigned max_record_recv_size(gnutls_session_t session)
50
0
{
51
0
  unsigned size;
52
53
0
  if (session->internals.max_recv_size == 0) {
54
0
    size = session->security_parameters.max_record_recv_size +
55
0
           RECORD_HEADER_SIZE(session);
56
0
    if (session->internals.allow_large_records != 0)
57
0
      size += EXTRA_COMP_SIZE;
58
0
  } else {
59
0
    size = session->internals.max_recv_size;
60
0
  }
61
62
0
  return size;
63
0
}
Unexecuted instantiation: record.c:max_record_recv_size
Unexecuted instantiation: cipher.c:max_record_recv_size
Unexecuted instantiation: handshake-tls13.c:max_record_recv_size
Unexecuted instantiation: buffers.c:max_record_recv_size
Unexecuted instantiation: handshake.c:max_record_recv_size
Unexecuted instantiation: kx.c:max_record_recv_size
Unexecuted instantiation: sslv2_compat.c:max_record_recv_size
Unexecuted instantiation: constate.c:max_record_recv_size
Unexecuted instantiation: alert.c:max_record_recv_size
Unexecuted instantiation: state.c:max_record_recv_size
Unexecuted instantiation: cert-cred-x509.c:max_record_recv_size
Unexecuted instantiation: dtls.c:max_record_recv_size
Unexecuted instantiation: system_override.c:max_record_recv_size
Unexecuted instantiation: prf.c:max_record_recv_size
Unexecuted instantiation: handshake-checks.c:max_record_recv_size
Unexecuted instantiation: dtls-sw.c:max_record_recv_size
Unexecuted instantiation: ocsp-api.c:max_record_recv_size
Unexecuted instantiation: encrypted_extensions.c:max_record_recv_size
Unexecuted instantiation: certificate_request.c:max_record_recv_size
Unexecuted instantiation: certificate_verify.c:max_record_recv_size
Unexecuted instantiation: finished.c:max_record_recv_size
Unexecuted instantiation: key_update.c:max_record_recv_size
Unexecuted instantiation: hello_retry.c:max_record_recv_size
Unexecuted instantiation: session_ticket.c:max_record_recv_size
Unexecuted instantiation: certificate.c:max_record_recv_size
Unexecuted instantiation: early_data.c:max_record_recv_size
Unexecuted instantiation: post_handshake.c:max_record_recv_size
Unexecuted instantiation: heartbeat.c:max_record_recv_size
Unexecuted instantiation: key_share.c:max_record_recv_size
Unexecuted instantiation: pre_shared_key.c:max_record_recv_size
Unexecuted instantiation: status_request.c:max_record_recv_size
Unexecuted instantiation: supported_versions.c:max_record_recv_size
Unexecuted instantiation: cert.c:max_record_recv_size
64
65
inline static unsigned max_decrypted_size(gnutls_session_t session)
66
0
{
67
0
  unsigned size = 0;
68
69
0
  if (session->internals.allow_large_records != 0)
70
0
    size += EXTRA_COMP_SIZE;
71
72
0
  size += session->security_parameters.max_record_recv_size;
73
74
0
  return size;
75
0
}
Unexecuted instantiation: record.c:max_decrypted_size
Unexecuted instantiation: cipher.c:max_decrypted_size
Unexecuted instantiation: handshake-tls13.c:max_decrypted_size
Unexecuted instantiation: buffers.c:max_decrypted_size
Unexecuted instantiation: handshake.c:max_decrypted_size
Unexecuted instantiation: kx.c:max_decrypted_size
Unexecuted instantiation: sslv2_compat.c:max_decrypted_size
Unexecuted instantiation: constate.c:max_decrypted_size
Unexecuted instantiation: alert.c:max_decrypted_size
Unexecuted instantiation: state.c:max_decrypted_size
Unexecuted instantiation: cert-cred-x509.c:max_decrypted_size
Unexecuted instantiation: dtls.c:max_decrypted_size
Unexecuted instantiation: system_override.c:max_decrypted_size
Unexecuted instantiation: prf.c:max_decrypted_size
Unexecuted instantiation: handshake-checks.c:max_decrypted_size
Unexecuted instantiation: dtls-sw.c:max_decrypted_size
Unexecuted instantiation: ocsp-api.c:max_decrypted_size
Unexecuted instantiation: encrypted_extensions.c:max_decrypted_size
Unexecuted instantiation: certificate_request.c:max_decrypted_size
Unexecuted instantiation: certificate_verify.c:max_decrypted_size
Unexecuted instantiation: finished.c:max_decrypted_size
Unexecuted instantiation: key_update.c:max_decrypted_size
Unexecuted instantiation: hello_retry.c:max_decrypted_size
Unexecuted instantiation: session_ticket.c:max_decrypted_size
Unexecuted instantiation: certificate.c:max_decrypted_size
Unexecuted instantiation: early_data.c:max_decrypted_size
Unexecuted instantiation: post_handshake.c:max_decrypted_size
Unexecuted instantiation: heartbeat.c:max_decrypted_size
Unexecuted instantiation: key_share.c:max_decrypted_size
Unexecuted instantiation: pre_shared_key.c:max_decrypted_size
Unexecuted instantiation: status_request.c:max_decrypted_size
Unexecuted instantiation: supported_versions.c:max_decrypted_size
Unexecuted instantiation: cert.c:max_decrypted_size
76
77
/* Returns the headers + any IV that the ciphersuite
78
 * requires */
79
inline static unsigned int get_total_headers(gnutls_session_t session)
80
0
{
81
0
  int ret;
82
0
  record_parameters_st *params;
83
0
  unsigned total = RECORD_HEADER_SIZE(session);
84
85
0
  ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, &params);
86
0
  if (ret < 0) {
87
0
    return total;
88
0
  }
89
90
0
  return total + _gnutls_cipher_get_explicit_iv_size(params->cipher);
91
0
}
Unexecuted instantiation: record.c:get_total_headers
Unexecuted instantiation: cipher.c:get_total_headers
Unexecuted instantiation: handshake-tls13.c:get_total_headers
Unexecuted instantiation: buffers.c:get_total_headers
Unexecuted instantiation: handshake.c:get_total_headers
Unexecuted instantiation: kx.c:get_total_headers
Unexecuted instantiation: sslv2_compat.c:get_total_headers
Unexecuted instantiation: constate.c:get_total_headers
Unexecuted instantiation: alert.c:get_total_headers
Unexecuted instantiation: state.c:get_total_headers
Unexecuted instantiation: cert-cred-x509.c:get_total_headers
Unexecuted instantiation: dtls.c:get_total_headers
Unexecuted instantiation: system_override.c:get_total_headers
Unexecuted instantiation: prf.c:get_total_headers
Unexecuted instantiation: handshake-checks.c:get_total_headers
Unexecuted instantiation: dtls-sw.c:get_total_headers
Unexecuted instantiation: ocsp-api.c:get_total_headers
Unexecuted instantiation: encrypted_extensions.c:get_total_headers
Unexecuted instantiation: certificate_request.c:get_total_headers
Unexecuted instantiation: certificate_verify.c:get_total_headers
Unexecuted instantiation: finished.c:get_total_headers
Unexecuted instantiation: key_update.c:get_total_headers
Unexecuted instantiation: hello_retry.c:get_total_headers
Unexecuted instantiation: session_ticket.c:get_total_headers
Unexecuted instantiation: certificate.c:get_total_headers
Unexecuted instantiation: early_data.c:get_total_headers
Unexecuted instantiation: post_handshake.c:get_total_headers
Unexecuted instantiation: heartbeat.c:get_total_headers
Unexecuted instantiation: key_share.c:get_total_headers
Unexecuted instantiation: pre_shared_key.c:get_total_headers
Unexecuted instantiation: status_request.c:get_total_headers
Unexecuted instantiation: supported_versions.c:get_total_headers
Unexecuted instantiation: cert.c:get_total_headers
92
93
inline static unsigned int get_total_headers2(gnutls_session_t session,
94
                record_parameters_st *params)
95
0
{
96
0
  unsigned total = RECORD_HEADER_SIZE(session);
97
98
0
  return total + _gnutls_cipher_get_explicit_iv_size(params->cipher);
99
0
}
Unexecuted instantiation: record.c:get_total_headers2
Unexecuted instantiation: cipher.c:get_total_headers2
Unexecuted instantiation: handshake-tls13.c:get_total_headers2
Unexecuted instantiation: buffers.c:get_total_headers2
Unexecuted instantiation: handshake.c:get_total_headers2
Unexecuted instantiation: kx.c:get_total_headers2
Unexecuted instantiation: sslv2_compat.c:get_total_headers2
Unexecuted instantiation: constate.c:get_total_headers2
Unexecuted instantiation: alert.c:get_total_headers2
Unexecuted instantiation: state.c:get_total_headers2
Unexecuted instantiation: cert-cred-x509.c:get_total_headers2
Unexecuted instantiation: dtls.c:get_total_headers2
Unexecuted instantiation: system_override.c:get_total_headers2
Unexecuted instantiation: prf.c:get_total_headers2
Unexecuted instantiation: handshake-checks.c:get_total_headers2
Unexecuted instantiation: dtls-sw.c:get_total_headers2
Unexecuted instantiation: ocsp-api.c:get_total_headers2
Unexecuted instantiation: encrypted_extensions.c:get_total_headers2
Unexecuted instantiation: certificate_request.c:get_total_headers2
Unexecuted instantiation: certificate_verify.c:get_total_headers2
Unexecuted instantiation: finished.c:get_total_headers2
Unexecuted instantiation: key_update.c:get_total_headers2
Unexecuted instantiation: hello_retry.c:get_total_headers2
Unexecuted instantiation: session_ticket.c:get_total_headers2
Unexecuted instantiation: certificate.c:get_total_headers2
Unexecuted instantiation: early_data.c:get_total_headers2
Unexecuted instantiation: post_handshake.c:get_total_headers2
Unexecuted instantiation: heartbeat.c:get_total_headers2
Unexecuted instantiation: key_share.c:get_total_headers2
Unexecuted instantiation: pre_shared_key.c:get_total_headers2
Unexecuted instantiation: status_request.c:get_total_headers2
Unexecuted instantiation: supported_versions.c:get_total_headers2
Unexecuted instantiation: cert.c:get_total_headers2
100
101
inline static void session_invalidate(gnutls_session_t session)
102
0
{
103
0
  session->internals.invalid_connection = 1;
104
0
}
Unexecuted instantiation: record.c:session_invalidate
Unexecuted instantiation: cipher.c:session_invalidate
Unexecuted instantiation: handshake-tls13.c:session_invalidate
Unexecuted instantiation: buffers.c:session_invalidate
Unexecuted instantiation: handshake.c:session_invalidate
Unexecuted instantiation: kx.c:session_invalidate
Unexecuted instantiation: sslv2_compat.c:session_invalidate
Unexecuted instantiation: constate.c:session_invalidate
Unexecuted instantiation: alert.c:session_invalidate
Unexecuted instantiation: state.c:session_invalidate
Unexecuted instantiation: cert-cred-x509.c:session_invalidate
Unexecuted instantiation: dtls.c:session_invalidate
Unexecuted instantiation: system_override.c:session_invalidate
Unexecuted instantiation: prf.c:session_invalidate
Unexecuted instantiation: handshake-checks.c:session_invalidate
Unexecuted instantiation: dtls-sw.c:session_invalidate
Unexecuted instantiation: ocsp-api.c:session_invalidate
Unexecuted instantiation: encrypted_extensions.c:session_invalidate
Unexecuted instantiation: certificate_request.c:session_invalidate
Unexecuted instantiation: certificate_verify.c:session_invalidate
Unexecuted instantiation: finished.c:session_invalidate
Unexecuted instantiation: key_update.c:session_invalidate
Unexecuted instantiation: hello_retry.c:session_invalidate
Unexecuted instantiation: session_ticket.c:session_invalidate
Unexecuted instantiation: certificate.c:session_invalidate
Unexecuted instantiation: early_data.c:session_invalidate
Unexecuted instantiation: post_handshake.c:session_invalidate
Unexecuted instantiation: heartbeat.c:session_invalidate
Unexecuted instantiation: key_share.c:session_invalidate
Unexecuted instantiation: pre_shared_key.c:session_invalidate
Unexecuted instantiation: status_request.c:session_invalidate
Unexecuted instantiation: supported_versions.c:session_invalidate
Unexecuted instantiation: cert.c:session_invalidate
105
106
#endif /* GNUTLS_LIB_RECORD_H */