Message ID | 20170829162727.13081-1-berrange@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/29/2017 11:27 AM, Daniel P. Berrange wrote: > GNUTLS 3.6.0 marked SHA1 as untrusted for certificates. > Unfortunately the gnutls_x509_crt_sign() method we are > using to create certificates in the test suite is fixed > to always use SHA1. We must switch to a different method > and explicitly ask for SHA256. > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > --- > tests/crypto-tls-x509-helpers.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tests/crypto-tls-x509-helpers.c b/tests/crypto-tls-x509-helpers.c > index 64073d3bd3..173d4e28fb 100644 > --- a/tests/crypto-tls-x509-helpers.c > +++ b/tests/crypto-tls-x509-helpers.c > @@ -406,7 +406,8 @@ test_tls_generate_cert(QCryptoTLSTestCertReq *req, > * If no 'ca' is set then we are self signing > * the cert. This is done for the root CA certs > */ > - err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey); > + err = gnutls_x509_crt_sign2(crt, ca ? ca : crt, privkey, > + GNUTLS_DIG_SHA256, 0); Is _sign2() available on all the older versions of gnutls that we must support, or do we need this to be a conditional compilation?
On Tue, Aug 29, 2017 at 11:31:24AM -0500, Eric Blake wrote: > On 08/29/2017 11:27 AM, Daniel P. Berrange wrote: > > GNUTLS 3.6.0 marked SHA1 as untrusted for certificates. > > Unfortunately the gnutls_x509_crt_sign() method we are > > using to create certificates in the test suite is fixed > > to always use SHA1. We must switch to a different method > > and explicitly ask for SHA256. > > > > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > > --- > > tests/crypto-tls-x509-helpers.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/tests/crypto-tls-x509-helpers.c b/tests/crypto-tls-x509-helpers.c > > index 64073d3bd3..173d4e28fb 100644 > > --- a/tests/crypto-tls-x509-helpers.c > > +++ b/tests/crypto-tls-x509-helpers.c > > @@ -406,7 +406,8 @@ test_tls_generate_cert(QCryptoTLSTestCertReq *req, > > * If no 'ca' is set then we are self signing > > * the cert. This is done for the root CA certs > > */ > > - err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey); > > + err = gnutls_x509_crt_sign2(crt, ca ? ca : crt, privkey, > > + GNUTLS_DIG_SHA256, 0); > > Is _sign2() available on all the older versions of gnutls that we must > support, or do we need this to be a conditional compilation? It dates to gnutls 1.2.0 from 2005, so we're fine even if using RHEL5 vintage :-) Regards, Daniel
On 08/29/2017 11:34 AM, Daniel P. Berrange wrote: > On Tue, Aug 29, 2017 at 11:31:24AM -0500, Eric Blake wrote: >> On 08/29/2017 11:27 AM, Daniel P. Berrange wrote: >>> GNUTLS 3.6.0 marked SHA1 as untrusted for certificates. >>> Unfortunately the gnutls_x509_crt_sign() method we are >>> using to create certificates in the test suite is fixed >>> to always use SHA1. We must switch to a different method >>> and explicitly ask for SHA256. >>> >>> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> >>> --- >>> tests/crypto-tls-x509-helpers.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/tests/crypto-tls-x509-helpers.c b/tests/crypto-tls-x509-helpers.c >>> index 64073d3bd3..173d4e28fb 100644 >>> --- a/tests/crypto-tls-x509-helpers.c >>> +++ b/tests/crypto-tls-x509-helpers.c >>> @@ -406,7 +406,8 @@ test_tls_generate_cert(QCryptoTLSTestCertReq *req, >>> * If no 'ca' is set then we are self signing >>> * the cert. This is done for the root CA certs >>> */ >>> - err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey); >>> + err = gnutls_x509_crt_sign2(crt, ca ? ca : crt, privkey, >>> + GNUTLS_DIG_SHA256, 0); >> >> Is _sign2() available on all the older versions of gnutls that we must >> support, or do we need this to be a conditional compilation? > > It dates to gnutls 1.2.0 from 2005, so we're fine even if using RHEL5 > vintage :-) Good to know. Not sure if it's worth mentioning that in the commit message. Either way, Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/tests/crypto-tls-x509-helpers.c b/tests/crypto-tls-x509-helpers.c index 64073d3bd3..173d4e28fb 100644 --- a/tests/crypto-tls-x509-helpers.c +++ b/tests/crypto-tls-x509-helpers.c @@ -406,7 +406,8 @@ test_tls_generate_cert(QCryptoTLSTestCertReq *req, * If no 'ca' is set then we are self signing * the cert. This is done for the root CA certs */ - err = gnutls_x509_crt_sign(crt, ca ? ca : crt, privkey); + err = gnutls_x509_crt_sign2(crt, ca ? ca : crt, privkey, + GNUTLS_DIG_SHA256, 0); if (err < 0) { g_critical("Failed to sign certificate %s", gnutls_strerror(err));
GNUTLS 3.6.0 marked SHA1 as untrusted for certificates. Unfortunately the gnutls_x509_crt_sign() method we are using to create certificates in the test suite is fixed to always use SHA1. We must switch to a different method and explicitly ask for SHA256. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- tests/crypto-tls-x509-helpers.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)