]> git.ipfire.org Git - thirdparty/gnutls.git/log
thirdparty/gnutls.git
16 months agodoc: Fix races in a parallel build.
Maxim Cournoyer [Sun, 22 Dec 2024 02:29:59 +0000 (11:29 +0900)] 
doc: Fix races in a parallel build.

* configure.ac: Use AC_PROG_MKDIR_P macro.
* doc/Makefile.am (stamp_functions, stamp_enums): Use the MKDIR_P
variable it defines.
(error_codes.texi, algorithms.texi, alerts.texi): Add dependency on
errcodes via a prerequisite, not a make invocation
(DISTCLEANFILES): Register the newly depended upon binaries.

Fixes: <https://gitlab.com/gnutls/gnutls/-/issues/1635>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
16 months agoMerge branch 'SecP384r1MLKEM1024' into 'master'
Daiki Ueno [Mon, 13 Jan 2025 23:56:52 +0000 (23:56 +0000)] 
Merge branch 'SecP384r1MLKEM1024' into 'master'

Add MLKEM-1024 and SecP384r1MLKEM1024.

See merge request gnutls/gnutls!1919

16 months agokey_share: support SecP384r1MLKEM1024 group
Loganaden Velvindron [Mon, 13 Jan 2025 23:56:52 +0000 (23:56 +0000)] 
key_share: support SecP384r1MLKEM1024 group

Signed-off-by: Loganaden Velvindron <logan@cyberstorm.mu>
Signed-off-by: Jaykishan Mutkawoa <jay@cyberstorm.mu>
Signed-off-by: Kavish Nadan <kn@cyberstorm.mu>
16 months agoMerge branch 'wip/dueno/mldsa-followup' into 'master'
Daiki Ueno [Fri, 10 Jan 2025 02:01:46 +0000 (02:01 +0000)] 
Merge branch 'wip/dueno/mldsa-followup' into 'master'

Follow-up on ML-KEM and ML-DSA support

See merge request gnutls/gnutls!1916

16 months agox509: stop using version field of MLDSAPrivateKey
Daiki Ueno [Tue, 7 Jan 2025 03:36:19 +0000 (12:36 +0900)] 
x509: stop using version field of MLDSAPrivateKey

Previously we indicated the used ML-DSA algorithm in the version field
of MLDSAPrivateKey, though this information is also available in
privateKeyAlgorithm field as OID. With this change, the version field
is always set to 1 to be compatible with OneAsymmetricKey with a
non-empty publicKey field. When decoding, if the version is 1, the
public key is read from publicKey field; otherwise it will be
extracted from the privateKey field to interoperate with the other
implementations such as OpenSSL/oqsprovider.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoNEWS: add entry for ML-DSA support
Daiki Ueno [Thu, 26 Dec 2024 08:34:51 +0000 (17:34 +0900)] 
NEWS: add entry for ML-DSA support

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agotests: add basic tests for ML-DSA usage with certtool
Daiki Ueno [Thu, 26 Dec 2024 01:56:08 +0000 (10:56 +0900)] 
tests: add basic tests for ML-DSA usage with certtool

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agonettle: ensure liboqs is loaded for signing operations with ML-DSA
Daiki Ueno [Thu, 26 Dec 2024 02:07:15 +0000 (11:07 +0900)] 
nettle: ensure liboqs is loaded for signing operations with ML-DSA

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoalgorithms: document ML-KEM/ML-DSA in public enums
Daiki Ueno [Thu, 26 Dec 2024 01:31:05 +0000 (10:31 +0900)] 
algorithms: document ML-KEM/ML-DSA in public enums

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoalgorithms: rename GNUTLS_PK_MLKEM768 to GNUTLS_PK_ML_KEM_768
Daiki Ueno [Thu, 26 Dec 2024 01:28:08 +0000 (10:28 +0900)] 
algorithms: rename GNUTLS_PK_MLKEM768 to GNUTLS_PK_ML_KEM_768

To be consistent with ML-DSA algorithms, this renames
GNUTLS_PK_MLKEM768 to GNUTLS_PK_ML_KEM_768, while the old name is
preserved through a compatibility macro.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agocerttool: enable ML-DSA private key generation
Daiki Ueno [Tue, 24 Dec 2024 09:14:39 +0000 (18:14 +0900)] 
certtool: enable ML-DSA private key generation

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoalgorithms: expose ML-DSA algorithm entries regardless of liboqs
Daiki Ueno [Thu, 26 Dec 2024 01:38:33 +0000 (10:38 +0900)] 
algorithms: expose ML-DSA algorithm entries regardless of liboqs

