Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ktls-utils for openSUSE:Factory 
checked in at 2024-03-22 15:21:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ktls-utils (Old)
 and      /work/SRC/openSUSE:Factory/.ktls-utils.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ktls-utils"

Fri Mar 22 15:21:04 2024 rev:4 rq:1160479 version:0.10+12.gc3923f7

Changes:
--------
--- /work/SRC/openSUSE:Factory/ktls-utils/ktls-utils.changes    2024-03-06 
23:04:45.837818491 +0100
+++ /work/SRC/openSUSE:Factory/.ktls-utils.new.1905/ktls-utils.changes  
2024-03-22 15:33:26.209211735 +0100
@@ -1,0 +2,8 @@
+Thu Mar 21 21:50:44 UTC 2024 - Martin Wilck <mwi...@suse.com>
+
+- Update to version 0.10+12.gc3923f7:
+  * Rework priority string setting for PSK (bsc#1221437)
+  * config: use 'authenticate' as a section name 
+  * server: add missing priority setting (gh#oracle/ktls-utils#49)
+
+-------------------------------------------------------------------

Old:
----
  ktls-utils-0.10+9.gf28f084.obscpio

New:
----
  ktls-utils-0.10+12.gc3923f7.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ktls-utils.spec ++++++
--- /var/tmp/diff_new_pack.8bZUYP/_old  2024-03-22 15:33:26.721230556 +0100
+++ /var/tmp/diff_new_pack.8bZUYP/_new  2024-03-22 15:33:26.721230556 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           ktls-utils
-Version:        0.10+9.gf28f084
+Version:        0.10+12.gc3923f7
 Release:        0
 Summary:        Agent for performing handshakes for kernel TLS sockets
 License:        GPL-2.0-only

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.8bZUYP/_old  2024-03-22 15:33:26.757231880 +0100
+++ /var/tmp/diff_new_pack.8bZUYP/_new  2024-03-22 15:33:26.757231880 +0100
@@ -3,6 +3,6 @@
                 <param 
name="url">https://github.com/oracle/ktls-utils.git</param>
               <param 
name="changesrevision">198ff00ba28cb97cdab6e49a7422cce331fde198</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/openSUSE/ktls-utils.git</param>
-              <param 
name="changesrevision">f28f084fda537f82d99ca3a8f6e45638f95870e8</param></service></servicedata>
+              <param 
name="changesrevision">c3923f76ec7bf8fe5218ca719a5dc2adef67a733</param></service></servicedata>
 (No newline at EOF)
 

++++++ ktls-utils-0.10+9.gf28f084.obscpio -> 
ktls-utils-0.10+12.gc3923f7.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/client.c 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/client.c
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/client.c   2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/client.c  2024-03-21 
14:47:22.000000000 +0100
@@ -95,7 +95,7 @@
                goto out_free_creds;
        }
 
-       ret = tlshd_gnutls_priority_set(session, parms);
+       ret = tlshd_gnutls_priority_set(session, parms, 0);
        if (ret != GNUTLS_E_SUCCESS) {
                tlshd_log_gnutls_error(ret);
                goto out_free_creds;
@@ -315,7 +315,7 @@
                tlshd_log_gnutls_error(ret);
                goto out_free_creds;
        }
-       ret = tlshd_gnutls_priority_set(session, parms);
+       ret = tlshd_gnutls_priority_set(session, parms, 0);
        if (ret != GNUTLS_E_SUCCESS) {
                tlshd_log_gnutls_error(ret);
                goto out_free_creds;
@@ -376,13 +376,7 @@
        gnutls_session_set_ptr(session, parms);
        gnutls_credentials_set(session, GNUTLS_CRD_PSK, psk_cred);
 
-       ret = tlshd_gnutls_priority_set(session, parms);
-       if (ret != GNUTLS_E_SUCCESS) {
-               tlshd_log_gnutls_error(ret);
-               goto out_free_creds;
-       }
-
-       ret = tlshd_gnutls_priority_restrict(session, key.size);
+       ret = tlshd_gnutls_priority_set(session, parms, key.size);
        if (ret != GNUTLS_E_SUCCESS) {
                tlshd_log_gnutls_error(ret);
                goto out_free_creds;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/config.c 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/config.c
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/config.c   2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/config.c  2024-03-21 
14:47:22.000000000 +0100
@@ -87,7 +87,7 @@
        tlshd_delay_done = tmp > 0 ? tmp : 0;
 
        keyrings = g_key_file_get_string_list(tlshd_configuration,
-                                             "authentication",
+                                             "authenticate",
                                              "keyrings", &length, NULL);
        if (keyrings) {
                for (i = 0; i < length; i++) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/ktls.c 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/ktls.c
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/ktls.c     2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/ktls.c    2024-03-21 
14:47:22.000000000 +0100
@@ -347,6 +347,8 @@
 
 static gnutls_priority_t       tlshd_gnutls_priority_x509;
 static gnutls_priority_t       tlshd_gnutls_priority_psk;
+static gnutls_priority_t       tlshd_gnutls_priority_psk_sha256;
+static gnutls_priority_t       tlshd_gnutls_priority_psk_sha384;
 
 /**
  * tlshd_gnutls_priority_init - Initialize GnuTLS priority caches
@@ -357,7 +359,7 @@
        const unsigned int *ciphers;
        gnutls_priority_t pcache;
        const char *errpos;
-       char *pstring;
+       char *pstring, *pstring_sha256, *pstring_sha384;
        int ret, i;
 
        /* Retrieve the system default priority settings */
@@ -393,10 +395,52 @@
        pstring = tlshd_string_concat(pstring, ":-CIPHER-ALL");
        if (!pstring)
                return -ENOMEM;
+       pstring_sha256 = strdup(pstring);
+       if (!pstring_sha256) {
+               free(pstring);
+               return -ENOMEM;
+       }
+       pstring_sha384 = strdup(pstring);
+       if (!pstring_sha384) {
+               free(pstring_sha256);
+               free(pstring);
+               return -ENOMEM;
+       }
+
        for (i = 0; i < ret; ++i) {
+               bool skip_sha256 = false;
+               bool skip_sha384 = false;
+
                pstring = tlshd_cipher_string_emit(pstring, ciphers[i]);
-               if (!pstring)
+               if (!pstring) {
+                       free(pstring_sha256);
+                       free(pstring_sha384);
                        return -ENOMEM;
+               }
+               if (ciphers[i] == GNUTLS_CIPHER_AES_256_GCM)
+                       skip_sha256 = true;
+               if (ciphers[i] == GNUTLS_CIPHER_AES_128_GCM)
+                       skip_sha384 = true;
+               if (ciphers[i] == GNUTLS_CIPHER_AES_128_CCM)
+                       skip_sha384 = true;
+               if (ciphers[i] == GNUTLS_CIPHER_CHACHA20_POLY1305)
+                       skip_sha256 = true;
+               if (!skip_sha256) {
+                       pstring_sha256 = 
tlshd_cipher_string_emit(pstring_sha256, ciphers[i]);
+                       if (!pstring_sha256) {
+                               free(pstring_sha384);
+                               free(pstring);
+                               return -ENOMEM;
+                       }
+               }
+               if (!skip_sha384) {
+                       pstring_sha384 = 
tlshd_cipher_string_emit(pstring_sha384, ciphers[i]);
+                       if (!pstring_sha384) {
+                               free(pstring_sha256);
+                               free(pstring);
+                               return -ENOMEM;
+                       }
+               }
        }
 
        tlshd_log_debug("x.509 priority string: %s\n", pstring);
@@ -410,6 +454,8 @@
 
        pstring = tlshd_string_concat(pstring, ":+PSK:+DHE-PSK:+ECDHE-PSK");
        if (!pstring) {
+               free(pstring_sha256);
+               free(pstring_sha384);
                gnutls_priority_deinit(tlshd_gnutls_priority_x509);
                return -ENOMEM;
        }
@@ -418,6 +464,8 @@
 
        ret = gnutls_priority_init(&tlshd_gnutls_priority_psk, pstring, 
&errpos);
        if (ret != GNUTLS_E_SUCCESS) {
+               free(pstring_sha256);
+               free(pstring_sha384);
                free(pstring);
                gnutls_priority_deinit(tlshd_gnutls_priority_x509);
                tlshd_log_gnutls_error(ret);
@@ -425,40 +473,55 @@
        }
 
        free(pstring);
-       return 0;
-}
 
-/**
- * tlshd_gnutls_priority_restrict - Disable specific hash functions
- * @session: session to initialize
- * @key_size: length of the selected PSK
- *
- * Restrict the set of hash functions to those matching the current
- * PSK key length.
- *
- * Note: this is function actually does the reverse by disabling
- * the non-matchine SHA functions.
- *
- * Returns GNUTLS_E_SUCCESS on success, otherwise an error code.
- */
-int tlshd_gnutls_priority_restrict(gnutls_session_t session,
-                                  unsigned int key_size)
-{
-       const char *err;
-       int ret;
+       pstring = tlshd_string_concat(pstring_sha256, ":+DHE-PSK:+ECDHE-PSK");
+       if (!pstring) {
+               free(pstring_sha384);
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk);
+               gnutls_priority_deinit(tlshd_gnutls_priority_x509);
+               return -ENOMEM;
+       }
 
-       if (key_size == 32)
-               ret = gnutls_set_default_priority_append(session,
-                                                        "-SHA384",
-                                                        &err, 0);
-       else if (key_size == 48)
-               ret = gnutls_set_default_priority_append(session,
-                                                        "-SHA256",
-                                                        &err, 0);
-       else
-               ret = GNUTLS_E_UNIMPLEMENTED_FEATURE;
+       tlshd_log_debug("PSK SHA256 priority string: %s\n", pstring);
 
-       return ret;
+       ret = gnutls_priority_init(&tlshd_gnutls_priority_psk_sha256,
+                                  pstring, &errpos);
+       if (ret != GNUTLS_E_SUCCESS) {
+               free(pstring);
+               free(pstring_sha384);
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk);
+               gnutls_priority_deinit(tlshd_gnutls_priority_x509);
+               tlshd_log_gnutls_error(ret);
+               return -EIO;
+       }
+
+       free(pstring);
+
+       pstring = tlshd_string_concat(pstring_sha384, ":+DHE-PSK:+ECDHE-PSK");
+       if (!pstring) {
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk_sha256);
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk);
+               gnutls_priority_deinit(tlshd_gnutls_priority_x509);
+               tlshd_log_gnutls_error(ret);
+               return -EIO;
+       }
+
+       tlshd_log_debug("PSK SHA384 priority string: %s\n", pstring);
+
+       ret = gnutls_priority_init(&tlshd_gnutls_priority_psk_sha384,
+                                  pstring, &errpos);
+       if (ret != GNUTLS_E_SUCCESS) {
+               free(pstring);
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk_sha256);
+               gnutls_priority_deinit(tlshd_gnutls_priority_psk);
+               gnutls_priority_deinit(tlshd_gnutls_priority_x509);
+               tlshd_log_gnutls_error(ret);
+               return -EIO;
+       }
+
+       free(pstring);
+
+       return 0;
 }
 
 /**
@@ -468,10 +531,21 @@
  *
  * Returns GNUTLS_E_SUCCESS on success, otherwise an error code.
  */
