Coverage Report

Created: 2024-06-20 06:28

/src/gnutls/lib/str.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (C) 2000-2012 Free Software Foundation, Inc.
3
 * Copyright (C) 2016-2017 Red Hat, Inc.
4
 *
5
 * Author: Nikos Mavrogiannopoulos
6
 *
7
 * This file is part of GnuTLS.
8
 *
9
 * The GnuTLS is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU Lesser General Public License
11
 * as published by the Free Software Foundation; either version 2.1 of
12
 * the License, or (at your option) any later version.
13
 *
14
 * This library is distributed in the hope that it will be useful, but
15
 * WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
 * Lesser General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public License
20
 * along with this program.  If not, see <https://www.gnu.org/licenses/>
21
 *
22
 */
23
24
#ifndef GNUTLS_LIB_STR_H
25
#define GNUTLS_LIB_STR_H
26
27
#include "config.h"
28
#include "gnutls_int.h"
29
#include "errors.h"
30
#include "datum.h"
31
#include <c-ctype.h>
32
#include "errors.h"
33
34
#ifdef HAVE_DCGETTEXT
35
#include "gettext.h"
36
0
#define _(String) dgettext(PACKAGE, String)
37
#define N_(String) gettext_noop(String)
38
#else
39
#define _(String) String
40
#define N_(String) String
41
#endif
42
43
int gnutls_utf8_password_normalize(const uint8_t *password,
44
           unsigned password_len, gnutls_datum_t *out,
45
           unsigned flags);
46
47
#define _gnutls_utf8_password_normalize(p, plen, out, ignore_errs) \
48
0
  gnutls_utf8_password_normalize(                            \
49
0
    (unsigned char *)p, plen, out,                     \
50
0
    ignore_errs ? (GNUTLS_UTF8_IGNORE_ERRS) : 0)
51
52
int _gnutls_idna_email_map(const char *input, unsigned ilen,
53
         gnutls_datum_t *output);
54
int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen,
55
           gnutls_datum_t *output);