Also this omits mapping between ML-DSA-44 and secparams, as there is
no way to express an algorithm is at security level category 2, which
uses a hash collision search instead of a brute-force key search on
AES. See Appendix B of draft-ietf-lamps-dilithium-certificates for
further details.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agofips: perform pair-wise consistency test for ML-DSA
Daiki Ueno [Tue, 24 Dec 2024 07:57:54 +0000 (16:57 +0900)] 
fips: perform pair-wise consistency test for ML-DSA

Also mark the signature creation and verification operation as
non-approved, as the current version of liboqs doesn't implement
sufficient checks for input.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoMerge branch 'wip/dueno/minor-fixes' into 'master'
Daiki Ueno [Thu, 9 Jan 2025 06:25:43 +0000 (06:25 +0000)] 
Merge branch 'wip/dueno/minor-fixes' into 'master'

Assorted minor improvements to the build infrastructure

See merge request gnutls/gnutls!1915

16 months ago.gitlab-ci.yml: bump cache version
Daiki Ueno [Tue, 7 Jan 2025 14:23:22 +0000 (23:23 +0900)] 
.gitlab-ci.yml: bump cache version

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoUpdate year of copyright notices in doc/gnutls.texi
Daiki Ueno [Tue, 7 Jan 2025 11:30:15 +0000 (20:30 +0900)] 
Update year of copyright notices in doc/gnutls.texi

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoconfigure: cache results of AC_*_IFELSE checks
Daiki Ueno [Tue, 24 Dec 2024 01:15:45 +0000 (10:15 +0900)] 
configure: cache results of AC_*_IFELSE checks

This make the configure process a little faster when --cache-file is
given from the previous build, as it avoids running compilers, etc.,
as well as makes the features configurable through cached variables.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agoconfigure: fix output for checking whether dlopen(SONAME) works
Daiki Ueno [Mon, 23 Dec 2024 07:36:26 +0000 (16:36 +0900)] 
configure: fix output for checking whether dlopen(SONAME) works

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agotests: fix "fail" function usage
Daiki Ueno [Tue, 10 Dec 2024 06:54:15 +0000 (15:54 +0900)] 
tests: fix "fail" function usage

The "fail" shell function takes a PID as the first argument.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agotests: fix tense in messages
Daiki Ueno [Tue, 10 Dec 2024 04:48:08 +0000 (13:48 +0900)] 
tests: fix tense in messages

Signed-off-by: Daiki Ueno <ueno@gnu.org>
16 months agobuild: error "make distcheck" if bootstrap is called with --skip-po
Daiki Ueno [Mon, 9 Dec 2024 12:40:07 +0000 (21:40 +0900)] 
build: error "make distcheck" if bootstrap is called with --skip-po

This prevents mistakes when creating a tarball, as in 3.8.7.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
17 months agoMerge branch 'find-p11-kit-trust-via-pkg-config' into 'master'
Daiki Ueno [Sun, 29 Dec 2024 01:49:57 +0000 (01:49 +0000)] 
Merge branch 'find-p11-kit-trust-via-pkg-config' into 'master'

tests: Find p11-kit module directory via pkg-config.

See merge request gnutls/gnutls!1913

17 months agoMerge branch 'add-missing-test-skip-conditions' into 'master'
Daiki Ueno [Thu, 26 Dec 2024 17:58:48 +0000 (17:58 +0000)] 
Merge branch 'add-missing-test-skip-conditions' into 'master'

Skip tests when dependencies are missing

See merge request gnutls/gnutls!1910

17 months agotests: Find p11-kit module directory via pkg-config.
Maxim Cournoyer [Tue, 24 Dec 2024 11:44:12 +0000 (20:44 +0900)] 
tests: Find p11-kit module directory via pkg-config.

* tests/p11-kit-load.sh (P11_MODULE_PATH): New variable; use it to
locate p11-kit-trust.so.
* tests/p11-kit-trust.sh (PKG_CONFIG, P11_MODULE_PATH): Likewise.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agobuild: Skip tls-fuzzer when python-six is not available.
Maxim Cournoyer [Sat, 21 Dec 2024 15:00:39 +0000 (00:00 +0900)] 
build: Skip tls-fuzzer when python-six is not available.

