diff --git a/repos/gems/run/file_vault_client.run b/repos/gems/run/file_vault_client.run new file mode 100644 index 0000000000..989e0e07d7 --- /dev/null +++ b/repos/gems/run/file_vault_client.run @@ -0,0 +1,472 @@ +proc jent_avail { } { + if {[have_board pbxa9]} { return 0 } + if {[have_board zynq_qemu]} { return 0 } + return 1 +} + +proc jent_avail_attr { } { + if {[jent_avail]} { return "yes" } + return "no" +} + +proc passphrase { } { return abcdefgh } + +proc lx_fs_dir { } { return bin/file_vault_client_dir } + +proc lx_fs_dir_template { } { return $::env(LX_FS_DIR_TEMPLATE) } + +proc lx_fs_dir_template_set { } { return [info exists ::env(LX_FS_DIR_TEMPLATE)] } + +proc container_initialized { } { return [expr [have_board linux] && [lx_fs_dir_template_set]] } + +proc bash_profile { } { + if {[container_initialized]} { return file_vault_client_2.sh } + return file_vault_client_1.sh +} + +if {[have_board linux]} { + if {[lx_fs_dir_template_set]} { + if {[file normalize [lx_fs_dir_template]] == [file normalize [lx_fs_dir]]} { + puts "" + puts "Error: please set LX_FS_DIR_TEMPLATE to something other than [lx_fs_dir]" + puts "" + exit -1 + } + puts "" + puts "Use lx_fs directory template [lx_fs_dir_template]" + puts "" + } +} + +build { + lib/tresor lib/vfs_tresor_trust_anchor lib/vfs_tresor_crypto_aes_cbc + lib/vfs_tresor app/tresor_init_trust_anchor app/tresor_init app/file_vault } + +create_boot_directory + +append archives " + [depot_user]/src/[base_src] + [depot_user]/src/init + [depot_user]/src/libc + [depot_user]/src/zlib + [depot_user]/src/fs_query + [depot_user]/src/vfs_block + [depot_user]/src/vfs + [depot_user]/src/openssl + [depot_user]/src/fs_tool + [depot_user]/src/fs_utils + [depot_user]/src/posix + [depot_user]/src/vfs_pipe + [depot_user]/src/rump + [depot_user]/src/fs_rom + [depot_user]/src/log_terminal + [depot_user]/src/sandbox + [depot_user]/src/coreutils + [depot_user]/src/bash + [depot_user]/src/report_rom + [depot_user]/src/dynamic_rom +" + +append_if [jent_avail] archives " [depot_user]/src/vfs_jitterentropy " + +lappend_if [have_board linux] archives [depot_user]/src/lx_fs + +import_from_depot $archives + +append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + +if {[container_initialized]} { append config " + " +} else { append config " + " +} +append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2018-01-01 00:01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} +if {[have_board linux]} { + + append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + +} else { + + append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } +} +append config { + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + +exec cp [repository_contains run/[bash_profile]]/run/[bash_profile] bin/ + +install_config $config + +if {[have_board linux]} { + exec rm -rf [lx_fs_dir] + if {[lx_fs_dir_template_set]} { + exec cp -r [lx_fs_dir_template] [lx_fs_dir] + } else { + exec mkdir -p [lx_fs_dir]/data + exec mkdir -p [lx_fs_dir]/trust_anchor + } +} + +append boot_modules [build_artifacts] +lappend boot_modules [bash_profile] + +lappend_if [have_board linux] boot_modules [file tail [lx_fs_dir]] + +build_boot_image $boot_modules + +append qemu_args " -display none " +run_genode_until ".*\n" 60 + +grep_output {\[init -> dynamic_init -> log_terminal\].*} + +if {[container_initialized]} { + compare_output_to { +[init -> dynamic_init -> log_terminal] total 1 +[init -> dynamic_init -> log_terminal] drwx------ 1 root 0 0 Jan 1 1970 dir_1 +[init -> dynamic_init -> log_terminal] -rwx------ 1 root 0 18 Jan 1 1970 file_1 +[init -> dynamic_init -> log_terminal] drwx------ 1 root 0 0 Jan 1 1970 lost+found +[init -> dynamic_init -> log_terminal] total 1 +[init -> dynamic_init -> log_terminal] -rwx------ 1 root 0 66 Jan 1 1970 file_2 +[init -> dynamic_init -> log_terminal] Ein zweiter Test. +[init -> dynamic_init -> log_terminal] Eine weitere Datei. +[init -> dynamic_init -> log_terminal] Mit mehr Inhalt. +[init -> dynamic_init -> log_terminal] Und Sonderzeichen: /§($)=%! + } +} else { + compare_output_to { +[init -> dynamic_init -> log_terminal] Hallo Welt! +[init -> dynamic_init -> log_terminal] Ein zweiter Test. +[init -> dynamic_init -> log_terminal] total 1 +[init -> dynamic_init -> log_terminal] -rwx------ 1 root 0 18 Jan 1 1970 file_1 +[init -> dynamic_init -> log_terminal] drwx------ 1 root 0 0 Jan 1 1970 lost+found +[init -> dynamic_init -> log_terminal] Eine weitere Datei. +[init -> dynamic_init -> log_terminal] Mit mehr Inhalt. +[init -> dynamic_init -> log_terminal] Eine weitere Datei. +[init -> dynamic_init -> log_terminal] Mit mehr Inhalt. +[init -> dynamic_init -> log_terminal] Und Sonderzeichen: /§($)=%! +[init -> dynamic_init -> log_terminal] total 1 +[init -> dynamic_init -> log_terminal] drwx------ 1 root 0 0 Jan 1 1970 dir_1 +[init -> dynamic_init -> log_terminal] -rwx------ 1 root 0 18 Jan 1 1970 file_1 +[init -> dynamic_init -> log_terminal] drwx------ 1 root 0 0 Jan 1 1970 lost+found +[init -> dynamic_init -> log_terminal] total 1 +[init -> dynamic_init -> log_terminal] -rwx------ 1 root 0 66 Jan 1 1970 file_2 + } +} + +if {[get_cmd_switch --autopilot] && [have_board linux]} { exec rm -rf [lx_fs_dir] } diff --git a/repos/gems/run/file_vault_client_1.sh b/repos/gems/run/file_vault_client_1.sh new file mode 100644 index 0000000000..0304f6b6f9 --- /dev/null +++ b/repos/gems/run/file_vault_client_1.sh @@ -0,0 +1,15 @@ +#!/bin/bash +echo "Hallo Welt!" > file_vault/file_1 +cat file_vault/file_1 +echo "Ein zweiter Test." > file_vault/file_1 +cat file_vault/file_1 +ls -la file_vault/ +mkdir file_vault/dir_1 +echo "Eine weitere Datei." > file_vault/dir_1/file_2 +echo "Mit mehr Inhalt." >> file_vault/dir_1/file_2 +cat file_vault/dir_1/file_2 +echo "Und Sonderzeichen: /§($)=%!" >> file_vault/dir_1/file_2 +cat file_vault/dir_1/file_2 +ls -la file_vault/ +ls -la file_vault/dir_1 +exit 0 diff --git a/repos/gems/run/file_vault_client_2.sh b/repos/gems/run/file_vault_client_2.sh new file mode 100644 index 0000000000..44cacbb1db --- /dev/null +++ b/repos/gems/run/file_vault_client_2.sh @@ -0,0 +1,6 @@ +#!/bin/bash +ls -la file_vault/ +ls -la file_vault/dir_1 +cat file_vault/file_1 +cat file_vault/dir_1/file_2 +exit 0 diff --git a/tool/autopilot.list b/tool/autopilot.list index 2bfc2f13d6..8223345fdd 100644 --- a/tool/autopilot.list +++ b/tool/autopilot.list @@ -16,6 +16,7 @@ fb_bench fetchurl_lwip fetchurl_lxip fs_query +file_vault_client gdb hello ieee754