sub decrypt { my ($self, %params) = @_; my $key = $params{Key}; my $cyphertext = $params{Cyphertext}; $cyphertext = unpack "u*", $cyphertext if $params{Armour}; my $plaintext; my $blocksize = ((bitsize ($key->n)) / 8); my @segments = steak ($cyphertext, $blocksize); for (@segments) { $plaintext .= $self->{eme}->decrypt (Cyphertext=> $_, Key => $key) || return $self->error ($self->{eme}->errstr, \$key, \%params); } return $plaintext; } #### # $decoded is the base64 decoded cookie my @fields = get_fields($decoded); my $public_key = get_pubkey($fields[2]); # Verified to work my $rsa = new Crypt::RSA; my $checksum = $rsa->decrypt( Cyphertext => $encrypted, Key => $public_key, Armour => 1,) || die $rsa->errstr();