56
57
inline static unsigned _gnutls_str_is_print(const char *str, unsigned size)
58
0
{
59
0
  unsigned i;
60
0
  for (i = 0; i < size; i++) {
61
0
    if (!c_isprint(str[i]))
62
0
      return 0;
63
0
  }
64
0
  return 1;
65
0
}
Unexecuted instantiation: crypto-api.c:_gnutls_str_is_print
Unexecuted instantiation: fips.c:_gnutls_str_is_print
Unexecuted instantiation: safe-memfuncs.c:_gnutls_str_is_print
Unexecuted instantiation: iov.c:_gnutls_str_is_print
Unexecuted instantiation: ciphers.c:_gnutls_str_is_print
Unexecuted instantiation: mac.c:_gnutls_str_is_print
Unexecuted instantiation: errors.c:_gnutls_str_is_print
Unexecuted instantiation: hash_int.c:_gnutls_str_is_print
Unexecuted instantiation: cipher_int.c:_gnutls_str_is_print
Unexecuted instantiation: global.c:_gnutls_str_is_print
Unexecuted instantiation: mem.c:_gnutls_str_is_print
Unexecuted instantiation: system.c:_gnutls_str_is_print
Unexecuted instantiation: str.c:_gnutls_str_is_print
Unexecuted instantiation: supplemental.c:_gnutls_str_is_print
Unexecuted instantiation: random.c:_gnutls_str_is_print
Unexecuted instantiation: crypto-backend.c:_gnutls_str_is_print
Unexecuted instantiation: atfork.c:_gnutls_str_is_print
Unexecuted instantiation: keys-dummy.c:_gnutls_str_is_print
Unexecuted instantiation: accelerated.c:_gnutls_str_is_print
Unexecuted instantiation: cryptodev.c:_gnutls_str_is_print
Unexecuted instantiation: x86-common.c:_gnutls_str_is_print
Unexecuted instantiation: cipher.c:_gnutls_str_is_print
Unexecuted instantiation: gost28147.c:_gnutls_str_is_print
Unexecuted instantiation: init.c:_gnutls_str_is_print
Unexecuted instantiation: mpi.c:_gnutls_str_is_print
Unexecuted instantiation: rnd-fuzzer.c:_gnutls_str_is_print
Unexecuted instantiation: rnd.c:_gnutls_str_is_print
Unexecuted instantiation: sysrng-linux.c:_gnutls_str_is_print
Unexecuted instantiation: kx.c:_gnutls_str_is_print
Unexecuted instantiation: priority.c:_gnutls_str_is_print
Unexecuted instantiation: hello_ext.c:_gnutls_str_is_print
Unexecuted instantiation: profiles.c:_gnutls_str_is_print
Unexecuted instantiation: state.c:_gnutls_str_is_print
Unexecuted instantiation: dtls.c:_gnutls_str_is_print
Unexecuted instantiation: system_override.c:_gnutls_str_is_print
Unexecuted instantiation: prf.c:_gnutls_str_is_print
Unexecuted instantiation: cert-session.c:_gnutls_str_is_print
Unexecuted instantiation: dtls-sw.c:_gnutls_str_is_print
Unexecuted instantiation: secrets.c:_gnutls_str_is_print
Unexecuted instantiation: extv.c:_gnutls_str_is_print
Unexecuted instantiation: ocsp-api.c:_gnutls_str_is_print
Unexecuted instantiation: ocsp.c:_gnutls_str_is_print
Unexecuted instantiation: output.c:_gnutls_str_is_print
Unexecuted instantiation: time.c:_gnutls_str_is_print
Unexecuted instantiation: tls_features.c:_gnutls_str_is_print
Unexecuted instantiation: verify-high.c:_gnutls_str_is_print
Unexecuted instantiation: verify.c:_gnutls_str_is_print
Unexecuted instantiation: virt-san.c:_gnutls_str_is_print
Unexecuted instantiation: x509.c:_gnutls_str_is_print
Unexecuted instantiation: x509_ext.c:_gnutls_str_is_print
Unexecuted instantiation: alpn.c:_gnutls_str_is_print
Unexecuted instantiation: client_cert_type.c:_gnutls_str_is_print
Unexecuted instantiation: compress_certificate.c:_gnutls_str_is_print
Unexecuted instantiation: cookie.c:_gnutls_str_is_print
Unexecuted instantiation: dumbfw.c:_gnutls_str_is_print
Unexecuted instantiation: early_data.c:_gnutls_str_is_print
Unexecuted instantiation: ec_point_formats.c:_gnutls_str_is_print
Unexecuted instantiation: etm.c:_gnutls_str_is_print
Unexecuted instantiation: ext_master_secret.c:_gnutls_str_is_print
Unexecuted instantiation: heartbeat.c:_gnutls_str_is_print
Unexecuted instantiation: key_share.c:_gnutls_str_is_print
Unexecuted instantiation: max_record.c:_gnutls_str_is_print
Unexecuted instantiation: post_handshake.c:_gnutls_str_is_print
Unexecuted instantiation: pre_shared_key.c:_gnutls_str_is_print
Unexecuted instantiation: psk_ke_modes.c:_gnutls_str_is_print
Unexecuted instantiation: record_size_limit.c:_gnutls_str_is_print
Unexecuted instantiation: safe_renegotiation.c:_gnutls_str_is_print
Unexecuted instantiation: server_cert_type.c:_gnutls_str_is_print
Unexecuted instantiation: server_name.c:_gnutls_str_is_print
Unexecuted instantiation: session_ticket.c:_gnutls_str_is_print
Unexecuted instantiation: signature.c:_gnutls_str_is_print
Unexecuted instantiation: srtp.c:_gnutls_str_is_print
Unexecuted instantiation: status_request.c:_gnutls_str_is_print
Unexecuted instantiation: supported_groups.c:_gnutls_str_is_print
Unexecuted instantiation: supported_versions.c:_gnutls_str_is_print
Unexecuted instantiation: cert.c:_gnutls_str_is_print
Unexecuted instantiation: psk_passwd.c:_gnutls_str_is_print
Unexecuted instantiation: cert_types.c:_gnutls_str_is_print
Unexecuted instantiation: ciphersuites.c:_gnutls_str_is_print
Unexecuted instantiation: ecc.c:_gnutls_str_is_print
Unexecuted instantiation: groups.c:_gnutls_str_is_print
Unexecuted instantiation: protocols.c:_gnutls_str_is_print
Unexecuted instantiation: publickey.c:_gnutls_str_is_print
Unexecuted instantiation: secparams.c:_gnutls_str_is_print
Unexecuted instantiation: sign.c:_gnutls_str_is_print
Unexecuted instantiation: aes-cbc-x86-aesni.c:_gnutls_str_is_print
Unexecuted instantiation: aes-cbc-x86-ssse3.c:_gnutls_str_is_print
Unexecuted instantiation: aes-ccm-x86-aesni.c:_gnutls_str_is_print
Unexecuted instantiation: aes-gcm-padlock.c:_gnutls_str_is_print
Unexecuted instantiation: aes-gcm-x86-aesni.c:_gnutls_str_is_print
Unexecuted instantiation: aes-gcm-x86-pclmul-avx.c:_gnutls_str_is_print
Unexecuted instantiation: aes-gcm-x86-pclmul.c:_gnutls_str_is_print
Unexecuted instantiation: aes-gcm-x86-ssse3.c:_gnutls_str_is_print
Unexecuted instantiation: aes-padlock.c:_gnutls_str_is_print
Unexecuted instantiation: aes-xts-x86-aesni.c:_gnutls_str_is_print
Unexecuted instantiation: hmac-padlock.c:_gnutls_str_is_print
Unexecuted instantiation: hmac-x86-ssse3.c:_gnutls_str_is_print
Unexecuted instantiation: sha-padlock.c:_gnutls_str_is_print
Unexecuted instantiation: sha-x86-ssse3.c:_gnutls_str_is_print
Unexecuted instantiation: bignum-le.c:_gnutls_str_is_print
Unexecuted instantiation: pk.c:_gnutls_str_is_print
Unexecuted instantiation: rsa-keygen-fips186.c:_gnutls_str_is_print
Unexecuted instantiation: tls1-prf.c:_gnutls_str_is_print
Unexecuted instantiation: record.c:_gnutls_str_is_print
Unexecuted instantiation: debug.c:_gnutls_str_is_print
Unexecuted instantiation: handshake-tls13.c:_gnutls_str_is_print
Unexecuted instantiation: mbuffers.c:_gnutls_str_is_print
Unexecuted instantiation: buffers.c:_gnutls_str_is_print
Unexecuted instantiation: handshake.c:_gnutls_str_is_print
Unexecuted instantiation: cipher-cbc.c:_gnutls_str_is_print
Unexecuted instantiation: db.c:_gnutls_str_is_print
Unexecuted instantiation: x509_b64.c:_gnutls_str_is_print
Unexecuted instantiation: auth.c:_gnutls_str_is_print
Unexecuted instantiation: sslv2_compat.c:_gnutls_str_is_print
Unexecuted instantiation: datum.c:_gnutls_str_is_print
Unexecuted instantiation: session_pack.c:_gnutls_str_is_print
Unexecuted instantiation: cert-cred.c:_gnutls_str_is_print
Unexecuted instantiation: constate.c:_gnutls_str_is_print
Unexecuted instantiation: fingerprint.c:_gnutls_str_is_print
Unexecuted instantiation: tls-sig.c:_gnutls_str_is_print
Unexecuted instantiation: alert.c:_gnutls_str_is_print
Unexecuted instantiation: threads.c:_gnutls_str_is_print
Unexecuted instantiation: sockets.c:_gnutls_str_is_print
Unexecuted instantiation: str-iconv.c:_gnutls_str_is_print
Unexecuted instantiation: str-idna.c:_gnutls_str_is_print
Unexecuted instantiation: cert-cred-x509.c:_gnutls_str_is_print
Unexecuted instantiation: file.c:_gnutls_str_is_print
Unexecuted instantiation: privkey.c:_gnutls_str_is_print
Unexecuted instantiation: pcert.c:_gnutls_str_is_print
Unexecuted instantiation: pubkey.c:_gnutls_str_is_print
Unexecuted instantiation: urls.c:_gnutls_str_is_print
Unexecuted instantiation: dh-session.c:_gnutls_str_is_print
Unexecuted instantiation: handshake-checks.c:_gnutls_str_is_print
Unexecuted instantiation: dh-primes.c:_gnutls_str_is_print
Unexecuted instantiation: hello_ext_lib.c:_gnutls_str_is_print
Unexecuted instantiation: stek.c:_gnutls_str_is_print
Unexecuted instantiation: ktls.c:_gnutls_str_is_print
Unexecuted instantiation: encrypted_extensions.c:_gnutls_str_is_print
Unexecuted instantiation: certificate_request.c:_gnutls_str_is_print
Unexecuted instantiation: certificate_verify.c:_gnutls_str_is_print
Unexecuted instantiation: tls13-sig.c:_gnutls_str_is_print
Unexecuted instantiation: finished.c:_gnutls_str_is_print
Unexecuted instantiation: key_update.c:_gnutls_str_is_print
Unexecuted instantiation: hello_retry.c:_gnutls_str_is_print
Unexecuted instantiation: certificate.c:_gnutls_str_is_print
Unexecuted instantiation: psk_ext_parser.c:_gnutls_str_is_print
Unexecuted instantiation: anti_replay.c:_gnutls_str_is_print
Unexecuted instantiation: common.c:_gnutls_str_is_print
Unexecuted instantiation: crl.c:_gnutls_str_is_print
Unexecuted instantiation: crq.c:_gnutls_str_is_print
Unexecuted instantiation: dn.c:_gnutls_str_is_print
Unexecuted instantiation: email-verify.c:_gnutls_str_is_print
Unexecuted instantiation: extensions.c:_gnutls_str_is_print
Unexecuted instantiation: hostname-verify.c:_gnutls_str_is_print
Unexecuted instantiation: ip.c:_gnutls_str_is_print
Unexecuted instantiation: key_decode.c:_gnutls_str_is_print
Unexecuted instantiation: key_encode.c:_gnutls_str_is_print
Unexecuted instantiation: krb5.c:_gnutls_str_is_print
Unexecuted instantiation: name_constraints.c:_gnutls_str_is_print
Unexecuted instantiation: pkcs12.c:_gnutls_str_is_print
Unexecuted instantiation: pkcs12_bag.c:_gnutls_str_is_print
Unexecuted instantiation: pkcs12_encr.c:_gnutls_str_is_print
Unexecuted instantiation: pkcs7-crypt.c:_gnutls_str_is_print
Unexecuted instantiation: privkey_openssl.c:_gnutls_str_is_print
Unexecuted instantiation: privkey_pkcs8.c:_gnutls_str_is_print
Unexecuted instantiation: privkey_pkcs8_pbes1.c:_gnutls_str_is_print
Unexecuted instantiation: prov-seed.c:_gnutls_str_is_print
Unexecuted instantiation: verify-high2.c:_gnutls_str_is_print
Unexecuted instantiation: x509_dn.c:_gnutls_str_is_print
Unexecuted instantiation: x509_write.c:_gnutls_str_is_print
Unexecuted instantiation: anon.c:_gnutls_str_is_print
Unexecuted instantiation: anon_ecdh.c:_gnutls_str_is_print
Unexecuted instantiation: dh_common.c:_gnutls_str_is_print
Unexecuted instantiation: dhe.c:_gnutls_str_is_print
Unexecuted instantiation: dhe_psk.c:_gnutls_str_is_print
Unexecuted instantiation: ecdhe.c:_gnutls_str_is_print
Unexecuted instantiation: psk.c:_gnutls_str_is_print
Unexecuted instantiation: rsa.c:_gnutls_str_is_print
Unexecuted instantiation: rsa_psk.c:_gnutls_str_is_print
Unexecuted instantiation: vko_gost.c:_gnutls_str_is_print
Unexecuted instantiation: dsa-compute-k.c:_gnutls_str_is_print
Unexecuted instantiation: dsa-keygen-fips186.c:_gnutls_str_is_print
Unexecuted instantiation: dsa-validate.c:_gnutls_str_is_print
Unexecuted instantiation: ecdsa-compute-k.c:_gnutls_str_is_print
Unexecuted instantiation: gostdsa-mask.c:_gnutls_str_is_print
Unexecuted instantiation: provable-prime.c:_gnutls_str_is_print
Unexecuted instantiation: compress.c:_gnutls_str_is_print
Unexecuted instantiation: dh.c:_gnutls_str_is_print
Unexecuted instantiation: session.c:_gnutls_str_is_print
Unexecuted instantiation: certs.c:_gnutls_str_is_print
Unexecuted instantiation: str-unicode.c:_gnutls_str_is_print
Unexecuted instantiation: pin.c:_gnutls_str_is_print
Unexecuted instantiation: pathbuf.c:_gnutls_str_is_print
Unexecuted instantiation: vko.c:_gnutls_str_is_print
Unexecuted instantiation: attributes.c:_gnutls_str_is_print
Unexecuted instantiation: gost_keywrap.c:_gnutls_str_is_print
Unexecuted instantiation: gost-wrap.c:_gnutls_str_is_print
66
67
inline static unsigned _gnutls_dnsname_is_valid(const char *str, unsigned size)
68
0
{
69
0
  unsigned i;
70
0
  for (i = 0; i < size; i++) {
71
0
    if (!(c_isalnum(str[i]) || str[i] == '-' || str[i] == '.'))
72
0
      return 0;
73
0
  }
74
0
  return 1;
75
0
}
Unexecuted instantiation: crypto-api.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: fips.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: safe-memfuncs.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: iov.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ciphers.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: mac.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: errors.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hash_int.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cipher_int.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: global.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: mem.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: system.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: str.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: supplemental.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: random.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: crypto-backend.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: atfork.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: keys-dummy.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: accelerated.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cryptodev.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x86-common.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cipher.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: gost28147.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: init.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: mpi.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: rnd-fuzzer.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: rnd.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sysrng-linux.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: kx.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: priority.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hello_ext.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: profiles.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: state.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dtls.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: system_override.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: prf.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cert-session.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dtls-sw.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: secrets.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: extv.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ocsp-api.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ocsp.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: output.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: time.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: tls_features.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: verify-high.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: verify.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: virt-san.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x509.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x509_ext.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: alpn.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: client_cert_type.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: compress_certificate.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cookie.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dumbfw.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: early_data.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ec_point_formats.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: etm.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ext_master_secret.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: heartbeat.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: key_share.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: max_record.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: post_handshake.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pre_shared_key.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: psk_ke_modes.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: record_size_limit.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: safe_renegotiation.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: server_cert_type.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: server_name.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: session_ticket.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: signature.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: srtp.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: status_request.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: supported_groups.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: supported_versions.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cert.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: psk_passwd.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cert_types.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ciphersuites.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ecc.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: groups.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: protocols.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: publickey.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: secparams.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sign.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-cbc-x86-aesni.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-cbc-x86-ssse3.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-ccm-x86-aesni.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-gcm-padlock.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-gcm-x86-aesni.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-gcm-x86-pclmul-avx.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-gcm-x86-pclmul.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-gcm-x86-ssse3.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-padlock.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: aes-xts-x86-aesni.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hmac-padlock.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hmac-x86-ssse3.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sha-padlock.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sha-x86-ssse3.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: bignum-le.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pk.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: rsa-keygen-fips186.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: tls1-prf.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: record.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: debug.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: handshake-tls13.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: mbuffers.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: buffers.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: handshake.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cipher-cbc.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: db.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x509_b64.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: auth.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sslv2_compat.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: datum.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: session_pack.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cert-cred.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: constate.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: fingerprint.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: tls-sig.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: alert.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: threads.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: sockets.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: str-iconv.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: str-idna.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: cert-cred-x509.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: file.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: privkey.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pcert.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pubkey.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: urls.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dh-session.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: handshake-checks.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dh-primes.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hello_ext_lib.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: stek.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ktls.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: encrypted_extensions.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: certificate_request.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: certificate_verify.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: tls13-sig.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: finished.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: key_update.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hello_retry.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: certificate.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: psk_ext_parser.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: anti_replay.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: common.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: crl.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: crq.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dn.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: email-verify.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: extensions.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: hostname-verify.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ip.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: key_decode.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: key_encode.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: krb5.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: name_constraints.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pkcs12.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pkcs12_bag.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pkcs12_encr.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pkcs7-crypt.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: privkey_openssl.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: privkey_pkcs8.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: privkey_pkcs8_pbes1.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: prov-seed.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: verify-high2.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x509_dn.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: x509_write.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: anon.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: anon_ecdh.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dh_common.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dhe.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dhe_psk.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ecdhe.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: psk.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: rsa.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: rsa_psk.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: vko_gost.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dsa-compute-k.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dsa-keygen-fips186.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dsa-validate.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: ecdsa-compute-k.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: gostdsa-mask.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: provable-prime.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: compress.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: dh.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: session.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: certs.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: str-unicode.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pin.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: pathbuf.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: vko.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: attributes.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: gost_keywrap.c:_gnutls_dnsname_is_valid
Unexecuted instantiation: gost-wrap.c:_gnutls_dnsname_is_valid
76
77
void _gnutls_str_cpy(char *dest, size_t dest_tot_size, const char *src);
78
void _gnutls_str_cat(char *dest, size_t dest_tot_size, const char *src);
79
80
typedef struct gnutls_buffer_st {
81
  uint8_t *allocd; /* pointer to allocated data */
82
  uint8_t *data; /* API: pointer to data to copy from */
83
  size_t max_length;
84
  size_t length; /* API: current length */
85
} gnutls_buffer_st;
86
87
/* Initialize a buffer */
88
void _gnutls_buffer_init(gnutls_buffer_st *);
89
90
/* Free the data in a buffer */
91
void _gnutls_buffer_clear(gnutls_buffer_st *);
92
93
/* Set the buffer data to be of zero length */
94
inline static void _gnutls_buffer_reset(gnutls_buffer_st *buf)
95
0
{
96
0
  buf->data = buf->allocd;
97
0
  buf->length = 0;
98
0
}
Unexecuted instantiation: crypto-api.c:_gnutls_buffer_reset
Unexecuted instantiation: fips.c:_gnutls_buffer_reset
Unexecuted instantiation: safe-memfuncs.c:_gnutls_buffer_reset
Unexecuted instantiation: iov.c:_gnutls_buffer_reset
Unexecuted instantiation: ciphers.c:_gnutls_buffer_reset
Unexecuted instantiation: mac.c:_gnutls_buffer_reset
Unexecuted instantiation: errors.c:_gnutls_buffer_reset
Unexecuted instantiation: hash_int.c:_gnutls_buffer_reset
Unexecuted instantiation: cipher_int.c:_gnutls_buffer_reset
Unexecuted instantiation: global.c:_gnutls_buffer_reset
Unexecuted instantiation: mem.c:_gnutls_buffer_reset
Unexecuted instantiation: system.c:_gnutls_buffer_reset
Unexecuted instantiation: str.c:_gnutls_buffer_reset
Unexecuted instantiation: supplemental.c:_gnutls_buffer_reset
Unexecuted instantiation: random.c:_gnutls_buffer_reset
Unexecuted instantiation: crypto-backend.c:_gnutls_buffer_reset
Unexecuted instantiation: atfork.c:_gnutls_buffer_reset
Unexecuted instantiation: keys-dummy.c:_gnutls_buffer_reset
Unexecuted instantiation: accelerated.c:_gnutls_buffer_reset
Unexecuted instantiation: cryptodev.c:_gnutls_buffer_reset
Unexecuted instantiation: x86-common.c:_gnutls_buffer_reset
Unexecuted instantiation: cipher.c:_gnutls_buffer_reset
Unexecuted instantiation: gost28147.c:_gnutls_buffer_reset
Unexecuted instantiation: init.c:_gnutls_buffer_reset
Unexecuted instantiation: mpi.c:_gnutls_buffer_reset
Unexecuted instantiation: rnd-fuzzer.c:_gnutls_buffer_reset
Unexecuted instantiation: rnd.c:_gnutls_buffer_reset
Unexecuted instantiation: sysrng-linux.c:_gnutls_buffer_reset
Unexecuted instantiation: kx.c:_gnutls_buffer_reset
Unexecuted instantiation: priority.c:_gnutls_buffer_reset
Unexecuted instantiation: hello_ext.c:_gnutls_buffer_reset
Unexecuted instantiation: profiles.c:_gnutls_buffer_reset
Unexecuted instantiation: state.c:_gnutls_buffer_reset
Unexecuted instantiation: dtls.c:_gnutls_buffer_reset
Unexecuted instantiation: system_override.c:_gnutls_buffer_reset
Unexecuted instantiation: prf.c:_gnutls_buffer_reset
Unexecuted instantiation: cert-session.c:_gnutls_buffer_reset
Unexecuted instantiation: dtls-sw.c:_gnutls_buffer_reset
Unexecuted instantiation: secrets.c:_gnutls_buffer_reset
Unexecuted instantiation: extv.c:_gnutls_buffer_reset
Unexecuted instantiation: ocsp-api.c:_gnutls_buffer_reset
Unexecuted instantiation: ocsp.c:_gnutls_buffer_reset
Unexecuted instantiation: output.c:_gnutls_buffer_reset
Unexecuted instantiation: time.c:_gnutls_buffer_reset
Unexecuted instantiation: tls_features.c:_gnutls_buffer_reset
Unexecuted instantiation: verify-high.c:_gnutls_buffer_reset
Unexecuted instantiation: verify.c:_gnutls_buffer_reset
Unexecuted instantiation: virt-san.c:_gnutls_buffer_reset
Unexecuted instantiation: x509.c:_gnutls_buffer_reset
Unexecuted instantiation: x509_ext.c:_gnutls_buffer_reset
Unexecuted instantiation: alpn.c:_gnutls_buffer_reset
Unexecuted instantiation: client_cert_type.c:_gnutls_buffer_reset
Unexecuted instantiation: compress_certificate.c:_gnutls_buffer_reset
Unexecuted instantiation: cookie.c:_gnutls_buffer_reset
Unexecuted instantiation: dumbfw.c:_gnutls_buffer_reset
Unexecuted instantiation: early_data.c:_gnutls_buffer_reset
Unexecuted instantiation: ec_point_formats.c:_gnutls_buffer_reset
Unexecuted instantiation: etm.c:_gnutls_buffer_reset
Unexecuted instantiation: ext_master_secret.c:_gnutls_buffer_reset
Unexecuted instantiation: heartbeat.c:_gnutls_buffer_reset
Unexecuted instantiation: key_share.c:_gnutls_buffer_reset
Unexecuted instantiation: max_record.c:_gnutls_buffer_reset
Unexecuted instantiation: post_handshake.c:_gnutls_buffer_reset
Unexecuted instantiation: pre_shared_key.c:_gnutls_buffer_reset
Unexecuted instantiation: psk_ke_modes.c:_gnutls_buffer_reset
Unexecuted instantiation: record_size_limit.c:_gnutls_buffer_reset
Unexecuted instantiation: safe_renegotiation.c:_gnutls_buffer_reset
Unexecuted instantiation: server_cert_type.c:_gnutls_buffer_reset
Unexecuted instantiation: server_name.c:_gnutls_buffer_reset
Unexecuted instantiation: session_ticket.c:_gnutls_buffer_reset
Unexecuted instantiation: signature.c:_gnutls_buffer_reset
Unexecuted instantiation: srtp.c:_gnutls_buffer_reset
Unexecuted instantiation: status_request.c:_gnutls_buffer_reset
Unexecuted instantiation: supported_groups.c:_gnutls_buffer_reset
Unexecuted instantiation: supported_versions.c:_gnutls_buffer_reset
Unexecuted instantiation: cert.c:_gnutls_buffer_reset
Unexecuted instantiation: psk_passwd.c:_gnutls_buffer_reset
Unexecuted instantiation: cert_types.c:_gnutls_buffer_reset
Unexecuted instantiation: ciphersuites.c:_gnutls_buffer_reset
Unexecuted instantiation: ecc.c:_gnutls_buffer_reset
Unexecuted instantiation: groups.c:_gnutls_buffer_reset
Unexecuted instantiation: protocols.c:_gnutls_buffer_reset
Unexecuted instantiation: publickey.c:_gnutls_buffer_reset
Unexecuted instantiation: secparams.c:_gnutls_buffer_reset
Unexecuted instantiation: sign.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-cbc-x86-aesni.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-cbc-x86-ssse3.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-ccm-x86-aesni.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-gcm-padlock.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-gcm-x86-aesni.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-gcm-x86-pclmul-avx.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-gcm-x86-pclmul.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-gcm-x86-ssse3.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-padlock.c:_gnutls_buffer_reset
Unexecuted instantiation: aes-xts-x86-aesni.c:_gnutls_buffer_reset
Unexecuted instantiation: hmac-padlock.c:_gnutls_buffer_reset
Unexecuted instantiation: hmac-x86-ssse3.c:_gnutls_buffer_reset
Unexecuted instantiation: sha-padlock.c:_gnutls_buffer_reset
Unexecuted instantiation: sha-x86-ssse3.c:_gnutls_buffer_reset
Unexecuted instantiation: bignum-le.c:_gnutls_buffer_reset
Unexecuted instantiation: pk.c:_gnutls_buffer_reset
Unexecuted instantiation: rsa-keygen-fips186.c:_gnutls_buffer_reset
Unexecuted instantiation: tls1-prf.c:_gnutls_buffer_reset
Unexecuted instantiation: record.c:_gnutls_buffer_reset
Unexecuted instantiation: debug.c:_gnutls_buffer_reset
Unexecuted instantiation: handshake-tls13.c:_gnutls_buffer_reset
Unexecuted instantiation: mbuffers.c:_gnutls_buffer_reset
Unexecuted instantiation: buffers.c:_gnutls_buffer_reset
Unexecuted instantiation: handshake.c:_gnutls_buffer_reset
Unexecuted instantiation: cipher-cbc.c:_gnutls_buffer_reset
Unexecuted instantiation: db.c:_gnutls_buffer_reset
Unexecuted instantiation: x509_b64.c:_gnutls_buffer_reset
Unexecuted instantiation: auth.c:_gnutls_buffer_reset
Unexecuted instantiation: sslv2_compat.c:_gnutls_buffer_reset
Unexecuted instantiation: datum.c:_gnutls_buffer_reset
Unexecuted instantiation: session_pack.c:_gnutls_buffer_reset
Unexecuted instantiation: cert-cred.c:_gnutls_buffer_reset
Unexecuted instantiation: constate.c:_gnutls_buffer_reset
Unexecuted instantiation: fingerprint.c:_gnutls_buffer_reset
Unexecuted instantiation: tls-sig.c:_gnutls_buffer_reset
Unexecuted instantiation: alert.c:_gnutls_buffer_reset
Unexecuted instantiation: threads.c:_gnutls_buffer_reset
Unexecuted instantiation: sockets.c:_gnutls_buffer_reset
Unexecuted instantiation: str-iconv.c:_gnutls_buffer_reset
Unexecuted instantiation: str-idna.c:_gnutls_buffer_reset
Unexecuted instantiation: cert-cred-x509.c:_gnutls_buffer_reset
Unexecuted instantiation: file.c:_gnutls_buffer_reset
Unexecuted instantiation: privkey.c:_gnutls_buffer_reset
Unexecuted instantiation: pcert.c:_gnutls_buffer_reset
Unexecuted instantiation: pubkey.c:_gnutls_buffer_reset
Unexecuted instantiation: urls.c:_gnutls_buffer_reset
Unexecuted instantiation: dh-session.c:_gnutls_buffer_reset
Unexecuted instantiation: handshake-checks.c:_gnutls_buffer_reset
Unexecuted instantiation: dh-primes.c:_gnutls_buffer_reset
Unexecuted instantiation: hello_ext_lib.c:_gnutls_buffer_reset
Unexecuted instantiation: stek.c:_gnutls_buffer_reset
Unexecuted instantiation: ktls.c:_gnutls_buffer_reset
Unexecuted instantiation: encrypted_extensions.c:_gnutls_buffer_reset
Unexecuted instantiation: certificate_request.c:_gnutls_buffer_reset
Unexecuted instantiation: certificate_verify.c:_gnutls_buffer_reset
Unexecuted instantiation: tls13-sig.c:_gnutls_buffer_reset
Unexecuted instantiation: finished.c:_gnutls_buffer_reset
Unexecuted instantiation: key_update.c:_gnutls_buffer_reset
Unexecuted instantiation: hello_retry.c:_gnutls_buffer_reset
Unexecuted instantiation: certificate.c:_gnutls_buffer_reset
Unexecuted instantiation: psk_ext_parser.c:_gnutls_buffer_reset
Unexecuted instantiation: anti_replay.c:_gnutls_buffer_reset
Unexecuted instantiation: common.c:_gnutls_buffer_reset
Unexecuted instantiation: crl.c:_gnutls_buffer_reset
Unexecuted instantiation: crq.c:_gnutls_buffer_reset
Unexecuted instantiation: dn.c:_gnutls_buffer_reset
Unexecuted instantiation: email-verify.c:_gnutls_buffer_reset
Unexecuted instantiation: extensions.c:_gnutls_buffer_reset
Unexecuted instantiation: hostname-verify.c:_gnutls_buffer_reset
Unexecuted instantiation: ip.c:_gnutls_buffer_reset
Unexecuted instantiation: key_decode.c:_gnutls_buffer_reset
Unexecuted instantiation: key_encode.c:_gnutls_buffer_reset
Unexecuted instantiation: krb5.c:_gnutls_buffer_reset
Unexecuted instantiation: name_constraints.c:_gnutls_buffer_reset
Unexecuted instantiation: pkcs12.c:_gnutls_buffer_reset
Unexecuted instantiation: pkcs12_bag.c:_gnutls_buffer_reset
Unexecuted instantiation: pkcs12_encr.c:_gnutls_buffer_reset
Unexecuted instantiation: pkcs7-crypt.c:_gnutls_buffer_reset
Unexecuted instantiation: privkey_openssl.c:_gnutls_buffer_reset
Unexecuted instantiation: privkey_pkcs8.c:_gnutls_buffer_reset
Unexecuted instantiation: privkey_pkcs8_pbes1.c:_gnutls_buffer_reset
Unexecuted instantiation: prov-seed.c:_gnutls_buffer_reset
Unexecuted instantiation: verify-high2.c:_gnutls_buffer_reset
Unexecuted instantiation: x509_dn.c:_gnutls_buffer_reset
Unexecuted instantiation: x509_write.c:_gnutls_buffer_reset
Unexecuted instantiation: anon.c:_gnutls_buffer_reset
Unexecuted instantiation: anon_ecdh.c:_gnutls_buffer_reset
Unexecuted instantiation: dh_common.c:_gnutls_buffer_reset
Unexecuted instantiation: dhe.c:_gnutls_buffer_reset
Unexecuted instantiation: dhe_psk.c:_gnutls_buffer_reset
Unexecuted instantiation: ecdhe.c:_gnutls_buffer_reset
Unexecuted instantiation: psk.c:_gnutls_buffer_reset
Unexecuted instantiation: rsa.c:_gnutls_buffer_reset
Unexecuted instantiation: rsa_psk.c:_gnutls_buffer_reset
Unexecuted instantiation: vko_gost.c:_gnutls_buffer_reset
Unexecuted instantiation: dsa-compute-k.c:_gnutls_buffer_reset
Unexecuted instantiation: dsa-keygen-fips186.c:_gnutls_buffer_reset
Unexecuted instantiation: dsa-validate.c:_gnutls_buffer_reset
Unexecuted instantiation: ecdsa-compute-k.c:_gnutls_buffer_reset
Unexecuted instantiation: gostdsa-mask.c:_gnutls_buffer_reset
Unexecuted instantiation: provable-prime.c:_gnutls_buffer_reset
Unexecuted instantiation: compress.c:_gnutls_buffer_reset
Unexecuted instantiation: dh.c:_gnutls_buffer_reset
Unexecuted instantiation: session.c:_gnutls_buffer_reset
Unexecuted instantiation: certs.c:_gnutls_buffer_reset
Unexecuted instantiation: str-unicode.c:_gnutls_buffer_reset
Unexecuted instantiation: pin.c:_gnutls_buffer_reset
Unexecuted instantiation: pathbuf.c:_gnutls_buffer_reset
Unexecuted instantiation: vko.c:_gnutls_buffer_reset
Unexecuted instantiation: attributes.c:_gnutls_buffer_reset
Unexecuted instantiation: gost_keywrap.c:_gnutls_buffer_reset
Unexecuted instantiation: gost-wrap.c:_gnutls_buffer_reset
99
100
int _gnutls_buffer_resize(gnutls_buffer_st *, size_t new_size);
101
102
int _gnutls_buffer_append_str(gnutls_buffer_st *, const char *str);
103
104
0
#define _gnutls_buffer_append_data gnutls_buffer_append_data
105
106
#include "num.h"
107
108
int _gnutls_buffer_append_prefix(gnutls_buffer_st *buf, int pfx_size,
109
         size_t data_size);