* configure.ac [HAVE_PYTHON_SIX]: New conditional.
* tests/suite/Makefile.am (scripts_to_test)
[HAVE_PYTHON_SIX]: Conditionally include tls-fuzzer test scripts.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agotests: Skip multi-ticket-reception test when valgrind is not available.
Maxim Cournoyer [Sat, 21 Dec 2024 12:47:56 +0000 (21:47 +0900)] 
tests: Skip multi-ticket-reception test when valgrind is not available.

This test would hang when attempting to run without valgrind
available.

* tests/suite/multi-ticket-reception.sh: Skip when VALGRIND is not set.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agoMerge branch 'add-bison-to-bootstrap-conf-buildreq' into 'master'
Daiki Ueno [Sat, 21 Dec 2024 22:37:33 +0000 (22:37 +0000)] 
Merge branch 'add-bison-to-bootstrap-conf-buildreq' into 'master'

bootstrap.conf: Require the 'bison' command.

See merge request gnutls/gnutls!1909

17 months agoconfigure.ac: Ensure Python is available when it's needed.
Maxim Cournoyer [Sat, 21 Dec 2024 13:51:02 +0000 (22:51 +0900)] 
configure.ac: Ensure Python is available when it's needed.

* configure.ac: Use AM_PATH_PYTHON only when needed, and ensure it
then succeeds.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agobootstrap.conf: Sort requirements.
Maxim Cournoyer [Sat, 21 Dec 2024 07:29:39 +0000 (16:29 +0900)] 
bootstrap.conf: Sort requirements.

* bootstrap.conf (buildreq): Sort.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agobootstrap.conf: Require the 'wget' command.
Maxim Cournoyer [Sat, 21 Dec 2024 03:47:56 +0000 (12:47 +0900)] 
bootstrap.conf: Require the 'wget' command.

wget is used to retrieve translation files.

* bootstrap.conf (buildreq): Register wget.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agobootstrap.conf: Require the 'bison' command.
Maxim Cournoyer [Sat, 21 Dec 2024 02:37:51 +0000 (11:37 +0900)] 
bootstrap.conf: Require the 'bison' command.

* bootstrap.conf (buildreq): Register bison.

Fixes: <https://gitlab.com/gnutls/gnutls/-/issues/1196>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
17 months agoMerge branch 'client_early_data_size' into 'master'
Daiki Ueno [Thu, 19 Dec 2024 06:58:26 +0000 (06:58 +0000)] 
Merge branch 'client_early_data_size' into 'master'

Set default value of early date size for client to 0

See merge request gnutls/gnutls!1906

17 months agoSet default value of early date size for client to 0
Sahil Siddiq [Thu, 12 Dec 2024 12:59:39 +0000 (18:29 +0530)] 
Set default value of early date size for client to 0

This commit sets the default value of "early_data_size" to 0 for
the client. "early_data_size" is set to a non-zero value when the
server sends the relevant extension in a session ticket to the
client.

This makes it easy for the client to determine if a server
supports early data.

Link: https://gitlab.com/gnutls/gnutls/-/issues/1619
Signed-off-by: Sahil Siddiq <sahilcdq@proton.me>
17 months agoMerge branch 'wip/dueno/hybrid-kx-liboqs-followup2' into 'master'
Daiki Ueno [Wed, 11 Dec 2024 01:53:11 +0000 (01:53 +0000)] 
Merge branch 'wip/dueno/hybrid-kx-liboqs-followup2' into 'master'

groups: represent hybrid groups with an array of IDs

Closes #1604

See merge request gnutls/gnutls!1904

17 months agoMerge branch 'wip/dueno/print-nc-import-error' into 'master'
Daiki Ueno [Wed, 11 Dec 2024 01:51:48 +0000 (01:51 +0000)] 
Merge branch 'wip/dueno/print-nc-import-error' into 'master'

x509: print errors when importing name constraints fails

Closes #1596

See merge request gnutls/gnutls!1902

17 months agogroups: represent hybrid groups with an array of IDs
Daiki Ueno [Fri, 6 Dec 2024 00:53:18 +0000 (09:53 +0900)] 
groups: represent hybrid groups with an array of IDs

Previously, the supported_groups array contained externally defined
elements, which is legitimate in C99 but caused error with Clang:

  groups.c:93:2: error: initializer element is not a compile-time constant
          group_x25519,
          ^~~~~~~~~~~~

