sub get_magic_token {
my $self=shift;
my $token=LocalSites::Crypt::encrypt_string(join '|',$self->id(), $self->username(), $self->password());
return $token;
}
####
sub encrypt_string {
my $clear_string=shift;
my ($prepend, $key ) = &_secret_vals();
$key = pack( "H32", $key );
my $cipher=new Crypt::CBC( $key, 'IDEA' );
my $crypt_string=$cipher->encrypt_hex( $clear_string );
return $crypt_string;
}
####
sub decode_magic_token {
my $self=shift;
my $token=shift;
return 0 unless $token;
my $decrypted=LocalSites::Crypt::decrypt_string($token);
my ($id,$username,$password)=split /\|/, $decrypted;
return $id;
}
####
sub decrypt_string {
my $crypt_string=shift;
my ( $prepend, $key ) = &_secret_vals();
$key = pack( "H32", $key );
my $cipher=new Crypt::CBC( $key, 'IDEA' );
my $clear_string=$cipher->decrypt_hex( $crypt_string );
return $clear_string;
}
####
sub decode_magic_token {
my $self=shift;
my $token=shift;
return 0 unless $token;
my ($id, $username, $password);
eval {
my $decrypted=LocalSites::Crypt::decrypt_string($token);
($id,$username,$password)=split /\|/, $decrypted;
};
if (@$) {
return 0;
} else {
return $id;
}
}