110
111
int _gnutls_buffer_append_mpi(gnutls_buffer_st *buf, int pfx_size, bigint_t,
112
            int lz);
113
114
int _gnutls_buffer_append_fixed_mpi(gnutls_buffer_st *buf, bigint_t mpi,
115
            unsigned size);
116
117
int _gnutls_buffer_append_data_prefix(gnutls_buffer_st *buf, int pfx_size,
118
              const void *data, size_t data_size);
119
int _gnutls_buffer_pop_data(gnutls_buffer_st *, void *, size_t size);
120
void _gnutls_buffer_pop_datum(gnutls_buffer_st *, gnutls_datum_t *,
121
            size_t max_size);
122
123
/* 32-bit prefix */
124
int _gnutls_buffer_pop_prefix32(gnutls_buffer_st *buf, size_t *data_size,
125
        int check);
126
int _gnutls_buffer_pop_prefix24(gnutls_buffer_st *buf, size_t *data_size,
127
        int check);
128
int _gnutls_buffer_pop_prefix16(gnutls_buffer_st *buf, size_t *data_size,
129
        int check);
130
int _gnutls_buffer_pop_prefix8(gnutls_buffer_st *, uint8_t *, int check);
131
132
/* 32-bit prefix */
133
int _gnutls_buffer_pop_datum_prefix32(gnutls_buffer_st *buf,
134
              gnutls_datum_t *data);
