From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ismael Luceno Date: Sat, 3 Oct 2026 02:05:09 +0200 Subject: [PATCH 3/4] Port certificate verification to GnuTLS 3.6 Upstream-Status: Pending Origin: Source Mage Signed-off-by: Ismael Luceno --- src/gnutls.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) --- a/src/gnutls.c +++ b/src/gnutls.c @@ -48,16 +48,25 @@ verify_certificate (gnutls_session session, const char *hostname, GError **err) { int status; + int ret; - status = gnutls_certificate_verify_peers (session); + ret = gnutls_certificate_verify_peers2 (session, &status); - if (status == GNUTLS_E_NO_CERTIFICATE_FOUND) { + if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND) { g_set_error (err, SSL_ERROR, SSL_ERROR_CERTIFICATE, "No SSL certificate was sent."); return FALSE; } + if (ret < 0 && ret != GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR) { + g_set_error (err, SSL_ERROR, + SSL_ERROR_CERTIFICATE, + "Unable to verify the SSL certificate: %s", + gnutls_strerror (ret)); + return FALSE; + } + if (status & GNUTLS_CERT_INVALID || #ifdef GNUTLS_CERT_NOT_TRUSTED status & GNUTLS_CERT_NOT_TRUSTED || .