Code

using new perl crypt module Crypt::CBC
[gosa.git] / contrib / daemon / gosa-sd-bus
index 483d3d1bf29ab8237ca38e208f5e884b2b23126f..b1e118f0e258fe82824f761c1cc33bf5d6ff5fca 100755 (executable)
@@ -26,7 +26,8 @@ use POSIX;
 use Time::HiRes qw( gettimeofday );
 
 use IO::Socket::INET;
-use Crypt::Rijndael;
+use Crypt::CBC;
+use Digest::MD5  qw(md5 md5_hex md5_base64);
 use XML::Simple;
 use Data::Dumper;
 use Sys::Syslog qw( :DEFAULT setlogsock);
@@ -580,7 +581,15 @@ sub create_passwd {
 sub create_ciphering {
     my ($passwd) = @_;
     $passwd = substr("$passwd" x 32, 0, 32);
-    my $my_cipher = Crypt::Rijndael->new($passwd , Crypt::Rijndael::MODE_CBC );
+    daemon_log("create_ciphering: new passwd: $passwd", 7);
+
+    my $iv = substr(md5_hex('GONICUS GmbH'),0, 16);
+
+    my $my_cipher = Crypt::CBC->new(-key=>$passwd ,
+                                    -cipher => 'Rijndael',
+                                    -iv => $iv,
+                                    -header => "none",
+                                    );
     return $my_cipher;
 }
 
@@ -594,13 +603,10 @@ sub create_ciphering {
 #===============================================================================
 sub encrypt_msg {
     my ($msg, $my_cipher) = @_;
-    $msg =~ s/[\n]+//g;
-    my $msg_length = length($msg);
-    my $multiplier = int($msg_length / 16) + 1;
-    my $extension = 16*$multiplier - $msg_length;
-    $msg = "0"x$extension.$msg;
+    if(not defined $my_cipher) { print "no cipher object\n"; }
+
     my $crypted_msg = $my_cipher->encrypt($msg);
-    #my $crypted_msg = $msg;
+
     return $crypted_msg;
 }
 
@@ -613,10 +619,8 @@ sub encrypt_msg {
 #  DESCRIPTION:  decrypts the incoming message with the Crypt::Rijndael module
 #===============================================================================
 sub decrypt_msg {
-    my ($crypted_msg, $my_cipher) =@_;
-    my $len = length $crypted_msg;
-    my $msg = $my_cipher->decrypt($crypted_msg);
-    $msg =~ s/^0*//g;
+    my ($crypted_msg, $my_cipher) = @_ ;
+    my $msg = $my_cipher->decrypt($crypted_msg); 
     return $msg;
 }