diff --git a/cryptobox.conf.d/var/www/cryptobox b/cryptobox.conf.d/var/www/cryptobox
deleted file mode 100755
index 70e8e9b..0000000
--- a/cryptobox.conf.d/var/www/cryptobox
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/perl
-#
-# Vorbereitung:
-# - die Variable "MNTIMAGE" (siehe unten) setzen - es muss der Name der cryptoloop-image-Datei sein
-# - in die /etc/fstab einen passenden Eintrag einfuegen, z.B.:
-# /data/cryptoimage.loop /mnt/crypto auto noauto,user,loop,encryption=aes,keybits=256
-# - ein Image erstellen (als root):
-# dd if=/dev/zero of=cryptoimage.loop bs=1M count=10
-# losetup -k 256 -e aes /dev/loop1 cryptoimage.loop
-# mkfs.ext3 /dev/loop1
-# losetup -d /dev/loop1
-#
-
-
-###############################################
-
-use strict;
-use CGI;
-use ClearSilver;
-use ConfigFile;
-
-my ($pagedata, $pagename);
-
-my ($LANGUAGE_DIR, $LANGUAGE, $TEMPLATE_DIR, $DOC_DIR);
-my ($CB_SCRIPT, $LOG_FILE, $DEVELOPMENT_MARKER);
-
-my $config = ConfigFile::read_config_file('/etc/cryptobox/cryptobox.conf');
-
-$CB_SCRIPT = $config->{CB_SCRIPT};
-$LOG_FILE = $config->{LOG_FILE};
-$LANGUAGE_DIR = $config->{LANGUAGE_DIR};
-$LANGUAGE = $config->{LANGUAGE};
-$TEMPLATE_DIR = $config->{TEMPLATE_DIR};
-$DOC_DIR = $config->{DOC_DIR};
-$DEVELOPMENT_MARKER = $config->{DEVELOPMENT_MARKER};
-
-
-#################### subs ######################
-
-sub load_hdf()
-{
- my $hdf = ClearSilver::HDF->new();
-
- my $fname = "$LANGUAGE_DIR/$LANGUAGE" . '.hdf';
- die ("Language file ($fname) not found!") unless (-e "$fname");
- $hdf->readFile("$fname");
-
- $fname = "$TEMPLATE_DIR/main.cs";
- die ("Template directory is invalid ($fname not found)!") unless (-e "$fname");
- $hdf->setValue("TemplateDir","$TEMPLATE_DIR");
-
- die ("Documentation directory ($DOC_DIR) not found!") unless (-d "$DOC_DIR");
- $hdf->setValue("DocDir","$DOC_DIR");
-
- # if it was requested as directory index (link from index.html), we should
- # set a real script name - otherwise links with a query string will break
- $hdf->setValue("ScriptName", ($ENV{'SCRIPT_NAME'} eq '/')? '/cryptobox' : $ENV{'SCRIPT_NAME'});
-
- return $hdf;
-}
-
-sub check_mounted
-{
- return (system("$CB_SCRIPT","is_crypto_mounted") == 0);
-}
-
-
-sub check_config
-{
- return (system("$CB_SCRIPT","is_config_mounted") == 0);
-}
-
-
-sub check_init_running
-{
- return (system("$CB_SCRIPT","is_init_running") == 0);
-}
-
-
-sub get_current_ip
-# the IP of eth0 - not the configured value of the box (only for validation)
-{
- return `$CB_SCRIPT get_current_ip`;
-}
-
-
-sub render()
-{
- $pagedata->setValue("PageName","$pagename");
- my $pagefile = "$TEMPLATE_DIR/main.cs";
- print "Content-Type: text/html\n\n";
-
- my $cs = ClearSilver::CS->new($pagedata);
- $cs->parseFile($pagefile);
-
- print $cs->render();
-}
-
-
-sub mount_vol
-{
- my $pw = shift;
-
- if (&check_mounted) {
- $pagedata->setValue('Data.Warning', 'Das Dateisystem war bereits aktiv!');
- return 0;
- }
-
- # TODO: the output is always empty?
- my $output = open(PW_INPUT, "| $CB_SCRIPT crypto-mount");
- print PW_INPUT $pw;
- close(PW_INPUT);
-
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-
- if (!&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'MountFailed');
- $pagedata->setValue('Data.Action', 'umount_form');
- }
-}
-
-
-sub umount_vol
-{
- unless (&check_mounted) {
- $pagedata->setValue('Data.Warning', 'Das Dateisystem war bereits inaktiv!');
- return 0;
- }
-
- # TODO: check if "system" returns output
- my $output = `$CB_SCRIPT crypto-umount`;
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-
- if (!&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'UmountFailed');
- $pagedata->setValue('Data.Action', 'mount_form');
- }
-}
-
-
-sub box_init
-{
- # TODO: redirect output to pagedata
- my $pw = shift;
-
- # partitioning, config and initial cryptsetup
- open(PW_INPUT, "|$CB_SCRIPT box-init-fg");
- print PW_INPUT $pw;
- close(PW_INPUT);
-
- # wipe and mkfs takes some time
- my $output = `$CB_SCRIPT box-init-bg`;
-
- # TODO: "output" has to get filtered through something like "s/$/
/" - in perl, please!
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-}
-
-
-################### main #########################
-
-my $query = new CGI;
-
-$pagedata = load_hdf();
-
-
-#TODO: check result of actions and set Data.Error for failures
-
-if ($query->param) {
- my $action = $query->param('action');
-
- if ($action eq 'umount_do') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif ( ! &check_mounted()) {
- $pagedata->setValue('Data.Warning', 'NotMounted');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- # unmounten
- &umount_vol();
- $pagedata->setValue('Data.Action', 'mount_form');
- }
- } elsif ($action eq 'mount_do') {
- # mount requested
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif (&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'IsMounted');
- $pagedata->setValue('Data.Action', 'umount_form');
- } elsif ($query->param('password') eq '') {
- # leeres Passwort
- $pagedata->setValue('Data.Warning', 'EmptyPassword');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- # mounten
- &mount_vol($query->param('password'));
- $pagedata->setValue('Data.Action', 'umount_form');
- }
- } elsif ($action eq 'mount_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif (&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'IsMounted');
- $pagedata->setValue('Data.Action', 'intro');
- } else {
- $pagedata->setValue('Data.Action', 'mount_form');
- }
- } elsif ($action eq 'umount_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ( ! &check_mounted()) {
- $pagedata->setValue('Data.Warning', 'NotMounted');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- $pagedata->setValue('Data.Action', 'umount_form');
- }
- } elsif ($action eq 'init_ask') {
- if (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'intro');
- } elsif (&check_config()) {
- $pagedata->setValue('Data.Warning', 'AlreadyConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- $pagedata->setValue('Data.Action', 'init_form');
- }
- } elsif ($action eq 'init_do') {
- if ($query->param('password') ne $query->param('password2')) {
- # different passwords
- $pagedata->setValue('Data.Warning', 'DifferentPasswords');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ($query->param('password') eq '') {
- # empty password
- $pagedata->setValue('Data.Warning', 'EmptyPassword');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ($query->param('confirm') ne $pagedata->getValue('Lang.Text.ConfirmInit','')) {
- # wrong confirm string
- $pagedata->setValue('Data.Warning', 'InitNotConfirmed');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- # do init
- &box_init($query->param('password'));
- $pagedata->setValue('Data.Action', 'config_form');
- }
- } elsif ($action eq 'config_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- $pagedata->setValue('Data.Action', 'config_form');
- }
- } elsif ($action eq 'config_do') {
- # TODO: not implemented yet!
- system("$CB_SCRIPT", "set_config", "language", $query->param('language'));
- system("$CB_SCRIPT", "set_config", "timeout", $query->param('timeout'));
- system("$CB_SCRIPT", "set_config", "ip", $query->param('ip'));
- $pagedata->setValue('Data.Action', 'intro');
- } elsif ($action eq 'show_log') {
- $pagedata->setValue('Data.Action', 'show_log');
- } elsif ($action eq 'doc') {
- if ($query->param('page')) {
- $pagedata->setValue('Data.Doc.Page', $query->param('page'));
- } else {
- $pagedata->setValue('Data.Doc.Page', 'CryptoBox.html');
- }
- $pagedata->setValue('Data.Action', 'doc');
- } else {
- $pagedata->setValue('Data.Error', 'UnknownAction');
- }
-} else {
- $pagedata->setValue('Data.Action', 'intro');
-}
-
-# check state of the cryptobox
-$pagedata->setValue('Data.Status.Config', &check_config() ? 1 : 0);
-$pagedata->setValue('Data.Status.InitRunning', &check_init_running() ? 1 : 0);
-$pagedata->setValue('Data.Status.Mounted', &check_mounted() ? 1 : 0);
-my $output = &get_current_ip();
-$pagedata->setValue('Data.Status.IP', "$output");
-
-$output = `$CB_SCRIPT diskinfo 2>&1 | sed 's/^/
/'`;
-$pagedata->setValue('Data.PartitionInfo',"$output");
-
-# preset config settings for clearsilver
-$pagedata->setValue('Data.Config.IP', `$CB_SCRIPT get_config ip`);
-$pagedata->setValue('Data.Config.TimeOut', `$CB_SCRIPT get_config timeout`);
-$pagedata->setValue('Data.Config.Language', `$CB_SCRIPT get_config language`);
-
-# read log - TODO: use perl filtering
-$output = (-e "$LOG_FILE") ? `cat '$LOG_FILE' | sed 's/^/
/'` : '';
-$pagedata->setValue('Data.Log',"$output");
-
-$pagedata->setValue('Data.Status.DevelopmentMode', 1) if (-e "$DEVELOPMENT_MARKER");
-
-&render();
-
-exit 0;
-
diff --git a/cryptobox.conf.d/var/www/index.html b/cryptobox.conf.d/var/www/index.html
deleted file mode 100755
index 70e8e9b..0000000
--- a/cryptobox.conf.d/var/www/index.html
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/perl
-#
-# Vorbereitung:
-# - die Variable "MNTIMAGE" (siehe unten) setzen - es muss der Name der cryptoloop-image-Datei sein
-# - in die /etc/fstab einen passenden Eintrag einfuegen, z.B.:
-# /data/cryptoimage.loop /mnt/crypto auto noauto,user,loop,encryption=aes,keybits=256
-# - ein Image erstellen (als root):
-# dd if=/dev/zero of=cryptoimage.loop bs=1M count=10
-# losetup -k 256 -e aes /dev/loop1 cryptoimage.loop
-# mkfs.ext3 /dev/loop1
-# losetup -d /dev/loop1
-#
-
-
-###############################################
-
-use strict;
-use CGI;
-use ClearSilver;
-use ConfigFile;
-
-my ($pagedata, $pagename);
-
-my ($LANGUAGE_DIR, $LANGUAGE, $TEMPLATE_DIR, $DOC_DIR);
-my ($CB_SCRIPT, $LOG_FILE, $DEVELOPMENT_MARKER);
-
-my $config = ConfigFile::read_config_file('/etc/cryptobox/cryptobox.conf');
-
-$CB_SCRIPT = $config->{CB_SCRIPT};
-$LOG_FILE = $config->{LOG_FILE};
-$LANGUAGE_DIR = $config->{LANGUAGE_DIR};
-$LANGUAGE = $config->{LANGUAGE};
-$TEMPLATE_DIR = $config->{TEMPLATE_DIR};
-$DOC_DIR = $config->{DOC_DIR};
-$DEVELOPMENT_MARKER = $config->{DEVELOPMENT_MARKER};
-
-
-#################### subs ######################
-
-sub load_hdf()
-{
- my $hdf = ClearSilver::HDF->new();
-
- my $fname = "$LANGUAGE_DIR/$LANGUAGE" . '.hdf';
- die ("Language file ($fname) not found!") unless (-e "$fname");
- $hdf->readFile("$fname");
-
- $fname = "$TEMPLATE_DIR/main.cs";
- die ("Template directory is invalid ($fname not found)!") unless (-e "$fname");
- $hdf->setValue("TemplateDir","$TEMPLATE_DIR");
-
- die ("Documentation directory ($DOC_DIR) not found!") unless (-d "$DOC_DIR");
- $hdf->setValue("DocDir","$DOC_DIR");
-
- # if it was requested as directory index (link from index.html), we should
- # set a real script name - otherwise links with a query string will break
- $hdf->setValue("ScriptName", ($ENV{'SCRIPT_NAME'} eq '/')? '/cryptobox' : $ENV{'SCRIPT_NAME'});
-
- return $hdf;
-}
-
-sub check_mounted
-{
- return (system("$CB_SCRIPT","is_crypto_mounted") == 0);
-}
-
-
-sub check_config
-{
- return (system("$CB_SCRIPT","is_config_mounted") == 0);
-}
-
-
-sub check_init_running
-{
- return (system("$CB_SCRIPT","is_init_running") == 0);
-}
-
-
-sub get_current_ip
-# the IP of eth0 - not the configured value of the box (only for validation)
-{
- return `$CB_SCRIPT get_current_ip`;
-}
-
-
-sub render()
-{
- $pagedata->setValue("PageName","$pagename");
- my $pagefile = "$TEMPLATE_DIR/main.cs";
- print "Content-Type: text/html\n\n";
-
- my $cs = ClearSilver::CS->new($pagedata);
- $cs->parseFile($pagefile);
-
- print $cs->render();
-}
-
-
-sub mount_vol
-{
- my $pw = shift;
-
- if (&check_mounted) {
- $pagedata->setValue('Data.Warning', 'Das Dateisystem war bereits aktiv!');
- return 0;
- }
-
- # TODO: the output is always empty?
- my $output = open(PW_INPUT, "| $CB_SCRIPT crypto-mount");
- print PW_INPUT $pw;
- close(PW_INPUT);
-
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-
- if (!&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'MountFailed');
- $pagedata->setValue('Data.Action', 'umount_form');
- }
-}
-
-
-sub umount_vol
-{
- unless (&check_mounted) {
- $pagedata->setValue('Data.Warning', 'Das Dateisystem war bereits inaktiv!');
- return 0;
- }
-
- # TODO: check if "system" returns output
- my $output = `$CB_SCRIPT crypto-umount`;
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-
- if (!&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'UmountFailed');
- $pagedata->setValue('Data.Action', 'mount_form');
- }
-}
-
-
-sub box_init
-{
- # TODO: redirect output to pagedata
- my $pw = shift;
-
- # partitioning, config and initial cryptsetup
- open(PW_INPUT, "|$CB_SCRIPT box-init-fg");
- print PW_INPUT $pw;
- close(PW_INPUT);
-
- # wipe and mkfs takes some time
- my $output = `$CB_SCRIPT box-init-bg`;
-
- # TODO: "output" has to get filtered through something like "s/$/
/" - in perl, please!
- $pagedata->setValue('Data.ProgOutput',"$output") if ($output);
-}
-
-
-################### main #########################
-
-my $query = new CGI;
-
-$pagedata = load_hdf();
-
-
-#TODO: check result of actions and set Data.Error for failures
-
-if ($query->param) {
- my $action = $query->param('action');
-
- if ($action eq 'umount_do') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif ( ! &check_mounted()) {
- $pagedata->setValue('Data.Warning', 'NotMounted');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- # unmounten
- &umount_vol();
- $pagedata->setValue('Data.Action', 'mount_form');
- }
- } elsif ($action eq 'mount_do') {
- # mount requested
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif (&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'IsMounted');
- $pagedata->setValue('Data.Action', 'umount_form');
- } elsif ($query->param('password') eq '') {
- # leeres Passwort
- $pagedata->setValue('Data.Warning', 'EmptyPassword');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- # mounten
- &mount_vol($query->param('password'));
- $pagedata->setValue('Data.Action', 'umount_form');
- }
- } elsif ($action eq 'mount_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'mount_form');
- } elsif (&check_mounted()) {
- $pagedata->setValue('Data.Warning', 'IsMounted');
- $pagedata->setValue('Data.Action', 'intro');
- } else {
- $pagedata->setValue('Data.Action', 'mount_form');
- }
- } elsif ($action eq 'umount_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ( ! &check_mounted()) {
- $pagedata->setValue('Data.Warning', 'NotMounted');
- $pagedata->setValue('Data.Action', 'mount_form');
- } else {
- $pagedata->setValue('Data.Action', 'umount_form');
- }
- } elsif ($action eq 'init_ask') {
- if (&check_init_running()) {
- $pagedata->setValue('Data.Warning', 'InitNotFinished');
- $pagedata->setValue('Data.Action', 'intro');
- } elsif (&check_config()) {
- $pagedata->setValue('Data.Warning', 'AlreadyConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- $pagedata->setValue('Data.Action', 'init_form');
- }
- } elsif ($action eq 'init_do') {
- if ($query->param('password') ne $query->param('password2')) {
- # different passwords
- $pagedata->setValue('Data.Warning', 'DifferentPasswords');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ($query->param('password') eq '') {
- # empty password
- $pagedata->setValue('Data.Warning', 'EmptyPassword');
- $pagedata->setValue('Data.Action', 'init_form');
- } elsif ($query->param('confirm') ne $pagedata->getValue('Lang.Text.ConfirmInit','')) {
- # wrong confirm string
- $pagedata->setValue('Data.Warning', 'InitNotConfirmed');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- # do init
- &box_init($query->param('password'));
- $pagedata->setValue('Data.Action', 'config_form');
- }
- } elsif ($action eq 'config_ask') {
- if ( ! &check_config()) {
- $pagedata->setValue('Data.Warning', 'NotConfigured');
- $pagedata->setValue('Data.Action', 'init_form');
- } else {
- $pagedata->setValue('Data.Action', 'config_form');
- }
- } elsif ($action eq 'config_do') {
- # TODO: not implemented yet!
- system("$CB_SCRIPT", "set_config", "language", $query->param('language'));
- system("$CB_SCRIPT", "set_config", "timeout", $query->param('timeout'));
- system("$CB_SCRIPT", "set_config", "ip", $query->param('ip'));
- $pagedata->setValue('Data.Action', 'intro');
- } elsif ($action eq 'show_log') {
- $pagedata->setValue('Data.Action', 'show_log');
- } elsif ($action eq 'doc') {
- if ($query->param('page')) {
- $pagedata->setValue('Data.Doc.Page', $query->param('page'));
- } else {
- $pagedata->setValue('Data.Doc.Page', 'CryptoBox.html');
- }
- $pagedata->setValue('Data.Action', 'doc');
- } else {
- $pagedata->setValue('Data.Error', 'UnknownAction');
- }
-} else {
- $pagedata->setValue('Data.Action', 'intro');
-}
-
-# check state of the cryptobox
-$pagedata->setValue('Data.Status.Config', &check_config() ? 1 : 0);
-$pagedata->setValue('Data.Status.InitRunning', &check_init_running() ? 1 : 0);
-$pagedata->setValue('Data.Status.Mounted', &check_mounted() ? 1 : 0);
-my $output = &get_current_ip();
-$pagedata->setValue('Data.Status.IP', "$output");
-
-$output = `$CB_SCRIPT diskinfo 2>&1 | sed 's/^/
/'`;
-$pagedata->setValue('Data.PartitionInfo',"$output");
-
-# preset config settings for clearsilver
-$pagedata->setValue('Data.Config.IP', `$CB_SCRIPT get_config ip`);
-$pagedata->setValue('Data.Config.TimeOut', `$CB_SCRIPT get_config timeout`);
-$pagedata->setValue('Data.Config.Language', `$CB_SCRIPT get_config language`);
-
-# read log - TODO: use perl filtering
-$output = (-e "$LOG_FILE") ? `cat '$LOG_FILE' | sed 's/^/
/'` : '';
-$pagedata->setValue('Data.Log',"$output");
-
-$pagedata->setValue('Data.Status.DevelopmentMode', 1) if (-e "$DEVELOPMENT_MARKER");
-
-&render();
-
-exit 0;
-