135
136
/* 24-bit prefix */
137
int _gnutls_buffer_pop_datum_prefix24(gnutls_buffer_st *buf,
138
              gnutls_datum_t *data);
139
140
/* 16-bit prefix */
141
int _gnutls_buffer_pop_datum_prefix16(gnutls_buffer_st *buf,
142
              gnutls_datum_t *data);
143
144
/* 8-bit prefix */
145
int _gnutls_buffer_pop_datum_prefix8(gnutls_buffer_st *buf,
146
             gnutls_datum_t *data);
147
148
int _gnutls_buffer_to_datum(gnutls_buffer_st *str, gnutls_datum_t *data,
149
          unsigned is_str);
150
151
inline static void _gnutls_ro_buffer_from_datum(gnutls_buffer_st *str,
152
            gnutls_datum_t *data)
153
0
{
154
0
  _gnutls_buffer_init(str);
155
0
  str->length = data->size;
156
0
  str->max_length = data->size;
157
0
  str->data = data->data;
158
0
}
Unexecuted instantiation: crypto-api.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: fips.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: safe-memfuncs.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: iov.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ciphers.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: mac.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: errors.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hash_int.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cipher_int.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: global.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: mem.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: system.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: str.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: supplemental.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: random.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: crypto-backend.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: atfork.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: keys-dummy.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: accelerated.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cryptodev.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x86-common.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cipher.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: gost28147.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: init.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: mpi.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: rnd-fuzzer.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: rnd.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sysrng-linux.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: kx.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: priority.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hello_ext.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: profiles.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: state.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dtls.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: system_override.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: prf.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cert-session.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dtls-sw.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: secrets.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: extv.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ocsp-api.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ocsp.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: output.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: time.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: tls_features.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: verify-high.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: verify.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: virt-san.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x509.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x509_ext.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: alpn.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: client_cert_type.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: compress_certificate.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cookie.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dumbfw.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: early_data.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ec_point_formats.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: etm.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ext_master_secret.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: heartbeat.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: key_share.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: max_record.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: post_handshake.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pre_shared_key.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: psk_ke_modes.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: record_size_limit.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: safe_renegotiation.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: server_cert_type.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: server_name.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: session_ticket.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: signature.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: srtp.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: status_request.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: supported_groups.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: supported_versions.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cert.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: psk_passwd.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cert_types.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ciphersuites.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ecc.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: groups.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: protocols.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: publickey.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: secparams.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sign.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-cbc-x86-aesni.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-cbc-x86-ssse3.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-ccm-x86-aesni.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-gcm-padlock.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-gcm-x86-aesni.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-gcm-x86-pclmul-avx.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-gcm-x86-pclmul.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-gcm-x86-ssse3.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-padlock.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: aes-xts-x86-aesni.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hmac-padlock.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hmac-x86-ssse3.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sha-padlock.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sha-x86-ssse3.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: bignum-le.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pk.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: rsa-keygen-fips186.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: tls1-prf.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: record.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: debug.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: handshake-tls13.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: mbuffers.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: buffers.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: handshake.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cipher-cbc.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: db.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x509_b64.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: auth.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sslv2_compat.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: datum.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: session_pack.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cert-cred.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: constate.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: fingerprint.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: tls-sig.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: alert.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: threads.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: sockets.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: str-iconv.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: str-idna.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: cert-cred-x509.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: file.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: privkey.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pcert.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pubkey.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: urls.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dh-session.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: handshake-checks.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dh-primes.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hello_ext_lib.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: stek.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ktls.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: encrypted_extensions.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: certificate_request.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: certificate_verify.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: tls13-sig.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: finished.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: key_update.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hello_retry.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: certificate.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: psk_ext_parser.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: anti_replay.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: common.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: crl.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: crq.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dn.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: email-verify.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: extensions.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: hostname-verify.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ip.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: key_decode.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: key_encode.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: krb5.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: name_constraints.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pkcs12.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pkcs12_bag.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pkcs12_encr.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pkcs7-crypt.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: privkey_openssl.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: privkey_pkcs8.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: privkey_pkcs8_pbes1.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: prov-seed.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: verify-high2.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x509_dn.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: x509_write.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: anon.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: anon_ecdh.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dh_common.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dhe.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dhe_psk.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ecdhe.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: psk.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: rsa.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: rsa_psk.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: vko_gost.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dsa-compute-k.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dsa-keygen-fips186.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dsa-validate.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: ecdsa-compute-k.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: gostdsa-mask.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: provable-prime.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: compress.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: dh.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: session.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: certs.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: str-unicode.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pin.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: pathbuf.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: vko.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: attributes.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: gost_keywrap.c:_gnutls_ro_buffer_from_datum
Unexecuted instantiation: gost-wrap.c:_gnutls_ro_buffer_from_datum
159
160
int _gnutls_buffer_append_escape(gnutls_buffer_st *dest, const void *data,
161
         size_t data_size, const char *invalid_chars);
