Compare commits
6 Commits
05eae1085d
...
main
Author | SHA256 | Date | |
---|---|---|---|
995fa3786c | |||
e7e7a4445b | |||
50019bfe28 | |||
b2fea8ab26 | |||
df45cf341d | |||
7700a6dcb2 |
@@ -15,11 +15,11 @@ need ca-certificates-mozilla to run.
|
|||||||
|
|
||||||
But this would create a build cycle. Skip test.
|
But this would create a build cycle. Skip test.
|
||||||
|
|
||||||
Index: gnutls-3.6.15/tests/trust-store.c
|
Index: gnutls-3.8.9/tests/trust-store.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.6.15.orig/tests/trust-store.c 2020-09-08 10:24:24.018094247 +0200
|
--- gnutls-3.8.9.orig/tests/trust-store.c
|
||||||
+++ gnutls-3.6.15/tests/trust-store.c 2020-09-08 10:24:25.534104346 +0200
|
+++ gnutls-3.8.9/tests/trust-store.c
|
||||||
@@ -44,6 +44,9 @@ static void tls_log_func(int level, cons
|
@@ -42,6 +42,9 @@ static void tls_log_func(int level, cons
|
||||||
|
|
||||||
void doit(void)
|
void doit(void)
|
||||||
{
|
{
|
||||||
|
24
gnutls-3.8.10-disable-ktls_test.patch
Normal file
24
gnutls-3.8.10-disable-ktls_test.patch
Normal file
@@ -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
|
BIN
gnutls-3.8.10.tar.xz
(Stored with Git LFS)
Normal file
BIN
gnutls-3.8.10.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
gnutls-3.8.10.tar.xz.sig
Normal file
BIN
gnutls-3.8.10.tar.xz.sig
Normal file
Binary file not shown.
BIN
gnutls-3.8.3.tar.xz
(Stored with Git LFS)
BIN
gnutls-3.8.3.tar.xz
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,112 +1,120 @@
|
|||||||
Index: gnutls-3.8.0/lib/fips.c
|
Index: gnutls-3.8.8/lib/fips.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.0.orig/lib/fips.c
|
--- gnutls-3.8.8.orig/lib/fips.c
|
||||||
+++ gnutls-3.8.0/lib/fips.c
|
+++ gnutls-3.8.8/lib/fips.c
|
||||||
@@ -171,16 +171,28 @@ struct hmac_entry {
|
@@ -349,11 +349,90 @@ static int load_hmac_file(struct hmac_fi
|
||||||
struct hmac_file {
|
}
|
||||||
int version;
|
|
||||||
struct hmac_entry gnutls;
|
|
||||||
+#if 0
|
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
|
||||||
+ * they are calculated during build of the respective
|
|
||||||
+ * packages and can differ from the ones listed here.
|
|
||||||
+ */
|
|
||||||
struct hmac_entry nettle;
|
|
||||||
struct hmac_entry hogweed;
|
|
||||||
struct hmac_entry gmp;
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
struct lib_paths {
|
|
||||||
char gnutls[GNUTLS_PATH_MAX];
|
|
||||||
+#if 0
|
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
|
||||||
+ * they are calculated during build of the respective
|
|
||||||
+ * packages and can differ from the ones listed here.
|
|
||||||
+ */
|
|
||||||
char nettle[GNUTLS_PATH_MAX];
|
|
||||||
char hogweed[GNUTLS_PATH_MAX];
|
|
||||||
char gmp[GNUTLS_PATH_MAX];
|
|
||||||
+#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -241,12 +253,18 @@ static int handler(void *user, const cha
|
+ * check_dep_lib_hmac:
|
||||||
}
|
+ * @path: path to the library which hmac should be compared
|
||||||
} else if (!strcmp(section, GNUTLS_LIBRARY_NAME)) {
|
+ *
|
||||||
return lib_handler(&p->gnutls, section, name, value);
|
+ * Verify that HMAC of a given library matches the hmac in the file
|
||||||
+#if 0
|
+ * provided by the library, named: .<libname>.so.<soname>.hmac.
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
+ *
|
||||||
+ * they are calculated during build of the respective
|
+ * Returns: 0 on successful HMAC verification, a negative error code otherwise
|
||||||
+ * packages and can differ from the ones listed here.
|
+ */
|
||||||
+ */
|
+static int check_dep_lib_hmac(const char *path)
|
||||||
} else if (!strcmp(section, NETTLE_LIBRARY_NAME)) {
|
+{
|
||||||
return lib_handler(&p->nettle, section, name, value);
|
+ int ret;
|
||||||
} else if (!strcmp(section, HOGWEED_LIBRARY_NAME)) {
|
+ unsigned prev;
|
||||||
return lib_handler(&p->hogweed, section, name, value);
|
+ uint8_t hmac[HMAC_SIZE];
|
||||||
} else if (!strcmp(section, GMP_LIBRARY_NAME)) {
|
+ gnutls_datum_t data;
|
||||||
return lib_handler(&p->gmp, section, name, value);
|
+ char hmac_path[GNUTLS_PATH_MAX];
|
||||||
+#endif
|
+ uint8_t lib_hmac[HMAC_SIZE];
|
||||||
} else {
|
+ size_t lib_hmac_size;
|
||||||
return 0;
|
+
|
||||||
}
|
+ _gnutls_debug_log("Loading: %s\n", path);
|
||||||
@@ -391,12 +409,18 @@ static int callback(struct dl_phdr_info
|
+ ret = gnutls_load_file(path, &data);
|
||||||
|
+ if (ret < 0) {
|
||||||
if (!strcmp(soname, GNUTLS_LIBRARY_SONAME))
|
+ _gnutls_debug_log("Could not load %s: %s\n", path,
|
||||||
_gnutls_str_cpy(paths->gnutls, GNUTLS_PATH_MAX, path);
|
+ gnutls_strerror(ret));
|
||||||
+#if 0
|
+ return gnutls_assert_val(ret);
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
+ }
|
||||||
+ * they are calculated during build of the respective
|
+
|
||||||
+ * packages and can differ from the ones listed here.
|
+ prev = _gnutls_get_lib_state();
|
||||||
+ */
|
+ _gnutls_switch_lib_state(LIB_STATE_OPERATIONAL);
|
||||||
else if (!strcmp(soname, NETTLE_LIBRARY_SONAME))
|
+ ret = gnutls_hmac_fast(HMAC_ALGO, FIPS_KEY, sizeof(FIPS_KEY) - 1,
|
||||||
_gnutls_str_cpy(paths->nettle, GNUTLS_PATH_MAX, path);
|
+ data.data, data.size, hmac);
|
||||||
else if (!strcmp(soname, HOGWEED_LIBRARY_SONAME))
|
+ _gnutls_switch_lib_state(prev);
|
||||||
_gnutls_str_cpy(paths->hogweed, GNUTLS_PATH_MAX, path);
|
+
|
||||||
else if (!strcmp(soname, GMP_LIBRARY_SONAME))
|
+ gnutls_free(data.data);
|
||||||
_gnutls_str_cpy(paths->gmp, GNUTLS_PATH_MAX, path);
|
+ if (ret < 0) {
|
||||||
+#endif
|
+ _gnutls_debug_log("Could not calculate HMAC for %s: %s\n", path,
|
||||||
return 0;
|
+ gnutls_strerror(ret));
|
||||||
}
|
+ return gnutls_assert_val(ret);
|
||||||
|
+ }
|
||||||
@@ -409,6 +433,11 @@ static int load_lib_paths(struct lib_pat
|
+
|
||||||
_gnutls_debug_log("Gnutls library path was not found\n");
|
+ /* Check now the integrity of the hmac provided by the library */
|
||||||
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
|
+ ret = get_hmac_path(hmac_path, sizeof(hmac_path), path);
|
||||||
}
|
+ if (ret < 0) {
|
||||||
+#if 0
|
+ _gnutls_debug_log("Could not get hmac file path: %s\n",
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
+ gnutls_strerror(ret));
|
||||||
+ * they are calculated during build of the respective
|
+ return ret;
|
||||||
+ * packages and can differ from the ones listed here.
|
+ }
|
||||||
+ */
|
+ _gnutls_debug_log("Loading: %s\n", hmac_path);
|
||||||
if (paths->nettle[0] == '\0') {
|
+ ret = gnutls_load_file(hmac_path, &data);
|
||||||
_gnutls_debug_log("Nettle library path was not found\n");
|
+ if (ret < 0) {
|
||||||
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
|
+ _gnutls_debug_log("Could not load %s: %s\n", hmac_path,
|
||||||
@@ -421,7 +450,7 @@ static int load_lib_paths(struct lib_pat
|
+ gnutls_strerror(ret));
|
||||||
_gnutls_debug_log("Gmp library path was not found\n");
|
+ return gnutls_assert_val(ret);
|
||||||
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
|
+ }
|
||||||
}
|
+ lib_hmac_size = hex_data_size(data.size);
|
||||||
-
|
+ /* trim eventual newlines from the end of the data read from file */
|
||||||
+#endif
|
+ while ((data.size > 0) && (data.data[data.size - 1] == '\n')) {
|
||||||
return GNUTLS_E_SUCCESS;
|
+ data.data[data.size - 1] = 0;
|
||||||
}
|
+ data.size--;
|
||||||
|
+ }
|
||||||
@@ -467,6 +496,11 @@ static int check_binary_integrity(void)
|
+ ret = gnutls_hex_decode(&data, lib_hmac, &lib_hmac_size);
|
||||||
ret = check_lib_hmac(&hmac.gnutls, paths.gnutls);
|
+ gnutls_free(data.data);
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ _gnutls_debug_log("Could not hex decode hmac\n");
|
||||||
|
+ return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
|
||||||
|
+ }
|
||||||
|
+ ret = gnutls_memcmp(lib_hmac, hmac, HMAC_SIZE);
|
||||||
|
+ if (ret){
|
||||||
|
+ _gnutls_debug_log("Calculated MAC for %s does not match\n",
|
||||||
|
+ path);
|
||||||
|
+ gnutls_memset(hmac, 0, HMAC_SIZE);
|
||||||
|
+ gnutls_memset(lib_hmac, 0, HMAC_SIZE);
|
||||||
|
+ return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
|
||||||
|
+ }
|
||||||
|
+ _gnutls_debug_log("Successfully verified MAC for %s\n", path);
|
||||||
|
+ gnutls_memset(hmac, 0, HMAC_SIZE);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
* check_lib_hmac:
|
||||||
|
* @entry: hmac file entry
|
||||||
|
* @path: path to the library which hmac should be compared
|
||||||
|
*
|
||||||
|
- * Verify that HMAC from hmac file entry matches HMAC of given library.
|
||||||
|
+ * Verify that HMAC from hmac file entry matches HMAC of gnutls library.
|
||||||
|
*
|
||||||
|
* Returns: 0 on successful HMAC verification, a negative error code otherwise
|
||||||
|
*/
|
||||||
|
@@ -496,17 +575,20 @@ static int check_binary_integrity(void)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
+# if 0
|
#ifdef NETTLE_LIBRARY_SONAME
|
||||||
+ /* Disable nettle, hogweed and gpm HMAC verification as
|
- ret = check_lib_hmac(&hmac.nettle, paths.nettle);
|
||||||
+ * they are calculated during build of the respective
|
+ //ret = check_lib_hmac(&hmac.nettle, paths.nettle);
|
||||||
+ * packages and can differ from the ones listed here.
|
+ ret = check_dep_lib_hmac(paths.nettle);
|
||||||
+ */
|
|
||||||
ret = check_lib_hmac(&hmac.nettle, paths.nettle);
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -476,6 +510,7 @@ static int check_binary_integrity(void)
|
#endif
|
||||||
ret = check_lib_hmac(&hmac.gmp, paths.gmp);
|
#ifdef HOGWEED_LIBRARY_SONAME
|
||||||
|
- ret = check_lib_hmac(&hmac.hogweed, paths.hogweed);
|
||||||
|
+ //ret = check_lib_hmac(&hmac.hogweed, paths.hogweed);
|
||||||
|
+ ret = check_dep_lib_hmac(paths.hogweed);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
+# endif
|
#endif
|
||||||
|
#ifdef GMP_LIBRARY_SONAME
|
||||||
return 0;
|
- ret = check_lib_hmac(&hmac.gmp, paths.gmp);
|
||||||
}
|
+ //ret = check_lib_hmac(&hmac.gmp, paths.gmp);
|
||||||
|
+ ret = check_dep_lib_hmac(paths.gmp);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
|
47
gnutls-FIPS-HMAC-x86_64-v3-opt.patch
Normal file
47
gnutls-FIPS-HMAC-x86_64-v3-opt.patch
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
Index: gnutls-3.8.9/lib/fips.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.9.orig/lib/fips.c
|
||||||
|
+++ gnutls-3.8.9/lib/fips.c
|
||||||
|
@@ -268,6 +268,28 @@ static int handler(void *user, const cha
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+
|
||||||
|
+/* In case of x86_64-v3 optmizations, names might differ in version numbers.
|
||||||
|
+ * @mac_file: buffer where the hmac file path will be written to
|
||||||
|
+ * @lib_path: path to the dependent library, used to deduce hmac file path
|
||||||
|
+ * @file_name: The file name of the library
|
||||||
|
+ */
|
||||||
|
+ static void get_hwcaps_lib_hmac_path(char *mac_file, const char *lib_path, char *file_name) {
|
||||||
|
+ // Cut name short if more than SOVER is present
|
||||||
|
+ char *soname = strstr(file_name, ".so.");
|
||||||
|
+ char correct_ext[256];
|
||||||
|
+ memset(correct_ext, 0x0, 256);
|
||||||
|
+ soname += strlen(".so.");
|
||||||
|
+ for (uint32_t i = 0; i < strlen(soname); i++) {
|
||||||
|
+ if (soname[i] == '.') {
|
||||||
|
+ int proper_len = soname - file_name + i;
|
||||||
|
+ strncpy(correct_ext, file_name, proper_len);
|
||||||
|
+ snprintf(mac_file, 256, "%.*s/.%.*s.hmac", (int)(file_name-lib_path),lib_path,proper_len,correct_ext);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* get_hmac_path:
|
||||||
|
* @mac_file: buffer where the hmac file path will be written to
|
||||||
|
@@ -300,6 +322,13 @@ static int get_hmac_path(char *mac_file,
|
||||||
|
if (ret == 0)
|
||||||
|
return GNUTLS_E_SUCCESS;
|
||||||
|
|
||||||
|
+ if (strstr(gnutls_path, "glibc-hwcaps")) {
|
||||||
|
+ get_hwcaps_lib_hmac_path(mac_file, gnutls_path, p + 1);
|
||||||
|
+ ret = _gnutls_file_exists(mac_file);
|
||||||
|
+ if (ret == 0)
|
||||||
|
+ return GNUTLS_E_SUCCESS;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (p == NULL)
|
||||||
|
ret = snprintf(mac_file, mac_file_size, "fipscheck/.%s.hmac",
|
||||||
|
gnutls_path);
|
@@ -1,8 +1,8 @@
|
|||||||
Index: gnutls-3.7.7/lib/fips.c
|
Index: gnutls-3.8.9/lib/fips.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.7.7.orig/lib/fips.c
|
--- gnutls-3.8.9.orig/lib/fips.c
|
||||||
+++ gnutls-3.7.7/lib/fips.c
|
+++ gnutls-3.8.9/lib/fips.c
|
||||||
@@ -517,6 +517,26 @@ int _gnutls_fips_perform_self_checks2(vo
|
@@ -621,6 +621,26 @@ int _gnutls_fips_perform_self_checks2(vo
|
||||||
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
|
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,5 +27,5 @@ Index: gnutls-3.7.7/lib/fips.c
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
/* PK */
|
/* PK */
|
||||||
ret = gnutls_pk_self_test(0, GNUTLS_PK_RSA);
|
if (_gnutls_config_is_rsa_pkcs1_encrypt_allowed()) {
|
||||||
if (ret < 0) {
|
ret = gnutls_pk_self_test(0, GNUTLS_PK_RSA);
|
||||||
|
181
gnutls-FIPS-disable-mac-sha1.patch
Normal file
181
gnutls-FIPS-disable-mac-sha1.patch
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
commit c4eba74d4745e3a97b443abae1431658a826d2eb
|
||||||
|
Author: Angel Yankov <angel.yankov@suse.com>
|
||||||
|
Date: Thu Nov 28 11:02:07 2024 +0200
|
||||||
|
|
||||||
|
SHA-1 is not allowed in FIPS-140-3 anymore after 2030. Mark it as
|
||||||
|
unapproved
|
||||||
|
|
||||||
|
Signed-off-by: Angel Yankov <angel.yankov@suse.com>
|
||||||
|
|
||||||
|
Index: gnutls-3.8.10/lib/crypto-api.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/lib/crypto-api.c
|
||||||
|
+++ gnutls-3.8.10/lib/crypto-api.c
|
||||||
|
@@ -33,6 +33,7 @@
|
||||||
|
#include "crypto-api.h"
|
||||||
|
#include "iov.h"
|
||||||
|
#include "intprops.h"
|
||||||
|
+#include <gnutls/gnutls.h>
|
||||||
|
|
||||||
|
typedef struct api_cipher_hd_st {
|
||||||
|
cipher_hd_st ctx_enc;
|
||||||
|
@@ -597,7 +598,9 @@ int gnutls_hmac_init(gnutls_hmac_hd_t *d
|
||||||
|
bool not_approved = false;
|
||||||
|
|
||||||
|
/* MD5 is only allowed internally for TLS */
|
||||||
|
- if (!is_mac_algo_allowed(algorithm)) {
|
||||||
|
+ if (algorithm == GNUTLS_MAC_SHA1)
|
||||||
|
+ not_approved = true;
|
||||||
|
+ else if (!is_mac_algo_allowed(algorithm)) {
|
||||||
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
|
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
|
||||||
|
} else if (!is_mac_algo_approved_in_fips(algorithm)) {
|
||||||
|
@@ -757,8 +760,9 @@ int gnutls_hmac_fast(gnutls_mac_algorith
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
bool not_approved = false;
|
||||||
|
-
|
||||||
|
- if (!is_mac_algo_allowed(algorithm)) {
|
||||||
|
+ if (algorithm == GNUTLS_MAC_SHA1)
|
||||||
|
+ not_approved = true;
|
||||||
|
+ else if (!is_mac_algo_allowed(algorithm)) {
|
||||||
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
|
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
|
||||||
|
} else if (!is_mac_algo_approved_in_fips(algorithm)) {
|
||||||
|
@@ -839,8 +843,9 @@ int gnutls_hash_init(gnutls_hash_hd_t *d
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
bool not_approved = false;
|
||||||
|
-
|
||||||
|
- if (!is_mac_algo_allowed(DIG_TO_MAC(algorithm))) {
|
||||||
|
+ if (algorithm == GNUTLS_MAC_SHA1)
|
||||||
|
+ not_approved = true;
|
||||||
|
+ else if (!is_mac_algo_allowed(DIG_TO_MAC(algorithm))) {
|
||||||
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
|
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
|
||||||
|
} else if (!is_mac_algo_approved_in_fips(DIG_TO_MAC(algorithm))) {
|
||||||
|
@@ -957,8 +962,9 @@ int gnutls_hash_fast(gnutls_digest_algor
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
bool not_approved = false;
|
||||||
|
-
|
||||||
|
- if (!is_mac_algo_allowed(DIG_TO_MAC(algorithm))) {
|
||||||
|
+ if (algorithm == GNUTLS_MAC_SHA1)
|
||||||
|
+ not_approved = true;
|
||||||
|
+ else if (!is_mac_algo_allowed(DIG_TO_MAC(algorithm))) {
|
||||||
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
|
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
|
||||||
|
} else if (!is_mac_algo_approved_in_fips(DIG_TO_MAC(algorithm))) {
|
||||||
|
@@ -2173,7 +2179,9 @@ int gnutls_pbkdf2(gnutls_mac_algorithm_t
|
||||||
|
bool not_approved = false;
|
||||||
|
|
||||||
|
/* MD5 is only allowed internally for TLS */
|
||||||
|
- if (!is_mac_algo_allowed(mac)) {
|
||||||
|
+ if (mac == GNUTLS_MAC_SHA1)
|
||||||
|
+ not_approved = true;
|
||||||
|
+ else if (!is_mac_algo_allowed(mac)) {
|
||||||
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
|
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
|
||||||
|
} else if (!is_mac_algo_hmac_approved_in_fips(mac)) {
|
||||||
|
Index: gnutls-3.8.10/lib/crypto-selftests.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/lib/crypto-selftests.c
|
||||||
|
+++ gnutls-3.8.10/lib/crypto-selftests.c
|
||||||
|
@@ -2891,7 +2891,7 @@ int gnutls_mac_self_test(unsigned flags,
|
||||||
|
case GNUTLS_MAC_UNKNOWN:
|
||||||
|
NON_FIPS_CASE(GNUTLS_MAC_MD5, test_mac, hmac_md5_vectors);
|
||||||
|
FALLTHROUGH;
|
||||||
|
- CASE(GNUTLS_MAC_SHA1, test_mac, hmac_sha1_vectors);
|
||||||
|
+ NON_FIPS_CASE(GNUTLS_MAC_SHA1, test_mac, hmac_sha1_vectors);
|
||||||
|
FALLTHROUGH;
|
||||||
|
CASE(GNUTLS_MAC_SHA224, test_mac, hmac_sha224_vectors);
|
||||||
|
FALLTHROUGH;
|
||||||
|
Index: gnutls-3.8.10/lib/fips.h
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/lib/fips.h
|
||||||
|
+++ gnutls-3.8.10/lib/fips.h
|
||||||
|
@@ -79,7 +79,6 @@ inline static bool
|
||||||
|
is_mac_algo_hmac_approved_in_fips(gnutls_mac_algorithm_t algo)
|
||||||
|
{
|
||||||
|
switch (algo) {
|
||||||
|
- case GNUTLS_MAC_SHA1:
|
||||||
|
case GNUTLS_MAC_SHA256:
|
||||||
|
case GNUTLS_MAC_SHA384:
|
||||||
|
case GNUTLS_MAC_SHA512:
|
||||||
|
Index: gnutls-3.8.10/tests/fips-test.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/tests/fips-test.c
|
||||||
|
+++ gnutls-3.8.10/tests/fips-test.c
|
||||||
|
@@ -397,11 +397,12 @@ void doit(void)
|
||||||
|
}
|
||||||
|
FIPS_POP_CONTEXT(ERROR);
|
||||||
|
|
||||||
|
+ FIPS_PUSH_CONTEXT();
|
||||||
|
ret = gnutls_hmac_init(&mh, GNUTLS_MAC_SHA1, key.data, key.size);
|
||||||
|
if (ret < 0) {
|
||||||
|
- fail("gnutls_hmac_init failed\n");
|
||||||
|
+ fail("gnutls_hmac_init failed for sha1\n");
|
||||||
|
}
|
||||||
|
- gnutls_hmac_deinit(mh, NULL);
|
||||||
|
+ FIPS_POP_CONTEXT(NOT_APPROVED);
|
||||||
|
|
||||||
|
ret = gnutls_hmac_init(&mh, GNUTLS_MAC_MD5, key.data, key.size);
|
||||||
|
if (ret != GNUTLS_E_UNWANTED_ALGORITHM) {
|
||||||
|
@@ -736,7 +737,7 @@ void doit(void)
|
||||||
|
}
|
||||||
|
hashed_data.data = hash;
|
||||||
|
hashed_data.size = 20;
|
||||||
|
- FIPS_POP_CONTEXT(APPROVED);
|
||||||
|
+ FIPS_POP_CONTEXT(NOT_APPROVED);
|
||||||
|
|
||||||
|
/* Create a signature with ECDSA and SHA1 (2-pass API); not-approved */
|
||||||
|
FIPS_PUSH_CONTEXT();
|
||||||
|
Index: gnutls-3.8.10/tests/gnutls_hmac_fast.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/tests/gnutls_hmac_fast.c
|
||||||
|
+++ gnutls-3.8.10/tests/gnutls_hmac_fast.c
|
||||||
|
@@ -42,6 +42,11 @@ void doit(void)
|
||||||
|
if (debug)
|
||||||
|
gnutls_global_set_log_level(4711);
|
||||||
|
|
||||||
|
+ /* enable MD5 and SHA1 usage */
|
||||||
|
+ if (gnutls_fips140_mode_enabled()) {
|
||||||
|
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LOG, 0);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
err = gnutls_hmac_fast(GNUTLS_MAC_SHA1, "keykeykey", 9, "abcdefgh", 8,
|
||||||
|
digest);
|
||||||
|
if (err < 0)
|
||||||
|
@@ -59,11 +64,6 @@ void doit(void)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* enable MD5 usage */
|
||||||
|
- if (gnutls_fips140_mode_enabled()) {
|
||||||
|
- gnutls_fips140_set_mode(GNUTLS_FIPS140_LOG, 0);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
err = gnutls_hmac_fast(GNUTLS_MAC_MD5, "keykeykey", 9, "abcdefgh", 8,
|
||||||
|
digest);
|
||||||
|
if (err < 0)
|
||||||
|
Index: gnutls-3.8.10/tests/kdf-api.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/tests/kdf-api.c
|
||||||
|
+++ gnutls-3.8.10/tests/kdf-api.c
|
||||||
|
@@ -108,7 +108,6 @@ inline static bool
|
||||||
|
is_mac_algo_hmac_approved_in_fips(gnutls_mac_algorithm_t algo)
|
||||||
|
{
|
||||||
|
switch (algo) {
|
||||||
|
- case GNUTLS_MAC_SHA1:
|
||||||
|
case GNUTLS_MAC_SHA256:
|
||||||
|
case GNUTLS_MAC_SHA384:
|
||||||
|
case GNUTLS_MAC_SHA512:
|
||||||
|
@@ -145,7 +144,7 @@ static void test_pbkdf2(gnutls_mac_algor
|
||||||
|
assert(gnutls_hex_decode2(&hex, &salt) >= 0);
|
||||||
|
|
||||||
|
fips_push_context(fips_context);
|
||||||
|
- assert(gnutls_pbkdf2(mac, &ikm, &salt, iter_count, buf, length) >= 0);
|
||||||
|
+ gnutls_pbkdf2(mac, &ikm, &salt, iter_count, buf, length);
|
||||||
|
fips_pop_context(fips_context, expected_state);
|
||||||
|
gnutls_free(ikm.data);
|
||||||
|
gnutls_free(salt.data);
|
34
gnutls-FIPS-jitterentropy-deinit-threads.patch
Normal file
34
gnutls-FIPS-jitterentropy-deinit-threads.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Index: gnutls-3.8.4/lib/state.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.4.orig/lib/state.c
|
||||||
|
+++ gnutls-3.8.4/lib/state.c
|
||||||
|
@@ -830,6 +830,12 @@ void gnutls_deinit(gnutls_session_t sess
|
||||||
|
gnutls_mutex_deinit(&session->internals.post_negotiation_lock);
|
||||||
|
gnutls_mutex_deinit(&session->internals.epoch_lock);
|
||||||
|
|
||||||
|
+#if defined(__linux__)
|
||||||
|
+# if defined(ENABLE_FIPS140)
|
||||||
|
+ _rnd_system_entropy_deinit();
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
gnutls_free(session);
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: gnutls-3.8.4/lib/nettle/rnd.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.4.orig/lib/nettle/rnd.c
|
||||||
|
+++ gnutls-3.8.4/lib/nettle/rnd.c
|
||||||
|
@@ -79,6 +79,12 @@ struct generators_ctx_st {
|
||||||
|
|
||||||
|
static void wrap_nettle_rnd_deinit(void *_ctx)
|
||||||
|
{
|
||||||
|
+#if defined(__linux__)
|
||||||
|
+# if defined(ENABLE_FIPS140)
|
||||||
|
+ _rnd_system_entropy_deinit();
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
gnutls_free(_ctx);
|
||||||
|
}
|
||||||
|
|
@@ -1,7 +1,7 @@
|
|||||||
Index: gnutls-3.8.1/lib/nettle/sysrng-linux.c
|
Index: gnutls-3.8.9/lib/nettle/sysrng-linux.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/lib/nettle/sysrng-linux.c
|
--- gnutls-3.8.9.orig/lib/nettle/sysrng-linux.c
|
||||||
+++ gnutls-3.8.1/lib/nettle/sysrng-linux.c
|
+++ gnutls-3.8.9/lib/nettle/sysrng-linux.c
|
||||||
@@ -49,6 +49,15 @@
|
@@ -49,6 +49,15 @@
|
||||||
get_entropy_func _rnd_get_system_entropy = NULL;
|
get_entropy_func _rnd_get_system_entropy = NULL;
|
||||||
|
|
||||||
@@ -158,11 +158,11 @@ Index: gnutls-3.8.1/lib/nettle/sysrng-linux.c
|
|||||||
+#endif
|
+#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Index: gnutls-3.8.1/lib/nettle/Makefile.in
|
Index: gnutls-3.8.9/lib/nettle/Makefile.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/lib/nettle/Makefile.in
|
--- gnutls-3.8.9.orig/lib/nettle/Makefile.in
|
||||||
+++ gnutls-3.8.1/lib/nettle/Makefile.in
|
+++ gnutls-3.8.9/lib/nettle/Makefile.in
|
||||||
@@ -402,7 +402,7 @@ am__v_CC_1 =
|
@@ -521,7 +521,7 @@ am__v_CC_1 =
|
||||||
CCLD = $(CC)
|
CCLD = $(CC)
|
||||||
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||||
@@ -171,10 +171,10 @@ Index: gnutls-3.8.1/lib/nettle/Makefile.in
|
|||||||
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||||
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||||
am__v_CCLD_0 = @echo " CCLD " $@;
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||||
Index: gnutls-3.8.1/lib/nettle/Makefile.am
|
Index: gnutls-3.8.9/lib/nettle/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/lib/nettle/Makefile.am
|
--- gnutls-3.8.9.orig/lib/nettle/Makefile.am
|
||||||
+++ gnutls-3.8.1/lib/nettle/Makefile.am
|
+++ gnutls-3.8.9/lib/nettle/Makefile.am
|
||||||
@@ -20,7 +20,7 @@
|
@@ -20,7 +20,7 @@
|
||||||
|
|
||||||
include $(top_srcdir)/lib/common.mk
|
include $(top_srcdir)/lib/common.mk
|
||||||
@@ -182,12 +182,12 @@ Index: gnutls-3.8.1/lib/nettle/Makefile.am
|
|||||||
-AM_CFLAGS += $(HOGWEED_CFLAGS) $(GMP_CFLAGS)
|
-AM_CFLAGS += $(HOGWEED_CFLAGS) $(GMP_CFLAGS)
|
||||||
+AM_CFLAGS += $(HOGWEED_CFLAGS) $(GMP_CFLAGS) -ljitterentropy
|
+AM_CFLAGS += $(HOGWEED_CFLAGS) $(GMP_CFLAGS) -ljitterentropy
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
AM_CPPFLAGS += \
|
||||||
-I$(srcdir)/int \
|
-I$(srcdir)/int \
|
||||||
Index: gnutls-3.8.1/lib/nettle/rnd-fips.c
|
Index: gnutls-3.8.9/lib/nettle/rnd-fips.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/lib/nettle/rnd-fips.c
|
--- gnutls-3.8.9.orig/lib/nettle/rnd-fips.c
|
||||||
+++ gnutls-3.8.1/lib/nettle/rnd-fips.c
|
+++ gnutls-3.8.9/lib/nettle/rnd-fips.c
|
||||||
@@ -129,6 +129,10 @@ static int drbg_init(struct fips_ctx *fc
|
@@ -129,6 +129,10 @@ static int drbg_init(struct fips_ctx *fc
|
||||||
uint8_t buffer[DRBG_AES_SEED_SIZE];
|
uint8_t buffer[DRBG_AES_SEED_SIZE];
|
||||||
int ret;
|
int ret;
|
||||||
@@ -210,16 +210,16 @@ Index: gnutls-3.8.1/lib/nettle/rnd-fips.c
|
|||||||
ret = get_entropy(fctx, buffer, sizeof(buffer));
|
ret = get_entropy(fctx, buffer, sizeof(buffer));
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
|
||||||
Index: gnutls-3.8.1/tests/Makefile.am
|
Index: gnutls-3.8.9/tests/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/tests/Makefile.am
|
--- gnutls-3.8.9.orig/tests/Makefile.am
|
||||||
+++ gnutls-3.8.1/tests/Makefile.am
|
+++ gnutls-3.8.9/tests/Makefile.am
|
||||||
@@ -208,7 +208,7 @@ ctests += mini-record-2 simple gnutls_hm
|
@@ -212,7 +212,7 @@ ctests += mini-record-2 simple gnutls_hm
|
||||||
dtls12-cert-key-exchange dtls10-cert-key-exchange x509-cert-callback-legacy \
|
dtls12-cert-key-exchange dtls10-cert-key-exchange x509-cert-callback-legacy \
|
||||||
keylog-env ssl2-hello tlsfeature-ext dtls-rehandshake-cert-2 dtls-session-ticket-lost \
|
keylog-env ssl2-hello tlsfeature-ext dtls-rehandshake-cert-2 dtls-session-ticket-lost \
|
||||||
tlsfeature-crt dtls-rehandshake-cert-3 resume-with-false-start \
|
tlsfeature-crt dtls-rehandshake-cert-3 resume-with-false-start \
|
||||||
- set_x509_key_file_ocsp client-fastopen rng-sigint srp rng-pthread \
|
- set_x509_key_file_ocsp client-fastopen rng-sigint srp \
|
||||||
+ set_x509_key_file_ocsp client-fastopen srp rng-pthread \
|
+ set_x509_key_file_ocsp client-fastopen srp \
|
||||||
safe-renegotiation/srn0 safe-renegotiation/srn1 safe-renegotiation/srn2 \
|
safe-renegotiation/srn0 safe-renegotiation/srn1 safe-renegotiation/srn2 \
|
||||||
safe-renegotiation/srn3 safe-renegotiation/srn4 safe-renegotiation/srn5 \
|
safe-renegotiation/srn3 safe-renegotiation/srn4 safe-renegotiation/srn5 \
|
||||||
rsa-illegal-import set_x509_ocsp_multi_invalid set_key set_x509_key_file_ocsp_multi2 \
|
rsa-illegal-import set_x509_ocsp_multi_invalid set_key set_x509_key_file_ocsp_multi2 \
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
Index: gnutls-3.7.8/tests/Makefile.am
|
Index: gnutls-3.8.10/tests/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.7.8.orig/tests/Makefile.am
|
--- gnutls-3.8.10.orig/tests/Makefile.am
|
||||||
+++ gnutls-3.7.8/tests/Makefile.am
|
+++ gnutls-3.8.10/tests/Makefile.am
|
||||||
@@ -508,7 +508,7 @@ if !WINDOWS
|
@@ -536,7 +536,7 @@ ktls_keyupdate_CFLAGS = -DUSE_KTLS
|
||||||
# List of tests not available/functional under windows
|
dist_check_SCRIPTS += ktls_keyupdate.sh
|
||||||
#
|
endif
|
||||||
|
|
||||||
-dist_check_SCRIPTS += dtls/dtls.sh dtls/dtls-resume.sh #dtls/dtls-nb
|
-dist_check_SCRIPTS += dtls/dtls.sh dtls/dtls-resume.sh #dtls/dtls-nb
|
||||||
+dist_check_SCRIPTS += dtls/dtls.sh #dtls/dtls-resume.sh #dtls/dtls-nb
|
+dist_check_SCRIPTS += dtls/dtls.sh #dtls/dtls-resume.sh #dtls/dtls-nb
|
||||||
|
27
gnutls-fips-sonames-check.patch
Normal file
27
gnutls-fips-sonames-check.patch
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
Index: gnutls-3.8.9/lib/fips.c
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.9.orig/lib/fips.c
|
||||||
|
+++ gnutls-3.8.9/lib/fips.c
|
||||||
|
@@ -484,18 +484,18 @@ static int callback(struct dl_phdr_info
|
||||||
|
const char *soname = last_component(path);
|
||||||
|
struct lib_paths *paths = (struct lib_paths *)data;
|
||||||
|
|
||||||
|
- if (!strcmp(soname, GNUTLS_LIBRARY_SONAME))
|
||||||
|
+ if (!strncmp(soname, GNUTLS_LIBRARY_SONAME, strlen(GNUTLS_LIBRARY_SONAME)))
|
||||||
|
_gnutls_str_cpy(paths->gnutls, GNUTLS_PATH_MAX, path);
|
||||||
|
#ifdef NETTLE_LIBRARY_SONAME
|
||||||
|
- else if (!strcmp(soname, NETTLE_LIBRARY_SONAME))
|
||||||
|
+ else if (!strncmp(soname, NETTLE_LIBRARY_SONAME, strlen(NETTLE_LIBRARY_SONAME)))
|
||||||
|
_gnutls_str_cpy(paths->nettle, GNUTLS_PATH_MAX, path);
|
||||||
|
#endif
|
||||||
|
#ifdef HOGWEED_LIBRARY_SONAME
|
||||||
|
- else if (!strcmp(soname, HOGWEED_LIBRARY_SONAME))
|
||||||
|
+ else if (!strncmp(soname, HOGWEED_LIBRARY_SONAME, strlen(HOGWEED_LIBRARY_SONAME)))
|
||||||
|
_gnutls_str_cpy(paths->hogweed, GNUTLS_PATH_MAX, path);
|
||||||
|
#endif
|
||||||
|
#ifdef GMP_LIBRARY_SONAME
|
||||||
|
- else if (!strcmp(soname, GMP_LIBRARY_SONAME))
|
||||||
|
+ else if (!strncmp(soname, GMP_LIBRARY_SONAME, strlen(GMP_LIBRARY_SONAME)))
|
||||||
|
_gnutls_str_cpy(paths->gmp, GNUTLS_PATH_MAX, path);
|
||||||
|
#endif
|
||||||
|
return 0;
|
10
gnutls-set-cligen-python-interp.patch
Normal file
10
gnutls-set-cligen-python-interp.patch
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Index: gnutls-3.8.9/cligen/cli-docgen.py
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.9.orig/cligen/cli-docgen.py
|
||||||
|
+++ gnutls-3.8.9/cligen/cli-docgen.py
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
# Copyright (C) 2021-2022 Daiki Ueno
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
34
gnutls-skip-pqx-test.patch
Normal file
34
gnutls-skip-pqx-test.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Index: gnutls-3.8.10/tests/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/tests/Makefile.am
|
||||||
|
+++ gnutls-3.8.10/tests/Makefile.am
|
||||||
|
@@ -628,8 +628,6 @@ ctests += win32-certopenstore
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
-dist_check_SCRIPTS += pqc-hybrid-kx.sh
|
||||||
|
-
|
||||||
|
cpptests =
|
||||||
|
if ENABLE_CXX
|
||||||
|
if HAVE_CMOCKA
|
||||||
|
Index: gnutls-3.8.10/tests/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- gnutls-3.8.10.orig/tests/Makefile.in
|
||||||
|
+++ gnutls-3.8.10/tests/Makefile.in
|
||||||
|
@@ -3293,7 +3293,7 @@ am__dist_check_SCRIPTS_DIST = rfc2253-es
|
||||||
|
gnutls-cli-self-signed.sh gnutls-cli-invalid-crl.sh \
|
||||||
|
gnutls-cli-rawpk.sh dh-fips-approved.sh p11-kit-trust.sh \
|
||||||
|
testpkcs11.sh certtool-pkcs11.sh pkcs11-tool.sh \
|
||||||
|
- p11-kit-load.sh danetool.sh tpmtool_test.sh pqc-hybrid-kx.sh
|
||||||
|
+ p11-kit-load.sh danetool.sh tpmtool_test.sh
|
||||||
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||||
|
am__v_P_0 = false
|
||||||
|
@@ -7178,7 +7178,6 @@ dist_check_SCRIPTS = rfc2253-escape-test
|
||||||
|
$(am__append_18) $(am__append_20) $(am__append_21) \
|
||||||
|
$(am__append_23) $(am__append_25) $(am__append_26) \
|
||||||
|
$(am__append_27) $(am__append_29) $(am__append_30) \
|
||||||
|
- pqc-hybrid-kx.sh
|
||||||
|
@ENABLE_KTLS_TRUE@@WINDOWS_FALSE@ktls_keyupdate_SOURCES = tls13/key_update.c
|
||||||
|
@ENABLE_KTLS_TRUE@@WINDOWS_FALSE@ktls_keyupdate_CFLAGS = -DUSE_KTLS
|
||||||
|
@WINDOWS_FALSE@dtls_stress_SOURCES = dtls/dtls-stress.c
|
@@ -1,8 +1,8 @@
|
|||||||
Index: gnutls-3.8.1/tests/srp.c
|
Index: gnutls-3.8.9/tests/srp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gnutls-3.8.1.orig/tests/srp.c
|
--- gnutls-3.8.9.orig/tests/srp.c
|
||||||
+++ gnutls-3.8.1/tests/srp.c
|
+++ gnutls-3.8.9/tests/srp.c
|
||||||
@@ -287,7 +289,7 @@ static void start(const char *name, cons
|
@@ -290,7 +290,7 @@ static void start(const char *name, cons
|
||||||
if (child) {
|
if (child) {
|
||||||
int status;
|
int status;
|
||||||
/* parent */
|
/* parent */
|
||||||
@@ -11,7 +11,7 @@ Index: gnutls-3.8.1/tests/srp.c
|
|||||||
client(fd[1], prio, user, pass, exp_err);
|
client(fd[1], prio, user, pass, exp_err);
|
||||||
if (exp_err < 0) {
|
if (exp_err < 0) {
|
||||||
kill(child, SIGTERM);
|
kill(child, SIGTERM);
|
||||||
@@ -297,7 +299,7 @@ static void start(const char *name, cons
|
@@ -300,7 +300,7 @@ static void start(const char *name, cons
|
||||||
check_wait_status(status);
|
check_wait_status(status);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
560
gnutls.changes
560
gnutls.changes
File diff suppressed because it is too large
Load Diff
86
gnutls.spec
86
gnutls.spec
@@ -1,7 +1,8 @@
|
|||||||
#
|
#
|
||||||
# spec file for package gnutls
|
# spec file for package gnutls
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
# Copyright (c) 2025 Andreas Stieger <Andreas.Stieger@gmx.de>
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -39,8 +40,10 @@
|
|||||||
%bcond_with kcapi
|
%bcond_with kcapi
|
||||||
%endif
|
%endif
|
||||||
%bcond_with tpm
|
%bcond_with tpm
|
||||||
|
%bcond_without tpm2
|
||||||
|
%bcond_without leancrypto
|
||||||
Name: gnutls
|
Name: gnutls
|
||||||
Version: 3.8.3
|
Version: 3.8.10
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The GNU Transport Layer Security Library
|
Summary: The GNU Transport Layer Security Library
|
||||||
License: GPL-3.0-or-later AND LGPL-2.1-or-later
|
License: GPL-3.0-or-later AND LGPL-2.1-or-later
|
||||||
@@ -66,7 +69,18 @@ Patch101: gnutls-FIPS-HMAC-nettle-hogweed-gmp.patch
|
|||||||
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
||||||
#PATCH-FIX-SUSE bsc#1202146 FIPS: Port gnutls to use jitterentropy
|
#PATCH-FIX-SUSE bsc#1202146 FIPS: Port gnutls to use jitterentropy
|
||||||
Patch102: gnutls-FIPS-jitterentropy.patch
|
Patch102: gnutls-FIPS-jitterentropy.patch
|
||||||
|
#PATCH-FIX-SUSE bsc#1221242 Fix memleak in gnutls' jitterentropy collector
|
||||||
|
Patch103: gnutls-FIPS-jitterentropy-deinit-threads.patch
|
||||||
%endif
|
%endif
|
||||||
|
Patch104: gnutls-set-cligen-python-interp.patch
|
||||||
|
Patch105: gnutls-skip-pqx-test.patch
|
||||||
|
Patch106: gnutls-fips-sonames-check.patch
|
||||||
|
# PATCH-FIX-SUSE jsc#jsc#PED-12224 FIPS: Mark SHA1 as unapproved in the SLI
|
||||||
|
Patch107: gnutls-FIPS-disable-mac-sha1.patch
|
||||||
|
# PATCH-FIX-SUSE bsc#1237101 GNUTLS FIPS selfcheck is failing again on tumbleweed
|
||||||
|
Patch108: gnutls-FIPS-HMAC-x86_64-v3-opt.patch
|
||||||
|
# PATCH-FIX-SUSE Disable test
|
||||||
|
Patch109: gnutls-3.8.10-disable-ktls_test.patch
|
||||||
BuildRequires: autogen
|
BuildRequires: autogen
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: datefudge
|
BuildRequires: datefudge
|
||||||
@@ -85,10 +99,16 @@ BuildRequires: p11-kit-devel >= 0.23.1
|
|||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: xz
|
BuildRequires: xz
|
||||||
BuildRequires: pkgconfig(autoopts)
|
BuildRequires: pkgconfig(autoopts)
|
||||||
|
BuildRequires: pkgconfig(libbrotlidec)
|
||||||
|
BuildRequires: pkgconfig(libbrotlienc)
|
||||||
|
BuildRequires: pkgconfig(libzstd)
|
||||||
BuildRequires: pkgconfig(zlib)
|
BuildRequires: pkgconfig(zlib)
|
||||||
%if %{with kcapi}
|
%if %{with kcapi}
|
||||||
BuildRequires: pkgconfig(libkcapi)
|
BuildRequires: pkgconfig(libkcapi)
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with leancrypto}
|
||||||
|
BuildRequires: pkgconfig(leancrypto)
|
||||||
|
%endif
|
||||||
%if 0%{?suse_version} <= 1320
|
%if 0%{?suse_version} <= 1320
|
||||||
BuildRequires: net-tools
|
BuildRequires: net-tools
|
||||||
%else
|
%else
|
||||||
@@ -97,6 +117,9 @@ BuildRequires: net-tools-deprecated
|
|||||||
%if %{with tpm}
|
%if %{with tpm}
|
||||||
BuildRequires: trousers-devel
|
BuildRequires: trousers-devel
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with tpm2}
|
||||||
|
BuildRequires: tpm2-0-tss-devel >= 3.0.3
|
||||||
|
%endif
|
||||||
%if %{with dane}
|
%if %{with dane}
|
||||||
Requires: libgnutls-dane%{gnutls_dane_sover} = %{version}
|
Requires: libgnutls-dane%{gnutls_dane_sover} = %{version}
|
||||||
%if 0%{?suse_version} <= 1320
|
%if 0%{?suse_version} <= 1320
|
||||||
@@ -107,10 +130,13 @@ BuildRequires: libunbound-devel
|
|||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
|
||||||
BuildRequires: crypto-policies
|
BuildRequires: crypto-policies
|
||||||
Requires: crypto-policies
|
|
||||||
BuildRequires: jitterentropy-devel >= 3.4.0
|
BuildRequires: jitterentropy-devel >= 3.4.0
|
||||||
|
Requires: crypto-policies
|
||||||
Requires: libjitterentropy3 >= 3.4.0
|
Requires: libjitterentropy3 >= 3.4.0
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with tpm}
|
||||||
|
Recommends: trousers
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The GnuTLS library provides a secure layer over a reliable transport
|
The GnuTLS library provides a secure layer over a reliable transport
|
||||||
@@ -132,7 +158,6 @@ The GnuTLS library provides a secure layer over a reliable transport
|
|||||||
layer. Currently the GnuTLS library implements the proposed standards
|
layer. Currently the GnuTLS library implements the proposed standards
|
||||||
of the IETF's TLS working group.
|
of the IETF's TLS working group.
|
||||||
|
|
||||||
%if %{with dane}
|
|
||||||
%package -n libgnutls-dane%{gnutls_dane_sover}
|
%package -n libgnutls-dane%{gnutls_dane_sover}
|
||||||
Summary: DANE support for the GNU Transport Layer Security Library
|
Summary: DANE support for the GNU Transport Layer Security Library
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@@ -142,7 +167,6 @@ Group: System/Libraries
|
|||||||
The GnuTLS project aims to develop a library that provides a secure
|
The GnuTLS project aims to develop a library that provides a secure
|
||||||
layer over a reliable transport layer.
|
layer over a reliable transport layer.
|
||||||
This package contains the "DANE" part of gnutls.
|
This package contains the "DANE" part of gnutls.
|
||||||
%endif
|
|
||||||
|
|
||||||
%package -n libgnutlsxx%{gnutlsxx_sover}
|
%package -n libgnutlsxx%{gnutlsxx_sover}
|
||||||
Summary: C++ API for the GNU Transport Layer Security Library
|
Summary: C++ API for the GNU Transport Layer Security Library
|
||||||
@@ -172,7 +196,6 @@ Requires: crypto-policies
|
|||||||
%description -n libgnutls-devel
|
%description -n libgnutls-devel
|
||||||
Files needed for software development using gnutls.
|
Files needed for software development using gnutls.
|
||||||
|
|
||||||
%if %{with dane}
|
|
||||||
%package -n libgnutls-dane-devel
|
%package -n libgnutls-dane-devel
|
||||||
Summary: Development package for GnuTLS DANE component
|
Summary: Development package for GnuTLS DANE component
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@@ -181,7 +204,14 @@ Requires: libgnutls-dane%{gnutls_dane_sover} = %{version}
|
|||||||
|
|
||||||
%description -n libgnutls-dane-devel
|
%description -n libgnutls-dane-devel
|
||||||
Files needed for software development using gnutls.
|
Files needed for software development using gnutls.
|
||||||
%endif
|
|
||||||
|
%package -n libgnutls-devel-doc
|
||||||
|
Summary: Manual and Info pages for libgnutls
|
||||||
|
License: LGPL-2.1-or-later
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description -n libgnutls-devel-doc
|
||||||
|
Manpages (troff) and GNU Info pages for libgnutls.
|
||||||
|
|
||||||
%package -n libgnutlsxx-devel
|
%package -n libgnutlsxx-devel
|
||||||
Summary: Development package for the GnuTLS C++ API
|
Summary: Development package for the GnuTLS C++ API
|
||||||
@@ -221,6 +251,11 @@ autoreconf -fiv
|
|||||||
%if %{without tpm}
|
%if %{without tpm}
|
||||||
--without-tpm \
|
--without-tpm \
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with tpm2}
|
||||||
|
--with-tpm2 \
|
||||||
|
%else
|
||||||
|
--without-tpm2 \
|
||||||
|
%endif
|
||||||
%if %{with dane}
|
%if %{with dane}
|
||||||
--with-unbound-root-key-file=%{_localstatedir}/lib/unbound/root.key \
|
--with-unbound-root-key-file=%{_localstatedir}/lib/unbound/root.key \
|
||||||
%else
|
%else
|
||||||
@@ -229,6 +264,11 @@ autoreconf -fiv
|
|||||||
%if %{with srp}
|
%if %{with srp}
|
||||||
--enable-srp-authentication \
|
--enable-srp-authentication \
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with leancrypto}
|
||||||
|
--with-leancrypto \
|
||||||
|
%else
|
||||||
|
--without-leancrypto \
|
||||||
|
%endif
|
||||||
%ifarch %{ix86} %{arm}
|
%ifarch %{ix86} %{arm}
|
||||||
--disable-year2038 \
|
--disable-year2038 \
|
||||||
%endif
|
%endif
|
||||||
@@ -236,6 +276,7 @@ autoreconf -fiv
|
|||||||
--enable-fips140-mode \
|
--enable-fips140-mode \
|
||||||
--with-fips140-module-name="GnuTLS version" \
|
--with-fips140-module-name="GnuTLS version" \
|
||||||
--with-fips140-module-version="%{version}-%{release}" \
|
--with-fips140-module-version="%{version}-%{release}" \
|
||||||
|
--enable-ktls \
|
||||||
%{nil}
|
%{nil}
|
||||||
|
|
||||||
%make_build
|
%make_build
|
||||||
@@ -296,19 +337,12 @@ GNUTLS_FORCE_FIPS_MODE=1 make check %{?_smp_mflags} GNUTLS_SYSTEM_PRIORITY_FILE=
|
|||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post -n libgnutls%{gnutls_sover} -p /sbin/ldconfig
|
%ldconfig_scriptlets -n libgnutls%{gnutls_sover}
|
||||||
%postun -n libgnutls%{gnutls_sover} -p /sbin/ldconfig
|
%ldconfig_scriptlets -n libgnutls-dane%{gnutls_dane_sover}
|
||||||
|
%ldconfig_scriptlets -n libgnutlsxx%{gnutlsxx_sover}
|
||||||
%if %{with dane}
|
|
||||||
%post -n libgnutls-dane%{gnutls_dane_sover} -p /sbin/ldconfig
|
|
||||||
%postun -n libgnutls-dane%{gnutls_dane_sover} -p /sbin/ldconfig
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%post -n libgnutlsxx%{gnutlsxx_sover} -p /sbin/ldconfig
|
|
||||||
%postun -n libgnutlsxx%{gnutlsxx_sover} -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files -f libgnutls.lang
|
%files -f libgnutls.lang
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%doc THANKS README.md NEWS ChangeLog AUTHORS doc/TODO
|
%doc THANKS README.md NEWS ChangeLog AUTHORS doc/TODO
|
||||||
%{_bindir}/certtool
|
%{_bindir}/certtool
|
||||||
%{_bindir}/gnutls-cli
|
%{_bindir}/gnutls-cli
|
||||||
@@ -329,22 +363,22 @@ GNUTLS_FORCE_FIPS_MODE=1 make check %{?_smp_mflags} GNUTLS_SYSTEM_PRIORITY_FILE=
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%files -n libgnutls%{gnutls_sover}
|
%files -n libgnutls%{gnutls_sover}
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%{_libdir}/libgnutls.so.%{gnutls_sover}*
|
%{_libdir}/libgnutls.so.%{gnutls_sover}*
|
||||||
%{_libdir}/.libgnutls.so.%{gnutls_sover}*.hmac
|
%{_libdir}/.libgnutls.so.%{gnutls_sover}*.hmac
|
||||||
|
|
||||||
%if %{with dane}
|
%if %{with dane}
|
||||||
%files -n libgnutls-dane%{gnutls_dane_sover}
|
%files -n libgnutls-dane%{gnutls_dane_sover}
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%{_libdir}/libgnutls-dane.so.%{gnutls_dane_sover}*
|
%{_libdir}/libgnutls-dane.so.%{gnutls_dane_sover}*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -n libgnutlsxx%{gnutlsxx_sover}
|
%files -n libgnutlsxx%{gnutlsxx_sover}
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%{_libdir}/libgnutlsxx.so.%{gnutlsxx_sover}*
|
%{_libdir}/libgnutlsxx.so.%{gnutlsxx_sover}*
|
||||||
|
|
||||||
%files -n libgnutls-devel
|
%files -n libgnutls-devel
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%dir %{_includedir}/%{name}
|
%dir %{_includedir}/%{name}
|
||||||
%{_includedir}/%{name}/abstract.h
|
%{_includedir}/%{name}/abstract.h
|
||||||
%{_includedir}/%{name}/crypto.h
|
%{_includedir}/%{name}/crypto.h
|
||||||
@@ -365,13 +399,15 @@ GNUTLS_FORCE_FIPS_MODE=1 make check %{?_smp_mflags} GNUTLS_SYSTEM_PRIORITY_FILE=
|
|||||||
%{_includedir}/%{name}/urls.h
|
%{_includedir}/%{name}/urls.h
|
||||||
%{_libdir}/libgnutls.so
|
%{_libdir}/libgnutls.so
|
||||||
%{_libdir}/pkgconfig/gnutls.pc
|
%{_libdir}/pkgconfig/gnutls.pc
|
||||||
|
|
||||||
|
%files -n libgnutls-devel-doc
|
||||||
%{_mandir}/man3/*
|
%{_mandir}/man3/*
|
||||||
%{_infodir}/*%{ext_info}
|
%{_infodir}/*%{ext_info}
|
||||||
%doc %{_docdir}/libgnutls-devel
|
%{_docdir}/libgnutls-devel
|
||||||
|
|
||||||
%if %{with dane}
|
%if %{with dane}
|
||||||
%files -n libgnutls-dane-devel
|
%files -n libgnutls-dane-devel
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%dir %{_includedir}/%{name}
|
%dir %{_includedir}/%{name}
|
||||||
%{_includedir}/%{name}/dane.h
|
%{_includedir}/%{name}/dane.h
|
||||||
%{_libdir}/pkgconfig/gnutls-dane.pc
|
%{_libdir}/pkgconfig/gnutls-dane.pc
|
||||||
@@ -379,7 +415,7 @@ GNUTLS_FORCE_FIPS_MODE=1 make check %{?_smp_mflags} GNUTLS_SYSTEM_PRIORITY_FILE=
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -n libgnutlsxx-devel
|
%files -n libgnutlsxx-devel
|
||||||
%license LICENSE
|
%license COPYING COPYING.LESSERv2
|
||||||
%{_libdir}/libgnutlsxx.so
|
%{_libdir}/libgnutlsxx.so
|
||||||
%dir %{_includedir}/%{name}
|
%dir %{_includedir}/%{name}
|
||||||
%{_includedir}/%{name}/gnutlsxx.h
|
%{_includedir}/%{name}/gnutlsxx.h
|
||||||
|
Reference in New Issue
Block a user