[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 7/7] crypto: Make QCryptoTLSCreds* structures private
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH v4 7/7] crypto: Make QCryptoTLSCreds* structures private |
Date: |
Thu, 17 Jun 2021 13:15:15 +0100 |
User-agent: |
Mutt/2.0.7 (2021-05-04) |
On Thu, Jun 17, 2021 at 02:08:17PM +0200, Philippe Mathieu-Daudé wrote:
> On 6/17/21 11:35 AM, Daniel P. Berrangé wrote:
> > On Wed, Jun 16, 2021 at 06:22:25PM +0200, Philippe Mathieu-Daudé wrote:
> >> Code consuming the "crypto/tlscreds*.h" APIs doesn't need
> >> to access its internals. Move the structure definitions to
> >> the "tlscredspriv.h" private header (only accessible by
> >> implementations). The public headers (in include/) still
> >> forward-declare the structures typedef.
> >>
> >> This solves a bug introduced by commit 7de2e856533 which made
> >> migration/qemu-file-channel.c include "io/channel-tls.h",
> >> itself sometime depends on GNUTLS, leading to build failure
> >> on OSX:
> >>
> >> [2/35] Compiling C object
> >> libmigration.fa.p/migration_qemu-file-channel.c.o
> >> FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o
> >> cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o
> >> libmigration.fa.p/migration_qemu-file-channel.c.o -c
> >> ../migration/qemu-file-channel.c
> >> In file included from ../migration/qemu-file-channel.c:29:
> >> In file included from include/io/channel-tls.h:26:
> >> In file included from include/crypto/tlssession.h:24:
> >> include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not
> >> found
> >> #include <gnutls/gnutls.h>
> >> ^~~~~~~~~~~~~~~~~
> >> 1 error generated.
> >>
> >> Reported-by: Stefan Weil <sw@weilnetz.de>
> >> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> >> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407
> >> Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration")
> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> >> ---
> >> crypto/tlscredspriv.h | 45 ++++++++++++++++++++++++++++++
> >> include/crypto/tls-cipher-suites.h | 6 ----
> >> include/crypto/tlscreds.h | 16 -----------
> >> include/crypto/tlscredsanon.h | 12 --------
> >> include/crypto/tlscredspsk.h | 12 --------
> >> include/crypto/tlscredsx509.h | 10 -------
> >> crypto/tls-cipher-suites.c | 7 +++++
> >> crypto/tlscredsanon.c | 2 ++
> >> crypto/tlscredspsk.c | 2 ++
> >> crypto/tlscredsx509.c | 1 +
> >> crypto/tlssession.c | 1 +
> >> 11 files changed, 58 insertions(+), 56 deletions(-)
>
> > I was expecting all these files, and tlscreds.c to include
> > tlscredspriv.h, otherwise how do they see the struct
> > definition they need ?
>
> They already include it:
>
> $ git grep tlscredspriv.h origin/master
> origin/master:crypto/tlscreds.c:24:#include "tlscredspriv.h"
> origin/master:crypto/tlscredsanon.c:23:#include "tlscredspriv.h"
> origin/master:crypto/tlscredspsk.c:23:#include "tlscredspriv.h"
> origin/master:crypto/tlscredsx509.c:23:#include "tlscredspriv.h"
>
> This is why in this patch I only added it to tls-cipher-suites.c
> and tlssession.c.
>
> I'll add a comment about it.
No matter, I'm just being dumb and not remembering my own code.
I thought tlscredspriv.h was a new header in your patch, but its
just adding to an existing header.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- Re: [PATCH v4 3/7] chardev/socket: Use qcrypto_tls_creds_check_endpoint(), (continued)
[PATCH v4 7/7] crypto: Make QCryptoTLSCreds* structures private, Philippe Mathieu-Daudé, 2021/06/16
[PATCH v4 6/7] ui/vnc: Use qcrypto_tls_session_check_role(), Philippe Mathieu-Daudé, 2021/06/16