This reworks the array definition of indirection through group
IDs (gnutls_group_t, i.e., integer).

This also makes pqc-hybrid-kx test more exhaustive.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
17 months agoMerge branch 'interop-fix' into 'master'
Daiki Ueno [Mon, 9 Dec 2024 14:01:29 +0000 (14:01 +0000)] 
Merge branch 'interop-fix' into 'master'

fix tmt provision -h local

See merge request gnutls/gnutls!1905

17 months agofix tmt provision -h local
Stanislav Zidek [Mon, 9 Dec 2024 12:32:14 +0000 (13:32 +0100)] 
fix tmt provision -h local

TMT started requiring --feeling-safe for local provisioning.

Signed-off-by: Stanislav Zidek <szidek@redhat.com>
17 months agox509: print errors when importing name constraints fails
Daiki Ueno [Tue, 3 Dec 2024 12:50:05 +0000 (21:50 +0900)] 
x509: print errors when importing name constraints fails

Like printing SCTS, report any error to stdout when iterating over
name constraints in a certificate.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agoMerge branch 'pqc' into 'master'
Daiki Ueno [Fri, 29 Nov 2024 00:51:45 +0000 (00:51 +0000)] 
Merge branch 'pqc' into 'master'

Add experimental support for post-quantum algorithms in X.509 certificates

See merge request gnutls/gnutls!1786

18 months agoMerge branch 'fips/mark-eddsa-approved' into 'master'
Daiki Ueno [Thu, 28 Nov 2024 23:43:06 +0000 (23:43 +0000)] 
Merge branch 'fips/mark-eddsa-approved' into 'master'

fips: mark EdDSA as approved in FIPS mode

See merge request gnutls/gnutls!1897

18 months agoMerge branch 'fips/no_dsa_selfcheck' into 'master'
Daiki Ueno [Thu, 28 Nov 2024 23:37:40 +0000 (23:37 +0000)] 
Merge branch 'fips/no_dsa_selfcheck' into 'master'

fips: Remove DSA selftest check in FIPS mode.

See merge request gnutls/gnutls!1901

18 months agoAs DSA is not-approved in FIPS 140-3, there is no need to run a self test on it.
Angel Yankov [Thu, 28 Nov 2024 08:54:45 +0000 (10:54 +0200)] 
As DSA is not-approved in FIPS 140-3, there is no need to run a self test on it.

Signed-off-by: Angel Yankov <angel.yankov@suse.com>
18 months agoRemoved support for Falcon algorithms
d-Dudas [Sun, 17 Nov 2024 13:12:28 +0000 (15:12 +0200)] 
Removed support for Falcon algorithms

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agofips: mark EdDSA as approved in FIPS mode
pohsingwu [Sat, 16 Nov 2024 18:01:37 +0000 (02:01 +0800)] 
fips: mark EdDSA as approved in FIPS mode

FIPS 186-5 approves EdDSA.

Signed-off-by: Po-Hsing Wu <pohsingwu@synology.com>
18 months agoRemoved support for Sphincs algorithms
d-Dudas [Wed, 6 Nov 2024 18:46:59 +0000 (20:46 +0200)] 
Removed support for Sphincs algorithms

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agoAdded SHA3x4 callbacks for liboqs.
David Dudas [Thu, 24 Oct 2024 15:56:30 +0000 (18:56 +0300)] 
Added SHA3x4 callbacks for liboqs.

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agoMoved ML-DSA algorithms from the experimtental algorithms to non-exeperimental algori...
d-Dudas [Sun, 22 Sep 2024 13:22:13 +0000 (16:22 +0300)] 
Moved ML-DSA algorithms from the experimtental algorithms to non-exeperimental algorithms.

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agoChanged from Dilithium to ML-DSA
d-Dudas [Sat, 31 Aug 2024 16:46:02 +0000 (19:46 +0300)] 
Changed from Dilithium to ML-DSA

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agoAdd experimental support for post-quantum digital signature algorithms in X.509 certi...
d-Dudas [Sun, 28 Jul 2024 21:00:40 +0000 (00:00 +0300)] 
Add experimental support for post-quantum digital signature algorithms in X.509 certificates

