📄 encrypt.t
字号:
#!./perl -w# ID: %I%, %G% use strict ;use lib 't' ;use BerkeleyDB; use util ;BEGIN{ if ($BerkeleyDB::db_version < 4.1) { print "1..0 # Skip: this needs Berkeley DB 4.1.x or better\n" ; exit 0 ; } # Is encryption available? my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => {Password => "abc", Flags => DB_ENCRYPT_AES }; if ($BerkeleyDB::Error =~ /Operation not supported/) { print "1..0 # Skip: encryption support not present\n" ; exit 0 ; }} umask(0);print "1..80\n"; { eval { my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => 1, -Flags => DB_CREATE ; }; ok 1, $@ =~ /^Encrypt parameter must be a hash reference at/; eval { my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => {}, -Flags => DB_CREATE ; }; ok 2, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => {Password => "fred"}, -Flags => DB_CREATE ; }; ok 3, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => {Flags => 1}, -Flags => DB_CREATE ; }; ok 4, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Env @StdErrFile, -Encrypt => {Fred => 1}, -Flags => DB_CREATE ; }; ok 5, $@ =~ /^\Qunknown key value(s) Fred at/;}{ # new BerkeleyDB::Env -Encrypt => # create an environment with a Home my $home = "./fred" ; #mkdir $home; ok 6, my $lexD = new LexDir($home) ; ok 7, my $env = new BerkeleyDB::Env @StdErrFile, -Home => $home, -Encrypt => {Password => "abc", Flags => DB_ENCRYPT_AES }, -Flags => DB_CREATE | DB_INIT_MPOOL ; my $Dfile = "abc.enc"; my $lex = new LexFile $Dfile ; my %hash ; my ($k, $v) ; ok 8, my $db = new BerkeleyDB::Hash -Filename => $Dfile, -Env => $env, -Flags => DB_CREATE, -Property => DB_ENCRYPT ; # create some data my %data = ( "red" => 2, "green" => "house", "blue" => "sea", ) ; my $ret = 0 ; while (($k, $v) = each %data) { $ret += $db->db_put($k, $v) ; } ok 9, $ret == 0 ; # check there are three records ok 10, countRecords($db) == 3 ; undef $db; # once the database is created, do not need to specify DB_ENCRYPT ok 11, my $db1 = new BerkeleyDB::Hash -Filename => $Dfile, -Env => $env, -Flags => DB_CREATE ; $v = ''; ok 12, ! $db1->db_get("red", $v) ; ok 13, $v eq $data{"red"}, undef $db1; undef $env; # open a database without specifying encryption ok 14, ! new BerkeleyDB::Hash -Filename => "$home/$Dfile"; ok 15, ! new BerkeleyDB::Env -Home => $home, -Encrypt => {Password => "def", Flags => DB_ENCRYPT_AES }, -Flags => DB_CREATE | DB_INIT_MPOOL ;}{ eval { my $env = new BerkeleyDB::Hash -Encrypt => 1, -Flags => DB_CREATE ; }; ok 16, $@ =~ /^Encrypt parameter must be a hash reference at/; eval { my $env = new BerkeleyDB::Hash -Encrypt => {}, -Flags => DB_CREATE ; }; ok 17, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Hash -Encrypt => {Password => "fred"}, -Flags => DB_CREATE ; }; ok 18, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Hash -Encrypt => {Flags => 1}, -Flags => DB_CREATE ; }; ok 19, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Hash -Encrypt => {Fred => 1}, -Flags => DB_CREATE ; }; ok 20, $@ =~ /^\Qunknown key value(s) Fred at/;}{ eval { my $env = new BerkeleyDB::Btree -Encrypt => 1, -Flags => DB_CREATE ; }; ok 21, $@ =~ /^Encrypt parameter must be a hash reference at/; eval { my $env = new BerkeleyDB::Btree -Encrypt => {}, -Flags => DB_CREATE ; }; ok 22, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Btree -Encrypt => {Password => "fred"}, -Flags => DB_CREATE ; }; ok 23, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Btree -Encrypt => {Flags => 1}, -Flags => DB_CREATE ; }; ok 24, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Btree -Encrypt => {Fred => 1}, -Flags => DB_CREATE ; }; ok 25, $@ =~ /^\Qunknown key value(s) Fred at/;}{ eval { my $env = new BerkeleyDB::Queue -Encrypt => 1, -Flags => DB_CREATE ; }; ok 26, $@ =~ /^Encrypt parameter must be a hash reference at/; eval { my $env = new BerkeleyDB::Queue -Encrypt => {}, -Flags => DB_CREATE ; }; ok 27, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Queue -Encrypt => {Password => "fred"}, -Flags => DB_CREATE ; }; ok 28, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Queue -Encrypt => {Flags => 1}, -Flags => DB_CREATE ; }; ok 29, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Queue -Encrypt => {Fred => 1}, -Flags => DB_CREATE ; }; ok 30, $@ =~ /^\Qunknown key value(s) Fred at/;}{ eval { my $env = new BerkeleyDB::Recno -Encrypt => 1, -Flags => DB_CREATE ; }; ok 31, $@ =~ /^Encrypt parameter must be a hash reference at/; eval { my $env = new BerkeleyDB::Recno -Encrypt => {}, -Flags => DB_CREATE ; }; ok 32, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Recno -Encrypt => {Password => "fred"}, -Flags => DB_CREATE ; }; ok 33, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Recno -Encrypt => {Flags => 1}, -Flags => DB_CREATE ; }; ok 34, $@ =~ /^Must specify Password and Flags with Encrypt parameter at/; eval { my $env = new BerkeleyDB::Recno -Encrypt => {Fred => 1}, -Flags => DB_CREATE ; }; ok 35, $@ =~ /^\Qunknown key value(s) Fred at/;}{ # new BerkeleyDB::Hash -Encrypt => my $Dfile = "abcd.enc"; my $lex = new LexFile $Dfile ; my %hash ; my ($k, $v) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -