diff --git a/.gitignore b/.gitignore
index 9ea9030..7f5c956 100644
--- a/.gitignore
+++ b/.gitignore
@@ -135,3 +135,5 @@ gnutls-2.10.1-nosrp.tar.bz2
/gnutls-3.7.1.tar.xz.sig
/gnutls-3.7.2.tar.xz
/gnutls-3.7.2.tar.xz.sig
+/gnutls-3.7.3.tar.xz
+/gnutls-3.7.3.tar.xz.sig
diff --git a/gnutls-3.7.1-aggressive-realloc-fixes.patch b/gnutls-3.7.1-aggressive-realloc-fixes.patch
deleted file mode 100644
index dfe035f..0000000
--- a/gnutls-3.7.1-aggressive-realloc-fixes.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From e1cf5b8694b23cdc88f4a4a344f8262aa8ab0f8e Mon Sep 17 00:00:00 2001
-From: Daiki Ueno
-Date: Wed, 10 Mar 2021 16:11:29 +0100
-Subject: [PATCH 1/2] _gnutls_buffer_resize: account for unused area if
- AGGRESSIVE_REALLOC
-
-Signed-off-by: Daiki Ueno
----
- lib/str.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/str.c b/lib/str.c
-index 506fe1721..bc20ebb04 100644
---- a/lib/str.c
-+++ b/lib/str.c
-@@ -155,12 +155,12 @@ int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
-
- unused = MEMSUB(dest->data, dest->allocd);
- dest->allocd =
-- gnutls_realloc_fast(dest->allocd, new_size);
-+ gnutls_realloc_fast(dest->allocd, new_size + unused);
- if (dest->allocd == NULL) {
- gnutls_assert();
- return GNUTLS_E_MEMORY_ERROR;
- }
-- dest->max_length = new_size;
-+ dest->max_length = new_size + unused;
- dest->data = dest->allocd + unused;
-
- return 0;
---
-2.30.2
-
-
-From 78691bfe4555c4d610b405173987ed7515515d20 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno
-Date: Wed, 10 Mar 2021 16:12:23 +0100
-Subject: [PATCH 2/2] str: suppress -Wunused-function if AGGRESSIVE_REALLOC is
- defined
-
-Signed-off-by: Daiki Ueno
----
- lib/str.c | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/lib/str.c b/lib/str.c
-index bc20ebb04..8007340f1 100644
---- a/lib/str.c
-+++ b/lib/str.c
-@@ -87,15 +87,6 @@ void _gnutls_buffer_clear(gnutls_buffer_st * str)
-
- #define MIN_CHUNK 1024
-
--static void align_allocd_with_data(gnutls_buffer_st * dest)
--{
-- assert(dest->allocd != NULL);
-- assert(dest->data != NULL);
-- if (dest->length)
-- memmove(dest->allocd, dest->data, dest->length);
-- dest->data = dest->allocd;
--}
--
- /**
- * gnutls_buffer_append_data:
- * @dest: the buffer to append to
-@@ -168,6 +159,15 @@ int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
-
- #else
-
-+static void align_allocd_with_data(gnutls_buffer_st * dest)
-+{
-+ assert(dest->allocd != NULL);
-+ assert(dest->data != NULL);
-+ if (dest->length)
-+ memmove(dest->allocd, dest->data, dest->length);
-+ dest->data = dest->allocd;
-+}
-+
- int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
- {
- if (unlikely(dest->data != NULL && dest->allocd == NULL))
---
-2.30.2
-
diff --git a/gnutls-3.7.2-config-allowlisting-race.patch b/gnutls-3.7.2-config-allowlisting-race.patch
deleted file mode 100644
index 2036797..0000000
--- a/gnutls-3.7.2-config-allowlisting-race.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From dbdcc29ee9e31acaa8286f633a4f0c23abd09d03 Mon Sep 17 00:00:00 2001
-From: Daiki Ueno
-Date: Tue, 26 Oct 2021 12:56:52 +0200
-Subject: [PATCH] priority: fix race condition when resolving SYSTEM in
- allowlisting
-
-Signed-off-by: Daiki Ueno
----
- lib/priority.c | 65 +++++++++++++++++++++++++++++++-------------------
- 1 file changed, 41 insertions(+), 24 deletions(-)
-
-diff --git a/lib/priority.c b/lib/priority.c
-index 20230e46d1..606443f1f9 100644
---- a/lib/priority.c
-+++ b/lib/priority.c
-@@ -39,6 +39,7 @@
- #include "profiles.h"
- #include "c-strcase.h"
- #include "inih/ini.h"
-+#include "locks.h"
- #include "profiles.h"
- #include "name_val_array.h"
-
-@@ -1001,6 +1002,7 @@ static void dummy_func(gnutls_priority_t c)
- #include
-
- static gnutls_certificate_verification_profiles_t system_wide_verification_profile = GNUTLS_PROFILE_UNKNOWN;
-+GNUTLS_STATIC_MUTEX(system_wide_priority_strings_mutex);
- static name_val_array_t system_wide_priority_strings = NULL;
- static char *system_wide_priority_string = NULL;
- static unsigned system_wide_priority_strings_init = 0;
-@@ -1727,6 +1729,9 @@ static int cfg_ini_handler(void *ctx, const char *section, const char *name, con
- return 1;
- }
-
-+static int
-+resolve_priorities_from_system_wide_allowlisting(void);
-+
- static void _gnutls_update_system_priorities(void)
- {
- int ret;
-@@ -1734,17 +1739,19 @@ static void _gnutls_update_system_priorities(void)
- FILE *fp;
- struct cfg cfg;
-
-+ GNUTLS_STATIC_MUTEX_LOCK(system_wide_priority_strings_mutex);
-+
- if (stat(system_priority_file, &sb) < 0) {
- _gnutls_debug_log("cfg: unable to access: %s: %d\n",
- system_priority_file, errno);
-- return;
-+ goto out;
- }
-
- if (system_wide_priority_strings_init != 0 &&
- sb.st_mtime == system_priority_last_mod) {
- _gnutls_debug_log("cfg: system priority %s has not changed\n",
- system_priority_file);
-- return;
-+ goto out;
- }
-
- if (system_wide_priority_strings_init != 0)
-@@ -1757,7 +1764,7 @@ static void _gnutls_update_system_priorities(void)
- if (fp == NULL) {
- _gnutls_debug_log("cfg: unable to open: %s: %d\n",
- system_priority_file, errno);
-- return;
-+ goto out;
- }
- /* Parsing the configuration file needs to be done in 2 phases: first
- * parsing the [global] section and then the other sections, because the
-@@ -1781,16 +1788,30 @@ static void _gnutls_update_system_priorities(void)
- system_priority_file, ret);
- if (fail_on_invalid_config)
- exit(1);
-- return;
-+ goto out;
- }
- cfg_apply(&cfg);
- cfg_deinit(&cfg);
-
-+ if (system_wide_allowlisting) {
-+ ret = resolve_priorities_from_system_wide_allowlisting();
-+ if (ret < 0) {
-+ _gnutls_debug_log("cfg: unable to resolve system priority string: %s\n",
-+ gnutls_strerror(ret));
-+ if (fail_on_invalid_config)
-+ exit(1);
-+ goto out;
-+ }
-+ }
-+
- _gnutls_debug_log("cfg: loaded system priority %s mtime %lld\n",
- system_priority_file,
- (unsigned long long)sb.st_mtime);
-
- system_priority_last_mod = sb.st_mtime;
-+
-+ out:
-+ GNUTLS_STATIC_MUTEX_UNLOCK(system_wide_priority_strings_mutex);
- }
-
- void _gnutls_load_system_priorities(void)
-@@ -1835,17 +1856,13 @@ const char *gnutls_get_system_config_file(void)
- return NULL;
- }
-
--static const char *
-+static int
- resolve_priorities_from_system_wide_allowlisting(void)
- {
- gnutls_buffer_st buf;
- int ret;
- size_t i;
-
-- if (system_wide_priority_string) {
-- return system_wide_priority_string;
-- }
--
- assert(system_wide_allowlisting);
-
- _gnutls_buffer_init(&buf);
-@@ -1853,21 +1870,21 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, "NONE");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- for (i = 0; system_wide_tls_kxs[i] != 0; i++) {
- ret = _gnutls_buffer_append_str(&buf, ":+");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_kx_get_name(system_wide_tls_kxs[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1875,14 +1892,14 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, ":+GROUP-");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_group_get_name(system_wide_tls_groups[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1890,14 +1907,14 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, ":+");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_cipher_get_name(system_wide_tls_ciphers[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1905,14 +1922,14 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, ":+");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_mac_get_name(system_wide_tls_macs[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1920,14 +1937,14 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, ":+SIGN-");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_sign_get_name(system_wide_tls_sigs[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1935,14 +1952,14 @@ resolve_priorities_from_system_wide_allowlisting(void)
- ret = _gnutls_buffer_append_str(&buf, ":+VERS-");
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
-
- ret = _gnutls_buffer_append_str(&buf,
- gnutls_protocol_get_name(system_wide_tls_vers[i]));
- if (ret < 0) {
- _gnutls_buffer_clear(&buf);
-- return NULL;
-+ return ret;
- }
- }
-
-@@ -1950,7 +1967,7 @@ resolve_priorities_from_system_wide_allowlisting(void)
- system_wide_priority_string = gnutls_strdup((char *)buf.data);
- _gnutls_buffer_clear(&buf);
-
-- return system_wide_priority_string;
-+ return ret;
- }
-
- #define S(str) ((str!=NULL)?str:"")
-@@ -2010,7 +2027,7 @@ char *_gnutls_resolve_priorities(const char* priorities)
- if (system_wide_allowlisting &&
- ss_len == sizeof(LEVEL_SYSTEM) - 1 &&
- strncmp(LEVEL_SYSTEM, ss, ss_len) == 0) {
-- p = resolve_priorities_from_system_wide_allowlisting();
-+ p = system_wide_priority_string;
- } else {
- p = _name_val_array_value(system_wide_priority_strings, ss, ss_len);
- }
---
-2.31.1
-
diff --git a/gnutls-3.7.2-config-allowlisting.patch b/gnutls-3.7.2-config-allowlisting.patch
deleted file mode 100644
index 484f053..0000000
--- a/gnutls-3.7.2-config-allowlisting.patch
+++ /dev/null
@@ -1,8352 +0,0 @@
-diff -ruN gnutls-3.7.2/aminclude_static.am gnutls-3.7.2-bootstrapped/aminclude_static.am
---- gnutls-3.7.2/aminclude_static.am 2021-05-29 10:11:18.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/aminclude_static.am 2021-06-28 09:11:35.000000000 +0200
-@@ -1,6 +1,6 @@
-
- # aminclude_static.am generated automatically by Autoconf
--# from AX_AM_MACROS_STATIC on Sat May 29 10:11:18 CEST 2021
-+# from AX_AM_MACROS_STATIC on Mon Jun 28 09:11:35 CEST 2021
-
-
- # Code coverage
-diff -ruN gnutls-3.7.2/AUTHORS gnutls-3.7.2-bootstrapped/AUTHORS
---- gnutls-3.7.2/AUTHORS 2021-05-29 10:22:59.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/AUTHORS 2021-06-28 09:56:13.000000000 +0200
-@@ -37,8 +37,8 @@
- Kevin Cernekee
- Nikolay Sivov
- Sahana Prasad
--Michael Catanzaro
- Alexander Sosedkin
-+Michael Catanzaro
- Daniel Lenski
- JonasZhou
- Stefan Sørensen
-diff -ruN gnutls-3.7.2/ChangeLog gnutls-3.7.2-bootstrapped/ChangeLog
---- gnutls-3.7.2/ChangeLog 2021-05-29 10:23:25.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/ChangeLog 2021-06-28 09:56:40.000000000 +0200
-@@ -1,4 +1,63 @@
- Author: Daiki Ueno
-+Date: Mon Jun 28 07:04:55 2021 +0200
-+
-+ tests: set SH_LOG_COMPILER so sh tests run under $(SHELL)
-+
-+ This omits the need of setting executable bits on shell script tests.
-+
-+ Signed-off-by: Daiki Ueno
-+
-+Author: Daiki Ueno
-+Date: Thu May 6 12:41:40 2021 +0200
-+
-+ priority: support allowlisting in configuration file
-+
-+ This adds a new mode of interpreting the [overrides] section. If
-+ "override-mode" is set to "allowlisting" in the [global] section, all
-+ the algorithms (hashes, signature algorithms, curves, and versions)
-+ are initially marked as insecure/disabled. Then the user can enable
-+ them by specifying allowlisting keywords such as "secure-hash" in the
-+ [overrides] section.
-+
-+ Signed-off-by: Daiki Ueno
-+ Co-authored-by: Alexander Sosedkin
-+
-+Author: Daiki Ueno
-+Date: Wed May 5 16:27:55 2021 +0200
-+
-+ priority: refactor config file parsing
-+
-+ This adds the following refactoring:
-+
-+ - avoid side-effects during parsing the config file, by separating
-+ application phase; the parsed configuration can be applied globally
-+ with cfg_apply, after validation
-+ - make _gnutls_*_mark_{disabled,insecure} take an ID instead of the
-+ name
-+
-+ Signed-off-by: Daiki Ueno
-+
-+Author: Daiki Ueno
-+Date: Fri Jun 11 06:58:43 2021 +0200
-+
-+ priority: reflect system wide config when constructing sigalgs
-+
-+ Otherwise the client would advertise signature algorithms which it
-+ cannot use and cause handshake to fail.
-+
-+ Reported by Philip Schaten in:
-+ https://lists.gnupg.org/pipermail/gnutls-help/2021-June/004711.html
-+
-+ Signed-off-by: Daiki Ueno
-+
-+Author: Daiki Ueno
-+Date: Wed Jun 9 14:29:11 2021 +0200
-+
-+ p11tool: mention how CKA_IDs of certs are calculated upon --write
-+
-+ Signed-off-by: Daiki Ueno
-+
-+Author: Daiki Ueno
- Date: Sat May 29 07:18:17 2021 +0200
-
- Release 3.7.2
-@@ -49224,3 +49283,13 @@
- Date: Fri Nov 7 10:22:11 2014 +0100
-
- doc: corrected values for INSECURE level
-+
-+Author: Nikos Mavrogiannopoulos
-+Date: Fri Nov 7 08:55:40 2014 +0100
-+
-+ pkcs11: support the CKA_EXTRACTABLE and CKA_NEVER_EXTRACTABLE flags
-+
-+Author: Nikos Mavrogiannopoulos
-+Date: Fri Nov 7 08:44:46 2014 +0100
-+
-+ pkcs11: added the flag GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH
-diff -ruN gnutls-3.7.2/doc/cha-config.texi gnutls-3.7.2-bootstrapped/doc/cha-config.texi
---- gnutls-3.7.2/doc/cha-config.texi 2021-05-10 16:34:47.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/doc/cha-config.texi 2021-06-28 09:09:14.000000000 +0200
-@@ -74,6 +74,7 @@
- @item @code{insecure-sig-for-cert}: to mark the signature algorithm as insecure when used in certificates.
- @item @code{insecure-sig}: to mark the signature algorithm as insecure for any use.
- @item @code{insecure-hash}: to mark the hash algorithm as insecure for digital signature use (provides a more generic way to disable digital signatures for broken hash algorithms).
-+@item @code{disabled-curve}: to disable the specified elliptic curve.
- @item @code{disabled-version}: to disable the specified TLS versions.
- @item @code{tls-disabled-cipher}: to disable the specified ciphers for use in the TLS or DTLS protocols.
- @item @code{tls-disabled-mac}: to disable the specified MAC algorithms for use in the TLS or DTLS protocols.
-@@ -82,11 +83,39 @@
- @end itemize
-
- Each of the options can be repeated multiple times when multiple values need
--to be disabled.
-+to be disabled or enabled.
-
- The valid values for the options above can be found in the 'Protocols', 'Digests'
- 'PK-signatures', 'Protocols', 'Ciphrers', and 'MACs' fields of the output of @code{gnutls-cli --list}.
-
-+Sometimes the system administrator wants to enable only specific
-+algorithms, despite the library defaults. GnuTLS provides an
-+alternative mode of overriding: allowlisting.
-+
-+In the allowlisting mode, all the algorithms are initially marked as
-+insecure or disabled, and shall be explicitly turned on by the options
-+in the @code{[overrides]} section. Those options are mutually
-+exclusive to the above ones for the blocklisting mode (the default)
-+@itemize
-+@item @code{secure-sig-for-cert}: to mark the signature algorithm as secure when used in certificates.
-+@item @code{secure-sig}: to mark the signature algorithm as secure for any use.
-+@item @code{secure-hash}: to mark the hash algorithm as secure for digital signature use (provides a more generic way to enable digital signatures for broken hash algorithms).
-+@item @code{enabled-curve}: to enable the specified elliptic curve.
-+@item @code{enabled-version}: to enable the specified TLS versions.
-+@item @code{tls-enabled-cipher}: to enable the specified ciphers for use in the TLS or DTLS protocols.
-+@item @code{tls-enabled-mac}: to enable the specified MAC algorithms for use in the TLS or DTLS protocols.
-+@item @code{tls-enabled-group}: to enable the specified group for use in the TLS or DTLS protocols.
-+@item @code{tls-enabled-kx}: to enable the specified key exchange algorithms for use in the TLS or DTLS protocols (applies to TLS1.2 or earlier).
-+@end itemize
-+
-+The allowlisting mode can be enabled by adding @code{override-mode =
-+allowlist} in the @code{[global]} section.
-+
-+When the allowlisting mode is in effect, it is also possible for the applications to modify the setting through the API.
-+
-+@showfuncD{gnutls_ecc_curve_mark_enabled,gnutls_sign_mark_secure,gnutls_digest_mark_secure,gnutls_protocol_mark_enabled}
-+@showfuncD{gnutls_ecc_curve_mark_disabled,gnutls_sign_mark_insecure,gnutls_digest_mark_insecure,gnutls_protocol_mark_disabled}
-+
- @subsection Examples
-
- The following example marks as insecure all digital signature algorithms
-@@ -120,6 +149,20 @@
- tls-disabled-group = group-ffdhe8192
- @end example
-
-+The following example demonstrates the use of the allowlisting
-+mode. It disables all the signature algorithms but
-+@code{RSA-SHA256}. Note that the hash algorithm @code{SHA256} also
-+needs to be explicitly enabled.
-+
-+@example
-+[global]
-+override-mode = allowlist
-+
-+[overrides]
-+secure-hash = sha256
-+secure-sig = rsa-sha256
-+@end example
-+
- @node Querying for disabled algorithms and protocols
- @section Querying for disabled algorithms and protocols
-
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_digest_mark_insecure gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_insecure
---- gnutls-3.7.2/doc/functions/gnutls_digest_mark_insecure 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_insecure 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,12 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_digest_mark_insecure} (gnutls_digest_algorithm_t @var{dig})
-+@var{dig}: is a digest algorithm
-+
-+Mark @code{dig} as insecure system wide. This only works if the allowlisting mode
-+is used in the configuration file.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_digest_mark_insecure.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_insecure.short
---- gnutls-3.7.2/doc/functions/gnutls_digest_mark_insecure.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_insecure.short 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_digest_mark_insecure} (gnutls_digest_algorithm_t @var{dig})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_digest_mark_secure gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_secure
---- gnutls-3.7.2/doc/functions/gnutls_digest_mark_secure 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_secure 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,12 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_digest_mark_secure} (gnutls_digest_algorithm_t @var{dig})
-+@var{dig}: is a digest algorithm
-+
-+Invalidate previous system wide setting that marked @code{dig} as insecure. This
-+only works if the allowlisting mode is used in the configuration file.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_digest_mark_secure.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_secure.short
---- gnutls-3.7.2/doc/functions/gnutls_digest_mark_secure.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_digest_mark_secure.short 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_digest_mark_secure} (gnutls_digest_algorithm_t @var{dig})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_disabled gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_disabled
---- gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_disabled 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_disabled 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,15 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_ecc_curve_mark_disabled} (gnutls_ecc_curve_t @var{curve})
-+@var{curve}: is an ECC curve
-+
-+Mark @code{curve} as disabled system wide. This setting can be reverted with
-+@code{gnutls_ecc_curve_mark_enabled()} . This only works if the configuration file
-+uses the allowlisting mode.
-+
-+@strong{Returns:} 0 on success or negative error code otherwise.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_disabled.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_disabled.short
---- gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_disabled.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_disabled.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_ecc_curve_mark_disabled} (gnutls_ecc_curve_t @var{curve})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_enabled gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_enabled
---- gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_enabled 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_enabled 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,15 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_ecc_curve_mark_enabled} (gnutls_ecc_curve_t @var{curve})
-+@var{curve}: is an ECC curve
-+
-+Invalidate previous system wide setting that marked @code{curve} as disabled. This
-+only works if the curve is disabled with @code{gnutls_ecc_curve_mark_disabled()} or
-+through the allowlisting mode in the configuration file.
-+
-+@strong{Returns:} 0 on success or negative error code otherwise.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_enabled.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_enabled.short
---- gnutls-3.7.2/doc/functions/gnutls_ecc_curve_mark_enabled.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_ecc_curve_mark_enabled.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_ecc_curve_mark_enabled} (gnutls_ecc_curve_t @var{curve})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_protocol_mark_disabled gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_disabled
---- gnutls-3.7.2/doc/functions/gnutls_protocol_mark_disabled 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_disabled 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,10 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_protocol_mark_disabled} (gnutls_protocol_t @var{version})
-+@var{version}: is a (gnutls) version number
-+
-+Mark @code{version} as disabled system wide. This only works if the allowlisting
-+mode is used in the configuration file.
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_protocol_mark_disabled.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_disabled.short
---- gnutls-3.7.2/doc/functions/gnutls_protocol_mark_disabled.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_disabled.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_protocol_mark_disabled} (gnutls_protocol_t @var{version})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_protocol_mark_enabled gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_enabled
---- gnutls-3.7.2/doc/functions/gnutls_protocol_mark_enabled 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_enabled 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,11 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_protocol_mark_enabled} (gnutls_protocol_t @var{version})
-+@var{version}: is a (gnutls) version number
-+
-+Invalidate previous system wide setting that marked @code{version} as
-+disabled. This only works if the allowlisting mode is used in the
-+configuration file.
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_protocol_mark_enabled.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_enabled.short
---- gnutls-3.7.2/doc/functions/gnutls_protocol_mark_enabled.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_protocol_mark_enabled.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_protocol_mark_enabled} (gnutls_protocol_t @var{version})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_sign_mark_insecure gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_insecure
---- gnutls-3.7.2/doc/functions/gnutls_sign_mark_insecure 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_insecure 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,18 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_sign_mark_insecure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-+@var{sign}: the sign algorithm
-+
-+@var{flags}: @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} or 0
-+
-+Mark @code{sign} as insecure system wide. This only works if the
-+allowlisting mode is used in the configuration file.
-+
-+If @code{flags} has @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} bit set,
-+and the algorithm was previously considered secure for all purposes,
-+it only marks the algorithm as insecure for the use with certificates.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_sign_mark_insecure.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_insecure.short
---- gnutls-3.7.2/doc/functions/gnutls_sign_mark_insecure.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_insecure.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_sign_mark_insecure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_sign_mark_secure gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_secure
---- gnutls-3.7.2/doc/functions/gnutls_sign_mark_secure 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_secure 2021-06-28 09:39:50.000000000 +0200
-@@ -0,0 +1,22 @@
-+
-+
-+
-+
-+@deftypefun {int} {gnutls_sign_mark_secure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-+@var{sign}: the sign algorithm
-+
-+@var{flags}: @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} or 0
-+
-+Invalidate previous system wide setting that marked @code{sign} as
-+insecure. This only works if the algorithm is marked as insecure
-+with @code{gnutls_sign_mark_insecure()} or through the allowlisting mode
-+in the configuration file.
-+
-+If @code{flags} has @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} bit set,
-+it marks it the algorithm as secure for all purposes.
-+If the absence of this flag, it will mark it as
-+"secure, but not for certificates" at most,
-+but it won't restrict anything either.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-diff -ruN gnutls-3.7.2/doc/functions/gnutls_sign_mark_secure.short gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_secure.short
---- gnutls-3.7.2/doc/functions/gnutls_sign_mark_secure.short 1970-01-01 01:00:00.000000000 +0100
-+++ gnutls-3.7.2-bootstrapped/doc/functions/gnutls_sign_mark_secure.short 2021-06-28 09:39:51.000000000 +0200
-@@ -0,0 +1 @@
-+@item @var{int} @ref{gnutls_sign_mark_secure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-diff -ruN gnutls-3.7.2/doc/gnutls-api.texi gnutls-3.7.2-bootstrapped/doc/gnutls-api.texi
---- gnutls-3.7.2/doc/gnutls-api.texi 2021-05-29 10:19:28.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/doc/gnutls-api.texi 2021-06-28 09:39:50.000000000 +0200
-@@ -2706,6 +2706,28 @@
- integers indicating the available digests.
- @end deftypefun
-
-+@subheading gnutls_digest_mark_insecure
-+@anchor{gnutls_digest_mark_insecure}
-+@deftypefun {int} {gnutls_digest_mark_insecure} (gnutls_digest_algorithm_t @var{dig})
-+@var{dig}: is a digest algorithm
-+
-+Mark @code{dig} as insecure system wide. This only works if the allowlisting mode
-+is used in the configuration file.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
-+@subheading gnutls_digest_mark_secure
-+@anchor{gnutls_digest_mark_secure}
-+@deftypefun {int} {gnutls_digest_mark_secure} (gnutls_digest_algorithm_t @var{dig})
-+@var{dig}: is a digest algorithm
-+
-+Invalidate previous system wide setting that marked @code{dig} as insecure. This
-+only works if the allowlisting mode is used in the configuration file.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
- @subheading gnutls_early_cipher_get
- @anchor{gnutls_early_cipher_get}
- @deftypefun {gnutls_cipher_algorithm_t} {gnutls_early_cipher_get} (gnutls_session_t @var{session})
-@@ -2820,6 +2842,34 @@
- integers indicating the available curves.
- @end deftypefun
-
-+@subheading gnutls_ecc_curve_mark_disabled
-+@anchor{gnutls_ecc_curve_mark_disabled}
-+@deftypefun {int} {gnutls_ecc_curve_mark_disabled} (gnutls_ecc_curve_t @var{curve})
-+@var{curve}: is an ECC curve
-+
-+Mark @code{curve} as disabled system wide. This setting can be reverted with
-+@code{gnutls_ecc_curve_mark_enabled()} . This only works if the configuration file
-+uses the allowlisting mode.
-+
-+@strong{Returns:} 0 on success or negative error code otherwise.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
-+@subheading gnutls_ecc_curve_mark_enabled
-+@anchor{gnutls_ecc_curve_mark_enabled}
-+@deftypefun {int} {gnutls_ecc_curve_mark_enabled} (gnutls_ecc_curve_t @var{curve})
-+@var{curve}: is an ECC curve
-+
-+Invalidate previous system wide setting that marked @code{curve} as disabled. This
-+only works if the curve is disabled with @code{gnutls_ecc_curve_mark_disabled()} or
-+through the allowlisting mode in the configuration file.
-+
-+@strong{Returns:} 0 on success or negative error code otherwise.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
- @subheading gnutls_error_is_fatal
- @anchor{gnutls_error_is_fatal}
- @deftypefun {int} {gnutls_error_is_fatal} (int @var{error})
-@@ -5026,6 +5076,25 @@
- indicating the available protocols.
- @end deftypefun
-
-+@subheading gnutls_protocol_mark_disabled
-+@anchor{gnutls_protocol_mark_disabled}
-+@deftypefun {int} {gnutls_protocol_mark_disabled} (gnutls_protocol_t @var{version})
-+@var{version}: is a (gnutls) version number
-+
-+Mark @code{version} as disabled system wide. This only works if the allowlisting
-+mode is used in the configuration file.
-+@end deftypefun
-+
-+@subheading gnutls_protocol_mark_enabled
-+@anchor{gnutls_protocol_mark_enabled}
-+@deftypefun {int} {gnutls_protocol_mark_enabled} (gnutls_protocol_t @var{version})
-+@var{version}: is a (gnutls) version number
-+
-+Invalidate previous system wide setting that marked @code{version} as
-+disabled. This only works if the allowlisting mode is used in the
-+configuration file.
-+@end deftypefun
-+
- @subheading gnutls_psk_allocate_client_credentials
- @anchor{gnutls_psk_allocate_client_credentials}
- @deftypefun {int} {gnutls_psk_allocate_client_credentials} (gnutls_psk_client_credentials_t * @var{sc})
-@@ -7027,6 +7096,44 @@
- integers indicating the available ciphers.
- @end deftypefun
-
-+@subheading gnutls_sign_mark_insecure
-+@anchor{gnutls_sign_mark_insecure}
-+@deftypefun {int} {gnutls_sign_mark_insecure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-+@var{sign}: the sign algorithm
-+
-+@var{flags}: @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} or 0
-+
-+Mark @code{sign} as insecure system wide. This only works if the
-+allowlisting mode is used in the configuration file.
-+
-+If @code{flags} has @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} bit set,
-+and the algorithm was previously considered secure for all purposes,
-+it only marks the algorithm as insecure for the use with certificates.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
-+@subheading gnutls_sign_mark_secure
-+@anchor{gnutls_sign_mark_secure}
-+@deftypefun {int} {gnutls_sign_mark_secure} (gnutls_sign_algorithm_t @var{sign}, unsigned @var{flags})
-+@var{sign}: the sign algorithm
-+
-+@var{flags}: @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} or 0
-+
-+Invalidate previous system wide setting that marked @code{sign} as
-+insecure. This only works if the algorithm is marked as insecure
-+with @code{gnutls_sign_mark_insecure()} or through the allowlisting mode
-+in the configuration file.
-+
-+If @code{flags} has @code{GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS} bit set,
-+it marks it the algorithm as secure for all purposes.
-+If the absence of this flag, it will mark it as
-+"secure, but not for certificates" at most,
-+but it won't restrict anything either.
-+
-+@strong{Since:} 3.7.3
-+@end deftypefun
-+
- @subheading gnutls_sign_supports_pk_algorithm
- @anchor{gnutls_sign_supports_pk_algorithm}
- @deftypefun {unsigned} {gnutls_sign_supports_pk_algorithm} (gnutls_sign_algorithm_t @var{sign}, gnutls_pk_algorithm_t @var{pk})
-diff -ruN gnutls-3.7.2/doc/gnutls.html gnutls-3.7.2-bootstrapped/doc/gnutls.html
---- gnutls-3.7.2/doc/gnutls.html 2021-05-29 10:23:25.000000000 +0200
-+++ gnutls-3.7.2-bootstrapped/doc/gnutls.html 2021-06-28 09:56:40.000000000 +0200
-@@ -8018,8 +8018,9 @@
-
write option.
-
- This is the “writes the loaded objects to a pkcs #11 token” option.
--It can be used to write private, public keys, certificates or secret keys to a token. Must be combined with
-- one of –load-privkey, –load-pubkey, –load-certificate option.
-+It can be used to write private, public keys, certificates or secret keys to a token. Must be combined with one of –load-privkey, –load-pubkey, –load-certificate option.
-+
-+When writing a certificate object, its CKA_ID is set to the same CKA_ID of the corresponding public key, if it exists on the token; otherwise it will be derived from the X.509 Subject Key Identifier of the certificate. If this behavior is undesired, write the public key to the token beforehand.
-
id option.
-
- This is the “sets an id for the write operation” option.
-@@ -16992,6 +16993,7 @@
-
insecure-sig-for-cert
: to mark the signature algorithm as insecure when used in certificates.
- insecure-sig
: to mark the signature algorithm as insecure for any use.
- insecure-hash
: to mark the hash algorithm as insecure for digital signature use (provides a more generic way to disable digital signatures for broken hash algorithms).
-+ disabled-curve
: to disable the specified elliptic curve.
- disabled-version
: to disable the specified TLS versions.
- tls-disabled-cipher
: to disable the specified ciphers for use in the TLS or DTLS protocols.
- tls-disabled-mac
: to disable the specified MAC algorithms for use in the TLS or DTLS protocols.
-@@ -17000,11 +17002,49 @@
-
-
- Each of the options can be repeated multiple times when multiple values need
--to be disabled.
-+to be disabled or enabled.
-
- The valid values for the options above can be found in the ’Protocols’, ’Digests’
- ’PK-signatures’, ’Protocols’, ’Ciphrers’, and ’MACs’ fields of the output of gnutls-cli --list
.
-
-+Sometimes the system administrator wants to enable only specific
-+algorithms, despite the library defaults. GnuTLS provides an
-+alternative mode of overriding: allowlisting.
-+
-+In the allowlisting mode, all the algorithms are initially marked as
-+insecure or disabled, and shall be explicitly turned on by the options
-+in the [overrides]
section. Those options are mutually
-+exclusive to the above ones for the blocklisting mode (the default)
-+
-+-
secure-sig-for-cert
: to mark the signature algorithm as secure when used in certificates.
-+ -
secure-sig
: to mark the signature algorithm as secure for any use.
-+ -
secure-hash
: to mark the hash algorithm as secure for digital signature use (provides a more generic way to enable digital signatures for broken hash algorithms).
-+ -
enabled-curve
: to enable the specified elliptic curve.
-+ -
enabled-version
: to enable the specified TLS versions.
-+ -
tls-enabled-cipher
: to enable the specified ciphers for use in the TLS or DTLS protocols.
-+ -
tls-enabled-mac
: to enable the specified MAC algorithms for use in the TLS or DTLS protocols.
-+ -
tls-enabled-group
: to enable the specified group for use in the TLS or DTLS protocols.
-+ -
tls-enabled-kx
: to enable the specified key exchange algorithms for use in the TLS or DTLS protocols (applies to TLS1.2 or earlier).
-+
-+
-+The allowlisting mode can be enabled by adding override-mode =
-+allowlist
in the [global]
section.
-+
-+When the allowlisting mode is in effect, it is also possible for the applications to modify the setting through the API.
-+
-+
-+int gnutls_ecc_curve_mark_enabled (gnutls_ecc_curve_t curve)
-+int gnutls_sign_mark_secure (gnutls_sign_algorithm_t sign, unsigned flags)
-+int gnutls_digest_mark_secure (gnutls_digest_algorithm_t dig)
-+int gnutls_protocol_mark_enabled (gnutls_protocol_t version)
-+
-+
-+int gnutls_ecc_curve_mark_disabled (gnutls_ecc_curve_t curve)
-+int gnutls_sign_mark_insecure (gnutls_sign_algorithm_t sign, unsigned flags)
-+int gnutls_digest_mark_insecure (gnutls_digest_algorithm_t dig)
-+int gnutls_protocol_mark_disabled (gnutls_protocol_t version)
-+
-+
- 8.2.1 Examples
-
- The following example marks as insecure all digital signature algorithms
-@@ -17038,6 +17078,20 @@
- tls-disabled-group = group-ffdhe8192
-
-
-+
The following example demonstrates the use of the allowlisting
-+mode. It disables all the signature algorithms but
-+RSA-SHA256
. Note that the hash algorithm SHA256
also
-+needs to be explicitly enabled.
-+
-+
-+
[global]
-+override-mode = allowlist
-+
-+[overrides]
-+secure-hash = sha256
-+secure-sig = rsa-sha256
-+
-+
-
-