From 42cf463b5700e0ac056e58fa592fd327a99e07f2431301a81ffc5e2c244db80e Mon Sep 17 00:00:00 2001
From: Marcus Meissner
Date: Mon, 24 Nov 2025 10:49:16 +0000
Subject: [PATCH] - Reduce the number of patches: * Merge
gnutls-FIPS-jitterentropy-deinit-threads.patch into the main
jitterentropy patch gnutls-FIPS-jitterentropy.patch * Merge the soname
gnutls-fips-sonames-check.patch and V3
gnutls-FIPS-HMAC-x86_64-v3-opt.patch patches together into
gnutls-FIPS-HMAC-nettle-hogweed-gmp.patch * Remove
gnutls-set-cligen-python-interp.patch with a sed command.
- Enable back the failing tests that have been fixed upstream:
* Remove patches:
- gnutls-disable-flaky-test-dtls-resume.patch
- gnutls-srp-test-SIGPIPE.patch
- gnutls-skip-pqx-test.patch
- gnutls-3.8.10-disable-ktls_test.patch
- Update to 3.8.11:
* libgnutls: Fix stack overwrite in gnutls_pkcs11_token_init
Reported by Luigino Camastra from Aisle Research.
[GNUTLS-SA-2025-11-18, CVSS: low] [bsc#1254132, CVE-2025-9820]
* libgnutls: MAC algorithms for PSK binders is now configurable
The previous implementation assumed HMAC-SHA256 to calculate the
PSK binders. With the new gnutls_psk_allocate_client_credentials2()
and gnutls_psk_allocate_server_credentials2() functions, the
application can use other MAC algorithms such as HMAC-SHA384.
* libgnutls: Expose a new function to provide the maximum record send size
A new function gnutls_record_get_max_send_size() has been added to
determine the maximum size of a TLS record to be sent to the peer.
* libgnutls: Expose a new function to update keys without sending a KeyUpdate
to the peer. A new function gnutls_handshake_update_receiving_key()
has been added to allow updating the local receiving key without
OBS-URL: https://build.opensuse.org/package/show/security:tls/gnutls?expand=0&rev=133
---
.gitattributes | 23 +
.gitignore | 1 +
baselibs.conf | 7 +
gnutls-3.5.11-skip-trust-store-tests.patch | 31 +
gnutls-3.8.10-disable-ktls_test.patch | 24 +
gnutls-3.8.10.tar.xz | 3 +
gnutls-3.8.10.tar.xz.sig | Bin 0 -> 566 bytes
gnutls-3.8.11.tar.xz | 3 +
gnutls-3.8.11.tar.xz.sig | Bin 0 -> 566 bytes
gnutls-FIPS-140-3-references.patch | 1240 ++++
gnutls-FIPS-HMAC-nettle-hogweed-gmp.patch | 184 +
gnutls-FIPS-HMAC-x86_64-v3-opt.patch | 47 +
gnutls-FIPS-TLS_KDF_selftest.patch | 31 +
gnutls-FIPS-disable-mac-sha1.patch | 181 +
...ls-FIPS-jitterentropy-deinit-threads.patch | 34 +
gnutls-FIPS-jitterentropy.patch | 259 +
gnutls-disable-flaky-test-dtls-resume.patch | 13 +
gnutls-fips-sonames-check.patch | 27 +
gnutls-set-cligen-python-interp.patch | 10 +
gnutls-skip-pqx-test.patch | 34 +
gnutls-srp-test-SIGPIPE.patch | 22 +
gnutls.changes | 5038 +++++++++++++++++
gnutls.keyring | 226 +
gnutls.rpmlintrc | 1 +
gnutls.spec | 402 ++
25 files changed, 7841 insertions(+)
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 baselibs.conf
create mode 100644 gnutls-3.5.11-skip-trust-store-tests.patch
create mode 100644 gnutls-3.8.10-disable-ktls_test.patch
create mode 100644 gnutls-3.8.10.tar.xz
create mode 100644 gnutls-3.8.10.tar.xz.sig
create mode 100644 gnutls-3.8.11.tar.xz
create mode 100644 gnutls-3.8.11.tar.xz.sig
create mode 100644 gnutls-FIPS-140-3-references.patch
create mode 100644 gnutls-FIPS-HMAC-nettle-hogweed-gmp.patch
create mode 100644 gnutls-FIPS-HMAC-x86_64-v3-opt.patch
create mode 100644 gnutls-FIPS-TLS_KDF_selftest.patch
create mode 100644 gnutls-FIPS-disable-mac-sha1.patch
create mode 100644 gnutls-FIPS-jitterentropy-deinit-threads.patch
create mode 100644 gnutls-FIPS-jitterentropy.patch
create mode 100644 gnutls-disable-flaky-test-dtls-resume.patch
create mode 100644 gnutls-fips-sonames-check.patch
create mode 100644 gnutls-set-cligen-python-interp.patch
create mode 100644 gnutls-skip-pqx-test.patch
create mode 100644 gnutls-srp-test-SIGPIPE.patch
create mode 100644 gnutls.changes
create mode 100644 gnutls.keyring
create mode 100644 gnutls.rpmlintrc
create mode 100644 gnutls.spec
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9b03811
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,23 @@
+## Default LFS
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.bsp filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gem filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.lz filter=lfs diff=lfs merge=lfs -text
+*.lzma filter=lfs diff=lfs merge=lfs -text
+*.obscpio filter=lfs diff=lfs merge=lfs -text
+*.oxt filter=lfs diff=lfs merge=lfs -text
+*.pdf filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.rpm filter=lfs diff=lfs merge=lfs -text
+*.tbz filter=lfs diff=lfs merge=lfs -text
+*.tbz2 filter=lfs diff=lfs merge=lfs -text
+*.tgz filter=lfs diff=lfs merge=lfs -text
+*.ttf filter=lfs diff=lfs merge=lfs -text
+*.txz filter=lfs diff=lfs merge=lfs -text
+*.whl filter=lfs diff=lfs merge=lfs -text
+*.xz filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.zst filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..57affb6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.osc
diff --git a/baselibs.conf b/baselibs.conf
new file mode 100644
index 0000000..0eb5642
--- /dev/null
+++ b/baselibs.conf
@@ -0,0 +1,7 @@
+libgnutls30
+ obsoletes "gnutls-"
+ provides "libgnutls30-hmac- = -%release"
+ obsoletes "libgnutls30-hmac- < -%release"
+libgnutls-devel
+ requires -libgnutls-
+ requires "libgnutls30- = "
diff --git a/gnutls-3.5.11-skip-trust-store-tests.patch b/gnutls-3.5.11-skip-trust-store-tests.patch
new file mode 100644
index 0000000..f02e4b6
--- /dev/null
+++ b/gnutls-3.5.11-skip-trust-store-tests.patch
@@ -0,0 +1,31 @@
+From: Andreas Stieger
+Date: Thu, 18 May 2017 10:31:42 +0200
+References: https://build.opensuse.org/request/show/493998
+Upstream: never
+
+trust-store test added in
+https://gitlab.com/gnutls/gnutls/commit/8d740ae87fae9c1237421dd24825b78103c5da36
+need ca-certificates-mozilla to run.
+
+[ 242s] FAIL: trust-store
+[ 242s] =================
+[ 242s]
+[ 242s] doit:64: no certificates were found in system trust store!
+[ 242s] FAIL trust-store (exit status: 1)
+
+But this would create a build cycle. Skip test.
+
+Index: gnutls-3.8.9/tests/trust-store.c
+===================================================================
+--- gnutls-3.8.9.orig/tests/trust-store.c
++++ gnutls-3.8.9/tests/trust-store.c
+@@ -42,6 +42,9 @@ static void tls_log_func(int level, cons
+
+ void doit(void)
+ {
++ /* building without ca-certificates-mozilla, skip test */
++ exit(77);
++
+ gnutls_certificate_credentials_t x509_cred;
+ int ret;
+
diff --git a/gnutls-3.8.10-disable-ktls_test.patch b/gnutls-3.8.10-disable-ktls_test.patch
new file mode 100644
index 0000000..8060e59
--- /dev/null
+++ b/gnutls-3.8.10-disable-ktls_test.patch
@@ -0,0 +1,24 @@
+Index: gnutls-3.8.10/tests/Makefile.am
+===================================================================
+--- gnutls-3.8.10.orig/tests/Makefile.am
++++ gnutls-3.8.10/tests/Makefile.am
+@@ -527,13 +527,13 @@ if !WINDOWS
+ #
+
+ if ENABLE_KTLS
+-indirect_tests += gnutls_ktls
+-dist_check_SCRIPTS += ktls.sh
++#indirect_tests += gnutls_ktls
++#dist_check_SCRIPTS += ktls.sh
+
+-indirect_tests += ktls_keyupdate
+-ktls_keyupdate_SOURCES = tls13/key_update.c
+-ktls_keyupdate_CFLAGS = -DUSE_KTLS
+-dist_check_SCRIPTS += ktls_keyupdate.sh
++#indirect_tests += ktls_keyupdate
++#ktls_keyupdate_SOURCES = tls13/key_update.c
++#ktls_keyupdate_CFLAGS = -DUSE_KTLS
++#dist_check_SCRIPTS += ktls_keyupdate.sh
+ endif
+
+ dist_check_SCRIPTS += dtls/dtls.sh #dtls/dtls-resume.sh #dtls/dtls-nb
diff --git a/gnutls-3.8.10.tar.xz b/gnutls-3.8.10.tar.xz
new file mode 100644
index 0000000..d7947df
--- /dev/null
+++ b/gnutls-3.8.10.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db7fab7cce791e7727ebbef2334301c821d79a550ec55c9ef096b610b03eb6b7
+size 6909856
diff --git a/gnutls-3.8.10.tar.xz.sig b/gnutls-3.8.10.tar.xz.sig
new file mode 100644
index 0000000000000000000000000000000000000000000000000000000000000000..bf232f95732f3dcf7de1915546bcd31e0d6b6676d0f9047bdbe57aa4ac291322
GIT binary patch
literal 566
zcmV-60?GY}0y6{v0SEvc79j*iA|=DLZ#0LW$VqJ01%!^*=9qB>0%&dZ3IGZT5Y`2R
zj@RaxakzXC0FZ=$+=4(VjMPj)8oI#l?d}*FG$?(?6l_`CU2OzK`<5S*B|T)6%-YP_~A{vocb|#9ozAiS)h4RTPzGf^Vi#j%&ZFX!YSzr{j?cq-C4Lb*J-UT(gFRepZW$5NT
zjR6|?Y3O3YB6nzp=L5~UFgDzOIhw4c`~LLjU}8*Y{Nb*4$5%B+xuBOj@eeaUsjq&6
zj>m8#B;c$vD`$6U98%W(Q26)nrS_i3*D;4+UwytZtW3`+Nr$h_1oUwcJ-%evChA90
z%tbN#W<~rKzEy@94aaLO{jq~y?Nz6LwW9quwl8|L64A*hw-Je^eY%?}n$y(3kZ1Hj
z-WI;Y62>W_xYMIC(p*r0S(2_jMj`k2
zd3=TqTE@kKc*4zcnL=-OWdq5ZHiaOxT)T=4_tF_wk7~${_v{Q_0+p#ZDo{iRx1p$n
zYI~
E^v6aO-2eap
literal 0
HcmV?d00001
diff --git a/gnutls-3.8.11.tar.xz b/gnutls-3.8.11.tar.xz
new file mode 100644
index 0000000..1aa100a
--- /dev/null
+++ b/gnutls-3.8.11.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:91bd23c4a86ebc6152e81303d20cf6ceaeb97bc8f84266d0faec6e29f17baa20
+size 6939944
diff --git a/gnutls-3.8.11.tar.xz.sig b/gnutls-3.8.11.tar.xz.sig
new file mode 100644
index 0000000000000000000000000000000000000000000000000000000000000000..4d74e215081dfd469a0ed8e46601347a720e009dd0fe0871cd6fb1f3731dc20e
GIT binary patch
literal 566
zcmV-60?GY}0y6{v0SW*e79j*iA|=DLZ#0LW$VqJ01%!^*=9qB>0%;z5uK)@O5Y`2R
zj@RaxafLPy{SdltFLl*@Z(PLIq#lB1)X6S2Z0urpZ;q8T4KD)QH
z3o8~Pweq`ciWN!WVRGSLW7SdwTF)XYrY{TqfNn?7p}13tZGxZV7{Uk=D|AT0-jE+o
zEV{p}#rI2a>}zgW^{vyIc1F%sA~FnqRVR@>I%{RPT*Lqgsu{#ef#H+Y-}e!D5HTK8xQZ?!krIq+66ea#B8vHkTZc
zrQ;?+D!;I1|0%dKkHu+], [dladdr (0, 0);])
+
+ AC_ARG_ENABLE(fips140-mode,
+- AS_HELP_STRING([--enable-fips140-mode], [enable FIPS140-2 mode]),
++ AS_HELP_STRING([--enable-fips140-mode], [enable FIPS140-3 mode]),
+ enable_fips=$enableval, enable_fips=no)
+ AM_CONDITIONAL(ENABLE_FIPS140, test "$enable_fips" = "yes")
+ if [ test "$enable_fips" = "yes" ];then
+ if test "x$HAVE_LIBDL" = "xyes";then
+- AC_DEFINE([ENABLE_FIPS140], 1, [Enable FIPS140-2 mode])
++ AC_DEFINE([ENABLE_FIPS140], 1, [Enable FIPS140-3 mode])
+ AC_SUBST([FIPS140_LIBS], $LIBDL)
+ AC_ARG_WITH(fips140-key, AS_HELP_STRING([--with-fips140-key],
+ [specify the FIPS140 HMAC key for integrity]),
+ fips_key="$withval",
+ fips_key="orboDeJITITejsirpADONivirpUkvarP")
+
+- AC_DEFINE_UNQUOTED([FIPS_KEY], ["$fips_key"], [The FIPS140-2 integrity key])
++ AC_DEFINE_UNQUOTED([FIPS_KEY], ["$fips_key"], [The FIPS140-3 integrity key])
+
+ AC_ARG_WITH(fips140-module-name, AS_HELP_STRING([--with-fips140-module-name],
+ [specify the FIPS140 module name]),
+Index: gnutls-3.8.11/doc/cha-gtls-app.texi
+===================================================================
+--- gnutls-3.8.11.orig/doc/cha-gtls-app.texi
++++ gnutls-3.8.11/doc/cha-gtls-app.texi
+@@ -222,7 +222,7 @@ CPU. The currently available options are
+ @end itemize
+
+ @item @code{GNUTLS_FORCE_FIPS_MODE}
+-@tab In setups where GnuTLS is compiled with support for FIPS140-2 (see @ref{FIPS140-2 mode})
++@tab In setups where GnuTLS is compiled with support for FIPS140-3 (see @ref{FIPS140-3 mode})
+ if set to one it will force the FIPS mode enablement.
+
+ @end multitable
+Index: gnutls-3.8.11/doc/cha-internals.texi
+===================================================================
+--- gnutls-3.8.11.orig/doc/cha-internals.texi
++++ gnutls-3.8.11/doc/cha-internals.texi
+@@ -14,7 +14,7 @@ happens inside the black box.
+ * TLS Hello Extension Handling::
+ * Cryptographic Backend::
+ * Random Number Generators-internals::
+-* FIPS140-2 mode::
++* FIPS140-3 mode::
+ @end menu
+
+ @node The TLS Protocol
+@@ -529,7 +529,7 @@ For more information see @ref{Hardware s
+
+ GnuTLS provides two random generators. The default, and the AES-DRBG random
+ generator which is only used when the library is compiled with support for
+-FIPS140-2 and the system is in FIPS140-2 mode.
++FIPS140-3 and the system is in FIPS140-3 mode.
+
+ @subheading The default generator - inner workings
+
+@@ -659,23 +659,23 @@ two distinct times, and being able to re
+ after observing the output of the PRNG. Given the approach described
+ on the above paragraph, all levels are immune to such attack.
+
+-@node FIPS140-2 mode
+-@section FIPS140-2 mode
++@node FIPS140-3 mode
++@section FIPS140-3 mode
+
+-GnuTLS can operate in a special mode for FIPS140-2. That mode of operation
+-is for the conformance to NIST's FIPS140-2 publication, which consists of policies
++GnuTLS can operate in a special mode for FIPS140-3. That mode of operation
++is for the conformance to NIST's FIPS140-3 publication, which consists of policies
+ for cryptographic modules (such as software libraries). Its implementation in
+ GnuTLS is designed for Red Hat Enterprise Linux, and can only be enabled
+ when the library is explicitly compiled with the '--enable-fips140-mode'
+ configure option.
+
+-There are two distinct library states with regard to FIPS140-2: the FIPS140-2
++There are two distinct library states with regard to FIPS140-3: the FIPS140-3
+ mode is @emph{installed} if @code{/etc/system-fips} is present, and the
+-FIPS140-2 mode is @emph{enabled} if @code{/proc/sys/crypto/fips_enabled}
++FIPS140-3 mode is @emph{enabled} if @code{/proc/sys/crypto/fips_enabled}
+ contains '1', which is typically set with the ``fips=1'' kernel command line
+ option.
+
+-When the FIPS140-2 mode is installed, the operation of the library is modified
++When the FIPS140-3 mode is installed, the operation of the library is modified
+ as follows.
+
+ @itemize
+@@ -684,12 +684,12 @@ as follows.
+ @item Algorithm self-tests are run on library load
+ @end itemize
+
+-When the FIPS140-2 mode is enabled, The operation of the library is in addition
++When the FIPS140-3 mode is enabled, The operation of the library is in addition
+ modified as follows.
+
+ @itemize
+-@item Only approved by FIPS140-2 algorithms are enabled
+-@item Only approved by FIPS140-2 key lengths are allowed for key generation
++@item Only approved by FIPS140-3 algorithms are enabled
++@item Only approved by FIPS140-3 key lengths are allowed for key generation
+ @item Any cryptographic operation will be refused if any of the self-tests failed
+ @end itemize
+
+@@ -698,7 +698,7 @@ There are also few environment variables
+ environment variable @code{GNUTLS_SKIP_FIPS_INTEGRITY_CHECKS} will disable
+ the library integrity tests on startup, and the variable
+ @code{GNUTLS_FORCE_FIPS_MODE} can be set to force a value from
+-@ref{gnutls_fips_mode_t}, i.e., '1' will enable the FIPS140-2
++@ref{gnutls_fips_mode_t}, i.e., '1' will enable the FIPS140-3
+ mode, while '0' will disable it.
+
+ The integrity checks for the dependent libraries and GnuTLS are performed
+@@ -706,20 +706,20 @@ using '.hmac' files which are present at
+ key for the operations can be provided on compile-time with the configure
+ option '--with-fips140-key'. The MAC algorithm used is HMAC-SHA256.
+
+-On runtime an application can verify whether the library is in FIPS140-2
++On runtime an application can verify whether the library is in FIPS140-3
+ mode using the @funcref{gnutls_fips140_mode_enabled} function.
+
+-@subheading Relaxing FIPS140-2 requirements
++@subheading Relaxing FIPS140-3 requirements
+
+ The library by default operates in a strict enforcing mode, ensuring that
+-all constraints imposed by the FIPS140-2 specification are enforced. However
++all constraints imposed by the FIPS140-3 specification are enforced. However
+ the application can relax these requirements via @funcref{gnutls_fips140_set_mode}
+ which can switch to alternative modes as in @ref{gnutls_fips_mode_t}.
+
+ @showenumdesc{gnutls_fips_mode_t,The @code{gnutls_@-fips_@-mode_t} enumeration.}
+
+ The intention of this API is to be used by applications which may run in
+-FIPS140-2 mode, while they utilize few algorithms not in the allowed set,
++FIPS140-3 mode, while they utilize few algorithms not in the allowed set,
+ e.g., for non-security related purposes. In these cases applications should
+ wrap the non-compliant code within blocks like the following.
+
+@@ -748,9 +748,9 @@ if (gnutls_fips140_mode_enabled())
+ The reason of the @code{GNUTLS_FIPS140_SET_MODE_THREAD} flag in the
+ previous calls is to localize the change in the mode. Note also, that
+ such a block has no effect when the library is not operating
+-under FIPS140-2 mode, and thus it can be considered a no-op.
++under FIPS140-3 mode, and thus it can be considered a no-op.
+
+-Applications could also switch FIPS140-2 mode explicitly off, by calling
++Applications could also switch FIPS140-3 mode explicitly off, by calling
+ @example
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, 0);
+ @end example
+@@ -768,7 +768,7 @@ performed within a given context.
+
+ @showfuncD{gnutls_fips140_context_init,gnutls_fips140_context_deinit,gnutls_fips140_push_context,gnutls_fips140_pop_context}
+
+-The @code{gnutls_fips140_context_t} represents the FIPS140-2 mode of
++The @code{gnutls_fips140_context_t} represents the FIPS140-3 mode of
+ operation. It can be attached to the current execution thread with
+ @funcref{gnutls_fips140_push_context} and its internal state will be
+ updated until it is detached with
+Index: gnutls-3.8.11/doc/enums.texi
+===================================================================
+--- gnutls-3.8.11.orig/doc/enums.texi
++++ gnutls-3.8.11/doc/enums.texi
+@@ -1236,7 +1236,7 @@ application traffic secret is installed
+ @c gnutls_fips_mode_t
+ @table @code
+ @item GNUTLS_@-FIPS140_@-DISABLED
+-The FIPS140-2 mode is disabled.
++The FIPS140-3 mode is disabled.
+ @item GNUTLS_@-FIPS140_@-STRICT
+ The default mode; all forbidden operations will cause an
+ operation failure via error code.
+@@ -1244,8 +1244,8 @@ operation failure via error code.
+ A transient state during library initialization. That state
+ cannot be set or seen by applications.
+ @item GNUTLS_@-FIPS140_@-LAX
+-The library still uses the FIPS140-2 relevant algorithms but all
+-forbidden by FIPS140-2 operations are allowed; this is useful when the
++The library still uses the FIPS140-3 relevant algorithms but all
++forbidden by FIPS140-3 operations are allowed; this is useful when the
+ application is aware of the followed security policy, and needs
+ to utilize disallowed operations for other reasons (e.g., compatibility).
+ @item GNUTLS_@-FIPS140_@-LOG
+Index: gnutls-3.8.11/doc/functions/gnutls_fips140_set_mode
+===================================================================
+--- gnutls-3.8.11.orig/doc/functions/gnutls_fips140_set_mode
++++ gnutls-3.8.11/doc/functions/gnutls_fips140_set_mode
+@@ -3,7 +3,7 @@
+
+
+ @deftypefun {void} {gnutls_fips140_set_mode} (gnutls_fips_mode_t @var{mode}, unsigned @var{flags})
+-@var{mode}: the FIPS140-2 mode to switch to
++@var{mode}: the FIPS140-3 mode to switch to
+
+ @var{flags}: should be zero or @code{GNUTLS_FIPS140_SET_MODE_THREAD}
+
+@@ -12,13 +12,13 @@ That function is not thread-safe when ch
+ behavior with no flags after threads are created is undefined.
+
+ When the flag @code{GNUTLS_FIPS140_SET_MODE_THREAD} is specified
+-then this call will change the FIPS140-2 mode for this particular
++then this call will change the FIPS140-3 mode for this particular
+ thread and not for the whole process. That way an application
+ can utilize this function to set and reset mode for specific
+ operations.
+
+ This function never fails but will be a no-op if used when
+-the library is not in FIPS140-2 mode. When asked to switch to unknown
++the library is not in FIPS140-3 mode. When asked to switch to unknown
+ values for @code{mode} or to @code{GNUTLS_FIPS140_SELFTESTS} mode, the library
+ switches to @code{GNUTLS_FIPS140_STRICT} mode.
+
+Index: gnutls-3.8.11/doc/gnutls.html
+===================================================================
+--- gnutls-3.8.11.orig/doc/gnutls.html
++++ gnutls-3.8.11/doc/gnutls.html
+@@ -490,7 +490,7 @@ Documentation License”.
+ 11.4 TLS Extension Handling
+ 11.5 Cryptographic Backend
+ 11.6 Random Number Generators
+- 11.7 FIPS140-2 mode
++ 11.7 FIPS140-3 mode
+
+ Appendix A Upgrading from previous versions
+ Appendix B Support
+@@ -9050,7 +9050,7 @@ CPU. The currently available options are
+ 0x200000: Enable VIA PHE
+ 0x400000: Enable VIA PHE SHA512
+
+-GNUTLS_FORCE_FIPS_MODE | In setups where GnuTLS is compiled with support for FIPS140-2 (see FIPS140-2 mode)
++ |
GNUTLS_FORCE_FIPS_MODE | In setups where GnuTLS is compiled with support for FIPS140-3 (see FIPS140-3 mode)
+ if set to one it will force the FIPS mode enablement. |
+
+
+@@ -18559,7 +18559,7 @@ None:
+ --inline-commands-prefix=str Change the default delimiter for inline commands
+ --provider=file Specify the PKCS #11 provider library
+ - file must pre-exist
+- --fips140-mode Reports the status of the FIPS140-2 mode in gnutls library
++ --fips140-mode Reports the status of the FIPS140-3 mode in gnutls library
+ --list-config Reports the configuration of the library
+ --logfile=str Redirect informational messages to a specific file
+ --keymatexport=str Label used for exporting keying material
+@@ -19579,7 +19579,7 @@ happens inside the black box.
+ TLS Extension Handling
+ Cryptographic Backend
+ Random Number Generators
+-FIPS140-2 mode
++FIPS140-3 mode
+
+
+
+-11.7 FIPS140-2 mode ¶
++11.7 FIPS140-3 mode ¶
+
+-GnuTLS can operate in a special mode for FIPS140-2. That mode of operation
+-is for the conformance to NIST’s FIPS140-2 publication, which consists of policies
++
GnuTLS can operate in a special mode for FIPS140-3. That mode of operation
++is for the conformance to NIST’s FIPS140-3 publication, which consists of policies
+ for cryptographic modules (such as software libraries). Its implementation in
+ GnuTLS is designed for Red Hat Enterprise Linux, and can only be enabled
+ when the library is explicitly compiled with the ’–enable-fips140-mode’
+ configure option.
+
+-There are two distinct library states with regard to FIPS140-2: the FIPS140-2
++
There are two distinct library states with regard to FIPS140-3: the FIPS140-3
+ mode is installed if /etc/system-fips is present, and the
+-FIPS140-2 mode is enabled if /proc/sys/crypto/fips_enabled
++FIPS140-3 mode is enabled if /proc/sys/crypto/fips_enabled
+ contains ’1’, which is typically set with the “fips=1” kernel command line
+ option.
+
+-When the FIPS140-2 mode is installed, the operation of the library is modified
++
When the FIPS140-3 mode is installed, the operation of the library is modified
+ as follows.
+
+
+@@ -20273,12 +20273,12 @@ as follows.
+ - Algorithm self-tests are run on library load
+
+
+-When the FIPS140-2 mode is enabled, The operation of the library is in addition
++
When the FIPS140-3 mode is enabled, The operation of the library is in addition
+ modified as follows.
+
+
+-- Only approved by FIPS140-2 algorithms are enabled
+-
- Only approved by FIPS140-2 key lengths are allowed for key generation
++
- Only approved by FIPS140-3 algorithms are enabled
++
- Only approved by FIPS140-3 key lengths are allowed for key generation
+
- Any cryptographic operation will be refused if any of the self-tests failed
+
+
+@@ -20287,7 +20287,7 @@ modified as follows.
+ environment variable GNUTLS_SKIP_FIPS_INTEGRITY_CHECKS will disable
+ the library integrity tests on startup, and the variable
+ GNUTLS_FORCE_FIPS_MODE can be set to force a value from
+-Figure 11.5, i.e., ’1’ will enable the FIPS140-2
++Figure 11.5, i.e., ’1’ will enable the FIPS140-3
+ mode, while ’0’ will disable it.
+
+ The integrity checks for the dependent libraries and GnuTLS are performed
+@@ -20295,13 +20295,13 @@ using ’.hmac’ files which ar
+ key for the operations can be provided on compile-time with the configure
+ option ’–with-fips140-key’. The MAC algorithm used is HMAC-SHA256.
+
+-On runtime an application can verify whether the library is in FIPS140-2
++
On runtime an application can verify whether the library is in FIPS140-3
+ mode using the gnutls_fips140_mode_enabled function.
+
+-Relaxing FIPS140-2 requirements ¶
++Relaxing FIPS140-3 requirements ¶
+
+ The library by default operates in a strict enforcing mode, ensuring that
+-all constraints imposed by the FIPS140-2 specification are enforced. However
++all constraints imposed by the FIPS140-3 specification are enforced. However
+ the application can relax these requirements via gnutls_fips140_set_mode
+ which can switch to alternative modes as in Figure 11.5.
+
+@@ -20310,7 +20310,7 @@ which can switch to alternative modes as
+
+
+ GNUTLS_FIPS140_DISABLED
+-The FIPS140-2 mode is disabled.
++
The FIPS140-3 mode is disabled.
+
+ GNUTLS_FIPS140_STRICT
+ The default mode; all forbidden operations will cause an
+@@ -20321,8 +20321,8 @@ operation failure via error code.
+ cannot be set or seen by applications.
+
+ GNUTLS_FIPS140_LAX
+-The library still uses the FIPS140-2 relevant algorithms but all
+-forbidden by FIPS140-2 operations are allowed; this is useful when the
++
The library still uses the FIPS140-3 relevant algorithms but all
++forbidden by FIPS140-3 operations are allowed; this is useful when the
+ application is aware of the followed security policy, and needs
+ to utilize disallowed operations for other reasons (e.g., compatibility).
+
+@@ -20333,7 +20333,7 @@ to a message to the audit callback funct
+
+ Figure 11.5: The gnutls_fips_mode_t enumeration.
+ The intention of this API is to be used by applications which may run in
+-FIPS140-2 mode, while they utilize few algorithms not in the allowed set,
++FIPS140-3 mode, while they utilize few algorithms not in the allowed set,
+ e.g., for non-security related purposes. In these cases applications should
+ wrap the non-compliant code within blocks like the following.
+
+@@ -20362,9 +20362,9 @@ if (gnutls_fips140_mode_enabled())
+ The reason of the GNUTLS_FIPS140_SET_MODE_THREAD flag in the
+ previous calls is to localize the change in the mode. Note also, that
+ such a block has no effect when the library is not operating
+-under FIPS140-2 mode, and thus it can be considered a no-op.
++under FIPS140-3 mode, and thus it can be considered a no-op.
+
+-Applications could also switch FIPS140-2 mode explicitly off, by calling
++
Applications could also switch FIPS140-3 mode explicitly off, by calling
+
+
gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, 0);
+
+@@ -20387,7 +20387,7 @@ performed within a given context.
+ int gnutls_fips140_pop_context ( void)
+
+
+-The gnutls_fips140_context_t represents the FIPS140-2 mode of
++
The gnutls_fips140_context_t represents the FIPS140-3 mode of
+ operation. It can be attached to the current execution thread with
+ gnutls_fips140_push_context and its internal state will be
+ updated until it is detached with
+@@ -20760,8 +20760,8 @@ Previous:
+-GnuTLS has support for the FIPS 140-2 certification under Red Hat Enterprise Linux.
+-See FIPS140-2 mode for more information.
++
GnuTLS has support for the FIPS 140-3 certification under Red Hat Enterprise Linux.
++See FIPS140-3 mode for more information.
+
+
+
+@@ -24725,7 +24725,7 @@ unusable. This function is not thread-s
+ gnutls_fips140_set_mode ¶
+
+ - Function:
void gnutls_fips140_set_mode (gnutls_fips_mode_t mode, unsigned flags) ¶
+-mode: the FIPS140-2 mode to switch to
++
mode: the FIPS140-3 mode to switch to
+
+ flags: should be zero or GNUTLS_FIPS140_SET_MODE_THREAD
+
+@@ -24734,13 +24734,13 @@ unusable. This function is not thread-s
+ behavior with no flags after threads are created is undefined.
+
+ When the flag GNUTLS_FIPS140_SET_MODE_THREAD is specified
+-then this call will change the FIPS140-2 mode for this particular
++then this call will change the FIPS140-3 mode for this particular
+ thread and not for the whole process. That way an application
+ can utilize this function to set and reset mode for specific
+ operations.
+
+ This function never fails but will be a no-op if used when
+-the library is not in FIPS140-2 mode. When asked to switch to unknown
++the library is not in FIPS140-3 mode. When asked to switch to unknown
+ values for mode or to GNUTLS_FIPS140_SELFTESTS mode, the library
+ switches to GNUTLS_FIPS140_STRICT mode.
+
+@@ -47261,7 +47261,7 @@ Next: | gnutls_fingerprint | Core TLS API |
+ | gnutls_fips140_context_deinit | Core TLS API |
+ | gnutls_fips140_context_init | Core TLS API |
+- | gnutls_fips140_get_operation_state | FIPS140-2 mode |
++ | gnutls_fips140_get_operation_state | FIPS140-3 mode |
+ | gnutls_fips140_get_operation_state | Core TLS API |
+ | gnutls_fips140_mode_enabled | Core TLS API |
+ | gnutls_fips140_pop_context | Core TLS API |
+Index: gnutls-3.8.11/doc/gnutls.info-3
+===================================================================
+--- gnutls-3.8.11.orig/doc/gnutls.info-3
++++ gnutls-3.8.11/doc/gnutls.info-3
+@@ -2322,7 +2322,7 @@ to ‘more’. Both will exit with a st
+ --inline-commands-prefix=str Change the default delimiter for inline commands
+ --provider=file Specify the PKCS #11 provider library
+ - file must pre-exist
+- --fips140-mode Reports the status of the FIPS140-2 mode in gnutls library
++ --fips140-mode Reports the status of the FIPS140-3 mode in gnutls library
+ --list-config Reports the configuration of the library
+ --logfile=str Redirect informational messages to a specific file
+ --keymatexport=str Label used for exporting keying material
+@@ -3472,7 +3472,7 @@ to know what happens inside the black bo
+ * TLS Hello Extension Handling::
+ * Cryptographic Backend::
+ * Random Number Generators-internals::
+-* FIPS140-2 mode::
++* FIPS140-3 mode::
+
+
+ File: gnutls.info, Node: The TLS Protocol, Next: TLS Handshake Protocol, Up: Internal architecture of GnuTLS
+@@ -3996,7 +3996,7 @@ and abstract key types::.
+ kernel implementation of ‘/dev/crypto’.
+
+
+-File: gnutls.info, Node: Random Number Generators-internals, Next: FIPS140-2 mode, Prev: Cryptographic Backend, Up: Internal architecture of GnuTLS
++File: gnutls.info, Node: Random Number Generators-internals, Next: FIPS140-3 mode, Prev: Cryptographic Backend, Up: Internal architecture of GnuTLS
+
+ 11.6 Random Number Generators
+ =============================
+@@ -4006,7 +4006,7 @@ About the generators
+
+ GnuTLS provides two random generators. The default, and the AES-DRBG
+ random generator which is only used when the library is compiled with
+-support for FIPS140-2 and the system is in FIPS140-2 mode.
++support for FIPS140-3 and the system is in FIPS140-3 mode.
+
+ The default generator - inner workings
+ --------------------------------------
+@@ -4237,7 +4237,7 @@ in *note Figure 11.5: gnutls_fips_mode_t
+ Figure 11.5: The ‘gnutls_fips_mode_t’ enumeration.
+
+ The intention of this API is to be used by applications which may run in
+-FIPS140-2 mode, while they utilize few algorithms not in the allowed
++FIPS140-3 mode, while they utilize few algorithms not in the allowed
+ set, e.g., for non-security related purposes. In these cases
+ applications should wrap the non-compliant code within blocks like the
+ following.
+@@ -4261,10 +4261,10 @@ are macros to simplify the following seq
+
+ The reason of the ‘GNUTLS_FIPS140_SET_MODE_THREAD’ flag in the previous
+ calls is to localize the change in the mode. Note also, that such a
+-block has no effect when the library is not operating under FIPS140-2
++block has no effect when the library is not operating under FIPS140-3
+ mode, and thus it can be considered a no-op.
+
+-Applications could also switch FIPS140-2 mode explicitly off, by calling
++Applications could also switch FIPS140-3 mode explicitly off, by calling
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, 0);
+
+ Service indicator
+@@ -4746,8 +4746,8 @@ There are certifications from national o
+ practices, such as unit testing and reliance on well known crypto
+ primitives.
+
+-GnuTLS has support for the FIPS 140-2 certification under Red Hat
+-Enterprise Linux. See *note FIPS140-2 mode:: for more information.
++GnuTLS has support for the FIPS 140-3 certification under Red Hat
++Enterprise Linux. See *note FIPS140-3 mode:: for more information.
+
+
+ File: gnutls.info, Node: Error codes, Next: Supported ciphersuites, Prev: Support, Up: Top
+@@ -9267,7 +9267,7 @@ gnutls_fips140_set_mode
+
+ -- Function: void gnutls_fips140_set_mode (gnutls_fips_mode_t MODE,
+ unsigned FLAGS)
+- MODE: the FIPS140-2 mode to switch to
++ MODE: the FIPS140-3 mode to switch to
+
+ FLAGS: should be zero or ‘GNUTLS_FIPS140_SET_MODE_THREAD’
+
+Index: gnutls-3.8.11/doc/invoke-gnutls-cli.texi
+===================================================================
+--- gnutls-3.8.11.orig/doc/invoke-gnutls-cli.texi
++++ gnutls-3.8.11/doc/invoke-gnutls-cli.texi
+@@ -102,7 +102,7 @@ None:
+ --inline-commands-prefix=str Change the default delimiter for inline commands
+ --provider=file Specify the PKCS #11 provider library
+ - file must pre-exist
+- --fips140-mode Reports the status of the FIPS140-2 mode in gnutls library
++ --fips140-mode Reports the status of the FIPS140-3 mode in gnutls library
+ --list-config Reports the configuration of the library
+ --logfile=str Redirect informational messages to a specific file
+ --keymatexport=str Label used for exporting keying material
+Index: gnutls-3.8.11/doc/manpages/gnutls-cli.1
+===================================================================
+--- gnutls-3.8.11.orig/doc/manpages/gnutls-cli.1
++++ gnutls-3.8.11/doc/manpages/gnutls-cli.1
+@@ -398,7 +398,7 @@ Specify the PKCS #11 provider library.
+ This will override the default options in /etc/gnutls/pkcs11.conf
+ .TP
+ .NOP \f\*[B-Font]\-\-fips140\-mode\f[]
+-Reports the status of the FIPS140-2 mode in gnutls library.
++Reports the status of the FIPS140-3 mode in gnutls library.
+ .sp
+ .TP
+ .NOP \f\*[B-Font]\-\-list\-config\f[]
+Index: gnutls-3.8.11/doc/reference/html/gnutls-gnutls.html
+===================================================================
+--- gnutls-3.8.11.orig/doc/reference/html/gnutls-gnutls.html
++++ gnutls-3.8.11/doc/reference/html/gnutls-gnutls.html
+@@ -21079,12 +21079,12 @@ gnutls_fips140_set_mode (GNUTLS_FIPS140_SET_MODE_THREAD is specified
+-then this call will change the FIPS140-2 mode for this particular
++then this call will change the FIPS140-3 mode for this particular
+ thread and not for the whole process. That way an application
+ can utilize this function to set and reset mode for specific
+ operations.
+ This function never fails but will be a no-op if used when
+-the library is not in FIPS140-2 mode. When asked to switch to unknown
++the library is not in FIPS140-3 mode. When asked to switch to unknown
+ values for mode
+ or to GNUTLS_FIPS140_SELFTESTS mode, the library
+ switches to GNUTLS_FIPS140_STRICT mode.
+@@ -21099,7 +21099,7 @@ switches to mode
+-the FIPS140-2 mode to switch to |
++the FIPS140-3 mode to switch to |
+ |
+
+
+@@ -26311,7 +26311,7 @@ encryption
+
+
+
enum gnutls_fips_mode_t
+-
Enumeration of different operational modes under FIPS140-2.
++
Enumeration of different operational modes under FIPS140-3.
+