New APIs: Support for opening LUKS-encrypted disks.
authorRichard Jones <rjones@redhat.com>
Wed, 21 Jul 2010 18:50:06 +0000 (19:50 +0100)
committerRichard Jones <rjones@redhat.com>
Wed, 21 Jul 2010 19:48:40 +0000 (20:48 +0100)
commit637f8df83726ab9b50e8a6d2181bd1e0e93ec13e
tree77e97218a0f9c570bb93b3c913a3f77c51866b4e
parent581a7965faa5bf242ab3f8b7c259ab17c2e967f4
New APIs: Support for opening LUKS-encrypted disks.

This adds support for opening LUKS-encrypted disks, via
three new APIs:

  luks_open:    Create a mapping for an encrypted disk.
  luks_open_ro: Same, but read-only mapping.
  luks_close:   Close a mapping.

A typical guestfish session using this functionality looks
like this:

  $ guestfish --ro -a encrypted.img
  ><fs> run
  ><fs> list-devices
  /dev/vda
  ><fs> list-partitions
  /dev/vda1
  /dev/vda2
  ><fs> vfs-type /dev/vda2
  crypto_LUKS
  ><fs> luks-open /dev/vda2 luksdev
  Enter key or passphrase ("key"):
  ><fs> vgscan
  ><fs> vg-activate-all true
  ><fs> pvs
  /dev/dm-0
  ><fs> vgs
  vg_f13x64encrypted
  ><fs> lvs
  /dev/vg_f13x64encrypted/lv_root
  /dev/vg_f13x64encrypted/lv_swap
  ><fs> mount /dev/vg_f13x64encrypted/lv_root /
  ><fs> ll /
  total 132
  dr-xr-xr-x.  24 root root  4096 Jul 21 12:01 .
  dr-xr-xr-x   20 root root     0 Jul 21 20:06 ..
  drwx------.   3 root root  4096 Jul 21 11:59 .dbus
  drwx------.   2 root root  4096 Jul 21 12:00 .pulse
  -rw-------.   1 root root   256 Jul 21 12:00 .pulse-cookie
  dr-xr-xr-x.   2 root root  4096 May 13 03:03 bin

NOT included in this patch:

 - An easier way to use this from guestfish.
 - Ability to create LUKS devices.
 - Ability to change LUKS keys on existing devices.
 - Direct access to the /dev/mapper device (eg. if it contains
   anything apart from VGs).
TODO
appliance/kmod.whitelist.in
appliance/packagelist.in
daemon/Makefile.am
daemon/luks.c [new file with mode: 0644]
fish/guestfish.pod
po/POTFILES.in
src/MAX_PROC_NR
src/generator.ml
src/guestfs.pod