Last active
October 25, 2015 09:31
-
-
Save ritou/801c30f11f648f156074 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use Crypt::OpenSSL::CA; | |
use Crypt::OpenSSL::Bignum; | |
use Crypt::OpenSSL::RSA; | |
use MIME::Base64 qw/encode_base64url decode_base64url/; | |
use Data::Dumper; | |
# Crypt::OpenSSL::CA to n and e | |
my $rsa_pubkey = "-----BEGIN PUBLIC KEY----- | |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5XxKc3Rz/8EakvZG+Ez9 | |
nCpdn2HGVq0CRD1GZ/fEuM7nHfmy1LzC0VyNa8YkU7Qrb4s/BgSxjFrLvbpFHcUo | |
o+D3W5TvCR+8RLJLISmUoo4jMb2wDq35DEaJa3j1lGb7o93msFwlSRLwbmcYw08F | |
H3NEB1IQxkfAv6Z/ddzjDzV1nhbQO/RnO4v4JJ8wR4xxLmo00AJJ7fr8oL51aF9S | |
kjHU8cjvKFjGW4kcNxxm3+pMCzNtbJvUFQFeTQNBkWt9k83yKA5bhNwK1W4otRPs | |
l2bP0AyuJtA3tFdWSD1fvIA+l8rywrVom/RbDRUZkm1k+YgbyqyUgJbM5oJkGhwP | |
fwIDAQAB | |
-----END PUBLIC KEY-----"; | |
my $ca_pubkey = Crypt::OpenSSL::CA::PublicKey->parse_RSA($rsa_pubkey); | |
my $n = Crypt::OpenSSL::Bignum->new_from_hex($ca_pubkey->get_modulus()); | |
print Dumper(encode_base64url($n->to_bin())); | |
print Dumper($ca_pubkey->to_PEM()); | |
# n and e to Crypt::OpenSSL::RSA | |
my $e = Crypt::OpenSSL::Bignum->new_from_bin(decode_base64url("AQAB")); | |
my $rsa_pubkey = Crypt::OpenSSL::RSA->new_key_from_parameters($n, $e); | |
print Dumper($rsa_pubkey->get_public_key_string()); | |
print Dumper($rsa_pubkey->get_public_key_x509_string()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$VAR1 = '5XxKc3Rz_8EakvZG-Ez9nCpdn2HGVq0CRD1GZ_fEuM7nHfmy1LzC0VyNa8YkU7Qrb4s_BgSxjFrLvbpFHcUoo-D3W5TvCR-8RLJLISmUoo4jMb2wDq35DEaJa3j1lGb7o93msFwlSRLwbmcYw08FH3NEB1IQxkfAv6Z_ddzjDzV1nhbQO_RnO4v4JJ8wR4xxLmo00AJJ7fr8oL51aF9SkjHU8cjvKFjGW4kcNxxm3-pMCzNtbJvUFQFeTQNBkWt9k83yKA5bhNwK1W4otRPsl2bP0AyuJtA3tFdWSD1fvIA-l8rywrVom_RbDRUZkm1k-YgbyqyUgJbM5oJkGhwPfw';
$VAR1 = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5XxKc3Rz/8EakvZG+Ez9
nCpdn2HGVq0CRD1GZ/fEuM7nHfmy1LzC0VyNa8YkU7Qrb4s/BgSxjFrLvbpFHcUo
o+D3W5TvCR+8RLJLISmUoo4jMb2wDq35DEaJa3j1lGb7o93msFwlSRLwbmcYw08F
H3NEB1IQxkfAv6Z/ddzjDzV1nhbQO/RnO4v4JJ8wR4xxLmo00AJJ7fr8oL51aF9S
kjHU8cjvKFjGW4kcNxxm3+pMCzNtbJvUFQFeTQNBkWt9k83yKA5bhNwK1W4otRPs
l2bP0AyuJtA3tFdWSD1fvIA+l8rywrVom/RbDRUZkm1k+YgbyqyUgJbM5oJkGhwP
fwIDAQAB
-----END PUBLIC KEY-----
';
$VAR1 = '-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA5XxKc3Rz/8EakvZG+Ez9nCpdn2HGVq0CRD1GZ/fEuM7nHfmy1LzC
0VyNa8YkU7Qrb4s/BgSxjFrLvbpFHcUoo+D3W5TvCR+8RLJLISmUoo4jMb2wDq35
DEaJa3j1lGb7o93msFwlSRLwbmcYw08FH3NEB1IQxkfAv6Z/ddzjDzV1nhbQO/Rn
O4v4JJ8wR4xxLmo00AJJ7fr8oL51aF9SkjHU8cjvKFjGW4kcNxxm3+pMCzNtbJvU
FQFeTQNBkWt9k83yKA5bhNwK1W4otRPsl2bP0AyuJtA3tFdWSD1fvIA+l8rywrVo
m/RbDRUZkm1k+YgbyqyUgJbM5oJkGhwPfwIDAQAB
-----END RSA PUBLIC KEY-----
';
$VAR1 = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5XxKc3Rz/8EakvZG+Ez9
nCpdn2HGVq0CRD1GZ/fEuM7nHfmy1LzC0VyNa8YkU7Qrb4s/BgSxjFrLvbpFHcUo
o+D3W5TvCR+8RLJLISmUoo4jMb2wDq35DEaJa3j1lGb7o93msFwlSRLwbmcYw08F
H3NEB1IQxkfAv6Z/ddzjDzV1nhbQO/RnO4v4JJ8wR4xxLmo00AJJ7fr8oL51aF9S
kjHU8cjvKFjGW4kcNxxm3+pMCzNtbJvUFQFeTQNBkWt9k83yKA5bhNwK1W4otRPs
l2bP0AyuJtA3tFdWSD1fvIA+l8rywrVom/RbDRUZkm1k+YgbyqyUgJbM5oJkGhwP
fwIDAQAB
-----END PUBLIC KEY-----
';