From: Anthony Liguori <anthony@codemonkey.ws>
To: "Daniel P. Berrange" <berrange@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] PATCH 4/8: VeNCrypt basic TLS support
Date: Tue, 31 Jul 2007 20:50:29 -0500 [thread overview]
Message-ID: <46AFE6E5.8060401@codemonkey.ws> (raw)
In-Reply-To: <20070731192737.GM18730@redhat.com>
Daniel P. Berrange wrote:
> This patch introduces minimal support for the VeNCrypt protocol
> extension. This layers use of TLS (aka SSL) into the VNC data stream,
> providing session encryption. This patch is the bare minimum protocol
> support. It is enabled by using the 'tls' option flag eg "-vnc :1,tls'
> This is not secure on its own since it uses anonymous credentials.
> The next patches will introduce x509 certificate credentials.
>
> The configure script is setup to that TLS is only compiled in if the
> --enable-vnc-tls flag is provided. This should avoid any breakage on
> platforms without the GNU TLS libraries.
>
> diff -r a1fa771c6cf9 Makefile.target
> --- a/Makefile.target Tue Jul 31 14:50:01 2007 -0400
> +++ b/Makefile.target Tue Jul 31 14:50:03 2007 -0400
> @@ -402,6 +402,11 @@ endif
> endif
> AUDIODRV+= wavcapture.o
>
> +ifdef CONFIG_VNC_TLS
> +CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS)
> +LIBS += $(CONFIG_VNC_TLS_LIBS)
> +endif
> +
> VL_OBJS += i2c.o smbus.o
>
> # SCSI layer
> diff -r a1fa771c6cf9 configure
> --- a/configure Tue Jul 31 14:50:01 2007 -0400
> +++ b/configure Tue Jul 31 14:50:03 2007 -0400
> @@ -89,6 +89,7 @@ fmod="no"
> fmod="no"
> fmod_lib=""
> fmod_inc=""
> +vnc_tls="no"
> bsd="no"
> linux="no"
> kqemu="no"
> @@ -252,6 +253,8 @@ for opt do
> ;;
> --fmod-inc=*) fmod_inc="$optarg"
> ;;
> + --enable-vnc-tls) vnc_tls="yes"
> + ;;
> --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
> ;;
> --disable-slirp) slirp="no"
> @@ -362,6 +365,7 @@ echo " --enable-alsa enable
> echo " --enable-alsa enable ALSA audio driver"
> echo " --enable-fmod enable FMOD audio driver"
> echo " --enable-dsound enable DirectSound audio driver"
> +echo " --enable-vnc-tls enable TLS encryption for VNC server"
> echo " --enable-system enable all system emulation targets"
> echo " --disable-system disable all system emulation targets"
> echo " --enable-linux-user enable all linux usermode emulation targets"
> @@ -589,6 +593,16 @@ fi # -z $sdl
> fi # -z $sdl
>
> ##########################################
> +# VNC TLS detection
> +if test "$vnc_tls" = "yes" ; then
> + `pkg-config gnutls` || vnc_tls="no"
> +fi
> +if test "$vnc_tls" = "yes" ; then
> + vnc_tls_cflags=`pkg-config --cflags gnutls`
> + vnc_tls_libs=`pkg-config --libs gnutls`
> +fi
> +
> +##########################################
> # alsa sound support libraries
Since it's possible to probe for gnutls support, why not just enable it
by default and disable it if it's not available?
> diff -r a1fa771c6cf9 vl.c
> --- a/vl.c Tue Jul 31 14:50:01 2007 -0400
> +++ b/vl.c Tue Jul 31 14:50:03 2007 -0400
> @@ -6458,7 +6458,7 @@ void main_loop_wait(int timeout)
> if (FD_ISSET(ioh->fd, &rfds)) {
> ioh->fd_read(ioh->opaque);
> }
> - if (FD_ISSET(ioh->fd, &wfds)) {
> + if (!ioh->deleted && ioh->fd_write && FD_ISSET(ioh->fd, &wfds)) {
> ioh->fd_write(ioh->opaque);
> }
> }
>
I thought this was fixed already. At any rate, it should be a separate
patch.
> +#if CONFIG_VNC_TLS
> +ssize_t vnc_tls_push(gnutls_transport_ptr_t transport,
> + const void *data,
> + size_t len) {
> + struct VncState *vs = (struct VncState *)transport;
> + int ret, lastErrno;
>
s/lastErrno/last_errno/g
> + retry:
> + ret = send(vs->csock, data, len, 0);
> + lastErrno = errno;
> + VNC_DEBUG("Send %d errno %d\n", ret, ret < 0 ? lastErrno : 0);
> + if (ret < 0) {
> + if (lastErrno == EINTR)
> + goto retry;
> + errno = lastErrno;
> + return -1;
> + }
> + return ret;
> +}
>
Regards,
Anthony Liguor
next prev parent reply other threads:[~2007-08-01 1:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-31 19:23 [Qemu-devel] PATCH 0/8: Authentication support for the VNC server Daniel P. Berrange
2007-07-31 19:25 ` [Qemu-devel] PATCH 1/8: Refactor VNC server setup API Daniel P. Berrange
2007-07-31 19:25 ` [Qemu-devel] PATCH 2/8: Extend monitor 'change' command for VNC Daniel P. Berrange
2007-08-01 1:43 ` Anthony Liguori
2007-07-31 19:26 ` [Qemu-devel] PATCH 3/8: VNC password authentication Daniel P. Berrange
2007-08-01 1:46 ` Anthony Liguori
2007-08-01 16:26 ` Daniel P. Berrange
2007-08-02 14:35 ` Anthony Liguori
2007-07-31 19:27 ` [Qemu-devel] PATCH 4/8: VeNCrypt basic TLS support Daniel P. Berrange
2007-08-01 1:50 ` Anthony Liguori [this message]
2007-08-01 16:28 ` Daniel P. Berrange
2007-07-31 19:28 ` [Qemu-devel] PATCH 5/8: x509 certificate for server Daniel P. Berrange
2007-07-31 19:28 ` [Qemu-devel] PATCH 6/8: x509 client certificate verification Daniel P. Berrange
2007-07-31 19:29 ` [Qemu-devel] PATCH 7/8: command line args for x509 cert paths Daniel P. Berrange
2007-08-01 1:54 ` Anthony Liguori
2007-08-01 16:31 ` Daniel P. Berrange
2007-07-31 19:30 ` [Qemu-devel] PATCH 8/8: document all VNC authentication options Daniel P. Berrange
2007-08-01 1:55 ` [Qemu-devel] PATCH 0/8: Authentication support for the VNC server Anthony Liguori
-- strict thread matches above, loose matches on Subject: below --
2007-08-13 19:25 Daniel P. Berrange
2007-08-13 19:46 ` [Qemu-devel] PATCH 4/8: VeNCrypt basic TLS support Daniel P. Berrange
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46AFE6E5.8060401@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=berrange@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.