encryption and decryption works
This commit is contained in:
parent
f86c6fb9fa
commit
7e3d33093a
@ -20,6 +20,7 @@ install_binary $(which mkfs.ext4)
|
||||
install_binary $(which fsarchiver)
|
||||
install_kmod
|
||||
install_busybox
|
||||
install_guest_api
|
||||
|
||||
echo_cyan "Installing scripts..."
|
||||
install_init_script
|
||||
|
@ -148,6 +148,20 @@ scan_modules() {
|
||||
done <<< "$( echo "$drivers" )"
|
||||
}
|
||||
|
||||
install_guest_api() {
|
||||
my_location="$(pwd)"
|
||||
echo_blue "Building guest_api with cargo and saving log to ${my_location}/guest_api.log"
|
||||
git clone git@gitea.detee.cloud:SNP/remote_decryption.git
|
||||
cd remote_decryption/guest_api
|
||||
# TODO: stick to master branch after code stabilizes
|
||||
git checkout dtrfs
|
||||
cargo build --release > "${my_location}/guest_api.log" 2>&1 ||
|
||||
echo_red "Failed to build guest_api"
|
||||
strip --discard-all target/release/guest_api
|
||||
install_binary "$(pwd)/target/release/guest_api"
|
||||
cd $my_location
|
||||
}
|
||||
|
||||
create_archive() {
|
||||
local archive="detee-$(hostnamectl hostname)-${KERNEL}.cpio.gz"
|
||||
echo_cyan "Creating archive $archive"
|
||||
|
12
init.sh
12
init.sh
@ -1,18 +1,24 @@
|
||||
#!/bin/bash
|
||||
source /init_functions.sh
|
||||
|
||||
export INSTALL_URL="/tmp/detee_install_url"
|
||||
export INSTALL_SHA="/tmp/detee_install_sha"
|
||||
export ROOT_KEYFILE="/tmp/detee_root_keyfile"
|
||||
|
||||
create_mounts
|
||||
load_modules
|
||||
create_certs
|
||||
setup_network
|
||||
|
||||
# TODO: replace hardcoded URL with guest_api
|
||||
echo "http://192.168.122.226/arch_base_dir.fsa" > /tmp/install_url
|
||||
if [[ -f "/tmp/install_url" ]]; then
|
||||
guest_api || echo DeTEE API got killed by the user.
|
||||
|
||||
if [[ -f "$INSTALL_URL" ]]; then
|
||||
install_os
|
||||
else
|
||||
mount_root
|
||||
fi
|
||||
|
||||
# TODO: move ssh key to the guest API
|
||||
github_ssh_key
|
||||
|
||||
exec switch_root /mnt /sbin/init "$@"
|
||||
|
@ -66,11 +66,13 @@ setup_network() {
|
||||
}
|
||||
|
||||
install_os() {
|
||||
local url="$(cat /tmp/install_url)" hostname=''
|
||||
blkid | grep vda1 | grep ext4 && {
|
||||
local url="$(cat $INSTALL_URL)" hostname=''
|
||||
# mount root if it exists
|
||||
blkid | grep vda1 | grep LUKS && {
|
||||
mount_root
|
||||
return 0
|
||||
}
|
||||
# install OS if disk is empty
|
||||
(
|
||||
echo n
|
||||
echo p
|
||||
@ -79,9 +81,12 @@ install_os() {
|
||||
echo
|
||||
echo w
|
||||
) | fdisk /dev/vda
|
||||
mkfs.ext4 /dev/vda1
|
||||
mount_root
|
||||
cryptsetup luksFormat --batch-mode -d $ROOT_KEYFILE /dev/vda1
|
||||
cryptsetup open -d $ROOT_KEYFILE /dev/vda1 root
|
||||
mkfs.ext4 /dev/mapper/root
|
||||
mount /dev/mapper/root /mnt
|
||||
wget -O /mnt/template.fsa "$url"
|
||||
sha256sum /mnt/template.fsa | grep $(cat ${INSTALL_SHA}) || exit 1
|
||||
fsarchiver restdir /mnt/template.fsa /
|
||||
rm /mnt/template.fsa
|
||||
# TODO: decide for UX if maybe we should allow user to inject fstab
|
||||
@ -106,5 +111,6 @@ github_ssh_key() {
|
||||
}
|
||||
|
||||
mount_root() {
|
||||
mount /dev/vda1 /mnt
|
||||
cryptsetup open -d $ROOT_KEYFILE /dev/vda1 root
|
||||
mount /dev/mapper/root /mnt
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user