Line | Count | Source |
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 | 76.8k | { |
41 | 76.8k | return _gnutls_send_tlen_int(session, type, htype, epoch_rel, _data, |
42 | 76.8k | data_size, 0, mflags); |
43 | 76.8k | } Unexecuted instantiation: cert-cred-x509.c:_gnutls_send_int Unexecuted instantiation: kx.c:_gnutls_send_int Unexecuted instantiation: state.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: dtls-sw.c:_gnutls_send_int Unexecuted instantiation: ocsp-api.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: session_ticket.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 Unexecuted instantiation: record.c:_gnutls_send_int Unexecuted instantiation: cipher.c:_gnutls_send_int Unexecuted instantiation: handshake-tls13.c:_gnutls_send_int buffers.c:_gnutls_send_int Line | Count | Source | 40 | 76.8k | { | 41 | 76.8k | return _gnutls_send_tlen_int(session, type, htype, epoch_rel, _data, | 42 | 76.8k | data_size, 0, mflags); | 43 | 76.8k | } |
Unexecuted instantiation: handshake.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: handshake-checks.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: certificate.c:_gnutls_send_int Unexecuted instantiation: early_data.c:_gnutls_send_int Unexecuted instantiation: post_handshake.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 | 7.77M | { |
51 | 7.77M | unsigned size; |
52 | | |
53 | 7.77M | if (session->internals.max_recv_size == 0) { |
54 | 7.15M | size = session->security_parameters.max_record_recv_size + |
55 | 7.15M | RECORD_HEADER_SIZE(session); |
56 | 7.15M | if (session->internals.allow_large_records != 0) |
57 | 0 | size += EXTRA_COMP_SIZE; |
58 | 7.15M | } else { |
59 | 615k | size = session->internals.max_recv_size; |
60 | 615k | } |
61 | | |
62 | 7.77M | return size; |
63 | 7.77M | } Unexecuted instantiation: cert-cred-x509.c:max_record_recv_size Unexecuted instantiation: kx.c:max_record_recv_size Unexecuted instantiation: state.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: dtls-sw.c:max_record_recv_size Unexecuted instantiation: ocsp-api.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: session_ticket.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 record.c:max_record_recv_size Line | Count | Source | 50 | 1.18M | { | 51 | 1.18M | unsigned size; | 52 | | | 53 | 1.18M | if (session->internals.max_recv_size == 0) { | 54 | 1.10M | size = session->security_parameters.max_record_recv_size + | 55 | 1.10M | RECORD_HEADER_SIZE(session); | 56 | 1.10M | if (session->internals.allow_large_records != 0) | 57 | 0 | size += EXTRA_COMP_SIZE; | 58 | 1.10M | } else { | 59 | 85.5k | size = session->internals.max_recv_size; | 60 | 85.5k | } | 61 | | | 62 | 1.18M | return size; | 63 | 1.18M | } |
Unexecuted instantiation: cipher.c:max_record_recv_size Unexecuted instantiation: handshake-tls13.c:max_record_recv_size buffers.c:max_record_recv_size Line | Count | Source | 50 | 6.58M | { | 51 | 6.58M | unsigned size; | 52 | | | 53 | 6.58M | if (session->internals.max_recv_size == 0) { | 54 | 6.05M | size = session->security_parameters.max_record_recv_size + | 55 | 6.05M | RECORD_HEADER_SIZE(session); | 56 | 6.05M | if (session->internals.allow_large_records != 0) | 57 | 0 | size += EXTRA_COMP_SIZE; | 58 | 6.05M | } else { | 59 | 530k | size = session->internals.max_recv_size; | 60 | 530k | } | 61 | | | 62 | 6.58M | return size; | 63 | 6.58M | } |
Unexecuted instantiation: handshake.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: handshake-checks.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: certificate.c:max_record_recv_size Unexecuted instantiation: early_data.c:max_record_recv_size Unexecuted instantiation: post_handshake.c:max_record_recv_size |
64 | | |
65 | | inline static unsigned max_decrypted_size(gnutls_session_t session) |
66 | 2.28M | { |
67 | 2.28M | unsigned size = 0; |
68 | | |
69 | 2.28M | if (session->internals.allow_large_records != 0) |
70 | 0 | size += EXTRA_COMP_SIZE; |
71 | | |
72 | 2.28M | size += session->security_parameters.max_record_recv_size; |
73 | | |
74 | 2.28M | return size; |
75 | 2.28M | } Unexecuted instantiation: cert-cred-x509.c:max_decrypted_size Unexecuted instantiation: kx.c:max_decrypted_size Unexecuted instantiation: state.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: dtls-sw.c:max_decrypted_size Unexecuted instantiation: ocsp-api.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: session_ticket.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 record.c:max_decrypted_size Line | Count | Source | 66 | 2.28M | { | 67 | 2.28M | unsigned size = 0; | 68 | | | 69 | 2.28M | if (session->internals.allow_large_records != 0) | 70 | 0 | size += EXTRA_COMP_SIZE; | 71 | | | 72 | 2.28M | size += session->security_parameters.max_record_recv_size; | 73 | | | 74 | 2.28M | return size; | 75 | 2.28M | } |
cipher.c:max_decrypted_size Line | Count | Source | 66 | 1 | { | 67 | 1 | unsigned size = 0; | 68 | | | 69 | 1 | if (session->internals.allow_large_records != 0) | 70 | 0 | size += EXTRA_COMP_SIZE; | 71 | | | 72 | 1 | size += session->security_parameters.max_record_recv_size; | 73 | | | 74 | 1 | return size; | 75 | 1 | } |
Unexecuted instantiation: handshake-tls13.c:max_decrypted_size Unexecuted instantiation: buffers.c:max_decrypted_size Unexecuted instantiation: handshake.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: handshake-checks.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: certificate.c:max_decrypted_size Unexecuted instantiation: early_data.c:max_decrypted_size Unexecuted instantiation: post_handshake.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 | 2.09M | { |
81 | 2.09M | int ret; |
82 | 2.09M | record_parameters_st *params; |
83 | 2.09M | unsigned total = RECORD_HEADER_SIZE(session); |
84 | | |
85 | 2.09M | ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, ¶ms); |
86 | 2.09M | if (ret < 0) { |
87 | 0 | return total; |
88 | 0 | } |
89 | | |
90 | 2.09M | return total + _gnutls_cipher_get_explicit_iv_size(params->cipher); |
91 | 2.09M | } Unexecuted instantiation: cert-cred-x509.c:get_total_headers Unexecuted instantiation: kx.c:get_total_headers Unexecuted instantiation: state.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: dtls-sw.c:get_total_headers Unexecuted instantiation: ocsp-api.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: session_ticket.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 Unexecuted instantiation: record.c:get_total_headers Unexecuted instantiation: cipher.c:get_total_headers Unexecuted instantiation: handshake-tls13.c:get_total_headers buffers.c:get_total_headers Line | Count | Source | 80 | 2.09M | { | 81 | 2.09M | int ret; | 82 | 2.09M | record_parameters_st *params; | 83 | 2.09M | unsigned total = RECORD_HEADER_SIZE(session); | 84 | | | 85 | 2.09M | ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, ¶ms); | 86 | 2.09M | if (ret < 0) { | 87 | 0 | return total; | 88 | 0 | } | 89 | | | 90 | 2.09M | return total + _gnutls_cipher_get_explicit_iv_size(params->cipher); | 91 | 2.09M | } |
Unexecuted instantiation: handshake.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: handshake-checks.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: certificate.c:get_total_headers Unexecuted instantiation: early_data.c:get_total_headers Unexecuted instantiation: post_handshake.c:get_total_headers |
92 | | |
93 | | inline static unsigned int get_total_headers2(gnutls_session_t session, |
94 | | record_parameters_st *params) |
95 | 2.45M | { |
96 | 2.45M | unsigned total = RECORD_HEADER_SIZE(session); |
97 | | |
98 | 2.45M | return total + _gnutls_cipher_get_explicit_iv_size(params->cipher); |
99 | 2.45M | } Unexecuted instantiation: cert-cred-x509.c:get_total_headers2 Unexecuted instantiation: kx.c:get_total_headers2 Unexecuted instantiation: state.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: dtls-sw.c:get_total_headers2 Unexecuted instantiation: ocsp-api.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: session_ticket.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 record.c:get_total_headers2 Line | Count | Source | 95 | 2.45M | { | 96 | 2.45M | unsigned total = RECORD_HEADER_SIZE(session); | 97 | | | 98 | 2.45M | return total + _gnutls_cipher_get_explicit_iv_size(params->cipher); | 99 | 2.45M | } |
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: sslv2_compat.c:get_total_headers2 Unexecuted instantiation: constate.c:get_total_headers2 Unexecuted instantiation: alert.c:get_total_headers2 Unexecuted instantiation: handshake-checks.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: certificate.c:get_total_headers2 Unexecuted instantiation: early_data.c:get_total_headers2 Unexecuted instantiation: post_handshake.c:get_total_headers2 |
100 | | |
101 | | inline static void session_invalidate(gnutls_session_t session) |
102 | 55.8k | { |
103 | 55.8k | session->internals.invalid_connection = 1; |
104 | 55.8k | } Unexecuted instantiation: cert-cred-x509.c:session_invalidate Unexecuted instantiation: kx.c:session_invalidate Unexecuted instantiation: state.c:session_invalidate Unexecuted instantiation: dtls.c:session_invalidate Unexecuted instantiation: system_override.c:session_invalidate Unexecuted instantiation: prf.c:session_invalidate Unexecuted instantiation: dtls-sw.c:session_invalidate Unexecuted instantiation: ocsp-api.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: session_ticket.c:session_invalidate Unexecuted instantiation: status_request.c:session_invalidate Unexecuted instantiation: supported_versions.c:session_invalidate Unexecuted instantiation: cert.c:session_invalidate record.c:session_invalidate Line | Count | Source | 102 | 14.0k | { | 103 | 14.0k | session->internals.invalid_connection = 1; | 104 | 14.0k | } |
Unexecuted instantiation: cipher.c:session_invalidate handshake-tls13.c:session_invalidate Line | Count | Source | 102 | 7.26k | { | 103 | 7.26k | session->internals.invalid_connection = 1; | 104 | 7.26k | } |
Unexecuted instantiation: buffers.c:session_invalidate handshake.c:session_invalidate Line | Count | Source | 102 | 34.5k | { | 103 | 34.5k | session->internals.invalid_connection = 1; | 104 | 34.5k | } |
Unexecuted instantiation: sslv2_compat.c:session_invalidate Unexecuted instantiation: constate.c:session_invalidate Unexecuted instantiation: alert.c:session_invalidate Unexecuted instantiation: handshake-checks.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: certificate.c:session_invalidate Unexecuted instantiation: early_data.c:session_invalidate Unexecuted instantiation: post_handshake.c:session_invalidate |
105 | | |
106 | | #endif /* GNUTLS_LIB_RECORD_H */ |