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 )