aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/0013-crypt-fixup.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0013-crypt-fixup.patch')
-rw-r--r--debian/patches/0013-crypt-fixup.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/debian/patches/0013-crypt-fixup.patch b/debian/patches/0013-crypt-fixup.patch
new file mode 100644
index 0000000..8d0ed99
--- /dev/null
+++ b/debian/patches/0013-crypt-fixup.patch
@@ -0,0 +1,117 @@
+--- a/perl/lib/Wallet/Object/File.pm
++++ b/perl/lib/Wallet/Object/File.pm
+@@ -175,8 +175,8 @@ sub _get_crypt_key {
+ sub _file_crypt {
+ my ($self, $action, $string) = @_;
+
+- use Crypt::CBC;
+- use MIME::Base64;
++ require Crypt::CBC;
++ require MIME::Base64;
+
+ my $return_string;
+ my $pre = $Wallet::Config::LDAP_SECRET_PREFIX;
+@@ -189,12 +189,14 @@ sub _file_crypt {
+ -add_header => 1
+ );
+ if ($action eq 'encrypt') {
+- $return_string = $pre . encode_base64($cipher->encrypt($string));
++ $return_string
++ = $pre . MIME::Base64::encode_base64($cipher->encrypt($string));
+ } elsif ($action eq 'decrypt') {
+ my $pre_regex = $pre;
+ $pre_regex =~ s/(\W)/\\$1/g;
+ if ($string =~ s/^$pre_regex//xms) {
+- $return_string = $cipher->decrypt(decode_base64($string));
++ $return_string
++ = $cipher->decrypt(MIME::Base64::decode_base64($string));
+ } else {
+ $return_string = $string;
+ }
+@@ -206,7 +208,7 @@ sub _file_crypt {
+ return $return_string;
+ }
+
+-sub _file_decrypt {
++sub file_decrypt {
+ my ($self, $data, $user, $host, $time) = @_;
+ my $undata = $self->_file_crypt('decrypt', $data);
+ if ($undata eq $data) {
+@@ -215,7 +217,7 @@ sub _file_decrypt {
+ return $undata;
+ }
+
+-sub _file_encrypt {
++sub file_encrypt {
+ my ($self, $data) = @_;
+ my $endata = $self->_file_crypt('encrypt', $data);
+ return $endata;
+@@ -259,7 +261,7 @@ sub get {
+ return;
+ }
+ if ($Wallet::Config::LDAP_SECRET) {
+- $data = $self->_file_decrypt($data, $user, $host, $time);
++ $data = $self->file_decrypt($data, $user, $host, $time);
+ }
+ $self->log_action ('get', $user, $host, $time);
+ return $data;
+@@ -279,7 +281,7 @@ sub checksum {
+ my $this_data;
+ my $this_endata = read_file($path);
+ if ($Wallet::Config::LDAP_SECRET) {
+- $this_data = $self->_file_decrypt($this_endata, $user, $host, $time)
++ $this_data = $self->file_decrypt($this_endata, $user, $host, $time)
+ } else {
+ $this_data = $this_endata;
+ }
+@@ -309,7 +311,7 @@ sub store {
+ }
+ }
+ if ($Wallet::Config::LDAP_SECRET) {
+- $data = $self->_file_encrypt($data);
++ $data = $self->file_encrypt($data);
+ }
+
+ my $path = $self->file_path;
+--- a/perl/lib/Wallet/Object/Password.pm
++++ b/perl/lib/Wallet/Object/Password.pm
+@@ -122,16 +122,16 @@ sub retrieve {
+ if (defined(&Wallet::Config::generate_password)) {
+ $pass = Wallet::Config::generate_password();
+ } else {
+- $self->error ("function generate_password() not found\n");
++ $self->error("function generate_password() not found\n");
+ return;
+ }
+ }
+ else
+ {
+ if (defined($Wallet::Config::PWD_TYPE)) {
+- $self->error ("Unknown PWD_TYPE ($Wallet::Config::PWD_TYPE)\n");
++ $self->error("Unknown PWD_TYPE ($Wallet::Config::PWD_TYPE)\n");
+ } else {
+- $self->error ("PWD_TYPE not set\n");
++ $self->error("PWD_TYPE not set\n");
+ }
+ return;
+ }
+@@ -139,6 +139,9 @@ sub retrieve {
+ $self->error ("cannot open $path $!\n");
+ return;
+ }
++ if ($Wallet::Config::LDAP_SECRET) {
++ $pass = Wallet::Object::File->file_encrypt($pass);
++ }
+ print FILE $pass;
+ $self->log_action ('store', $user, $host, $time);
+ unless (close FILE) {
+@@ -158,6 +161,9 @@ sub retrieve {
+ return;
+ }
+ $self->log_action ($operation, $user, $host, $time);
++ if ($Wallet::Config::LDAP_SECRET) {
++ $data = Wallet::Object::File->file_decrypt($data);
++ }
+ return $data;
+ }
+