162
int _gnutls_buffer_unescape(gnutls_buffer_st *dest);
163
164
#ifndef __attribute__
165
/* This feature is available in gcc versions 2.5 and later.  */
166
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
167
#define __attribute__(Spec) /* empty */
168
#endif
169
#endif
170
171
int _gnutls_buffer_append_printf(gnutls_buffer_st *dest, const char *fmt, ...)
172
  __attribute__((format(printf, 2, 3)));
173
174
void _gnutls_buffer_hexprint(gnutls_buffer_st *str, const void *data,
175
           size_t len);
176
int _gnutls_buffer_base64print(gnutls_buffer_st *str, const void *data,
177
             size_t len);
178
void _gnutls_buffer_hexdump(gnutls_buffer_st *str, const void *data, size_t len,
179
          const char *spc);
180
void _gnutls_buffer_asciiprint(gnutls_buffer_st *str, const char *data,
181
             size_t len);
182
183
char *_gnutls_bin2hex(const void *old, size_t oldlen, char *buffer,
184
          size_t buffer_size, const char *separator);
185
int _gnutls_hex2bin(const char *hex_data, size_t hex_size, uint8_t *bin_data,
186
        size_t *bin_size);
187
188
int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
189
           const char *hostname, unsigned vflags);
190
191
#define MAX_CN 256
192
#define MAX_DN 1024
193
194
#define BUFFER_APPEND(b, x, s)                             \
195
0
  {                                                  \
196
0
    ret = _gnutls_buffer_append_data(b, x, s); \
197
0
    if (ret < 0) {                             \
198
0
      gnutls_assert();                   \
199
0
      return ret;                        \
200
0
    }                                          \
201
0
  }