- Dilithium
- Falcon
- Sphincs family

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
18 months agoMerge branch 'wip/dueno/assorted-fixes' into 'master'
Daiki Ueno [Fri, 15 Nov 2024 07:54:19 +0000 (07:54 +0000)] 
Merge branch 'wip/dueno/assorted-fixes' into 'master'

Assorted fixes

See merge request gnutls/gnutls!1894

18 months agoliboqs: don't call OQS_destroy if the version is 0.11.0
Daiki Ueno [Thu, 7 Nov 2024 13:10:20 +0000 (22:10 +0900)] 
liboqs: don't call OQS_destroy if the version is 0.11.0

OQS_destroy in liboqs 0.11.0 unconditionally calls OpenSSL functions
for cleanup; see:
https://github.com/open-quantum-safe/liboqs/pull/1982

As it doesn't do anything other than that so far, just skip it for
now.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agoliboqs: add SHA3x4 callbacks
David Dudas [Thu, 7 Nov 2024 00:31:53 +0000 (09:31 +0900)] 
liboqs: add SHA3x4 callbacks

Signed-off-by: David Dudas <david.dudas03@e-uvt.ro>
Modified-by: Daiki Ueno <ueno@gnu.org>
18 months agoMerge branch 'fips/p192-disabled' into 'master'
Daiki Ueno [Wed, 6 Nov 2024 10:50:11 +0000 (10:50 +0000)] 
Merge branch 'fips/p192-disabled' into 'master'

fips: Mark operations using P-192 as not approved

See merge request gnutls/gnutls!1887

18 months agoMerge branch 'fips/rsa2048' into 'master'
Daiki Ueno [Wed, 6 Nov 2024 10:48:59 +0000 (10:48 +0000)] 
Merge branch 'fips/rsa2048' into 'master'

fips: Allow SigVer only with RSA keys with modulus >= 2048 bits

See merge request gnutls/gnutls!1889

18 months agoMerge branch gnutls:master into fips/p192-disabled
Angel Yankov [Wed, 6 Nov 2024 09:03:48 +0000 (09:03 +0000)] 
Merge branch gnutls:master into fips/p192-disabled

18 months agofips: Allow SigVer only with RSA keys with modulus >= 2048 bits
Angel Yankov [Thu, 24 Oct 2024 12:00:28 +0000 (15:00 +0300)] 
fips: Allow SigVer only with RSA keys with modulus >= 2048 bits

This is for easier complience with FIPS 186-5,
otherwise it would be necessary to justify how
the timestamp is provided to prove that only
pre-existing signatures can be verified in compliance
with FIPS 186-5.

Signed-off-by: Angel Yankov <angel.yankov@suse.com>
18 months agoMerge branch 'fips/gnutls_hash_fast_approved' into 'master'
Daiki Ueno [Wed, 6 Nov 2024 05:29:44 +0000 (05:29 +0000)] 
Merge branch 'fips/gnutls_hash_fast_approved' into 'master'

fips: Mark gnutls_hash_fast as approved in FIPS SLI

See merge request gnutls/gnutls!1888

18 months agodlwrap: regenerate files
Daiki Ueno [Wed, 6 Nov 2024 05:24:05 +0000 (14:24 +0900)] 
dlwrap: regenerate files

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agognutls_privkey_get_spki: avoid NULL dereference in invalid call
Daiki Ueno [Wed, 6 Nov 2024 05:14:50 +0000 (14:14 +0900)] 
gnutls_privkey_get_spki: avoid NULL dereference in invalid call

Reported and solution suggested by David Meliksetyan in:
https://gitlab.com/gnutls/gnutls/-/issues/1579

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agognutls-cli-debug: skip GOST and X25519 tests in FIPS mode
Daiki Ueno [Tue, 5 Nov 2024 13:56:36 +0000 (22:56 +0900)] 
gnutls-cli-debug: skip GOST and X25519 tests in FIPS mode

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agoMerge branch 'wip/dueno/release-3.8.8' into 'master' 3.8.8
Daiki Ueno [Tue, 5 Nov 2024 02:33:05 +0000 (02:33 +0000)] 
Merge branch 'wip/dueno/release-3.8.8' into 'master'

Release 3.8.8

See merge request gnutls/gnutls!1893

18 months agoRelease 3.8.8
Daiki Ueno [Sat, 2 Nov 2024 03:13:54 +0000 (12:13 +0900)] 
Release 3.8.8

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agoFixed the check at src/benchmark-tls.c
Daiki Ueno [Sat, 14 Sep 2024 12:31:04 +0000 (15:31 +0300)] 
Fixed the check at src/benchmark-tls.c

