[BACK]Return to Keyring.pm CVS log [TXT][DIR] Up to [local] / palm / Palm-Keyring / lib / Palm

Diff for /palm/Palm-Keyring/lib/Palm/Keyring.pm between version 1.58 and 1.60

version 1.58, 2008/09/19 03:50:05 version 1.60, 2008/09/19 06:53:08
Line 1 
Line 1 
 package Palm::Keyring;  package Palm::Keyring;
 # $RedRiver: Keyring.pm,v 1.57 2008/09/19 02:04:34 andrew Exp $  # $RedRiver: Keyring.pm,v 1.59 2008/09/19 05:39:07 andrew Exp $
 ########################################################################  ########################################################################
 # Keyring.pm *** Perl class for Keyring for Palm OS databases.  # Keyring.pm *** Perl class for Keyring for Palm OS databases.
 #  #
Line 352 
Line 352 
         # Nothing extra for version 4          # Nothing extra for version 4
   
     } elsif ($self->{version} == 5) {      } elsif ($self->{version} == 5) {
         _parse_appinfo_v5($appinfo) || return;          _parse_appinfo_v5($appinfo);
   
     } else {      } else {
         croak "Unsupported Version $self->{version}";          croak "Unsupported Version $self->{version}";
Line 365 
Line 365 
 {  {
     my $appinfo = shift;      my $appinfo = shift;
   
     if (! exists $appinfo->{other}) {      croak 'Corrupt appinfo? no {other}' if ! $appinfo->{other};
         # XXX Corrupt appinfo?  
         return;  
     }  
   
     my $unpackstr      my $unpackstr
         = ("C1" x 8)  # 8 uint8s in an array for the salt          = ("C1" x 8)  # 8 uint8s in an array for the salt
Line 437 
Line 434 
     my $self = shift;      my $self = shift;
     my $rec  = shift;      my $rec  = shift;
     my $pass = shift || $self->{password};      my $pass = shift || $self->{password};
   
       if ( !$rec ) {
           croak('Needed parameter [record] not passed!');
       }
   
     my $data = shift || $rec->{plaintext};      my $data = shift || $rec->{plaintext};
     my $ivec = shift;      my $ivec = shift;
   
   
     if ( ! $pass && ! $self->{appinfo}->{key}) {      if ( ! $pass && ! $self->{appinfo}->{key}) {
         croak("password not set!\n");          croak('password not set!');
     }      }
   
     if ( ! $rec) {  
         croak("Needed parameter 'record' not passed!\n");  
     }  
   
     if ( ! $data) {      if ( ! $data) {
         croak("Needed 'plaintext' not passed!\n");          croak('Needed parameter [plaintext] not passed!');
     }      }
   
     if ( $pass && ! $self->Password($pass)) {      if ( $pass && ! $self->Password($pass)) {
         croak("Incorrect Password!\n");          croak('Incorrect Password!');
     }      }
   
     my $acct;      my $acct;
Line 492 
Line 491 
         }          }
   
     } else {      } else {
         croak "Unsupported Version $self->{version}";          croak "Unsupported version $self->{version}";
     }      }
   
     $rec->{plaintext}->{0} = $data->{0};      $rec->{plaintext}->{0} = $data->{0};
Line 592 
Line 591 
     my $c = crypts($cipher) or croak('Unknown cipher ' . $cipher);      my $c = crypts($cipher) or croak('Unknown cipher ' . $cipher);
   
     if (! defined $ivec) {      if (! defined $ivec) {
         $ivec = pack("C*",map {rand(256)} 1..$c->{blocksize});          while (! $ivec) {
               $ivec = pack("C*",map {rand(256)} 1..$c->{blocksize});
           }
     }      }
   
     my $changed = 0;      my $changed = 0;
Line 622 
Line 623 
         }          }
     }      }
   
     return 1, 0 if $changed == 0;      return (1, $ivec) if $changed == 0;
   
     if ($need_newdate) {      if ($need_newdate) {
         my ($day, $month, $year) = (localtime)[3,4,5];          my ($day, $month, $year) = (localtime)[3,4,5];

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.60

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>