Codebase list libcryptx-perl / 65e202f
RSA related test script Karel Miko 10 years ago
3 changed file(s) with 199 addition(s) and 68 deletion(s). Raw diff Collapse all Expand all
+0
-68
t/data/info.txt less more
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";