]> git.street.me.uk Git - andy/dehydrated.git/blame - import-account.pl
changed urlbase64 helper to also use sed for character replacements
[andy/dehydrated.git] / import-account.pl
CommitLineData
0ed6a257
DH
1#!/usr/bin/env perl
2
61f0b7ed
LS
3use strict;
4
5use Crypt::OpenSSL::RSA;
6use Crypt::OpenSSL::Bignum;
7use JSON;
8use File::Slurp;
9use MIME::Base64;
10
11my $json_file = "private_key.json";
12my $json_content = read_file($json_file);
13$json_content =~ tr/-/+/;
14$json_content =~ tr/_/\//;
15
16my $json = decode_json($json_content);
17
18my $n = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{n}));
19my $e = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{e}));
20my $d = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{d}));
21my $p = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{p}));
22my $q = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64($json->{q}));
23
24my $rsa = Crypt::OpenSSL::RSA->new_key_from_parameters($n, $e, $d, $p, $q);
25
26print($rsa->get_private_key_string());