password protected RSA/DSA keys
Karel Miko
10 years ago
0 | 0 | Changes for CryptX |
1 | 1 | |
2 | 2 | TODO: |
3 | - consider: RSA->check_key, RSA password protected keys | |
4 | - consider: PK->encrypt|decrypt ... add 'armour' param and make it compatible with Crypt::RSA | |
3 | - fix crash/memleak/or_what_it_is related to rsa_free/dsa_free | |
4 | - RSA->check_key (basic check + extented primality test) | |
5 | 5 | - croak with the "real caller" (Crypt::Mac::*, Crypt::Mode::*, ...) |
6 | 6 | - croak when mode does not call start_(en|de)crypt |
7 | 7 | - "libtom-src/bn_mp_invmod.c", line 37: warning: statement not reached |
8 | ||
9 | 0.017 2013/XXXXX | |
10 | - support for import/export of password protected RSA/DSA keys | |
11 | - RSA: added - export_key_pem('public_x509') | |
8 | 12 | |
9 | 13 | 0.016 2013/09/15 |
10 | 14 | - added missing test for key2hash, sign_hash, verify_hash |
14 | 14 | use MIME::Base64 qw(encode_base64 decode_base64); |
15 | 15 | |
16 | 16 | sub new { |
17 | my ($class, $f) = @_; | |
17 | my ($class, $f, $p) = @_; | |
18 | 18 | my $self = _new(); |
19 | $self->import_key($f) if $f; | |
19 | $self->import_key($f, $p) if $f; | |
20 | 20 | return $self; |
21 | 21 | } |
22 | 22 | |
319 | 319 | #or |
320 | 320 | my $public_pem = $pk->export_key_pem('public'); |
321 | 321 | |
322 | Support for password protected PEM keys | |
323 | ||
324 | my $private_pem = $pk->export_key_pem('private', $password); | |
325 | #or | |
326 | my $private_pem = $pk->export_key_pem('private', $password, $cipher); | |
327 | ||
328 | # supported ciphers: 'DES-CBC' | |
329 | # 'DES-EDE3-CBC' | |
330 | # 'DES-EDE3' | |
331 | # 'SEED-CBC' | |
332 | # 'AES-128-CBC' | |
333 | # 'AES-192-CBC' | |
334 | # 'AES-256-CBC' (DEFAULT) | |
335 | ||
322 | 336 | =head2 encrypt |
323 | 337 | |
324 | 338 | my $pk = Crypt::PK::DSA->new($pub_key_filename); |
14 | 14 | use MIME::Base64 qw(encode_base64 decode_base64); |
15 | 15 | |
16 | 16 | sub new { |
17 | my ($class, $f) = @_; | |
17 | my ($class, $f, $p) = @_; | |
18 | 18 | my $self = _new(); |
19 | $self->import_key($f) if $f; | |
19 | $self->import_key($f, $p) if $f; | |
20 | 20 | return $self; |
21 | 21 | } |
22 | 22 | |
31 | 31 | return Crypt::PK::_asn1_to_pem($key, "RSA PRIVATE KEY", $password, $cipher) if $type eq 'private'; |
32 | 32 | |
33 | 33 | # PKCS#1 RSAPublicKey* (PEM header: BEGIN RSA PUBLIC KEY) |
34 | return Crypt::PK::_asn1_to_pem($key, "RSA PUBLIC KEY") if $type eq 'public'; | |
34 | 35 | # X.509 SubjectPublicKeyInfo** (PEM header: BEGIN PUBLIC KEY) |
35 | return Crypt::PK::_asn1_to_pem($key, "RSA PUBLIC KEY") if $type eq 'public'; | |
36 | return Crypt::PK::_asn1_to_pem($key, "PUBLIC KEY") if $type eq 'public_x509'; | |
37 | ||
36 | 38 | } |
37 | 39 | |
38 | 40 | sub generate_key { |
342 | 344 | my $private_pem = $pk->export_key_pem('private'); |
343 | 345 | #or |
344 | 346 | my $public_pem = $pk->export_key_pem('public'); |
347 | #or | |
348 | my $public_pem = $pk->export_key_pem('public_x509'); | |
349 | ||
350 | With parameter C<'public'> uses header and footer lines: | |
351 | ||
352 | -----BEGIN RSA PUBLIC KEY------ | |
353 | -----END RSA PUBLIC KEY------ | |
354 | ||
355 | With parameter C<'public_x509'> uses header and footer lines: | |
356 | ||
357 | -----BEGIN PUBLIC KEY------ | |
358 | -----END PUBLIC KEY------ | |
359 | ||
360 | Support for password protected PEM keys | |
361 | ||
362 | my $private_pem = $pk->export_key_pem('private', $password); | |
363 | #or | |
364 | my $private_pem = $pk->export_key_pem('private', $password, $cipher); | |
365 | ||
366 | # supported ciphers: 'DES-CBC' | |
367 | # 'DES-EDE3-CBC' | |
368 | # 'DES-EDE3' | |
369 | # 'SEED-CBC' | |
370 | # 'AES-128-CBC' | |
371 | # 'AES-192-CBC' | |
372 | # 'AES-256-CBC' (DEFAULT) | |
345 | 373 | |
346 | 374 | =head2 encrypt |
347 | 375 |
34 | 34 | $klen = $klen ? int($klen/8) : Crypt::Cipher::min_keysize($cipher); |
35 | 35 | my $ilen = Crypt::Cipher::blocksize($cipher); |
36 | 36 | croak "FATAL: unsupported cipher '$cipher_name'" unless $klen && $ilen; |
37 | ||
38 | ||
37 | ||
39 | 38 | return (Crypt::Mode::CBC->new($cipher), $klen, $ilen) if $mode eq 'CBC'; |
40 | 39 | return (Crypt::Mode::CFB->new($cipher), $klen, $ilen) if $mode eq 'CFB'; |
41 | 40 | return (Crypt::Mode::ECB->new($cipher), $klen, $ilen) if $mode eq 'ECB'; |
44 | 43 | |
45 | 44 | sub _password2key { |
46 | 45 | my ($password, $klen, $iv, $hash) = @_; |
47 | my $salt = substr($iv,0,8); | |
46 | my $salt = substr($iv, 0, 8); | |
48 | 47 | my $key = ''; |
49 | 48 | while (length($key) < $klen) { |
50 | 49 | $key .= digest_data($hash, $key . $password . $salt); |
54 | 53 | |
55 | 54 | sub _pem_to_asn1 { |
56 | 55 | my ($data, $password) = @_; |
57 | ||
56 | ||
58 | 57 | my ($begin, $object, $headers, $content, $end) = $data =~ m/(-----BEGIN ([^\n\-]+)-----)\n(.*?\n\n)?(.+)(-----END .*?-----)/s; |
59 | 58 | return $content unless $content; |
60 | 59 | $content = decode_base64($content); |
61 | ||
60 | ||
62 | 61 | my ($ptype, $cipher_name, $iv_hex); |
63 | 62 | for my $h (split /\n/, $headers//'') { |
64 | 63 | my ($k, $v) = split /:\s*/, $h, 2; |
65 | 64 | $ptype = $v if $k eq 'Proc-Type'; |
66 | 65 | ($cipher_name, $iv_hex) = $v =~ /^\s*(.*?)\s*,\s*([0-9a-fA-F]+)\s*$/ if $k eq 'DEK-Info'; |
67 | 66 | } |
68 | ||
67 | ||
69 | 68 | if ($cipher_name && $iv_hex && $ptype && $ptype eq '4,ENCRYPTED') { |
70 | 69 | croak "FATAL: encrypted PEM but no password provided" unless defined $password; |
71 | 70 | my $iv = pack("H*", $iv_hex); |
72 | 71 | my ($mode, $klen) = _name2mode($cipher_name); |
73 | my $key = _password2key($password, $klen, $iv, 'MD5'); | |
72 | my $key = _password2key($password, $klen, $iv, 'MD5'); | |
74 | 73 | return $mode->decrypt($content, $key, $iv); |
75 | 74 | } |
76 | 75 | |
86 | 85 | $cipher_name ||= 'AES-256-CBC'; |
87 | 86 | my ($mode, $klen, $ilen) = _name2mode($cipher_name); |
88 | 87 | my $iv = random_bytes($ilen); |
89 | my $key = _password2key($password, $klen, $iv, 'MD5'); | |
88 | my $key = _password2key($password, $klen, $iv, 'MD5'); | |
90 | 89 | $content = $mode->encrypt($data, $key, $iv); |
91 | 90 | push @headers, 'Proc-Type: 4,ENCRYPTED', "DEK-Info: ".uc($cipher_name).",".unpack("H*", $iv); |
92 | 91 | } |
93 | ||
92 | ||
94 | 93 | my $rv = "-----BEGIN $header_name-----\n"; |
95 | 94 | if (@headers) { |
96 | 95 | $rv .= "$_\n" for @headers; |
2 | 2 | use strict; |
3 | 3 | use warnings ; |
4 | 4 | |
5 | our $VERSION = '0.016'; | |
5 | our $VERSION = '0.017'; | |
6 | 6 | |
7 | 7 | require XSLoader; |
8 | 8 | XSLoader::load('CryptX', $VERSION); |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-128-CBC,D5AA4E2FC68B30CC904B43873EF31A38 | |
3 | ||
4 | +VjbpU/gBzYiOyicUuDXBHuQccCeam1b+J50z/hI2wHVS6IItRlqYxax/fB4fePC | |
5 | SHnlzoV0uDPsCUwGIVdfLXC88gsmof/hsKF0qxKnuKakKG+u1p+fauYbe3QWfAf5 | |
6 | 6StHmFqEB6vaX2j2RpEoFsXcTf96Dp6+p+RAXXSK14VsD2kNha2jt9wi/7MXrbdQ | |
7 | QWL8LNaZGP7QnN5+qyNNmCscjpoKZRP+g1Gswnz7GCDGmOFeopKfYJBGP+mqJuzG | |
8 | 1KklNxJcZ9aoga58Az/hkf/EUjQjI5yvysTVwjqxNkpRAa+43z1t2WXVui4dGBvP | |
9 | +OPcRwqZviQlzTFz4ArOl/jNz/ZEwAmJJSS1SuKfSTGb4/7ErWTBPUS3XoFUtd79 | |
10 | 79tRYrhomhlv8qThsJtnz3cBrYgzuKbipPdyLH49bg+4+R3UWQuPKa3g9b+KiqlY | |
11 | hftPVHgzzxdb2oVhERx9Tjx3/QTJ1fiSgZdpGpYA5wL7wM8AHBpH3CBdDdwAq2XS | |
12 | JpFq4iMIN93BF3kcxwiPPnC95yOOGt91RmiV+FHPfZGFvh0P6ZF4E3l5fH9LBRTQ | |
13 | ODvimQy7N5/m048YxXyiyb6T0FqMluNfF6EGt+YAiyc= | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-192-CBC,7AF69ABEBB17E476DF28AA325F4219F4 | |
3 | ||
4 | zMTTppHV4c6wg2II7EjxZ2Sr7fmvX86UQELRue2cr1fGJNupWmJ2/bYdKxz0hIaj | |
5 | 7/WLPSms2YJqBHNXr6YH4lWTJ8plitAHMrhd1dUTOPnZvZ0/idMzSy8E2yVh707k | |
6 | hAh8gl9eVttUEFGVA0oRRnpAwt5Lh64+R3MdFoKNLxeg7qL6suLq0bd9AC0YTGzr | |
7 | QiHFBT3xm+Iwhpij7T0KxfkG0QAM5dRGGqOCo9BdEXUYs2Y9kj5ZkkLysK3dp51k | |
8 | /tRkq69eRS3Ox8X885NITpP6DjxA6IAui5AWMZ1ASysbdude9cgIf8FGjxLjjItd | |
9 | ny2NZ5b/zWzEAEAlnHm7BnR2uatG5GrFLO1L1gKSde9UUKZ5GAnTVNPpSGcih37p | |
10 | vzP7l+PKk+mSjS3O82FtTFBX/Wz8aw7DP8B9LP8pQ6NQIL9vzYiP/ZBde8KDuFM9 | |
11 | e5ViwXrxIB3QQadGkPNsUitKDtw/fn9cDrH1VDJ+V9Ce/yTx0uKdzfZ/Lko5tcLg | |
12 | dovfjBy93qEiF5dF3cNU8+67uW4MJKtG6/K4AAi0nsl9ZpoAxkviyXUOgX+uWyzR | |
13 | 34vr/UhtnqZ+WbobvRsbUw== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-256-CBC,14ED68BBD5515C2E83ABF597D7AA0ACD | |
3 | ||
4 | YOIUB/SU/320rjnJuaiTTb/8b2ND6E6s9zumY2/axEnWwtscFHIefS/oqPKyJAbM | |
5 | W//Kq1J4lWZ5oJEVVTE1Y6DNI0StQ7xubVOQg6KbY5tDMG9JzvBPoEXVVtOeegXV | |
6 | EcPFFuOlKmmWkqF6bWYGsXnBpxSR52cexBsk/G0WP19GkUoIYQM84GeecGdAJvZN | |
7 | iGdgX9ecGtzNeWprfTsrMMBTCFDb7twyj0OLuzUeoTapnx68wmkeWebBMk1DaOkR | |
8 | 6HZT6UT6MfjnDDJLt/myCQhNoNymN0y53EAvPQDWOA3cOXCrHdvBICgq5ezdmNBZ | |
9 | O/yD/+Lk/S7lbrPeo/cdJZw7CCQdy3Jn9J6dmPRT/J/I5/uuR14igOL944WGIT/j | |
10 | +FslH2g9YnLA6lkYCBRUf7pM6cbKIDUS/nNvSW914Qug08WxIc0oUZ7DZBuaOAVC | |
11 | crq2k5R3PnQ0OtggvOx8zj9/M/Tk99sjGwhj3DfoIJfZlFbORoZ1e4S93Qy9ekw0 | |
12 | vVKXmChFoTnt+QpYOF5U3QOfK0VL9Sf44mE8/FIYPssI+rusX2tVjr8lEElRwoqB | |
13 | ZDupgGBZSu+mZ8E/dVnScA== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-128-CBC,4AAF8AA37E76D1BC8F72F37DC2D865AD | |
3 | ||
4 | S+DAz1fM1R1IaCO+F5pOw6JF6sHEQQk1fHDvubOFOH5hrWsYFwrla2o0fJvhBbon | |
5 | 4KcXE8QNRy1ss8g1EqLI+ok0wUVGvvn7m2CcvZzcVC9tZE+WtKHKQVNFfJaKm7dA | |
6 | VdY23Ad79vBQ0cpda+aR4EerGdqI8uVkf8eqveOXbBIR/TvqOXuh9XotdTPfds2j | |
7 | DyzmocgPgnQSEXNS6zB2meyo3gUt16/VBA0oW0Fh2TvKYksV5f8XRJqmpRSZXPx8 | |
8 | ZBA51+odZ/8By1sZuONvME/xeFZ5PLI5vMiYoBfhEphVAWPvtgDuxTOOxZSrCpT5 | |
9 | dZ2tUr9D4dzZcLEvnaXXZNDw69HJJWeAjiM/76tLgzSLN6i4T35bYQiMdjMyYOIB | |
10 | QLIazPfN1llBb7DHjzQPATJ2w59U1bTO28oGmwZJNp4xL6hc0TcHb4N+HIHtyxQB | |
11 | jJPdl8wiWdJC1Cc9dNa3pmDpYoxdP01FcQOWomUOpC1gZNRVBTIph/tL5Jd15P0R | |
12 | nW4Jm6/8pOAUo7GkA5eXa3RRjwroN61EJQlyuBsURM/26WnFGcSFArCL6V7ILcMx | |
13 | TmShOEasVHRDWd509h4cFg== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-192-CBC,473E445A0D5FD8803AA40F48225CD6A3 | |
3 | ||
4 | w2e2vMYEj7pO33x/Me+9MzrTJYRI9vfPdzYQCsowxdlybFTcwUtqeCgPzeW5C6BZ | |
5 | rx9WTX3OcYFPnAX22BFgDvGqT+3+ybR9NKylxUvoUC7OOofOa1gW+e1XqSRbkr+r | |
6 | Jo26GT4ROBVY/i56qTUlYqg7X182wIp0MQSXJq+HXPhEogO4zYMXbROC9U7LcG4/ | |
7 | KO40Nx+C/18xRUAg2ZDjdkjK9L5u+QBpXa8qQuFtYd20NdDf8DQvgO9IwcDzPrMD | |
8 | kYznrMosCMPpEfBik4PwjQDjyKFAe0j6O8ePIA+KVPO/gXF6EqNP/QZoGEwzpXIo | |
9 | 7Vu50ztdomni6L/EjpsltlmdJMXNA/JozYiWqp8UnQbdHOt7wvwTlJCpDas+GvHk | |
10 | hHQ6HC4rOgCxCuZIzTlYVxx+ca6FEXnNs1hzmlVc692nkvSwQIt3i65IENH7hC4q | |
11 | 0yU2hF2+JANPiYVAfd2ERWDbpkTM8ug6XT9lcAKVUw3AI1aWA6xMLdZSU8atdIT9 | |
12 | 6/KVFN/tXrNbm/U0C0EDcojNsSLE+vb4A6SBkuYZka/b5nXea1qOcwt/CNmn3bzf | |
13 | bK68/s9EKkZQOekHrklfAw== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-256-CBC,5D6BC3C2DCE61EC62D34FF9379050AFE | |
3 | ||
4 | OQd/C+mhpHyFgjg8qR3esn54ENjfIg/+JjF996zi/fzA4vFeO6uJ257dFui3m84b | |
5 | O6Q71wOpXWTpx8TKRCGUnoTE4Few4c+HJwwqu1I2NrKiiBi7DfuJF7T+PMX6z66E | |
6 | R7gzUo+Zy7QdNKHAG75gDE9dgQBwbMHcuJ0iM0RWE59SleCtyQos+bFhR/ny7Amg | |
7 | hPKq909XnmVbvWP5y84b8nK394PKqoK51lP0HoKY1NSPkuwj/RM61SiMRX1t5hpC | |
8 | FdGQE9INaNCi8MJsq1oGPVAM1f72C5qb+JmCcGcaMyHxZf1YJYLYkraeSijrbwm9 | |
9 | Tz4n1vZOdgHckf31na78g79zlTWjDkON/QVFP3Ln4lT1sU9c7Gg/DducPnNQ9d00 | |
10 | 2Czc8NofsR9DkafhUT9+Hr9QsNB6eukROlfpyiHSZeaN0Y1hkbwGIXvU85fW8zfb | |
11 | ZYntNY+bTFDRCZyI04I87Z+DWxRAo8XJEskzGpJLuQYJzBZnHKnracPCYQtnSqFz | |
12 | k5Kd3ZzoqksjVHVcI9m3reSFFY+NHcKQ15OQp+SMTQQnu1+nAhZQIV/tMhDslRMr | |
13 | dDS9tkq8CiLdtRac3vcZCQ== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: DES-CBC,227ADC3AA0299491 | |
3 | ||
4 | UISxBYAxPQMl2eK9LMAeHsssF6IxO+4G2ta2Jn8VE+boJrrH3iSTKeMXGjGaXl0z | |
5 | DwcLGV+KMR70y+cxtTb34rFy+uSpBy10dOQJhxALDbe1XfCDQIUfaXRfMNA3um2I | |
6 | JdZixUD/zcxBOUzao+MCr0V9XlJDgqBhJ5EEr53XHH07Eo5fhiBfbbR9NzdUPFrQ | |
7 | p2ASyZtFh7RXoIBUCQgg21oeLddcNWV7gd/Y46kghO9s0JbJ8C+IsuWEPRSq502h | |
8 | tSoDN6B0sxbVvOUICLLbQaxt7yduTAhRxVIJZ1PWATTVD7CZBVz9uIDZ7LOv+er2 | |
9 | 1q3vkwb8E9spPsA240+BnfD571XEop4jrawxC0VKQZ+3cPVLc6jhIsxvzzFQUt67 | |
10 | g66v8GUgt7KF3KhVV7qEtntybQWDWb+K/uTIH9Ra8nP820d3Rnl61pPXDPlluteT | |
11 | WSLOvEMN2zRmkaxQNv/tLdT0SYpQtdjw74G3A6T7+KnvinKrjtp1a/AXkCF9hNEx | |
12 | DGbxOYo1UOmk8qdxWCrab34nO+Q8oQc9wjXHG+ZtRYIMoGMKREK8DeL4H1RPNkMf | |
13 | rwXWk8scd8QFmJAb8De1VQ== | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: DES-EDE3-CBC,C4193B6D1BF3F2BF | |
3 | ||
4 | A6o3o6+4F8iri8HFnDZuvYJmT3nNZQht14ysR2KZcjHs/J/vuOk4vKlk4C76Qdg4 | |
5 | uwpK1kep5Noi59odAwdmVPLOoVvmQDBRt2Jfvg61+lBXTywnBYNse8XhrBZLX08W | |
6 | T/zb/edyf8ct/kSkKqGsQXtpmNR2RdXDW+5zkCRHHkd6QFnlFD5E5GCFt6vsXVrK | |
7 | LlDzS7+iiPAaclEpW7HzsuR62PCyc7tPycxkWhqiM1b68/sShwurz1R7FPpzkpIc | |
8 | EnL+B4kNwtxhwdITqe4DEuHM5+7DhfovHImvDsBD1KyPd3Y5unMHj/Aw94se/P4l | |
9 | TTV3SYQnFzStcRpAKcgRysWr7dR+uZ86QEAVeoY6sL1r2gdNgV2AxjEhMoTeu++n | |
10 | j2nf59WJHbQfLs3yFAmK+xtSv0VAffvbchbnI05vZOaMNTtVY83e68ftoRCK3PWC | |
11 | VbgAec0zcce0qvuxbicUFhg/oLQbdWTV5w56a23QsPSkG+DFIp8BKrLL75SpcBKi | |
12 | nnbApxb0nFcJkYn9747mPXjOp6RYHE/7DkyqkGkK5q0eO2R6xf4GaOFq6MfDM6aH | |
13 | iQCsZt5wMjirfSSNALfuI4X4NlrqBN+2 | |
14 | -----END DSA PRIVATE KEY----- |
0 | -----BEGIN DSA PARAMETERS----- | |
1 | MIIBHgKBgQCkSN9kp68di6qn62zD56W13LM8zWB9H3oa7jRGFsH2kXIn4iKSf4pU | |
2 | HI43XLtHAnu5QVhwC+tf+Y5lcnbCzv27mxd+/tMV5vT3kcnmgeB+KnhONZhktcAt | |
3 | ktZ+ph3G7RA9N5CwxagXpATH7i+6QImZNG0DVh7uu6PLHSk9K64hUwIVAP+7jv0v | |
4 | Fn1Lurrjmh3GHkNJ3pc/AoGAQ31/Z3w1ymitWAr5B9Tv7zIWTe5BLuMRrJ673j2d | |
5 | /qbV8rDpDv14GykOlflgLxd/xSaL7D2NJw/7bRXWOaa2t9ht4ENsJ3Qf2jJMzj5Z | |
6 | QO3qpkLH58UKX/j9LQfbxLBlIdqxI4k2UlCEd54vIjgrDlvwUR58fzmSSB1USfpH | |
7 | SAE= | |
8 | -----END DSA PARAMETERS----- |
0 | -----BEGIN DSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: SEED-CBC,B4BD523CD59DA8DF3E8F397BBC025D8F | |
3 | ||
4 | Twepa9tc/xebHwoZq9HidpglTPYPsxFY2LtidA9oHgLRLrbnhxNnf4LXmcqT69RG | |
5 | QziI9YK0wlH31FRqaGbaQ6bP8E18EsSs2yGbHMciSHYr5Sz7KLxF7tE3urUCISZ1 | |
6 | NKuPe48PxLn4izKKgynKELzrtPjqQhCxBOmltSSNQ6HqW6qJQ5iyIKZHBWz3r9Lg | |
7 | 0/P3J2tjmViteStyeAdKjJI8HqipdghB12jNjAFE0M8LhUK2VYJYJd45Yur/z3NB | |
8 | 6nA6UgEeNCL4BT7hVsoQ7Fil4j641hSdo4rVVkLEobb+PFwvEqIM8KaQR8Xyn0Hx | |
9 | imzGYxONqbr0JzWIZOwD2ty8X2CMS4q7k2GS8OkWwiupK8ksMhxWTDkrT5aysvDE | |
10 | ZYNwXKrR5aaIKnJG0bwZvxpLNn1Nuy1EoGwLcMyCwCqfndg2AqTXgDx5+fUWx7UZ | |
11 | EN22lEbWdGcbPh8gMVdyWG452xDc271SgEOhNF6fEAKvA00/C3FqgrmU4jDfv1H0 | |
12 | t9nCQLOM3CN/PbcCf0umMn1ZuSWRMB8laVqgsRs+Io0AJx/73/Aix8U4jCWSJQwD | |
13 | ogz8cKEeceuywzqADWGcxg== | |
14 | -----END DSA PRIVATE KEY----- |
0 | openssl genrsa -passout pass:secret -des3 -out rsa-des3.pem 1024 | |
1 | openssl genrsa -passout pass:secret -des -out rsa-des.pem 1024 | |
2 | openssl genrsa -passout pass:secret -seed -out rsa-seed.pem 1024 | |
3 | openssl genrsa -passout pass:secret -aes128 -out rsa-aes128.pem 1024 | |
4 | openssl genrsa -passout pass:secret -aes192 -out rsa-aes192.pem 1024 | |
5 | openssl genrsa -passout pass:secret -aes256 -out rsa-aes256.pem 1024 | |
6 | openssl genrsa -passout pass:secret -camellia128 -out rsa-camellia128.pem 1024 | |
7 | openssl genrsa -passout pass:secret -camellia192 -out rsa-camellia192.pem 1024 | |
8 | openssl genrsa -passout pass:secret -camellia256 -out rsa-camellia256.pem 1024 | |
9 | ||
10 | openssl dsaparam -out dsa-param.pem -outform pem 1024 | |
11 | openssl gendsa -passout pass:secret -des3 -out dsa-des3.pem dsa-param.pem | |
12 | openssl gendsa -passout pass:secret -des -out dsa-des.pem dsa-param.pem | |
13 | openssl gendsa -passout pass:secret -seed -out dsa-seed.pem dsa-param.pem | |
14 | openssl gendsa -passout pass:secret -aes128 -out dsa-aes128.pem dsa-param.pem | |
15 | openssl gendsa -passout pass:secret -aes192 -out dsa-aes192.pem dsa-param.pem | |
16 | openssl gendsa -passout pass:secret -aes256 -out dsa-aes256.pem dsa-param.pem | |
17 | openssl gendsa -passout pass:secret -camellia128 -out dsa-camellia128.pem dsa-param.pem | |
18 | openssl gendsa -passout pass:secret -camellia192 -out dsa-camellia192.pem dsa-param.pem | |
19 | openssl gendsa -passout pass:secret -camellia256 -out dsa-camellia256.pem dsa-param.pem |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-128-CBC,2823DCBA91F7DBA2ED920CAEE40F0BB4 | |
3 | ||
4 | KAADjca5SzbAbdz2cF567ZO9WjZz+lA1C40gsOBvHB6LjWU32YGW6Hz9a7pwUjOh | |
5 | E/gGSFkKv6pTJgXfLs/l+pIDGSohhzChw7hkmN1IgVXqDQZw3koW5Yn7bg6xeJoI | |
6 | JFwIIQhnft6BHG2o/5MzUTRwHpIxRuIaz2FnZtBNbVtQInHtP8LJIAVoyoO4c0ET | |
7 | IQBDj7dwOAPdxOsrKCRkjI8IBMwWtKBq7XunkE15dZFFZrZOfIaXUqNYF9DlCHBk | |
8 | eGV2lZoL99pOtJzHTBzv3rtyPYqCNotTNnui2Z0Jzcq8K97XAlzKhL7BFMw5TSUF | |
9 | Tf9ECgumaRELXDdlUtEiZ7uACBXAW+qTUxOCrp+EeyfUBYPLuiy9KQvJd4C+8QIs | |
10 | OIYekzfqZfhbhOdb0U7ZRN3KXfuNS70vKfoMyuW4UVx75QZt3CnJL8M6dn+eijjw | |
11 | mEVCT/a8SLgTgMKtl2AzFiJK4WqvnUs9iOswlaAWCIpvrMQmxltoL34aim55EZKd | |
12 | gDlEW5zCcjYe8A5d5abd4cX8vVrN57j2O3Dk9Dgyr4ZHPjBMF8b6LnWqBGrgFrbQ | |
13 | LpjDZRNm4W7JuROL5VtSBEwP5VAMdl56UPlgGmM6K2MgAvkZ99ycffu0vsKOxd1T | |
14 | 5wpY2y5SBOyoex0XPa9woz0GOLjf9ydpVlVikPHk4XX2ts0+L5VttkQ7wO9GLUj0 | |
15 | OltsrOxscHq3xPYsJgxmmHGmhrlTKIv1YHjzZsteqZLokH3kr1sCEX+vS3lqaQP8 | |
16 | rmIjf2vAWi3inteZifZ2v48V8XPTOUky/YQvTEGDstHWVd74hhrCVfx+Jk7vjipr | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-192-CBC,BEA13A8B02546A15B7F23ADA71266129 | |
3 | ||
4 | 7Qv9E1ZLVnTUu7sG+EdRWqDpOo9vr8ro6Mqg1wHqXozx3JuOTbW9QvcVra9vcdfQ | |
5 | Zk2HC9sDKc44Jjw04zXQ8jUpFbjCtSGYqCp8Vjq/hsDsMwDMwqskq8BAN8G4s7K6 | |
6 | vkb/RBqbix+Dm3h9AWsh7+x1BNPX6aC8qyH2YZN/IlPfn52Oq8sTIk6w834NifzH | |
7 | Y87zI+cJ4e8o8XIVIAoRQFiVbLT5DsV8eMKh1jgwS3b5rdAK/GzDgEWwgonb3R2y | |
8 | 8KGrCIAQbkY1j5jNdurhAwJVEPUr9mwv4tPLoj0vFOez87TNh7iyTQwJ7NsDCilQ | |
9 | +S7xXxaLewKOvVqo9Qf1k8/xTWUtwSbtwA8V/E+8t7Qv1JkcBNGGDCRw8DWKmr3c | |
10 | q1qjA2yTILFqi+F+5bmpucPA+tm+iJjgo5uPqw0A/CzSI2Y1haXdxf5thf5eHzJW | |
11 | nGL5e+2muuirsViNRi4bcqaQ6nngWFLpeeySLL2gbgnEe2z7nDfBoN0821j3G8Qt | |
12 | mb/lW8KBjQVYoPlboW3u/QAy73Md4IGxvowqRQezOuhr6LHXP9UpzH3RfrHykUzx | |
13 | FhExT3Ke4volyejYZCBMqIL6AEHNjefJsPGRD8Z2Hfvso6EXhOeMV/hcMd+rgy1f | |
14 | EMV6hBIIkLWWSKU6yu19nd6xdLp6ZJ3pHbuDT/6EHJs7klF/OdvhGRl1icf3Bvmt | |
15 | Jnsu9OvVPvNfdPb5agjmcXF962xk5ceypfwJguBQVIqw/XHsu7cjU9EKdTIlg5oo | |
16 | oxDxyLYAdFUMhFiYtvYd4uCOIjIdFlRZYU9Hj+aI/5jGfrHglTRZWukJTtv6Yjpj | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: AES-256-CBC,E4FF35065678C2D4BF54C5F3070797EB | |
3 | ||
4 | 0u2a9fhgca81gTue3i5W7uT6BDXpNR1SwVR0RyXs3eTKgFrdy0NPxfACIpekTZiD | |
5 | ZKTpXwM6tbVC5gzsMK1SBeoiiXvDW3lN+nmiWzY9+sVssv0ys+fjq6WwlEbF3tI/ | |
6 | OflPOb17M50LLFxOlH7bqwzt5fMBHs2XA+ehMdg24ah1f7pSWjuZdjPOEMuV+XZf | |
7 | wGJTcdJKMZHdGn0hBxItuEQrYrxJloOJgYS5fjKoAGLmS6dKKVQa+nAJKVE24VIj | |
8 | spngBoB8zD4OW4Q6qFyPqiFjY/A4JgzBnwcKnkRVCbO629zbdvsgZDiHA4OIm3GH | |
9 | MWfdkDU48hmTriHXQs0dVEmZieRMVIKK0Y4gXXGElQy3w7XTUhvad9o093Ddr1UR | |
10 | ZktzPumpnnNVnhPdAmVQtENvqdrFvD/FhNpYnP8HeT0CYQf/aQSZs2Te3doWH6Mz | |
11 | quE6BXCBqJv8C+YKk8ugFmpzX7An9Lc46KA7hAc6eCQNvPPGEvH75IKWULqZYyBG | |
12 | xpLWow1jNId8zmgTIW+9eOpEroQ9/Lc5/9E/kSyylVfNxXAGmfdG4kzdF2vLyR4r | |
13 | cnMJfJtHKOx1QJ6nJfa/giuEwTcrJBleDRFslE1zVoNi03PZ9l5LS0YKhGSmLPoj | |
14 | T6IvAmKDGYuhp1hnO8spN2awqXaUYwrIzsIWKgwUTSvGc4TepWK72qP+h6/TpSq3 | |
15 | Sp0OhzNWM6YgLi4gchx54CYbsYwf7vhi7qK6ko2sehMJ3UC8rFQzl+OoddbdQ7dI | |
16 | +ZKzilZ/ppvh4yKdtYWEB/M17GzJHbU9SPCNKv0S+bo1gG5dsQO2Zlh0CvQUwzaG | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-128-CBC,E1719CB01F51547E271937E2B3D150F3 | |
3 | ||
4 | zzVZcRFkUA1zdt5Cp63erlq8IoL/t4HDDfAVJqQxuU78XB5VFe8BPN6XFedIBYhe | |
5 | q9s5fG4ULjf8NJtKPZ4Di7T8HZvAn50BJLa0u9HBHZDQiFQNzrt7Tb7MA2ENuqzG | |
6 | kmzza8wK15Hzri64Dmfq+Tl19fznAHTnawsrHQiahg9ylEPA2ZulDqnGP6ru71mB | |
7 | ohEIwg1cxJvaEkQUMiPXUirg/o9qeVhXRBT2cNWPa+qn7E/ufNhmvJM219TqzlQg | |
8 | 4+4zTEi8PkZZHeDASZ1Z/XiZHM7Rlm6PT36QqXORhoVAXeK00ErCpv979ljQ6cEP | |
9 | 4xIjRacmbCNrMPdpvggJP/QJdHvvWzZZHiv8BveET9R2RjquFwhRLKIJZ+IR5D/K | |
10 | Ppb5wQFCyL0cJ3Tv43e7AWO4oH2QZO7qc2lfnriuolbLHBRcYUUe9qbLHuu5rqdj | |
11 | BG/ZV0eiHVwCj8g0a0TK0fz0jCiKEe52AlEernnIj6/accQsUDuZfkDLmYoK6me0 | |
12 | SbGAEfrY1jMPuWwSJvCl9UGozJx4lPXB/3qtkEr5656MYHvf0OWpXqWIkcfDwZ5z | |
13 | QXruOzzF+ynSB8a/RMcrgKMW9l/3Uvgylcwngkgln85lxpSf1U1vRD2jfcmanPxq | |
14 | WyIgUGFB8yrLYsiWVv3Xtt9UGfa1s+EW5jTA9uYPAXoadD+HWKqCgQCBGLOpPNZl | |
15 | U6fTHzM42gxd+5kTcy9IZGSn6lB04K1tRNiJyds1OC7Hb/wq+VvZYy6kAx7WaAmz | |
16 | CSgH1AIz60AKS3ZknZRnz1IZhDT99BB4dc2RYndY7M778D5bQAP5VZ6DIuTL5mGJ | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-192-CBC,BA47F350F95736DBA1AFD47D0998C35B | |
3 | ||
4 | hTtFvf+yjUz4lhhNLe2voESxZ6ae65dvl3eWtNZmVmnVhArHqDmcak8GleLD1a2a | |
5 | FfwJGzdhvAQcLtfn1jpdObjwPS8XUQ9PVk3Dbjc5f4nP5f1ThkcewRtpStpc2MHH | |
6 | KJvXUOrDhcawO5MJ/EjvRCLs5N2Ykzqn/ptuk2xHGu116MFIZDH079iTYv3j/qQD | |
7 | OgengmO4uBAuQ5x6VMnIRRwF8zKYZH8wvWTD3FKInN/Fy7x8MOW+b6+eq63uD5vO | |
8 | oPXKaXJKtK1n1JiET5fdb9NJHZ5T4MERou0hFcHxT79TGtXwY2gsZ807sXIHZwIq | |
9 | +0c/tLEfNIuaGz4pA0s6c1fYbN4cx5dj+oqrsAaP7QazpEtuE1nlnQYCqlOAwEyN | |
10 | +x4T2fM7P2Vw7DOaLlyDIBXWtSfMhVfF0BXBsMya8BREownyvIt/lsbTv516waNp | |
11 | pM6Tojekf2E6U4IQlselIHS5N76KJullosymypyFh2y8S+OjUi4ZsstOgI+84aju | |
12 | F+/QMyW3I8gaFo3hL6y7Xzc5L3woKfHTXul0IyAofmLeUXWAABTY5FIxM5suaGkw | |
13 | ko7XTq8xVaQufHFxJZyG96epOe7YWgZ9d/t5gUSnK/6S0J7O0fMMn6vKQOCaaNV4 | |
14 | Xb3QNJb+2zxPtV3p1ZmQy10i61f+X1WfXx53jG2HLIqBdGc0WxApTaVgppYSxaeT | |
15 | LF8Lc+8lJRgOTidOr/wdWSuYjbbnGlxx+MHSJboljxzB3XAJ5LDQ0taU0IKkdpfD | |
16 | QV1BDul0tXsAQs7uEp7rqiLmE1kALzU8EE0+d6/VrVmuvLhDAE1arcyPXPIQAKLa | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: CAMELLIA-256-CBC,A3CE93CC318DCA6C8537B9554149F96F | |
3 | ||
4 | uJ1S7ZSrL959vXzFKkzI1vFBHw9n7kH62Zf+iH8gLtLVmMDeIoioX8UGYTvK+jWz | |
5 | SbZv2e4bIoxufFIPY+lZ+seLTdU4lWpZ6Shc6xHGc7qRjZ+pT5+c0Dm+W7XQLBoQ | |
6 | Lwrtb3c6mdhVmJBkk0At9XtzWu2WNE8rQtkWl1NvJLpIbmrQ75DTn2WMQXTgE7fo | |
7 | 8jMngWoIyZFwXnWavJLPUq7WkaXfp8AfRiei7riPT35Y98juGc8MMISR9yWhg6Pz | |
8 | cCMEvHMns/v0aurhmkTHTIbHI8BjbEGJ5hMhJx6CijANvWbh/UCOBx50GZINs0+q | |
9 | ZZ8Mn5lHPVV1Q6bMEBQvLAbvUrOebxNg7Fljs6KBFoKm9bN6cLX24jNQ+b4c7I7P | |
10 | FU3fSnvU9taAxrOev2a913Ek28jdwJQE8sZut128VBMvLj9HIb1Lf5jnMkoapH3f | |
11 | HA57VrPhzNFIR7/tx3jT4clzW3AyyKt1E/7UQkfZjANnKwsL9Ru8Z0X/BLxSQlMp | |
12 | HsEHVVLGlVZCrNFp0L7ex39JT6WYoRt2YT0HySrDTu8R4Yh8hgBOKTLLtk/2Ubwb | |
13 | HrEoQc7e71JDHpnwetxZhUWuIg0IJjz8QZSZzxRgY6qoA1FZV4JEExlyqDCeP7EC | |
14 | MS7Jur3pMhXMga7rmsXxJOs0bf/vyxFmXZCeSWyF2laKBJ7MHnGd1Xc6k70jQdJ0 | |
15 | wHy4Dwf/6+mgU9zb10NhduXfEEWRvSjc95nwOAdzgvVlTOs0PzECI1BSnFskWG9f | |
16 | DxjFHpNAvbLq6kY4v/UEf6mCdgKesfsScH6XL5YJbkgT7JA7KUFO13j16d8B5rrW | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: DES-CBC,5CA5B2DF978A847C | |
3 | ||
4 | fEuYTfFWcMY5GYXLY7+LbmTeKRNyE/NnvHD+Nr0pJdM0Su7o/9emaQ5xMLgpnBEd | |
5 | P3p4hnU3irTe5OIE6SxEY9P5M3DH6CnX4jdZ27DvBlUGj64lowRi3QoY9V4+FvkC | |
6 | tqdy9Y5BkK+eyxr7eIgHpebNTLEdd/7SUgJhPpkP1IZGBcY2HfCqrid4ZGPHaENj | |
7 | 1jlVUy2/Uv8qsQzVEB0JchLouZC+B6oRVKOzaEIspQirR+VKC8dE/3k7ss/EaqnV | |
8 | hss19GOaOLzzmAFJa5aWc0bhLI4NMvzsZKELpnKSkcYT+urT/F+BjKGTNhEW/ky/ | |
9 | Zy/HcWE3Ql0Jid1kSZqXJm9eesw/SSNn2hTO0hvznRzIFFnI+2GU1EN3PDg6SKQv | |
10 | QhzqUuKZ79Gb5tBxKgjEUd+vH/piJ87SumgIHce3gWX5nPblvOoa+VvYs+nWkJDU | |
11 | 8GiftUxrc1RTkJRO10L/WDHV8rq9D4/hmBUcSeZRHG1N9AAddx39HUm90T8vxUBI | |
12 | 2y5HdS1ypP30eWy5srk+by1QBcH/s8OHj0uGd8pAcnZS4sMeWyxA1pso3xPG982l | |
13 | SOEc6BVVACKPp3qqSGZ96sP4g2oa1uY7mon5GbF3GUFu70LfWjshBU2LT1Wuqcm/ | |
14 | UatR/Wv6PH6JK69Nt9iclGTBSXwC72IscJG1a09fa4fNRN76FOFojB5ZM9RqFccH | |
15 | cxwIa4W9qbyvTP2uGFRmxB4PnCvgUn5f/BHFsB6QinjRhuLweP31e0CGUM83xE7H | |
16 | 7Ds5QbMVonnFIuURDZKLXisUNArhsGNxj4NLFh654aI= | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: DES-EDE3-CBC,C183E11FE570A434 | |
3 | ||
4 | 8CEARke2e/AzkOk4eB+Kll0Kt2vrxcr1Q5/VN+y0tRRV9fgqYb24PtwRVSA2bOpi | |
5 | ksC08XsoOq/qRwdE2EWSqsoZ7xM1eRDTl0oYmW5Tzp2qisqw2QMe9urYG7Qo6R41 | |
6 | rr+DSzBVPJf9EhygeiWaNuqADZWAr5mF+zzHPjkShf/+g3cZ+uUDA0AWHGdlbp3N | |
7 | 08oUnGBKK2jyNX+DVcQrrMTICNzU1YJwznpeY2YgZpaYwWvNTRh7asi6Be2UFxWx | |
8 | LNALom6LTpL+F611RS9/qOtlfUpWSE7XK5bIQE5j59VR93VxEP58ilU/qNXI6DXO | |
9 | +LfEiXB98iRux8fQ68Ooqlere7//HxOPLp3KNcxXgHxuRsfWBuAO5qVGQOWhUanB | |
10 | RiG6/Wq3ONe/PRRkMAme3lxGNpPR8VHw/F6jLhA/cFGV6e3IdwEI7esAnYnJEI0x | |
11 | 5wB9EoG3DhJMdPhULBp3md7oxFip1lxfZmhh1hh84FR3etin7bHHfaz+nWain+RQ | |
12 | s6uf3yTYnpPjiC/d5WSS2d1sQ5T6DOaXBt9E5O5E9q0vehFHoY+jfwPy7/VOX/LV | |
13 | l3s3WjaBd4o6M69TNBXSlAlFD0fvfpkaUMSvzVXevMwEl6qWhWkkc9YWt/mmBNRU | |
14 | 2DcIdPOwNtKERcNqxxw5EYoEKGktHfDZtjki1rB7icN/HWU92QujnhoC4PgjAV1p | |
15 | MU9zOs9xwK05fC4Aowxujoa+hs/BO4Ss7G0oATrdteymOjiVGh9zBfWBlb3szlQG | |
16 | bQo9UGYcCIpHMJQz4yah5tca+n4II2ICJFRNx5siTqu7iUSOyZ945w== | |
17 | -----END RSA PRIVATE KEY----- |
0 | -----BEGIN RSA PRIVATE KEY----- | |
1 | Proc-Type: 4,ENCRYPTED | |
2 | DEK-Info: SEED-CBC,DEDB927E484244917048F7B10B131414 | |
3 | ||
4 | uvGL1hXZrBta0ctGaQraLnjRAdCmn/Lxunk/MEGRqqAlF7R3I44YLF/GEhwqrRuW | |
5 | 7qXfOzDqLJQohA/dUq9+6brukMb2E7b+af2BSKYK6fpKF2y84Sq3E/6/mZbEGQje | |
6 | 4fPeG+nt4L8LDza76IRDU1Z5qNXAMfvYj/GopgeIzWTbFwwM8H2rm9U/LwBalPQA | |
7 | lRvdOLgO0gGnHTA2b3I3APPzWdLwX7vGgczIZCJUSXuGCMQVtNfpM1kAdqttpiyr | |
8 | Iow2DNnZ7+eA5qlgS2NcgvGb5FIDj43sgzJLRBAXN46Dc5zWI0Wk2i4pBYbJd73i | |
9 | 5qNPRgS2EaSPsPMLBH/3pvRzPI/Bptqz5NzkbJrV5ojppK4pdTJdyOswp73Jr6e+ | |
10 | Y768RzHcGaNm6TYjHjWg5E3/6wfqlYw1x2BDmcR7ny9VV/GF2pHzJOsU+sb0fTM+ | |
11 | 0OuDARunbDMFl+xjzwvcErSR1cWwxY9M6DMxZmWVFGJD7ovVaKZ1lgwBuEdZh5yo | |
12 | Rg0RrMFhwB/gZHkMm8xtSHGdCcsjqmixqbm4jxoYwZ8RLoFkMWshFmM+hjvb0SKi | |
13 | Jxo4qOnS3smWduICjhEedLkwpVmbMzGXnZjVcJpBacV6KrQOa6O2vBSbo4w2ZQM7 | |
14 | ZeU+CU3p1718GNInt5+H17HeupROk87HnHiDLKuLZw8GLcqSDAHpgSzTHusvM04q | |
15 | uQt0SrU8KH5oILcj9I6embONOpZR7zY9+eFPGemTrwNFQVSt1L9nuLCUr+ZqmWNl | |
16 | AqVtOGq9kWSvWUo9URx/Ze7Y0Zs/6DBmn/dMQnWMR75nV/kgE29P35A8vzXPXcaE | |
17 | -----END RSA PRIVATE KEY----- |
0 | use strict; | |
1 | use warnings; | |
2 | use Test::More; | |
3 | ||
4 | use Crypt::PK::RSA; | |
5 | use Crypt::PK::DSA; | |
6 | ||
7 | for my $f (qw/rsa-aes128.pem rsa-aes192.pem rsa-aes256.pem rsa-des.pem rsa-des3.pem rsa-seed.pem/) { | |
8 | my $pk = Crypt::PK::RSA->new("t/data/$f", 'secret'); | |
9 | is($pk->is_private, 1, $f); | |
10 | } | |
11 | ||
12 | for my $f (qw/dsa-aes128.pem dsa-aes192.pem dsa-aes256.pem dsa-des.pem dsa-des3.pem dsa-seed.pem/) { | |
13 | my $pk = Crypt::PK::DSA->new("t/data/$f", 'secret'); | |
14 | is($pk->is_private, 1, $f); | |
15 | } | |
16 | ||
17 | done_testing;⏎ |
85 | 85 | ok($k->is_private, 'is_private'); |
86 | 86 | ok($k->export_key_pem('private'), 'export_key_pem pri'); |
87 | 87 | ok($k->export_key_pem('public'), 'export_key_pem pub'); |
88 | ok($k->export_key_pem('public_x509'), 'export_key_pem pub_x509'); | |
88 | 89 | ok($k->export_key_der('private'), 'export_key_der pri'); |
89 | 90 | ok($k->export_key_der('public'), 'export_key_der pub'); |
90 | 91 | } |