-int tlshd_gnutls_priority_set(gnutls_session_t session, struct 
tlshd_handshake_parms *parms)
+int tlshd_gnutls_priority_set(gnutls_session_t session,
+                             struct tlshd_handshake_parms *parms, int psk_len)
 {
-       return gnutls_priority_set(session, parms->auth_mode == 
HANDSHAKE_AUTH_PSK ?
-                                           tlshd_gnutls_priority_psk : 
tlshd_gnutls_priority_x509);
+       gnutls_priority_t priority = tlshd_gnutls_priority_x509;
+
+       if (parms->auth_mode == HANDSHAKE_AUTH_PSK) {
+               if (psk_len == 32)
+                       priority = tlshd_gnutls_priority_psk_sha256;
+               else if (psk_len == 48)
+                       priority = tlshd_gnutls_priority_psk_sha384;
+               else
+                       priority = tlshd_gnutls_priority_psk;
+       }
+
+       return gnutls_priority_set(session, priority);
 }
 
 /**
@@ -482,4 +556,6 @@
 {
        gnutls_priority_deinit(tlshd_gnutls_priority_x509);
        gnutls_priority_deinit(tlshd_gnutls_priority_psk);
+       gnutls_priority_deinit(tlshd_gnutls_priority_psk_sha256);
+       gnutls_priority_deinit(tlshd_gnutls_priority_psk_sha384);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/server.c 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/server.c
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/server.c   2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/server.c  2024-03-21 
14:47:22.000000000 +0100
@@ -258,6 +258,12 @@
                                               
tlshd_server_x509_verify_function);
        gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUEST);
 
+       ret = tlshd_gnutls_priority_set(session, parms, 0);
+       if (ret) {
+               tlshd_log_gnutls_error(ret);
+               goto out_free_creds;
+       }
+
        tlshd_start_tls_handshake(session, parms);
 
        gnutls_deinit(session);
@@ -331,6 +337,12 @@
 
        gnutls_credentials_set(session, GNUTLS_CRD_PSK, psk_cred);
 
+       ret = tlshd_gnutls_priority_set(session, parms, 0);
+       if (ret) {
+               tlshd_log_gnutls_error(ret);
+               goto out_free_creds;
+       }
+
        tlshd_start_tls_handshake(session, parms);
 
        gnutls_deinit(session);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/tlshd.conf.man 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/tlshd.conf.man
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/tlshd.conf.man     2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/tlshd.conf.man    2024-03-21 
14:47:22.000000000 +0100
@@ -68,7 +68,7 @@
 Zero, the quietest setting, is the default.
 .P
 The
-.I [authentication]
+.I [authenticate]
 section specifies default authentication material when establishing
 TLS sessions.
 In this section, there is one available option:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ktls-utils-0.10+9.gf28f084/src/tlshd/tlshd.h 
new/ktls-utils-0.10+12.gc3923f7/src/tlshd/tlshd.h
--- old/ktls-utils-0.10+9.gf28f084/src/tlshd/tlshd.h    2024-02-20 
16:57:26.000000000 +0100
+++ new/ktls-utils-0.10+12.gc3923f7/src/tlshd/tlshd.h   2024-03-21 
14:47:22.000000000 +0100
@@ -84,9 +84,8 @@
 extern unsigned int tlshd_initialize_ktls(gnutls_session_t session);
 extern int tlshd_gnutls_priority_init(void);
 extern int tlshd_gnutls_priority_set(gnutls_session_t session,
-                                       struct tlshd_handshake_parms *parms);
-extern int tlshd_gnutls_priority_restrict(gnutls_session_t session,
-                                         unsigned int key_len);
+                                    struct tlshd_handshake_parms *parms,
+                                    int psk_len);
 extern void tlshd_gnutls_priority_deinit(void);
 
 /* log.c */

++++++ ktls-utils.obsinfo ++++++
--- /var/tmp/diff_new_pack.8bZUYP/_old  2024-03-22 15:33:26.865235850 +0100
+++ /var/tmp/diff_new_pack.8bZUYP/_new  2024-03-22 15:33:26.869235998 +0100
@@ -1,5 +1,5 @@
 name: ktls-utils
-version: 0.10+9.gf28f084
-mtime: 1708444646
-commit: f28f084fda537f82d99ca3a8f6e45638f95870e8
+version: 0.10+12.gc3923f7
+mtime: 1711028842
+commit: c3923f76ec7bf8fe5218ca719a5dc2adef67a733
 

Reply via email to