]> git.street.me.uk Git - andy/dehydrated.git/blame - json_to_pem.pl
Merge pull request #11 from germeier/fixpending
[andy/dehydrated.git] / json_to_pem.pl
CommitLineData
61f0b7ed
LS
1use strict;
2
3use Crypt::OpenSSL::RSA;
4use Crypt::OpenSSL::Bignum;
5use JSON;
6use File::Slurp;
7use MIME::Base64;
8
9my $json_file = "private_key.json";
10my $json_content = read_file($json_file);
11$json_content =~ tr/-/+/;
12$json_content =~ tr/_/\//;
13
14my $json = decode_json($json_content);
15
16my $n = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{n}));
17my $e = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{e}));
18my $d = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{d}));
19my $p = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{p}));
20my $q = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{q}));
21
22my $rsa = Crypt::OpenSSL::RSA->new_key_from_parameters($n, $e, $d, $p, $q);
23
24print($rsa->get_private_key_string());