202
203
/* append data prefixed with 4-bytes length field*/
204
#define BUFFER_APPEND_PFX4(b, x, s)                                   \
205
0
  {                                                             \
206
0
    ret = _gnutls_buffer_append_data_prefix(b, 32, x, s); \
207
0
    if (ret < 0) {                                        \
208
0
      gnutls_assert();                              \
209
0
      return ret;                                   \
210
0
    }                                                     \
211
0
  }
212
213
#define BUFFER_APPEND_PFX3(b, x, s)                                   \
214
  {                                                             \
215
    ret = _gnutls_buffer_append_data_prefix(b, 24, x, s); \
216
    if (ret < 0) {                                        \
217
      gnutls_assert();                              \
218
      return ret;                                   \
219
    }                                                     \
220
  }
221
222
#define BUFFER_APPEND_PFX2(b, x, s)                                   \
223
  {                                                             \
224
    ret = _gnutls_buffer_append_data_prefix(b, 16, x, s); \
225
    if (ret < 0) {                                        \
226
      gnutls_assert();                              \
227
      return ret;                                   \
228
    }                                                     \
229
  }
230
231
#define BUFFER_APPEND_PFX1(b, x, s)                                  \
232
0
  {                                                            \
233
0
    ret = _gnutls_buffer_append_data_prefix(b, 8, x, s); \
234
0
    if (ret < 0) {                                       \
235
0
      gnutls_assert();                             \
236
0
      return ret;                                  \
237
0
    }                                                    \
238
0
  }
