Crypt-Keyczar
view release on metacpan or search on metacpan
lib/Crypt/Keyczar/Key.pm view on Meta::CPAN
sub get_engine {}
sub get_sign_engine { return Crypt::Keyczar::_NullSignEngine->new(); }
sub generate_key {
my $class = shift;
my ($type, $size) = @_;
if (!exists $POLICY{uc $type}) {
croak "unsupported key type: $type";
}
my $key = $POLICY{uc $type}->{object};
eval "use $key";
if ($@) {
croak "$type: $@";
}
if ($size) {
if (scalar(grep {$_ == $size} @{$POLICY{uc $type}->{keysize}}) == 0) {
croak "unacceptable key size: $size\@$type";
}
}
else {
$size = $POLICY{uc $type}->{keysize}->[0]; # set default key size
}
return $key->generate($size);
}
sub read_key {
my $class = shift;
my ($type, $json_string_key) = @_;
if (!exists $POLICY{uc $type}) {
croak "unsupported key type: $type";
}
my $key = $POLICY{uc $type}->{object};
eval "use $key";
if ($@) {
croak "$type: $@";
}
return $key->read($json_string_key);
}
sub to_string {
return Crypt::Keyczar::Util::encode_json($_[0]->expose);
}
1;
package Crypt::Keyczar::_NullSignEngine;
use strict;
use warnings;
sub new { return bless {}, $_[0]; }
sub digest_size { return 0 }
sub init { return '' }
sub update {}
sub sign { return '' }
sub verify { return 1 }
__END__
( run in 0.672 second using v1.01-cache-2.11-cpan-39bf76dae61 )