Signed-off-by: David Meliksetyan <d.meliksetyan@fobos-nt.ru>
Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agoMerge branch 'wip/dueno/dlwrap-doc' into 'master'
Daiki Ueno [Tue, 5 Nov 2024 00:06:34 +0000 (00:06 +0000)] 
Merge branch 'wip/dueno/dlwrap-doc' into 'master'

dlwrap: clarify the code generation is one time only [ci skip]

Closes #1581

See merge request gnutls/gnutls!1878

18 months agodlwrap: clarify the code generation is one time only [ci skip]
Daiki Ueno [Wed, 25 Sep 2024 02:27:30 +0000 (11:27 +0900)] 
dlwrap: clarify the code generation is one time only [ci skip]

This makes it clear that dlwrap is not a build-time dependency but a
one-time passive code generator.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
18 months agodevel/generate-dlwrap.sh: remove --clang-resource-dir option
Daiki Ueno [Wed, 25 Sep 2024 00:59:42 +0000 (09:59 +0900)] 
devel/generate-dlwrap.sh: remove --clang-resource-dir option

The option is automatically inferred in dlwrap 0.3.6.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoMerge branch 'wip/dueno/kem-group-ordering' into 'master'
Daiki Ueno [Fri, 1 Nov 2024 10:40:06 +0000 (10:40 +0000)] 
Merge branch 'wip/dueno/kem-group-ordering' into 'master'

key_share: detect overlap of PK types in hybrid groups

Closes #1602

See merge request gnutls/gnutls!1892

19 months agopriority: give KEM groups precedence over EC(DH) groups in TLS 1.3
Daiki Ueno [Fri, 1 Nov 2024 02:10:49 +0000 (11:10 +0900)] 
priority: give KEM groups precedence over EC(DH) groups in TLS 1.3

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agokey_share: detect overlap of PK types in hybrid groups
Daiki Ueno [Fri, 1 Nov 2024 01:50:56 +0000 (10:50 +0900)] 
key_share: detect overlap of PK types in hybrid groups

The client limits sending the key_share extension to at most one from
each public key type. To support hybrid groups, the logic needs to be
extedended to check all siblings.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months ago_gnutls_session_supports_group: return boolean instead of error code
Daiki Ueno [Wed, 30 Oct 2024 05:05:10 +0000 (14:05 +0900)] 
_gnutls_session_supports_group: return boolean instead of error code

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoMerge branch 'wip/dueno/liboqs-update' into 'master'
Daiki Ueno [Tue, 29 Oct 2024 14:25:44 +0000 (14:25 +0000)] 
Merge branch 'wip/dueno/liboqs-update' into 'master'

Update liboqs version requirement to 0.11.0 to support final version of ML-KEM

See merge request gnutls/gnutls!1883

19 months agogroups: register SecP256r1MLKEM768 and X25519MLKEM768
Daiki Ueno [Mon, 7 Oct 2024 23:51:44 +0000 (08:51 +0900)] 
groups: register SecP256r1MLKEM768 and X25519MLKEM768

This adds entries for SecP256r1MLKEM768 and X25519MLKEM768
post-quantum hybrid key agreement schemes as defined in
draft-kwiatkowski-tls-ecdhe-mlkem.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agokey_share: rework hybrid algorithms handling
Daiki Ueno [Wed, 9 Oct 2024 08:09:04 +0000 (17:09 +0900)] 
key_share: rework hybrid algorithms handling

Previously we put 2 public key algorithms in a single
gnutls_group_entry_st, with pk and pk2 fields. That turned to be not
flexible enough to handle the cases where the number of combinations
increases or the order of algorithms is swapped. This changes the
representation with a linked list so one can easily construct and
traverse any combinations.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agopriority: take into account of KEM groups
Daiki Ueno [Mon, 14 Oct 2024 08:50:27 +0000 (17:50 +0900)] 
priority: take into account of KEM groups