239
240
#define BUFFER_APPEND_NUM(b, s)                               \
241
0
  {                                                     \
242
0
    ret = _gnutls_buffer_append_prefix(b, 32, s); \
243
0
    if (ret < 0) {                                \
244
0
      gnutls_assert();                      \
245
0
      return ret;                           \
246
0
    }                                             \
247
0
  }
248
249
#define BUFFER_APPEND_TS(b, s)                                                \
250
0
  {                                                                     \
251
0
    ret = _gnutls_buffer_append_prefix(b, 32,                     \
252
0
               (uint64_t)s.tv_sec >> 32); \
253
0
    if (ret < 0) {                                                \
254
0
      gnutls_assert();                                      \
255
0
      return ret;                                           \
256
0
    }                                                             \
257
0
    ret = _gnutls_buffer_append_prefix(b, 32,                     \
258
0
               s.tv_sec & 0xFFFFFFFF);    \
259
0
    if (ret < 0) {                                                \
260
0
      gnutls_assert();                                      \
261
0
      return ret;                                           \
262
0
    }                                                             \
263
0
    ret = _gnutls_buffer_append_prefix(b, 32, s.tv_nsec);         \
264
0
    if (ret < 0) {                                                \
265
0
      gnutls_assert();                                      \
266
0
      return ret;                                           \
267
0
    }                                                             \
268
0
  }
