INSTALL_PROGRAMS_BIN = \
xenstored/xenstored xenguest/xenguest closeandexec/closeandexec \
xenvm/xenops xenvm/xenvm xenvm/xenvm-cmd \
- scripts/qemu-dm-wrapper scripts/ctxusb-wrapper
+ scripts/qemu-dm-wrapper scripts/ctxusb-wrapper \
+ scripts/sec-change-pass scripts/sec-mount scripts/sec-umount \
+ scripts/sec-check-pass scripts/sec-new-user
-include extra/Makefile
--- /dev/null
+#! /bin/sh
+
+user="$1"
+userpass="$2"
+serverpass="$3"
+
+LVPREFIX=s-
+LVSIZE=12M
+VGNAME=xenclient
+DEVKEY=/config/sec/device.key
+RAMDIR=/tmp
+UKEY="${RAMDIR}/s-${user}.key"
+TKEY="${RAMDIR}/s-t-${user}.key"
+SECDM="s-${user}"
+
+( cat "${DEVKEY}"
+ echo "${user}"
+ cat "${userpass}" ) >"${UKEY}"
+
+( cat "${DEVKEY}"
+ echo "transmitter ${user}"
+ cat "${serverpass}" ) >"${TKEY}"
+
+cryptsetup -q -d "${TKEY}" \
+ luksKillSlot "/dev/${VGNAME}/${LVPREFIX}${user}" 0 || {
+ echo $0: cryptsetup luksKillSlot failed: $?
+ rm "${TKEY}" "${UKEY}"
+ exit 2
+ }
+
+cryptsetup -q -d "${TKEY}" -S 0 \
+ luksAddKey "/dev/${VGNAME}/${LVPREFIX}${user}" "${UKEY}" || {
+ echo $0: cryptsetup luksAddKey failed: $?
+ rm "${TKEY}" "${UKEY}"
+ exit 3
+ }
+
+rm "${TKEY}" "${UKEY}"
+
--- /dev/null
+#! /bin/sh
+
+user="$1"
+userpass="$2"
+
+LVPREFIX=s-
+VGNAME=xenclient
+DEVKEY=/config/sec/device.key
+RAMDIR=/tmp
+UKEY="${RAMDIR}/s-${user}.key"
+
+( cat "${DEVKEY}"
+ echo "${user}"
+ cat "${userpass}" ) >"${UKEY}"
+
+cryptsetup -d "${UKEY}" -S 0 \
+ luksCheckKey "/dev/${VGNAME}/${LVPREFIX}${user}" || {
+ echo $0: cryptsetup luksCheckKey failed: $?
+ rm "${UKEY}"
+ exit 2
+}
+
+rm "${UKEY}"
+
--- /dev/null
+#! /bin/sh
+
+user="$1"
+userpass="$2"
+
+LVPREFIX=s-
+VGNAME=xenclient
+DEVKEY=/config/sec/device.key
+RAMDIR=/tmp
+UKEY="${RAMDIR}/s-${user}.key"
+SECDIR=/config/sec
+SECDM="s-${user}"
+SECPATH="${SECDIR}/s-${user}"
+
+( cat "${DEVKEY}"
+ echo "${user}"
+ cat "${userpass}" ) >"${UKEY}"
+
+cryptsetup -d "${UKEY}" \
+ luksOpen "/dev/${VGNAME}/${LVPREFIX}${user}" "${SECDM}" || {
+ echo $0: cryptsetup luksOpen failed: $?
+ rm "${UKEY}"
+ exit 2
+}
+
+mkdir -p "${SECPATH}"
+mount "/dev/mapper/${SECDM}" "${SECPATH}" || {
+ echo $0: mount failed: $?
+ cryptsetup luksClose "${SECDM}"
+ rm "${UKEY}"
+ exit 3
+}
+
+rm "${UKEY}"
+
--- /dev/null
+#! /bin/sh
+
+user="$1"
+userpass="$2"
+serverpass="$3"
+
+LVPREFIX=s-
+LVSIZE=12M
+VGNAME=xenclient
+DEVKEY=/config/sec/device.key
+RAMDIR=/tmp
+UKEY="${RAMDIR}/s-${user}.key"
+TKEY="${RAMDIR}/s-t-${user}.key"
+SECDM="s-${user}"
+
+lvcreate -L "${LVSIZE}" -n "${LVPREFIX}${user}" "${VGNAME}" || {
+ echo $0: lvcreate failed: $?
+ exit 2
+}
+
+( cat "${DEVKEY}"
+ echo "${user}"
+ cat "${userpass}" ) >"${UKEY}"
+
+cryptsetup -q -S 0 \
+ luksFormat "/dev/${VGNAME}/${LVPREFIX}${user}" "${UKEY}" || {
+ echo $0: cryptsetup luksFormat failed: $?
+ rm "${UKEY}"
+ exit 3
+}
+
+[ -z "${serverpass}" ] || {
+
+ ( cat "${DEVKEY}"
+ echo "transmitter ${user}"
+ cat "${serverpass}" ) >"${TKEY}"
+
+ cryptsetup -q -S 1 -d "${UKEY}" \
+ luksAddKey "/dev/${VGNAME}/${LVPREFIX}${user}" "${TKEY}" || {
+ echo $0: cryptsetup luksAddKey failed: $?
+ rm "${TKEY}" "${UKEY}"
+ exit 4
+ }
+
+ rm "${TKEY}"
+}
+
+cryptsetup -d "${UKEY}" \
+ luksOpen "/dev/${VGNAME}/${LVPREFIX}${user}" "${SECDM}" || {
+ echo $0: cryptsetup luksOpen failed: $?
+ rm "${UKEY}"
+ exit 5
+}
+
+mkfs.ext2 "/dev/mapper/${SECDM}" || {
+ echo $0: mkfs.ext2 failed: $?
+ cryptsetup luksClose "${SECDM}"
+ rm "${UKEY}"
+ exit 6
+}
+
+cryptsetup luksClose "${SECDM}" || {
+ echo $0: cryptsetup luksClose failed: $?
+ rm "${UKEY}"
+ exit 7
+}
+
+rm "${UKEY}"
+
--- /dev/null
+#! /bin/sh
+
+user="$1"
+
+SECDIR=/config/sec
+SECDM="s-${user}"
+SECPATH="${SECDIR}/s-${user}"
+
+umount "${SECPATH}" || {
+ echo $0: umount failed: $?
+ cryptsetup luksClose "${SECDM}"
+ exit 2
+}
+
+cryptsetup luksClose "${SECDM}" || {
+ echo $0: cryptsetup luksClose failed: $?
+ exit 3
+}
+