When constructing a ciphersuite list, include hybrid PQC groups with
KEM as the first key share.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agosupported_groups: give KEM groups higher priority than DH
Daiki Ueno [Wed, 9 Oct 2024 09:10:25 +0000 (18:10 +0900)] 
supported_groups: give KEM groups higher priority than DH

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agostr: add _gnutls_ro_buffer_init
Daiki Ueno [Wed, 9 Oct 2024 08:04:44 +0000 (17:04 +0900)] 
str: add _gnutls_ro_buffer_init

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agopk: plumb ML-KEM 768 in addition to Kyber 768
Daiki Ueno [Mon, 7 Oct 2024 21:34:16 +0000 (06:34 +0900)] 
pk: plumb ML-KEM 768 in addition to Kyber 768

This adds GNUTLS_PK_MLKEM768 in the regular algorithm range, while
keeping GNUTLS_PK_EXP_KYBER768 in the experimental algorithm range.
This also modifies the privkey-keygen test to skip unsupported
algorithms at run-time.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoliboqs: provide SHA2 stubs
Daiki Ueno [Mon, 7 Oct 2024 08:49:24 +0000 (17:49 +0900)] 
liboqs: provide SHA2 stubs

As well as SHA3, this implements GnuTLS backed stubs for SHA2
functions, which will be necessary for SLH-DSA signature support.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoliboqs: check library version at run-time
Daiki Ueno [Mon, 7 Oct 2024 07:46:28 +0000 (16:46 +0900)] 
liboqs: check library version at run-time

This is to safeguard when the library is compiled with a newer liboqs
but deployed to an enviromnent with an older liboqs, which may break
ABI compatibility.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoliboqs: require version 0.11.0
Daiki Ueno [Mon, 7 Oct 2024 04:39:22 +0000 (13:39 +0900)] 
liboqs: require version 0.11.0

liboqs 0.11.0 shipped with public headers for plugging in alternative
symmetric algorithms (e.g., sha3_ops.h), which were previously
missing.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoMerge branch 'mangle-shake-ctx' into 'master'
Daiki Ueno [Mon, 28 Oct 2024 12:51:05 +0000 (12:51 +0000)] 
Merge branch 'mangle-shake-ctx' into 'master'

nettle: mangle struct sha3_128_ctx

See merge request gnutls/gnutls!1886

19 months agofips: Mark gnutls_hash_fast as approved in FIPS SLI
Angel Yankov [Thu, 24 Oct 2024 12:08:04 +0000 (15:08 +0300)] 
fips: Mark gnutls_hash_fast as approved in FIPS SLI

There is no reason for gnutls_hash_fast to not
be approved unde the SLI as part of the approved service
Message Digest (same as gnutls_hash_init, gnutls_hash , gnutls_hash_output ).

Add a transition to state approved when using gnutls_hash_fast.

Signed-off-by: Angel Yankov <angel.yankov@suse.com>
19 months agofips: Mark operations using P-192 as not approved
Angel Yankov [Thu, 24 Oct 2024 12:13:22 +0000 (15:13 +0300)] 
fips: Mark operations using P-192 as not approved

P-192 is not an approved curve as of FIPS 186-5, so mark operations
using it as NOT approved in the SLI.

Signed-off-by: Angel Yankov <angel.yankov@suse.com>
19 months agonettle: mangle sha3_128_ctx
Alexander Sosedkin [Mon, 21 Oct 2024 17:59:20 +0000 (19:59 +0200)] 
nettle: mangle sha3_128_ctx

Signed-off-by: Alexander Sosedkin <asosedkin@redhat.com>
19 months agoMerge branch 'wip/dueno/hash-after-squeeze' into 'master'
Daiki Ueno [Thu, 17 Oct 2024 17:07:43 +0000 (17:07 +0000)] 
Merge branch 'wip/dueno/hash-after-squeeze' into 'master'

hash: return error if gnutls_hash is called after squeeze

Closes #1592

See merge request gnutls/gnutls!1885

19 months agohash: return error if gnutls_hash is called after squeeze
Daiki Ueno [Wed, 16 Oct 2024 05:42:47 +0000 (14:42 +0900)] 
hash: return error if gnutls_hash is called after squeeze

