Go to file
Daniel P. Berrange 71890992da Fix padding of encrypted data
If we are encoding a block of data that is 16 bytes in length,
we cannot leave it as 16 bytes, we must pad it out to the next
block boundary, 32 bytes. Without this padding, the decoder will
incorrectly treat the last byte of plain text as the padding
length, as it can't distinguish padded from non-padded data.

The problem exhibited itself when using a 16 byte passphrase
for a LUKS volume

  $ virsh secret-set-value 55806c7d-8e93-456f-829b-607d8c198367 \
       $(echo -n 1234567812345678 | base64)
  Secret value set

  $ virsh start demo
  error: Failed to start domain demo
  error: internal error: process exited while connecting to monitor: >>>>>>>>>>Len 16
  2017-05-02T10:35:40.016390Z qemu-system-x86_64: -object \
    secret,id=virtio-disk1-luks-secret0,data=SEtNi5vDUeyseMKHwc1c1Q==,\
    keyid=masterKey0,iv=zm7apUB1A6dPcH53VW960Q==,format=base64: \
    Incorrect number of padding bytes (56) found on decrypted data

Notice how the padding '56' corresponds to the ordinal value of
the character '8'.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-05-02 17:27:13 +01:00
.gnulib@94386a1366 maint: update to latest gnulib 2017-01-10 12:54:54 -06:00
build-aux annotate all mocked functions with noinline 2017-04-19 10:51:51 +01:00
daemon remote: Fix possible use-after-free when sending event message 2017-04-25 07:26:36 -04:00
docs news: Document libxl nested HVM support 2017-04-28 07:55:10 -06:00
examples lib: Fix c99 style comments 2017-04-27 14:13:19 +02:00
gnulib build: drop hack for old mingw ssize_t 2016-07-12 08:57:13 -06:00
include/libvirt Add VIR_DOMAIN_JOB_OPERATION typed parameter 2017-04-27 15:06:40 +02:00
m4 locking: Add support for sanlock_strerror 2017-04-27 11:44:11 +02:00
po Refresh translations from zanata 2017-04-19 16:58:12 +01:00
src Fix padding of encrypted data 2017-05-02 17:27:13 +01:00
tests fdstreamtest: Print more info on read failure 2017-04-28 14:17:10 +02:00
tools virsh-domain-monitor: add human readable output for 'domblkinfo'. 2017-05-02 09:36:31 +02:00
.ctags maint: Make ctags work out of the box 2013-07-18 08:47:21 +02:00
.dir-locals.el build: avoid tabs that failed syntax-check 2012-09-06 09:43:46 -06:00
.gitignore Add ability to generate man page describing key code names & values 2017-04-25 21:20:43 +01:00
.gitmodules util: switch over to use keycodemapdb GIT submodule 2017-04-25 21:14:18 +01:00
.mailmap maint: update .mailmap for recent contributions 2015-03-20 06:17:55 -06:00
.travis.yml Add travis build configuration 2017-04-19 10:51:51 +01:00
AUTHORS.in Change maintainers list 2016-02-12 13:10:05 +03:00
COPYING maint: follow recommended practice for using LGPL 2013-05-20 14:15:21 -06:00
COPYING.LESSER maint: Remove control characters from LGPL license file 2015-09-25 09:16:24 +02:00
ChangeLog-old Fix typos in src/* 2014-04-21 16:49:08 -06:00
HACKING Document preferred naming conventions 2017-03-10 11:28:56 +00:00
Makefile.am Drop autobuild.sh 2017-04-13 19:03:46 +02:00
Makefile.nonreentrant cfg.mk: use a single regex for all non-reentrant functions 2016-06-15 15:00:56 +02:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking docs: update README-hacking 2014-05-06 16:20:24 -06:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00
autogen.sh autogen.sh: Improve and generalize 2017-04-25 09:52:37 +02:00
bootstrap maint: update to latest gnulib 2017-01-10 12:54:54 -06:00
bootstrap.conf hvsupport: use a regex instead of XML::XPath 2016-07-19 18:42:44 +02:00
cfg.mk xenconfig: add conversions for xen-xl 2017-04-27 15:05:44 -06:00
config-post.h m4/virt-devmapper: use LIBVIRT_CHECK_(PKG|LIB) 2016-12-21 15:39:39 +01:00
configure.ac util: Add virNetDevSetCoalesce function 2017-04-21 13:29:39 +02:00
libvirt-admin.pc.in Add libvirt-admin library 2015-06-16 13:46:20 +02:00
libvirt-lxc.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt-qemu.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.pc.in Add pkg-config files for libvirt-qemu & libvirt-lxc 2014-06-23 16:17:27 +01:00
libvirt.spec.in Add ability to generate man page describing key code names & values 2017-04-25 21:20:43 +01:00
mingw-libvirt.spec.in Add ability to generate man page describing key code names & values 2017-04-25 21:20:43 +01:00
run.in Add PKG_CONFIG_PATH to run.in script. 2014-06-26 14:32:35 +01:00

README

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>