269
270
#define BUFFER_POP(b, x, s)                             \
271
0
  {                                               \
272
0
    ret = _gnutls_buffer_pop_data(b, x, s); \
273
0
    if (ret < 0) {                          \
274
0
      ret = GNUTLS_E_PARSING_ERROR;   \
275
0
      gnutls_assert();                \
276
0
      goto error;                     \
277
0
    }                                       \
278
0
  }
279
280
#define BUFFER_POP_DATUM(b, o)                                      \
281
0
  {                                                           \
282
0
    gnutls_datum_t d;                                   \
283
0
    ret = _gnutls_buffer_pop_datum_prefix32(b, &d);     \
284
0
    if (ret >= 0)                                       \
285
0
      ret = _gnutls_set_datum(o, d.data, d.size); \
286
0
    if (ret < 0) {                                      \
287
0
      gnutls_assert();                            \
288
0
      goto error;                                 \
289
0
    }                                                   \
290
0
  }
291
292
#define BUFFER_POP_NUM(b, o)                                 \
293
0
  {                                                    \
294
0
    size_t s;                                    \
295
0
    ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
296
0
    if (ret < 0) {                               \
297
0
      gnutls_assert();                     \
298
0
      goto error;                          \
299
0
    }                                            \
300
0
    o = s;                                       \
301
0
  }
302
303
#define BUFFER_POP_CAST_NUM(b, o)                            \
304
  {                                                    \
305
    size_t s;                                    \
306
    ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
307
    if (ret < 0) {                               \
308
      gnutls_assert();                     \
309
      goto error;                          \
310
    }                                            \
311
    o = (void *)(intptr_t)(s);                   \
312
  }
313
314
#define BUFFER_POP_TS(b, o)                                  \
315
0
  {                                                    \
316
0
    size_t s;                                    \
317
0
    uint64_t v;                                  \
318
0
    ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
319
0
    if (ret < 0) {                               \
320
0
      gnutls_assert();                     \
321
0
      goto error;                          \
322
0
    }                                            \
323
0
    v = s;                                       \
324
0
    ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
325
0
    if (ret < 0) {                               \
326
0
      gnutls_assert();                     \
327
0
      goto error;                          \
328
0
    }                                            \
329
0
    v = (v << 32) | s;                           \
330
0
    ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
331
0
    if (ret < 0) {                               \
332
0
      gnutls_assert();                     \
333
0
      goto error;                          \
334
0
    }                                            \
335
0
    o.tv_sec = v;                                \
336
0
    o.tv_nsec = s;                               \
337
0
  }
338
339
#endif /* GNUTLS_LIB_STR_H */