Changeset 269

Show
Ignore:
Timestamp:
04/04/08 22:34:47 (8 months ago)
Author:
mbr
Message:

updated to delete the .gpgdir_map_file after successful decrypt

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gpgdir/trunk/gpgdir

    r255 r269  
    9191my %obfuscate_ctrs   = (); 
    9292my %obfuscated_dirs  = (); 
     93my $total_mapped_files = 0; 
    9394my $have_obfuscated_file = 0; 
    9495my $cmdline_no_password = 0; 
     
    678679                } else { 
    679680                    ### 
    680                     print "[-] Obfuscated file map does not exist for $filename in\n", 
    681                         "    $obfuscate_map_filename, skipping.\n"; 
     681                    print "[-] Obfuscated file map does not exist for ", 
     682                        "$filename in\n    $obfuscate_map_filename, ", 
     683                        "skipping.\n" unless $quiet; 
    682684                    next FILE; 
    683685                } 
     
    792794 
    793795sub obfuscated_mapping_files() { 
    794     my $dirs_href; 
     796 
     797    my $dirs_href = {}; 
    795798 
    796799    if ($encrypt_mode) { 
     
    829832 
    830833                unlink "$obfuscate_map_filename.gpg"; 
     834                if ($total_mapped_files == $total_decrypted) { 
     835                    ### we are confident that we decrypted all of them, 
     836                    ### so delete the mapping file. 
     837                    unlink $obfuscate_map_filename; 
     838                } 
    831839            } 
    832840        } 
     
    892900        if (/^\s*(.*)\s+(gpgdir_\d+_\d+.gpg)/) { 
    893901            $obfuscated_dirs{$dir}{$2} = $1; 
     902            $total_mapped_files++; 
    894903        } 
    895904    } 
  • gpgdir/trunk/test/gpgdir_test.pl

    • Property svn:keywords set to Id
    r260 r269  
    1010# Author: Michael Rash (mbr@cipherdyne.org) 
    1111# 
    12 # Copyright (C) 2007 Michael Rash (mbr@cipherdyne.org) 
     12# Copyright (C) 2008 Michael Rash (mbr@cipherdyne.org) 
    1313# 
    1414# License (GNU Public License): 
     
    2626############################################################################# 
    2727# 
    28 # $Id: gpgdir_test.pl 1004 2008-02-10 04:49:04Z mbr
     28# $Id
    2929# 
    3030 
     
    103103    \&md5sum_validation); 
    104104 
     105### obfuscate filenames encrypt/decrypt cycle 
     106&test_driver('(Obfuscate filenames) gpgdir directory encryption', 
     107    \&obf_encrypt); 
     108&test_driver('(Obfuscate filenames) Files recursively encrypted', 
     109    \&obf_recursively_encrypted); 
     110&test_driver('(Obfuscate filenames) Excluded hidden files/dirs', 
     111    \&obf_skipped_hidden_files_dirs); 
     112&test_driver('(Decrypt dir) gpgdir directory decryption', 
     113    \&obf_decrypt); 
     114&test_driver('(Decrypt dir) Files recursively decrypted', 
     115    \&obf_recursively_decrypted);  ### same as ascii_recursively_decrypted() 
     116&test_driver('(MD5 digest) match across encrypt/decrypt cycle', 
     117    \&md5sum_validation); 
     118 
    105119&logr("\n"); 
    106120if ($successful_tests) { 
     
    148162} 
    149163 
     164sub obf_encrypt() { 
     165    if (&run_cmd("$gpgdirCmd -O --gnupg-dir $gpg_dir " . 
     166            " --pw-file $pw_file --Key-id $key_id -e $data_dir")) { 
     167        return 1; 
     168    } 
     169    return &print_errors("fail ($test_num)\n[*] " . 
     170        "Directory encryption"); 
     171} 
     172 
    150173sub decrypt() { 
    151174    if (&run_cmd("$gpgdirCmd --gnupg-dir $gpg_dir " . 
     
    157180} 
    158181 
     182sub obf_decrypt() { 
     183    if (&run_cmd("$gpgdirCmd -O --gnupg-dir $gpg_dir " . 
     184            " --pw-file $pw_file --Key-id $key_id -d $data_dir")) { 
     185        return 1; 
     186    } 
     187    return &print_errors("fail ($test_num)\n[*] " . 
     188        "Directory decryption"); 
     189} 
     190 
    159191sub recursively_encrypted() { 
    160192    @data_dir_files = (); 
     
    199231} 
    200232 
     233sub obf_recursively_encrypted() { 
     234    @data_dir_files = (); 
     235    find(\&find_files, $data_dir); 
     236    for my $file (@data_dir_files) { 
     237        if (-f $file and not ($file =~ m|^\.| or $file =~ m|/\.|)) { 
     238            ### gpgdir_20089_1.gpg 
     239            unless ($file =~ m|gpgdir_\d+_\d+\.gpg$|) { 
     240                return &print_errors("fail ($test_num)\n[*] " . 
     241                    "File $file not encrypted and obfuscated"); 
     242            } 
     243        } 
     244    } 
     245    return 1; 
     246} 
     247 
    201248sub ascii_recursively_decrypted() { 
    202249    @data_dir_files = (); 
     
    213260} 
    214261 
     262sub obf_recursively_decrypted() { 
     263    @data_dir_files = (); 
     264    find(\&find_files, $data_dir); 
     265    for my $file (@data_dir_files) { 
     266        if (-f $file and not ($file =~ m|^\.| or $file =~ m|/\.|)) { 
     267            if ($file =~ m|\.asc$|) { 
     268                return &print_errors("fail ($test_num)\n[*] " . 
     269                    "File $file not encrypted"); 
     270            } 
     271        } 
     272    } 
     273    return 1; 
     274} 
     275 
    215276sub skipped_hidden_files_dirs() { 
    216277    @data_dir_files = (); 
     
    218279    for my $file (@data_dir_files) { 
    219280        if ($file =~ m|^\.| or $file =~ m|/\.|) { 
    220             ### check for any .gpg or .asc extensions 
     281            ### check for any .gpg or .asc extensions except 
     282            ### for the gpgdir_map_file 
    221283            if ($file =~ m|\.gpg$| or $file =~ m|\.asc$|) { 
    222284                return &print_errors("fail ($test_num)\n[*] " . 
     
    227289    return 1; 
    228290} 
     291 
     292sub obf_skipped_hidden_files_dirs() { 
     293    @data_dir_files = (); 
     294    find(\&find_files, $data_dir); 
     295    for my $file (@data_dir_files) { 
     296        if ($file =~ m|^\.| or $file =~ m|/\.|) { 
     297            ### check for any .gpg or .asc extensions except 
     298            ### for the gpgdir_map_file 
     299            if ($file !~ m|gpgdir_map_file| and ($file =~ m|\.gpg$| 
     300                    or $file =~ m|\.asc$|)) { 
     301                return &print_errors("fail ($test_num)\n[*] " . 
     302                    "Encrypted hidden file"); 
     303            } 
     304        } 
     305    } 
     306    return 1; 
     307} 
     308 
    229309 
    230310sub find_files() {