3 use Crypt::OpenSSL::RSA;
4 use Crypt::OpenSSL::Bignum;
9 my $json_file = "private_key.json";
10 my $json_content = read_file($json_file);
11 $json_content =~ tr/-/+/;
12 $json_content =~ tr/_/\//;
14 my $json = decode_json($json_content);
16 my $n = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{n}));
17 my $e = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{e}));
18 my $d = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{d}));
19 my $p = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{p}));
20 my $q = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{q}));
22 my $rsa = Crypt::OpenSSL::RSA->new_key_from_parameters($n, $e, $d, $p, $q);
24 print($rsa->get_private_key_string());