use warnings; use strict; use Crypt::OpenSSL::RSA; use Crypt::OpenSSL::Bignum; use Data::Dump; my $rsa = Crypt::OpenSSL::RSA->generate_key(1024); my $priv = $rsa->get_private_key_string; my $ciphertext = $rsa->encrypt("Hello"); my $rsa2 = Crypt::OpenSSL::RSA->new_private_key($priv); my $plaintext = $rsa2->decrypt($ciphertext); dd $plaintext; my %params; @params{qw/n e d p q/, 'd mod (p-1)', 'd mod (q-1)', '1/q mod p'} = map { $_->to_hex } $rsa->get_key_parameters; dd \%params;