| | 109 | } |
|---|
| | 110 | |
|---|
| | 111 | sub encrypt() { |
|---|
| | 112 | if (&run_cmd("$gpgdirCmd --test --gnupg-dir $gpg_dir " . |
|---|
| | 113 | " --pw-file $pw_file --Key-id $key_id -e $data_dir")) { |
|---|
| | 114 | return 1; |
|---|
| | 115 | } |
|---|
| | 116 | return &print_errors("fail ($test_num)\n[*] " . |
|---|
| | 117 | "Directory encryption"); |
|---|
| | 118 | } |
|---|
| | 119 | |
|---|
| | 120 | sub decrypt() { |
|---|
| | 121 | if (&run_cmd("$gpgdirCmd --test --gnupg-dir $gpg_dir " . |
|---|
| | 122 | " --pw-file $pw_file --Key-id $key_id -d $data_dir")) { |
|---|
| | 123 | return 1; |
|---|
| | 124 | } |
|---|
| | 125 | return &print_errors("fail ($test_num)\n[*] " . |
|---|
| | 126 | "Directory decryption"); |
|---|
| | 127 | } |
|---|
| | 128 | |
|---|
| | 129 | sub skipped_hidden_files_dirs() { |
|---|
| | 130 | @data_dir_files = (); |
|---|
| | 131 | find(\&find_files, $data_dir); |
|---|
| | 132 | for my $file (@data_dir_files) { |
|---|
| | 133 | if ($file =~ m|^\.| or $file =~ m|/\.|) { |
|---|
| | 134 | ### check for any .gpg or .asc extensions |
|---|
| | 135 | if ($file =~ m|\.gpg$| or $file =~ m|\.asc$|) { |
|---|
| | 136 | return &print_errors("fail ($test_num)\n[*] " . |
|---|
| | 137 | "Encrypted hidden file"); |
|---|
| | 138 | } |
|---|
| | 139 | } |
|---|
| | 140 | } |
|---|
| | 141 | return 1; |
|---|
| | 142 | } |
|---|
| | 143 | |
|---|
| | 144 | sub find_files() { |
|---|
| | 145 | my $file = $File::Find::name; |
|---|
| | 146 | push @data_dir_files, $file; |
|---|
| | 147 | return; |
|---|
| | 148 | } |
|---|
| | 149 | |
|---|
| | 150 | sub collect_md5sums() { |
|---|
| | 151 | @data_dir_files = (); |
|---|
| | 152 | find(\&find_files, $data_dir); |
|---|
| | 153 | for my $file (@data_dir_files) { |
|---|
| | 154 | if (-f $file) { |
|---|
| | 155 | $md5sums{$file} = md5_base64($file); |
|---|
| | 156 | } |
|---|
| | 157 | } |
|---|
| | 158 | return 1; |
|---|
| | 159 | } |
|---|
| | 160 | |
|---|
| | 161 | sub md5sum_validation() { |
|---|
| | 162 | @data_dir_files = (); |
|---|
| | 163 | find(\&find_files, $data_dir); |
|---|
| | 164 | for my $file (@data_dir_files) { |
|---|
| | 165 | if (-f $file) { |
|---|
| | 166 | if (not defined $md5sums{$file} |
|---|
| | 167 | or $md5sums{$file} ne md5_base64($file)) { |
|---|
| | 168 | return &print_errors("fail ($test_num)\n[*] " . |
|---|
| | 169 | "MD5 sum mis-match for $file"); |
|---|
| | 170 | } |
|---|
| | 171 | } |
|---|
| | 172 | } |
|---|
| | 173 | return 1; |
|---|