Previously, when gnutls_hash is called after gnutls_hash_squeeze, it
hits an assertion failure in nettle:

  sha3.c:76: _nettle_sha3_update: Assertion `pos < block_size' failed.

This adds an internal function to check whether the hash context has
already been finalized with squeezing and in that case errors out.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
19 months agoMerge branch 'zfridric_devel2' into 'master'
Zoltán Fridrich [Wed, 16 Oct 2024 08:48:35 +0000 (08:48 +0000)] 
Merge branch 'zfridric_devel2' into 'master'

compress_certificate: improve error checks

Closes #1584, #1585, and #1586

See merge request gnutls/gnutls!1884

19 months agocompress_certificate: improve error checks
Zoltan Fridrich [Thu, 10 Oct 2024 11:26:22 +0000 (13:26 +0200)] 
compress_certificate: improve error checks

Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
19 months agoMerge branch 'alloca' into 'master'
Daiki Ueno [Wed, 9 Oct 2024 22:21:55 +0000 (22:21 +0000)] 
Merge branch 'alloca' into 'master'

lib/nettle/int/nettle-internal.h: include alloca.h if configure found it

Closes #782

See merge request gnutls/gnutls!1882

19 months agolib/nettle/int/nettle-internal.h: include alloca.h if configure found it
Alan Coopersmith [Tue, 8 Oct 2024 16:51:00 +0000 (09:51 -0700)] 
lib/nettle/int/nettle-internal.h: include alloca.h if configure found it

Needed for alloca definition on Solaris, to avoid build error with gcc 14:

lib/nettle/int/nettle-internal.h:59:39: error: implicit declaration of
 function 'alloca' [-Wimplicit-function-declaration]
   59 | #define TMP_ALLOC(name, size) (name = alloca(sizeof(*name) * (size)))
      |                                       ^~~~~~

Closes #782

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
20 months agoMerge branch 'zfridric_devel2' into 'master'
Daiki Ueno [Tue, 1 Oct 2024 08:09:38 +0000 (08:09 +0000)] 
Merge branch 'zfridric_devel2' into 'master'

Ignore unknown compression algs when using CLI

Closes #1587

See merge request gnutls/gnutls!1881

20 months agoMerge branch 'tests-key-material-set-dtls-eagain' into 'master'
Daiki Ueno [Tue, 1 Oct 2024 08:09:21 +0000 (08:09 +0000)] 
Merge branch 'tests-key-material-set-dtls-eagain' into 'master'

tests/key-material-set-dtls: retry send/recv on E_AGAIN/E_INTERRUPTED

See merge request gnutls/gnutls!1880

20 months agotests/key-material-set-dtls: retry send/recv on E_AGAIN/E_INTERRUPTED
Alexander Sosedkin [Wed, 25 Sep 2024 11:32:14 +0000 (13:32 +0200)] 
tests/key-material-set-dtls: retry send/recv on E_AGAIN/E_INTERRUPTED

Signed-off-by: Alexander Sosedkin <asosedkin@redhat.com>
20 months agoIgnore unknown compression algs when using CLI
Zoltan Fridrich [Fri, 27 Sep 2024 10:09:51 +0000 (12:09 +0200)] 
Ignore unknown compression algs when using CLI

Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
20 months agoMerge branch 'tests-ktls-fips-skip-chacha' into 'master'
Daiki Ueno [Wed, 25 Sep 2024 09:33:30 +0000 (09:33 +0000)] 
Merge branch 'tests-ktls-fips-skip-chacha' into 'master'

tests/ktls: skip CHACHA20-POLY1305 in FIPS mode

See merge request gnutls/gnutls!1879

20 months agotests/ktls: skip CHACHA20-POLY1305 in FIPS mode
Alexander Sosedkin [Wed, 25 Sep 2024 07:05:35 +0000 (09:05 +0200)] 
tests/ktls: skip CHACHA20-POLY1305 in FIPS mode

Signed-off-by: Alexander Sosedkin <asosedkin@redhat.com>
20 months agoMerge branch 'fix-ocsp-checking-when-multiple-records' into 'master'
Daiki Ueno [Tue, 24 Sep 2024 21:14:01 +0000 (21:14 +0000)] 
Merge branch 'fix-ocsp-checking-when-multiple-records' into 'master'

check all ocsp response records for cert serial number

See merge request gnutls/gnutls!1877

20 months agofix formatting
Jeff Mattson [Tue, 24 Sep 2024 14:53:23 +0000 (10:53 -0400)] 
fix formatting

Signed-off-by: Jeff Mattson <jmattson@sei.cmu.edu>
20 months agoiterate ocsp response records for matching certificate
Jeff Mattson [Tue, 24 Sep 2024 14:33:50 +0000 (10:33 -0400)] 
iterate ocsp response records for matching certificate

Signed-off-by: Jeff Mattson <jmattson@sei.cmu.edu>