RSA related test script
Karel Miko
10 years ago
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 | |
20 | ||
21 | openssl ecparam -out tmp.pem -name secp128r2 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -des3 -out ec-des3.pem -in tmp.pem | |
22 | openssl ecparam -out tmp.pem -name secp160k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -des -out ec-des.pem -in tmp.pem | |
23 | openssl ecparam -out tmp.pem -name secp160r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -seed -out ec-seed.pem -in tmp.pem | |
24 | openssl ecparam -out tmp.pem -name secp160r2 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes128 -out ec-aes128.pem -in tmp.pem | |
25 | openssl ecparam -out tmp.pem -name secp192k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes192 -out ec-aes192.pem -in tmp.pem | |
26 | openssl ecparam -out tmp.pem -name secp224k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes256 -out ec-aes256.pem -in tmp.pem | |
27 | openssl ecparam -out tmp.pem -name secp224r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia128 -out ec-camellia128.pem -in tmp.pem | |
28 | openssl ecparam -out tmp.pem -name secp256k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia192 -out ec-camellia192.pem -in tmp.pem | |
29 | openssl ecparam -out tmp.pem -name secp384r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia256 -out ec-camellia256.pem -in tmp.pem | |
30 | ||
31 | openssl ecparam -list_curves | |
32 | openssl ecparam -out openssl_ec_secp112r1.pem -name secp112r1 -genkey -param_enc explicit | |
33 | openssl ecparam -out openssl_ec_secp112r2.pem -name secp112r2 -genkey -param_enc explicit | |
34 | openssl ecparam -out openssl_ec_secp128r1.pem -name secp128r1 -genkey -param_enc explicit | |
35 | openssl ecparam -out openssl_ec_secp128r2.pem -name secp128r2 -genkey -param_enc explicit | |
36 | openssl ecparam -out openssl_ec_secp160k1.pem -name secp160k1 -genkey -param_enc explicit | |
37 | openssl ecparam -out openssl_ec_secp160r1.pem -name secp160r1 -genkey -param_enc explicit | |
38 | openssl ecparam -out openssl_ec_secp160r2.pem -name secp160r2 -genkey -param_enc explicit | |
39 | openssl ecparam -out openssl_ec_secp192k1.pem -name secp192k1 -genkey -param_enc explicit | |
40 | openssl ecparam -out openssl_ec_secp224k1.pem -name secp224k1 -genkey -param_enc explicit | |
41 | openssl ecparam -out openssl_ec_secp224r1.pem -name secp224r1 -genkey -param_enc explicit | |
42 | openssl ecparam -out openssl_ec_secp256k1.pem -name secp256k1 -genkey -param_enc explicit | |
43 | openssl ecparam -out openssl_ec_secp384r1.pem -name secp384r1 -genkey -param_enc explicit | |
44 | openssl ecparam -out openssl_ec_secp521r1.pem -name secp521r1 -genkey -param_enc explicit | |
45 | openssl ecparam -out openssl_ec_prime192v1.pem -name prime192v1 -genkey -param_enc explicit | |
46 | openssl ecparam -out openssl_ec_prime192v2.pem -name prime192v2 -genkey -param_enc explicit | |
47 | openssl ecparam -out openssl_ec_prime192v3.pem -name prime192v3 -genkey -param_enc explicit | |
48 | openssl ecparam -out openssl_ec_prime239v1.pem -name prime239v1 -genkey -param_enc explicit | |
49 | openssl ecparam -out openssl_ec_prime239v2.pem -name prime239v2 -genkey -param_enc explicit | |
50 | openssl ecparam -out openssl_ec_prime239v3.pem -name prime239v3 -genkey -param_enc explicit | |
51 | openssl ecparam -out openssl_ec_prime256v1.pem -name prime256v1 -genkey -param_enc explicit | |
52 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls6.pem -name wap-wsg-idm-ecid-wtls6 -genkey -param_enc explicit | |
53 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls7.pem -name wap-wsg-idm-ecid-wtls7 -genkey -param_enc explicit | |
54 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls8.pem -name wap-wsg-idm-ecid-wtls8 -genkey -param_enc explicit | |
55 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls9.pem -name wap-wsg-idm-ecid-wtls9 -genkey -param_enc explicit | |
56 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls12.pem -name wap-wsg-idm-ecid-wtls12 -genkey -param_enc explicit | |
57 | ||
58 | ||
59 | openssl ecparam -out openssl_ec1.key.pem -name secp384r1 -genkey -param_enc explicit | |
60 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -out openssl_ec1.pri.pem | |
61 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -conv_form compressed -out openssl_ec1.pric.pem | |
62 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -pubout -out openssl_ec1.pub.pem | |
63 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -pubout -conv_form compressed -out openssl_ec1.pubc.pem | |
64 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -out openssl_ec1.pri.der | |
65 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -conv_form compressed -out openssl_ec1.pric.der | |
66 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -pubout -out openssl_ec1.pub.der | |
67 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -pubout -conv_form compressed -out openssl_ec1.pubc.der |
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 | |
20 | ||
21 | openssl ecparam -out tmp.pem -name secp128r2 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -des3 -out ec-des3.pem -in tmp.pem | |
22 | openssl ecparam -out tmp.pem -name secp160k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -des -out ec-des.pem -in tmp.pem | |
23 | openssl ecparam -out tmp.pem -name secp160r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -seed -out ec-seed.pem -in tmp.pem | |
24 | openssl ecparam -out tmp.pem -name secp160r2 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes128 -out ec-aes128.pem -in tmp.pem | |
25 | openssl ecparam -out tmp.pem -name secp192k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes192 -out ec-aes192.pem -in tmp.pem | |
26 | openssl ecparam -out tmp.pem -name secp224k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -aes256 -out ec-aes256.pem -in tmp.pem | |
27 | openssl ecparam -out tmp.pem -name secp224r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia128 -out ec-camellia128.pem -in tmp.pem | |
28 | openssl ecparam -out tmp.pem -name secp256k1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia192 -out ec-camellia192.pem -in tmp.pem | |
29 | openssl ecparam -out tmp.pem -name secp384r1 -genkey -param_enc explicit && openssl ec -param_enc explicit -passout pass:secret -camellia256 -out ec-camellia256.pem -in tmp.pem | |
30 | ||
31 | openssl ecparam -list_curves | |
32 | openssl ecparam -out openssl_ec_secp112r1.pem -name secp112r1 -genkey -param_enc explicit | |
33 | openssl ecparam -out openssl_ec_secp112r2.pem -name secp112r2 -genkey -param_enc explicit | |
34 | openssl ecparam -out openssl_ec_secp128r1.pem -name secp128r1 -genkey -param_enc explicit | |
35 | openssl ecparam -out openssl_ec_secp128r2.pem -name secp128r2 -genkey -param_enc explicit | |
36 | openssl ecparam -out openssl_ec_secp160k1.pem -name secp160k1 -genkey -param_enc explicit | |
37 | openssl ecparam -out openssl_ec_secp160r1.pem -name secp160r1 -genkey -param_enc explicit | |
38 | openssl ecparam -out openssl_ec_secp160r2.pem -name secp160r2 -genkey -param_enc explicit | |
39 | openssl ecparam -out openssl_ec_secp192k1.pem -name secp192k1 -genkey -param_enc explicit | |
40 | openssl ecparam -out openssl_ec_secp224k1.pem -name secp224k1 -genkey -param_enc explicit | |
41 | openssl ecparam -out openssl_ec_secp224r1.pem -name secp224r1 -genkey -param_enc explicit | |
42 | openssl ecparam -out openssl_ec_secp256k1.pem -name secp256k1 -genkey -param_enc explicit | |
43 | openssl ecparam -out openssl_ec_secp384r1.pem -name secp384r1 -genkey -param_enc explicit | |
44 | openssl ecparam -out openssl_ec_secp521r1.pem -name secp521r1 -genkey -param_enc explicit | |
45 | openssl ecparam -out openssl_ec_prime192v1.pem -name prime192v1 -genkey -param_enc explicit | |
46 | openssl ecparam -out openssl_ec_prime192v2.pem -name prime192v2 -genkey -param_enc explicit | |
47 | openssl ecparam -out openssl_ec_prime192v3.pem -name prime192v3 -genkey -param_enc explicit | |
48 | openssl ecparam -out openssl_ec_prime239v1.pem -name prime239v1 -genkey -param_enc explicit | |
49 | openssl ecparam -out openssl_ec_prime239v2.pem -name prime239v2 -genkey -param_enc explicit | |
50 | openssl ecparam -out openssl_ec_prime239v3.pem -name prime239v3 -genkey -param_enc explicit | |
51 | openssl ecparam -out openssl_ec_prime256v1.pem -name prime256v1 -genkey -param_enc explicit | |
52 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls6.pem -name wap-wsg-idm-ecid-wtls6 -genkey -param_enc explicit | |
53 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls7.pem -name wap-wsg-idm-ecid-wtls7 -genkey -param_enc explicit | |
54 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls8.pem -name wap-wsg-idm-ecid-wtls8 -genkey -param_enc explicit | |
55 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls9.pem -name wap-wsg-idm-ecid-wtls9 -genkey -param_enc explicit | |
56 | openssl ecparam -out openssl_ec_wap-wsg-idm-ecid-wtls12.pem -name wap-wsg-idm-ecid-wtls12 -genkey -param_enc explicit | |
57 | ||
58 | ||
59 | openssl ecparam -out openssl_ec1.key.pem -name secp384r1 -genkey -param_enc explicit | |
60 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -out openssl_ec1.pri.pem | |
61 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -conv_form compressed -out openssl_ec1.pric.pem | |
62 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -pubout -out openssl_ec1.pub.pem | |
63 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -pubout -conv_form compressed -out openssl_ec1.pubc.pem | |
64 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -out openssl_ec1.pri.der | |
65 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -conv_form compressed -out openssl_ec1.pric.der | |
66 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -pubout -out openssl_ec1.pub.der | |
67 | openssl ec -in openssl_ec1.key.pem -param_enc explicit -outform der -pubout -conv_form compressed -out openssl_ec1.pubc.der |
0 | use strict; | |
1 | use warnings; | |
2 | ||
3 | use Crypt::PK::RSA;Crypt::PK::RSA->new("rsakey.priv.pem"); | |
4 | ||
5 | sub runcmds { | |
6 | my $cmds = shift; | |
7 | for (split /\n/, $cmds) { | |
8 | s/^\s*(.*?)\s*$/$1/; | |
9 | warn "#### >$_<\n"; | |
10 | my $rv = system($_); | |
11 | die "ERROR (rv = $rv)\n" if $rv; | |
12 | } | |
13 | } | |
14 | ||
15 | write_file("input.data", "test-file-content"); | |
16 | ||
17 | sub doit { | |
18 | ||
19 | ### enc openssl > cryptx | |
20 | runcmds <<'MARKER'; | |
21 | openssl rsautl -encrypt -inkey rsakey.pub.pem -pubin -out input.encrypted.rsa -in input.data | |
22 | MARKER | |
23 | ||
24 | { | |
25 | use Crypt::PK::RSA; | |
26 | use File::Slurp 'read_file'; | |
27 | ||
28 | my $pkrsa = Crypt::PK::RSA->new("rsakey.priv.pem"); | |
29 | my $encfile = read_file("input.encrypted.rsa", binmode=>':raw'); | |
30 | my $plaintext = $pkrsa->decrypt($encfile, 'v1.5'); | |
31 | print $plaintext; | |
32 | } | |
33 | ||
34 | ### enc cryptx > openssl | |
35 | { | |
36 | use Crypt::PK::RSA; | |
37 | use File::Slurp 'write_file'; | |
38 | ||
39 | my $plaintext = 'secret message'; | |
40 | my $pkrsa = Crypt::PK::RSA->new("rsakey.pub.pem"); | |
41 | my $encrypted = $pkrsa->encrypt($plaintext, 'v1.5'); | |
42 | write_file("input.encrypted.rsa", {binmode=>':raw'}, $encrypted); | |
43 | } | |
44 | ||
45 | runcmds <<'MARKER'; | |
46 | openssl rsautl -decrypt -inkey rsakey.priv.pem -in input.encrypted.rsa | |
47 | MARKER | |
48 | ||
49 | ### sign openssl > cryptx | |
50 | runcmds <<'MARKER'; | |
51 | openssl dgst -sha1 -sign rsakey.priv.pem -out input.sha1-rsa.sig input.data | |
52 | MARKER | |
53 | ||
54 | { | |
55 | use Crypt::PK::RSA; | |
56 | use Crypt::Digest 'digest_file'; | |
57 | use File::Slurp 'read_file'; | |
58 | ||
59 | my $pkrsa = Crypt::PK::RSA->new("rsakey.pub.pem"); | |
60 | my $signature = read_file("input.sha1-rsa.sig", binmode=>':raw'); | |
61 | my $valid = $pkrsa->verify_hash($signature, digest_file("SHA1", "input.data"), "SHA1", "v1.5"); | |
62 | print $valid ? "SUCCESS" : "FAILURE"; | |
63 | } | |
64 | ||
65 | ### sign cryptx > openssl | |
66 | { | |
67 | use Crypt::PK::RSA; | |
68 | use Crypt::Digest 'digest_file'; | |
69 | use File::Slurp 'write_file'; | |
70 | ||
71 | my $pkrsa = Crypt::PK::RSA->new("rsakey.priv.pem"); | |
72 | my $signature = $pkrsa->sign_hash(digest_file("SHA1", "input.data"), "SHA1", "v1.5"); | |
73 | write_file("input.sha1-rsa.sig", {binmode=>':raw'}, $signature); | |
74 | } | |
75 | ||
76 | runcmds <<'MARKER'; | |
77 | openssl dgst -sha1 -verify rsakey.pub.pem -signature input.sha1-rsa.sig input.data | |
78 | MARKER | |
79 | ||
80 | } | |
81 | ||
82 | ### keys generated by cryptx | |
83 | { | |
84 | use Crypt::PK::RSA; | |
85 | use File::Slurp 'write_file'; | |
86 | ||
87 | my $pkrsa = Crypt::PK::RSA->new; | |
88 | $pkrsa->generate_key(256, 65537); | |
89 | write_file("rsakey.pub.der", {binmode=>':raw'}, $pkrsa->export_key_der('public')); | |
90 | write_file("rsakey.priv.der", {binmode=>':raw'}, $pkrsa->export_key_der('private')); | |
91 | write_file("rsakey.pub.pem", $pkrsa->export_key_pem('public_x509')); | |
92 | write_file("rsakey.priv.pem", $pkrsa->export_key_pem('private')); | |
93 | write_file("rsakey-passwd.priv.pem", $pkrsa->export_key_pem('private', 'secret')); | |
94 | } | |
95 | ||
96 | runcmds <<'MARKER'; | |
97 | openssl rsa -in rsakey.priv.der -text -inform der | |
98 | openssl rsa -in rsakey.priv.pem -text | |
99 | openssl rsa -in rsakey-passwd.priv.pem -text -inform pem -passin pass:secret | |
100 | openssl rsa -in rsakey.pub.der -pubin -text -inform der | |
101 | openssl rsa -in rsakey.pub.pem -pubin -text | |
102 | MARKER | |
103 | ||
104 | doit(); | |
105 | ||
106 | ### keys generated by openssl | |
107 | ||
108 | runcmds <<'MARKER'; | |
109 | openssl genrsa -out rsakey.priv.pem 1024 | |
110 | openssl rsa -in rsakey.priv.pem -out rsakey.priv.der -outform der | |
111 | openssl rsa -in rsakey.priv.pem -out rsakey.pub.pem -pubout | |
112 | openssl rsa -in rsakey.priv.pem -out rsakey.pub.der -outform der -pubout | |
113 | openssl rsa -in rsakey.priv.pem -passout pass:secret -des3 -out rsakey-passwd.priv.pem | |
114 | MARKER | |
115 | ||
116 | { | |
117 | use Crypt::PK::RSA; | |
118 | use File::Slurp 'write_file'; | |
119 | ||
120 | my $pkrsa = Crypt::PK::RSA->new; | |
121 | $pkrsa->import_key("rsakey.pub.der"); | |
122 | $pkrsa->import_key("rsakey.priv.der"); | |
123 | $pkrsa->import_key("rsakey.pub.pem"); | |
124 | $pkrsa->import_key("rsakey.priv.pem"); | |
125 | $pkrsa->import_key("rsakey-passwd.priv.pem", "secret"); | |
126 | } | |
127 | ||
128 | doit(); | |
129 | ||
130 | warn "\nSUCCESS\n";⏎ |