Compare commits
2204 Commits
OpenSSL-fi
...
master-pre
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22b52164aa | ||
|
|
df6741c9a0 | ||
|
|
68d39f3ce6 | ||
|
|
f9be4da00e | ||
|
|
09f4d9c0f9 | ||
|
|
f8180c63ec | ||
|
|
20728adc8f | ||
|
|
4664862013 | ||
|
|
66186aeeb0 | ||
|
|
1ab6c607b8 | ||
|
|
a4ad939fb8 | ||
|
|
b1834b5e13 | ||
|
|
58d47cf004 | ||
|
|
7a2cb6f034 | ||
|
|
51428a12e4 | ||
|
|
f4c46d0aab | ||
|
|
c27310f938 | ||
|
|
7cc63545a3 | ||
|
|
0546db3ef7 | ||
|
|
9d51824b3b | ||
|
|
572cee384d | ||
|
|
b853717fc4 | ||
|
|
1e8f69c6a5 | ||
|
|
dbd87ffc21 | ||
|
|
0107079e5f | ||
|
|
6ea3d1836b | ||
|
|
061b67f6f5 | ||
|
|
a7b1eed566 | ||
|
|
c59576881e | ||
|
|
76712e81e0 | ||
|
|
24a5f17b6a | ||
|
|
90b9c78b30 | ||
|
|
985a9af813 | ||
|
|
e95bbc3ca6 | ||
|
|
aec4b334f0 | ||
|
|
6e81b27012 | ||
|
|
e751bba4ac | ||
|
|
5f0b444899 | ||
|
|
2dc57eb5a7 | ||
|
|
2f1ac20bb3 | ||
|
|
acb82df4d3 | ||
|
|
6f08264e2f | ||
|
|
ff7ca7a336 | ||
|
|
d09481a10f | ||
|
|
849c80bc5d | ||
|
|
e636e2acd7 | ||
|
|
28470b6095 | ||
|
|
23a22b4cf7 | ||
|
|
c80fd6b215 | ||
|
|
4b618848f9 | ||
|
|
b3d7294976 | ||
|
|
a5a412350d | ||
|
|
98b3b116ab | ||
|
|
2d2671790e | ||
|
|
b1ffc6ca1c | ||
|
|
86d21d0b95 | ||
|
|
964012dc5a | ||
|
|
6d23cf9744 | ||
|
|
31d1d3741f | ||
|
|
fcf64ba0ac | ||
|
|
9405a9a2e1 | ||
|
|
732192a079 | ||
|
|
1211e29c16 | ||
|
|
8e96441960 | ||
|
|
264212b643 | ||
|
|
41c9cfbc4e | ||
|
|
448e6f060e | ||
|
|
5c5e7e1a7e | ||
|
|
103b171d8f | ||
|
|
1421e0c584 | ||
|
|
a7a44ba55c | ||
|
|
248385c606 | ||
|
|
feba02f391 | ||
|
|
4a4d415857 | ||
|
|
e464403d0b | ||
|
|
4138e38825 | ||
|
|
ac8e9cbe14 | ||
|
|
cb62ab4b17 | ||
|
|
77ff1f3b8b | ||
|
|
a09474dd2d | ||
|
|
41cd41c441 | ||
|
|
3a83462dfe | ||
|
|
b691154e18 | ||
|
|
0548505f4c | ||
|
|
219338115b | ||
|
|
4fec915069 | ||
|
|
fb76ad8d43 | ||
|
|
ce325c60c7 | ||
|
|
b15f876964 | ||
|
|
b5526482ef | ||
|
|
c05febfa4f | ||
|
|
61aa44ca99 | ||
|
|
4c52816d35 | ||
|
|
684400ce19 | ||
|
|
32b07f5a80 | ||
|
|
e783bae26a | ||
|
|
cb2bc0543a | ||
|
|
c1669e1c20 | ||
|
|
9e557ab262 | ||
|
|
2c60925d1c | ||
|
|
9527559939 | ||
|
|
63eab8a620 | ||
|
|
4f605ccb77 | ||
|
|
2a9338ee31 | ||
|
|
b17dcb0d63 | ||
|
|
d97ed21986 | ||
|
|
97d5809c2b | ||
|
|
1d97c84351 | ||
|
|
aa8a9266f9 | ||
|
|
5075e52e6f | ||
|
|
c18440956d | ||
|
|
8c00f4cfd2 | ||
|
|
32dfde1076 | ||
|
|
6c23ca0cbb | ||
|
|
5ad4fdce41 | ||
|
|
67472bd82b | ||
|
|
7cfab40f43 | ||
|
|
f231941444 | ||
|
|
2521fcd852 | ||
|
|
e03b29871b | ||
|
|
488f16e31b | ||
|
|
c0fc27f88e | ||
|
|
bd2bd374b3 | ||
|
|
6385043fa1 | ||
|
|
53e95716f5 | ||
|
|
5bafb04d2e | ||
|
|
07c4c14c47 | ||
|
|
59ff1ce061 | ||
|
|
5a1e8c67a9 | ||
|
|
040b60f6fa | ||
|
|
b317819b2e | ||
|
|
179f6b2f55 | ||
|
|
89f40f369f | ||
|
|
03af843039 | ||
|
|
4ad2d3ac0e | ||
|
|
b597aab84e | ||
|
|
4aecfd4d9f | ||
|
|
57dc72e018 | ||
|
|
6dec5e1ca9 | ||
|
|
3ddb2914b5 | ||
|
|
a501f647aa | ||
|
|
72b5d03b5b | ||
|
|
a93891632d | ||
|
|
a015758d11 | ||
|
|
789da2c73d | ||
|
|
ec1af3c419 | ||
|
|
db812f2d70 | ||
|
|
ad500fdc49 | ||
|
|
fd86c2b153 | ||
|
|
af6e2d51bf | ||
|
|
55e530265a | ||
|
|
1904d21123 | ||
|
|
129c81b951 | ||
|
|
995207bedc | ||
|
|
56999ba589 | ||
|
|
9669d2e1ad | ||
|
|
24097938ad | ||
|
|
c3f22253b1 | ||
|
|
fd0ba77717 | ||
|
|
e03af1789f | ||
|
|
5ab65c50ef | ||
|
|
5cf37957fb | ||
|
|
a4a934119d | ||
|
|
5b17b79a89 | ||
|
|
3a7581bf5a | ||
|
|
288b4e4f8f | ||
|
|
c27dc3981c | ||
|
|
fed5b55252 | ||
|
|
e9e688effb | ||
|
|
bf8e7047aa | ||
|
|
9052ffda91 | ||
|
|
d00b1d62d6 | ||
|
|
02a62d1a4a | ||
|
|
e35af275d5 | ||
|
|
1939187922 | ||
|
|
348d0d148a | ||
|
|
29e7a56d54 | ||
|
|
2cbc8d7de5 | ||
|
|
aeb556f831 | ||
|
|
18125f7f55 | ||
|
|
68c29f61a4 | ||
|
|
5784a52145 | ||
|
|
c0d4390194 | ||
|
|
829ccf6ab6 | ||
|
|
76b2a02274 | ||
|
|
7a5233118c | ||
|
|
85bcf27ccc | ||
|
|
dd703de022 | ||
|
|
e52a3c3d14 | ||
|
|
41bf250130 | ||
|
|
76e6509085 | ||
|
|
7bca0a1db5 | ||
|
|
71a5f534f1 | ||
|
|
73e45b2dd1 | ||
|
|
b2ecc05a9a | ||
|
|
916e56208b | ||
|
|
ebdf37e4b1 | ||
|
|
1c98de6d81 | ||
|
|
dbfbe10a1f | ||
|
|
1bfffe9bd0 | ||
|
|
fce8311cae | ||
|
|
8d73db288f | ||
|
|
05417a3476 | ||
|
|
cc2f1045d1 | ||
|
|
4fa579c58d | ||
|
|
e4e5bc39f9 | ||
|
|
85129ab579 | ||
|
|
b3da6f496b | ||
|
|
c603c723ce | ||
|
|
225fce8a98 | ||
|
|
a42366a406 | ||
|
|
f072785eb4 | ||
|
|
78c990c156 | ||
|
|
00b4ee7664 | ||
|
|
0c1bd7f03f | ||
|
|
3feb63054a | ||
|
|
e4bbee9633 | ||
|
|
d827c5edb5 | ||
|
|
e6b336efa3 | ||
|
|
c857a80c9d | ||
|
|
376e2ca3e3 | ||
|
|
740580c2b2 | ||
|
|
33d5ba8629 | ||
|
|
f50ffd10fa | ||
|
|
33eab3f6af | ||
|
|
f6fa7c5347 | ||
|
|
f5905ba341 | ||
|
|
b3b966fb87 | ||
|
|
6c42b39c95 | ||
|
|
241e2dc936 | ||
|
|
d15f5df70d | ||
|
|
b1a08ac71f | ||
|
|
8607322765 | ||
|
|
e2140501fd | ||
|
|
0716f9e405 | ||
|
|
787e992965 | ||
|
|
12478cc449 | ||
|
|
71c16698fa | ||
|
|
45f55f6a5b | ||
|
|
616f71e486 | ||
|
|
4bb8eb9ce4 | ||
|
|
047f21593e | ||
|
|
464ce92026 | ||
|
|
d3d9eef316 | ||
|
|
1620a2e49c | ||
|
|
59669b6abf | ||
|
|
0d3ae34df5 | ||
|
|
6abb0d1f8e | ||
|
|
001235778a | ||
|
|
cf75017bfd | ||
|
|
961d2ddb4b | ||
|
|
8cfe08b4ec | ||
|
|
91316e6765 | ||
|
|
7a04b854d6 | ||
|
|
8123d158ab | ||
|
|
03b637a730 | ||
|
|
f9ea4deba0 | ||
|
|
eceef8fb86 | ||
|
|
81ec01b217 | ||
|
|
4b87706d20 | ||
|
|
fe78f08d15 | ||
|
|
fc3968a25c | ||
|
|
5e31a40f47 | ||
|
|
de87dd46c1 | ||
|
|
333fad9f2d | ||
|
|
6484958645 | ||
|
|
f281b8df70 | ||
|
|
34890ac18e | ||
|
|
f67203836c | ||
|
|
8a35dbb6d8 | ||
|
|
3a0765882c | ||
|
|
7d4cdededc | ||
|
|
7255ca99df | ||
|
|
c56a50b229 | ||
|
|
14d3b76be8 | ||
|
|
9e189b9dc1 | ||
|
|
8d02bebddf | ||
|
|
31832e8ff1 | ||
|
|
e94a6c0ede | ||
|
|
de2c7504eb | ||
|
|
980bc1ec61 | ||
|
|
7b3ba508af | ||
|
|
a06cd5d056 | ||
|
|
13d568661c | ||
|
|
764b6a3551 | ||
|
|
3881d8106d | ||
|
|
5a3d8eebb7 | ||
|
|
e469af8d05 | ||
|
|
bcb245a74a | ||
|
|
1a14b47ed9 | ||
|
|
d253c9cd30 | ||
|
|
cffeacd91e | ||
|
|
012aa9ec76 | ||
|
|
32bb5c3953 | ||
|
|
13d30e27c2 | ||
|
|
dbaf608320 | ||
|
|
8308411297 | ||
|
|
a4b8457db9 | ||
|
|
5444b11bef | ||
|
|
bc095c3d3c | ||
|
|
f756f1fc83 | ||
|
|
de94222dba | ||
|
|
55f7fb8848 | ||
|
|
5211e094de | ||
|
|
ae64fb528e | ||
|
|
e04d426bf9 | ||
|
|
67b8bcee95 | ||
|
|
f8ae603238 | ||
|
|
bfc973f46c | ||
|
|
6696203963 | ||
|
|
ecb9966e7c | ||
|
|
c381b63764 | ||
|
|
d45282fc7c | ||
|
|
d2fa182988 | ||
|
|
d663df2399 | ||
|
|
49b0dfc502 | ||
|
|
18a2d293f1 | ||
|
|
fd28a41ec8 | ||
|
|
14e14bf696 | ||
|
|
c800c27a8c | ||
|
|
3ff08e1dde | ||
|
|
b06f7d9ac0 | ||
|
|
9f4bd9d5f9 | ||
|
|
98f1ac7df5 | ||
|
|
8cb30232ed | ||
|
|
392fa7a952 | ||
|
|
c882abd522 | ||
|
|
87d388c955 | ||
|
|
c6e9b39ce8 | ||
|
|
7f09a8773b | ||
|
|
ed13270d2e | ||
|
|
53afbe12ba | ||
|
|
62f45cc27d | ||
|
|
7482705548 | ||
|
|
3dd814ac4d | ||
|
|
e659eff2c0 | ||
|
|
0b382a8e8d | ||
|
|
69d5747f90 | ||
|
|
fb0e87fb67 | ||
|
|
cf6da05304 | ||
|
|
ffa08b3242 | ||
|
|
f3014206a2 | ||
|
|
e0fdea3e49 | ||
|
|
71614df485 | ||
|
|
5aed169305 | ||
|
|
429a25b97d | ||
|
|
ae4af7a067 | ||
|
|
df8c39d522 | ||
|
|
d5f34443ad | ||
|
|
9208640a36 | ||
|
|
4b6dee2b14 | ||
|
|
55c7a4cf11 | ||
|
|
323154be33 | ||
|
|
7c4776251e | ||
|
|
1cfd255c91 | ||
|
|
3d81ec5b92 | ||
|
|
008bef521c | ||
|
|
fdc35a9d3e | ||
|
|
5886354dcc | ||
|
|
8b07c005fe | ||
|
|
40155f4089 | ||
|
|
92c7846372 | ||
|
|
4aac102f75 | ||
|
|
455b65dfab | ||
|
|
294d1e36c2 | ||
|
|
51b7be8d5f | ||
|
|
5f85f64f7e | ||
|
|
507efe7372 | ||
|
|
4513b1b641 | ||
|
|
be07ae9b10 | ||
|
|
b5ff559ff9 | ||
|
|
d475b2a3bf | ||
|
|
16e5b45f72 | ||
|
|
e8185aea87 | ||
|
|
99b00fd993 | ||
|
|
569e2d1257 | ||
|
|
847147908b | ||
|
|
4d3fa06fce | ||
|
|
f54be179aa | ||
|
|
902b30df19 | ||
|
|
6f46c3c3b0 | ||
|
|
cb4bb56bae | ||
|
|
b2aa38a980 | ||
|
|
468ab1c20d | ||
|
|
eb63bce040 | ||
|
|
c939cca1a3 | ||
|
|
843921f298 | ||
|
|
b999f66e34 | ||
|
|
1f18f50c4b | ||
|
|
4eadd11cd9 | ||
|
|
4cd1119df3 | ||
|
|
44e0c2bae4 | ||
|
|
5f855569c4 | ||
|
|
a787c2590e | ||
|
|
6452a139fe | ||
|
|
e9edfc4196 | ||
|
|
af4c6e348e | ||
|
|
98ecf60ba6 | ||
|
|
fe7573042f | ||
|
|
2afb29b480 | ||
|
|
be0bd11d69 | ||
|
|
83e4e03eeb | ||
|
|
3173622ef6 | ||
|
|
683cd7c948 | ||
|
|
6b0dc6eff1 | ||
|
|
76e8671c5a | ||
|
|
4f13dabe72 | ||
|
|
b0e659cfac | ||
|
|
8842987e5a | ||
|
|
5a8addc432 | ||
|
|
2f32016bb9 | ||
|
|
95b1752cc7 | ||
|
|
b2774f6e17 | ||
|
|
b0bbe49360 | ||
|
|
be0d851732 | ||
|
|
360928b7d0 | ||
|
|
6a14fe7576 | ||
|
|
0ff3687eab | ||
|
|
86f50b36e6 | ||
|
|
b0426a0f8c | ||
|
|
3aba132d61 | ||
|
|
9fc8dc5469 | ||
|
|
80ec8d4e3e | ||
|
|
6019cdd327 | ||
|
|
4d86e8df6b | ||
|
|
b59f92e75d | ||
|
|
0f957287df | ||
|
|
457f7b14ec | ||
|
|
d1bea969e8 | ||
|
|
8b77d64e99 | ||
|
|
cf2239b3b3 | ||
|
|
e2d03db4b3 | ||
|
|
07e3b31fae | ||
|
|
13be7da81f | ||
|
|
82d9185ae5 | ||
|
|
b09eb246e2 | ||
|
|
c7497f34fb | ||
|
|
ac53354b94 | ||
|
|
8d4193305b | ||
|
|
f47e203975 | ||
|
|
f3f56c2a87 | ||
|
|
0cfefe4b6d | ||
|
|
8cafe9e8bf | ||
|
|
c846a5f567 | ||
|
|
33f653adf3 | ||
|
|
de2a9e38f3 | ||
|
|
707b026d78 | ||
|
|
28ea0a0c6a | ||
|
|
ecf4d66090 | ||
|
|
879bde123b | ||
|
|
5a3d21c058 | ||
|
|
f9fb43e176 | ||
|
|
506a3d1f9c | ||
|
|
17e80c6bd0 | ||
|
|
f34a57202b | ||
|
|
f063e30fe9 | ||
|
|
0388ac4c99 | ||
|
|
7b3e11c544 | ||
|
|
34ccd24d0e | ||
|
|
ed49eb4a48 | ||
|
|
fa60b90950 | ||
|
|
a4d266b824 | ||
|
|
fd4592be3a | ||
|
|
2dd8cb3b95 | ||
|
|
be0477a8e9 | ||
|
|
bc46db60f1 | ||
|
|
d64c533a20 | ||
|
|
a520ae3628 | ||
|
|
f511b25a73 | ||
|
|
da92be4d68 | ||
|
|
15735e4f0e | ||
|
|
e608273a80 | ||
|
|
09ec8c8e89 | ||
|
|
2893a302a9 | ||
|
|
55eb14da20 | ||
|
|
89fb142b49 | ||
|
|
96208cb182 | ||
|
|
1afd7fa97c | ||
|
|
0df043f608 | ||
|
|
76b10e13c2 | ||
|
|
bcd3e36c46 | ||
|
|
3609b02305 | ||
|
|
8b6e517e33 | ||
|
|
ddc29125a1 | ||
|
|
fc979b93ee | ||
|
|
448155e9bb | ||
|
|
f756fb430e | ||
|
|
defe438d47 | ||
|
|
94c0a987c7 | ||
|
|
9f01a8acb3 | ||
|
|
259ac68aeb | ||
|
|
54298141d3 | ||
|
|
f6983d0d76 | ||
|
|
254f1c8019 | ||
|
|
fb7fbf28b3 | ||
|
|
ba494ee593 | ||
|
|
462319c3e9 | ||
|
|
34374c2d2c | ||
|
|
6f77f82bfc | ||
|
|
771e0c6c7a | ||
|
|
d8513b4abd | ||
|
|
c84029dbdc | ||
|
|
750487899a | ||
|
|
f2be92b94d | ||
|
|
c9a81b3026 | ||
|
|
d6f69ae547 | ||
|
|
349e6b2b0a | ||
|
|
36f7ed5040 | ||
|
|
4e64f671c9 | ||
|
|
1c4b688cb4 | ||
|
|
bd4acbc70e | ||
|
|
8957278869 | ||
|
|
15297d962c | ||
|
|
c9c63b0180 | ||
|
|
b9b9f853b5 | ||
|
|
865886553d | ||
|
|
c753e71e0a | ||
|
|
cf8bac4456 | ||
|
|
01e438f288 | ||
|
|
5effa35610 | ||
|
|
14e961921a | ||
|
|
b83294fe30 | ||
|
|
06f5d12f51 | ||
|
|
f0ca9ccaef | ||
|
|
16602b5cd5 | ||
|
|
690a2b1fa2 | ||
|
|
bebbb11d13 | ||
|
|
1c5be3d7f0 | ||
|
|
cde8ad1a28 | ||
|
|
16caa9a43d | ||
|
|
9aaa7be8d4 | ||
|
|
2a1393a4a8 | ||
|
|
42ce91cc35 | ||
|
|
b00f586a81 | ||
|
|
691edc997a | ||
|
|
d9fcd8ec4c | ||
|
|
cbfc8baddb | ||
|
|
d4a4370050 | ||
|
|
590bdcc686 | ||
|
|
77bf69dced | ||
|
|
9e72d496d4 | ||
|
|
562fd0d883 | ||
|
|
f642ebc1e2 | ||
|
|
693b71fa71 | ||
|
|
6d03125ccf | ||
|
|
a90081576c | ||
|
|
0989790b87 | ||
|
|
4a23b12a03 | ||
|
|
80bd7b41b3 | ||
|
|
fb0bc2b273 | ||
|
|
0042fb5fd1 | ||
|
|
1716003376 | ||
|
|
280b1f1ad1 | ||
|
|
4f2011d981 | ||
|
|
f6663338cb | ||
|
|
b74d1d260f | ||
|
|
d0a4b7d1a2 | ||
|
|
1250f12613 | ||
|
|
11e7982a7c | ||
|
|
bff1ce4e6a | ||
|
|
a46149c672 | ||
|
|
bac6740746 | ||
|
|
38c654819c | ||
|
|
0fe73d6c36 | ||
|
|
e0fc7961c4 | ||
|
|
8e55e6de45 | ||
|
|
ceea4bf047 | ||
|
|
7a2b54509c | ||
|
|
cba11f57ce | ||
|
|
62352b8138 | ||
|
|
5c3598307e | ||
|
|
c8d133e4b6 | ||
|
|
841072ef65 | ||
|
|
0e716d9207 | ||
|
|
f5b798f50c | ||
|
|
03c075e572 | ||
|
|
f8c03d4dbf | ||
|
|
b2e50bcd0e | ||
|
|
50bba6852d | ||
|
|
6017a55143 | ||
|
|
5e3de8e609 | ||
|
|
d31fed73e2 | ||
|
|
58f4698f67 | ||
|
|
d12eef1501 | ||
|
|
d48e78f0cf | ||
|
|
2097a17c57 | ||
|
|
e91718e80d | ||
|
|
6cd13f70bb | ||
|
|
14aaf883d9 | ||
|
|
927f2e5dea | ||
|
|
3bd548192a | ||
|
|
ca2015a617 | ||
|
|
c8d710dc5f | ||
|
|
199772e534 | ||
|
|
6c0a1e2f8c | ||
|
|
1c3e9a7c67 | ||
|
|
7efd0e777e | ||
|
|
ec5a992cde | ||
|
|
aa224e9719 | ||
|
|
9d6253cfd3 | ||
|
|
f8571ce822 | ||
|
|
924e5eda2c | ||
|
|
8b5dd34091 | ||
|
|
c1d1b0114e | ||
|
|
66816c53be | ||
|
|
1b0fe79f3e | ||
|
|
d11c70b2c2 | ||
|
|
021e5043e5 | ||
|
|
c4f8efab34 | ||
|
|
07b635cceb | ||
|
|
9d23f422a3 | ||
|
|
b73ac02735 | ||
|
|
297c67fcd8 | ||
|
|
ee724df75d | ||
|
|
cba3f1c739 | ||
|
|
a44f219c00 | ||
|
|
5ecf1141a5 | ||
|
|
75b7606881 | ||
|
|
fd9e244370 | ||
|
|
7eb9680ae1 | ||
|
|
0e7a32b55e | ||
|
|
375a64e349 | ||
|
|
fdea4fff8f | ||
|
|
ced3d9158a | ||
|
|
6e661d458f | ||
|
|
d2ab55eb5b | ||
|
|
6835f572a9 | ||
|
|
7f6e957864 | ||
|
|
55707a36cc | ||
|
|
a9661e45ac | ||
|
|
b948ee27b0 | ||
|
|
a23a6e85d8 | ||
|
|
f1112985e8 | ||
|
|
538860a3ce | ||
|
|
a5a3178728 | ||
|
|
b5071dc2f6 | ||
|
|
fc1d88f02f | ||
|
|
aab3560b65 | ||
|
|
eca441b2b4 | ||
|
|
5cc99c6cf5 | ||
|
|
7cb472bd0d | ||
|
|
398e99fe5e | ||
|
|
a5ff18bf90 | ||
|
|
22a10c89d7 | ||
|
|
e67ddd19af | ||
|
|
c7ada16d39 | ||
|
|
cd1922cde0 | ||
|
|
eaa4820471 | ||
|
|
04f545a0d5 | ||
|
|
df8ef5f31a | ||
|
|
762a44de59 | ||
|
|
854dfcd859 | ||
|
|
7b1d946051 | ||
|
|
42b91f28a6 | ||
|
|
d7003c4d7d | ||
|
|
29be3f6411 | ||
|
|
70857a4a00 | ||
|
|
2580ab4ed7 | ||
|
|
9cd86abb51 | ||
|
|
387b844ffd | ||
|
|
0d263d2acf | ||
|
|
e3ba6a5f83 | ||
|
|
c2fd5d79ff | ||
|
|
90c1946e7a | ||
|
|
6e6ba36d98 | ||
|
|
161e0a617d | ||
|
|
370bf1d708 | ||
|
|
7e6a01bdd4 | ||
|
|
8892ce7714 | ||
|
|
340daf6a06 | ||
|
|
327f3c040e | ||
|
|
44724beead | ||
|
|
76ed5a42ea | ||
|
|
a30bdb55d1 | ||
|
|
7ae6a4b659 | ||
|
|
528b1f9a9f | ||
|
|
0e7bda79a1 | ||
|
|
a356e488ad | ||
|
|
7c206db928 | ||
|
|
0518a3e19e | ||
|
|
d183545d45 | ||
|
|
d1d4382dcb | ||
|
|
0b33bed969 | ||
|
|
59deb33cbe | ||
|
|
406d4af050 | ||
|
|
a0490e02c7 | ||
|
|
11da66f8b1 | ||
|
|
e633248921 | ||
|
|
b36f35cda9 | ||
|
|
0436369fcc | ||
|
|
0535c2d67c | ||
|
|
abac8e0e08 | ||
|
|
95791bf941 | ||
|
|
d2aea03829 | ||
|
|
3b3b69ab25 | ||
|
|
7be6b27aaf | ||
|
|
f3f620e1e0 | ||
|
|
052ecf91d2 | ||
|
|
7b8c8c4d79 | ||
|
|
7eb0488280 | ||
|
|
ac171925ab | ||
|
|
015364baf3 | ||
|
|
0f777aeb50 | ||
|
|
eef1827f89 | ||
|
|
90b70a6a6b | ||
|
|
8abffa4a73 | ||
|
|
66d884f067 | ||
|
|
29edebe95c | ||
|
|
a48fb0400c | ||
|
|
b3012c698a | ||
|
|
d241b80409 | ||
|
|
2841d6ca9f | ||
|
|
cf1b08cdd7 | ||
|
|
339da43d6c | ||
|
|
115e480924 | ||
|
|
e42d84be33 | ||
|
|
2866441a90 | ||
|
|
cd028c8e66 | ||
|
|
ce21d108bd | ||
|
|
6d3d579367 | ||
|
|
2d7153e8f9 | ||
|
|
8a531c22b0 | ||
|
|
96fc4b7250 | ||
|
|
8a6c6bbf21 | ||
|
|
50cc4f7b3d | ||
|
|
1f61d8b5b1 | ||
|
|
9024b84b7c | ||
|
|
764fe518da | ||
|
|
7241a4c7fd | ||
|
|
3b77f01702 | ||
|
|
ce00c64df9 | ||
|
|
91a6bf80f8 | ||
|
|
c9cf29cca2 | ||
|
|
687721a7dc | ||
|
|
043fd64689 | ||
|
|
a09e4d24ad | ||
|
|
abfb989fe0 | ||
|
|
977f32e852 | ||
|
|
d84ba7ea23 | ||
|
|
a50f71868e | ||
|
|
77a27a5066 | ||
|
|
9494e99b40 | ||
|
|
1cf8f57b43 | ||
|
|
619b94667c | ||
|
|
fd2309aa29 | ||
|
|
2f1dffa88e | ||
|
|
e2eabed110 | ||
|
|
343e5cf194 | ||
|
|
3ead9f3798 | ||
|
|
7a9d59c148 | ||
|
|
447280ca7b | ||
|
|
1bea384fd5 | ||
|
|
95fe635d90 | ||
|
|
7be1d8764d | ||
|
|
fb8d9ddb9d | ||
|
|
c43a55407d | ||
|
|
fa6bb85ae0 | ||
|
|
5dcf70a1c5 | ||
|
|
cd91fd7c32 | ||
|
|
82741e9c89 | ||
|
|
2d5a799d27 | ||
|
|
7178c711dd | ||
|
|
65cad34b10 | ||
|
|
5111672b8e | ||
|
|
410e444b71 | ||
|
|
a91be10833 | ||
|
|
a7c682fb6f | ||
|
|
b4322e1de8 | ||
|
|
a5362db460 | ||
|
|
d86689e1d9 | ||
|
|
53a224bb0a | ||
|
|
8e3231642b | ||
|
|
c7f267397e | ||
|
|
470990fee0 | ||
|
|
030a3f9527 | ||
|
|
14f47acf23 | ||
|
|
13b7896022 | ||
|
|
de51e830a6 | ||
|
|
a5510df337 | ||
|
|
d1e1aeef8f | ||
|
|
723463282f | ||
|
|
797d24bee9 | ||
|
|
ddacb8f27b | ||
|
|
a09220d823 | ||
|
|
01f2f18f3c | ||
|
|
f8aab6174c | ||
|
|
ddb6b965da | ||
|
|
e8d93e342b | ||
|
|
992bba11d5 | ||
|
|
5fc3a5fe49 | ||
|
|
c93233dbfd | ||
|
|
46838817c7 | ||
|
|
0382950c6c | ||
|
|
5efa13ca7e | ||
|
|
8927c2786d | ||
|
|
9a3a99748b | ||
|
|
a77889f560 | ||
|
|
c74e148776 | ||
|
|
982c42cb20 | ||
|
|
7e965dcc38 | ||
|
|
8a12085293 | ||
|
|
c09ec5d2a0 | ||
|
|
b0513819e0 | ||
|
|
b359642ffd | ||
|
|
8c9336ce2b | ||
|
|
b5419b81ac | ||
|
|
e46a059ebf | ||
|
|
e55fca760b | ||
|
|
fce0ba5fcd | ||
|
|
d7f200779c | ||
|
|
3009244da4 | ||
|
|
92d81ba622 | ||
|
|
7e2c6f7eb0 | ||
|
|
4fdf91742e | ||
|
|
7ce79a5bfd | ||
|
|
9ed03faac4 | ||
|
|
08bef7be1e | ||
|
|
e09ea622bb | ||
|
|
46d889f33e | ||
|
|
4da0ddc47e | ||
|
|
1c4575ebc3 | ||
|
|
7cbdb975c2 | ||
|
|
028bac0670 | ||
|
|
3d9243f1b6 | ||
|
|
6b5c1d940b | ||
|
|
487dac87e3 | ||
|
|
15658d0cbf | ||
|
|
ba4477d649 | ||
|
|
56431240ae | ||
|
|
4d4a535dcf | ||
|
|
0930251df8 | ||
|
|
6c21b860ba | ||
|
|
955376fde3 | ||
|
|
894172f207 | ||
|
|
c5f0b9bd86 | ||
|
|
189ae368d9 | ||
|
|
dd36fce023 | ||
|
|
fda29b6db0 | ||
|
|
b83d09f552 | ||
|
|
27da939490 | ||
|
|
647c70f765 | ||
|
|
eb33348879 | ||
|
|
085ccc542a | ||
|
|
df24f29ae6 | ||
|
|
12f1b3e79f | ||
|
|
dea4a18404 | ||
|
|
397a8e747d | ||
|
|
558c94efc0 | ||
|
|
6f719f063c | ||
|
|
3e68273326 | ||
|
|
a0a17fcb75 | ||
|
|
d8ac1ea77e | ||
|
|
dcca7b13e9 | ||
|
|
6db14dbc51 | ||
|
|
deffd89af3 | ||
|
|
ff626ba5f4 | ||
|
|
814972e1ab | ||
|
|
2ec52dc3a1 | ||
|
|
39dd6f4549 | ||
|
|
f5ad068b01 | ||
|
|
f41231d62a | ||
|
|
6af080acaf | ||
|
|
5727e4dab8 | ||
|
|
d4b47504de | ||
|
|
c358651218 | ||
|
|
2af071c0bc | ||
|
|
18c4f522f4 | ||
|
|
ab6577a46e | ||
|
|
e6479c76ca | ||
|
|
4ee356686f | ||
|
|
a4a442cccf | ||
|
|
4a56d9a2ed | ||
|
|
89e674744d | ||
|
|
f75faa16af | ||
|
|
7b06ac7593 | ||
|
|
3b3ecce141 | ||
|
|
00f3a236e0 | ||
|
|
308505b838 | ||
|
|
b00676bb6f | ||
|
|
971a7c5ff7 | ||
|
|
c388d8b40c | ||
|
|
c4afc40a9b | ||
|
|
0bcb17a777 | ||
|
|
a935132099 | ||
|
|
b6e69d284b | ||
|
|
8e94fadd0b | ||
|
|
630f9fc69d | ||
|
|
2d2e0479eb | ||
|
|
fce3821111 | ||
|
|
12e9f627f9 | ||
|
|
3ba1e406c2 | ||
|
|
546b1b4384 | ||
|
|
8bbfd94e36 | ||
|
|
e1ce131d4d | ||
|
|
b943b7d2c7 | ||
|
|
496f2b148b | ||
|
|
bd227733b9 | ||
|
|
9250a30692 | ||
|
|
4afa9f033d | ||
|
|
16ba70746b | ||
|
|
da12bfca51 | ||
|
|
e5676b8328 | ||
|
|
a141effa7b | ||
|
|
a529261891 | ||
|
|
9cabf6bb80 | ||
|
|
ba1cb9a553 | ||
|
|
b5450d6349 | ||
|
|
6bcc4475fc | ||
|
|
fa9d77dcd2 | ||
|
|
8acb953880 | ||
|
|
e14f14d36e | ||
|
|
79c6c4e828 | ||
|
|
76c3ff6937 | ||
|
|
647f360e2e | ||
|
|
cdcd5dc865 | ||
|
|
c9011ec460 | ||
|
|
d2cc3d8a4e | ||
|
|
f8cee9d081 | ||
|
|
558ff0f0c1 | ||
|
|
94d1f4b0f3 | ||
|
|
4ba5e63bfd | ||
|
|
9330a85e04 | ||
|
|
0dd5b94aeb | ||
|
|
300b9f0b70 | ||
|
|
5f8e9a477a | ||
|
|
3143a332e8 | ||
|
|
5219d3dd35 | ||
|
|
476830fd5b | ||
|
|
86f6e8669c | ||
|
|
f74fa33bce | ||
|
|
731f431497 | ||
|
|
4e6c12f308 | ||
|
|
997d1aac7c | ||
|
|
6eebcf3459 | ||
|
|
cd6bd5ffda | ||
|
|
f8dd55bb5b | ||
|
|
b7e46a9bce | ||
|
|
6cc0068430 | ||
|
|
7ba08a4d73 | ||
|
|
dbb7654dc1 | ||
|
|
de2d97cd79 | ||
|
|
10378fb5f4 | ||
|
|
b48310627d | ||
|
|
5a49001bde | ||
|
|
0f817d3b27 | ||
|
|
21e0c1d23a | ||
|
|
77a926e676 | ||
|
|
e03c5b59f0 | ||
|
|
b362ccab5c | ||
|
|
66f96fe2d5 | ||
|
|
8b8e5bed23 | ||
|
|
09599b52d4 | ||
|
|
2514fa79ac | ||
|
|
4563da1d7c | ||
|
|
f0ef019da2 | ||
|
|
e970f63dc0 | ||
|
|
7c5718be27 | ||
|
|
3a98f9cf20 | ||
|
|
f04665a653 | ||
|
|
14c67a7004 | ||
|
|
f9b6c0ba4c | ||
|
|
a029788b0e | ||
|
|
d628885e9a | ||
|
|
ab0f880433 | ||
|
|
ea38f02049 | ||
|
|
5e44c144e6 | ||
|
|
53e5161231 | ||
|
|
687403fb24 | ||
|
|
972b0dc350 | ||
|
|
315cd871c4 | ||
|
|
5693a30813 | ||
|
|
01757858fe | ||
|
|
db7b5e0d76 | ||
|
|
65370f9bbc | ||
|
|
4ca026560a | ||
|
|
b62a4a1c0e | ||
|
|
ce876d8316 | ||
|
|
f861b1d433 | ||
|
|
fd361a67ef | ||
|
|
52f71f8181 | ||
|
|
031ea2d14a | ||
|
|
d49135e7ea | ||
|
|
147cca8f53 | ||
|
|
7bb9d84e35 | ||
|
|
03da57fe14 | ||
|
|
e704741bf3 | ||
|
|
e0520c65d5 | ||
|
|
3a325c60a3 | ||
|
|
86a2f966d0 | ||
|
|
a4cc3c8041 | ||
|
|
19f65ddbab | ||
|
|
63aff3001e | ||
|
|
779c51c644 | ||
|
|
758954e0d8 | ||
|
|
d099f0ed6c | ||
|
|
358d352aa2 | ||
|
|
13dc3ce9ab | ||
|
|
daddd9a950 | ||
|
|
214368ffee | ||
|
|
47739161c6 | ||
|
|
8764e86339 | ||
|
|
ded18639d7 | ||
|
|
4cfeb00be9 | ||
|
|
84917787b5 | ||
|
|
ff49a94439 | ||
|
|
e91fb53b38 | ||
|
|
c0482547b3 | ||
|
|
765e9ba911 | ||
|
|
b263f21246 | ||
|
|
6ecbc2bb62 | ||
|
|
3c6c139a07 | ||
|
|
f3a3903260 | ||
|
|
5a7652c3e5 | ||
|
|
be2c4d9bd9 | ||
|
|
dcfe8df148 | ||
|
|
3343220327 | ||
|
|
e547c45f1c | ||
|
|
2b4ffc659e | ||
|
|
856c6dfb09 | ||
|
|
701134320a | ||
|
|
f4d456408d | ||
|
|
5599c7331b | ||
|
|
385b348666 | ||
|
|
2dac2667d1 | ||
|
|
847865d0f9 | ||
|
|
4dce704145 | ||
|
|
9587429fa0 | ||
|
|
98e143f118 | ||
|
|
fc92396976 | ||
|
|
6311681236 | ||
|
|
b45e874d7c | ||
|
|
c53a5308a5 | ||
|
|
f1f7598ce9 | ||
|
|
9dabfce1a8 | ||
|
|
0a6028757a | ||
|
|
e9add063b5 | ||
|
|
519531e97e | ||
|
|
ac20719d99 | ||
|
|
a51f767645 | ||
|
|
5a42c8f07f | ||
|
|
a9c6edcde7 | ||
|
|
0d5096fbd6 | ||
|
|
3847d15d6b | ||
|
|
3ef477c69f | ||
|
|
24e20db4aa | ||
|
|
0f78819c8c | ||
|
|
9f9ab1dc66 | ||
|
|
d162584b11 | ||
|
|
d8ba0dc977 | ||
|
|
b217ca63b1 | ||
|
|
30ea570f0f | ||
|
|
cb2182676b | ||
|
|
73c92dfa0c | ||
|
|
717cc85895 | ||
|
|
e933f91f50 | ||
|
|
cbb6744827 | ||
|
|
ec492c8a5a | ||
|
|
3323314fc1 | ||
|
|
46ab9bbd7f | ||
|
|
0ebc965b9c | ||
|
|
ba168244a1 | ||
|
|
d0b039d4a3 | ||
|
|
9f10e9293b | ||
|
|
ef643cc7bd | ||
|
|
4b64e0cbdb | ||
|
|
5edce5685f | ||
|
|
8f4077ca69 | ||
|
|
0ecfd920e5 | ||
|
|
4b5cce664c | ||
|
|
889f39c70f | ||
|
|
0b30fc903f | ||
|
|
5a21cadbeb | ||
|
|
75cb3771b4 | ||
|
|
7988163c3b | ||
|
|
4082fea81c | ||
|
|
0be085d34a | ||
|
|
7963ddeb44 | ||
|
|
eedab5241e | ||
|
|
e02614417d | ||
|
|
5dc52b919b | ||
|
|
1fb83a3bc2 | ||
|
|
f0170ebb97 | ||
|
|
8d65fdb62e | ||
|
|
9bd1e2b54a | ||
|
|
ad0d2579cf | ||
|
|
25f7117f0e | ||
|
|
5b7f36e857 | ||
|
|
a4339ea3ba | ||
|
|
e8b0dd57c0 | ||
|
|
2f3af3dc36 | ||
|
|
b77b58a398 | ||
|
|
f6dfbeed3c | ||
|
|
926725b3d7 | ||
|
|
e796666d34 | ||
|
|
2218c296b4 | ||
|
|
cd30f03ac5 | ||
|
|
20b82b514d | ||
|
|
560b34f2b0 | ||
|
|
fc0503a25c | ||
|
|
e9c80e04c1 | ||
|
|
f0f4b8f126 | ||
|
|
cdd1acd788 | ||
|
|
128e1d101b | ||
|
|
ed496b3d42 | ||
|
|
88c21c47a3 | ||
|
|
4a253652ee | ||
|
|
4fcdd66fff | ||
|
|
102302b05b | ||
|
|
7af31968dd | ||
|
|
8a1956f3ea | ||
|
|
e3bc1f4955 | ||
|
|
57d7ee3a91 | ||
|
|
41965a84c4 | ||
|
|
ec9cc70f72 | ||
|
|
d1671f4f1a | ||
|
|
26e18383ef | ||
|
|
f586d97191 | ||
|
|
a61e51220f | ||
|
|
34b1008c93 | ||
|
|
c5d5f5bd0f | ||
|
|
8bd7ca9996 | ||
|
|
31ed9a2131 | ||
|
|
6efef384c6 | ||
|
|
4b27bab993 | ||
|
|
89bb96e51d | ||
|
|
b9e87d07cb | ||
|
|
07f3e4f3f9 | ||
|
|
b5c54c914f | ||
|
|
a25f9adc77 | ||
|
|
60aeb18750 | ||
|
|
fdeaf55bf9 | ||
|
|
0f7fa1b190 | ||
|
|
2911575c6e | ||
|
|
afa23c46d9 | ||
|
|
629b640bbc | ||
|
|
7b6b246fd3 | ||
|
|
44314cf64d | ||
|
|
f1982acc12 | ||
|
|
2df9ec01d5 | ||
|
|
5b63a39241 | ||
|
|
d1cf23ac86 | ||
|
|
16bc45ba95 | ||
|
|
85c9ba2342 | ||
|
|
5fad2c93bc | ||
|
|
d0f1d924ad | ||
|
|
9b69a63874 | ||
|
|
dd274b1c1c | ||
|
|
9c75461bef | ||
|
|
da15c61608 | ||
|
|
534e5fabad | ||
|
|
33446493f4 | ||
|
|
96180cac04 | ||
|
|
d24d1d7daf | ||
|
|
0467ea6862 | ||
|
|
e0ffd129c1 | ||
|
|
26bda7ef2b | ||
|
|
b0513fd2bb | ||
|
|
c10e3f0cff | ||
|
|
d519f0831c | ||
|
|
b814081136 | ||
|
|
b9ef52b078 | ||
|
|
29b490a458 | ||
|
|
a9bc1af984 | ||
|
|
96e16bddb4 | ||
|
|
3f9b187bae | ||
|
|
fb65e65e28 | ||
|
|
0e0a105364 | ||
|
|
c944f81703 | ||
|
|
8ff8a829b0 | ||
|
|
3f9562a669 | ||
|
|
e6e29bc4c9 | ||
|
|
4eeb750d20 | ||
|
|
ed77017b59 | ||
|
|
c8919dde09 | ||
|
|
5fdeb58ccd | ||
|
|
c557f921dc | ||
|
|
abf840e4f7 | ||
|
|
27f3b65f49 | ||
|
|
ea131a0644 | ||
|
|
9f944107a9 | ||
|
|
2927791d77 | ||
|
|
2016265dfb | ||
|
|
f3efeaad54 | ||
|
|
d80b0eeee5 | ||
|
|
372566bd99 | ||
|
|
ebd14bfce9 | ||
|
|
ec2f7e568e | ||
|
|
13af145159 | ||
|
|
c051e521a7 | ||
|
|
45473632c5 | ||
|
|
b39d4768e6 | ||
|
|
76c15d790e | ||
|
|
6699cb8491 | ||
|
|
579a759071 | ||
|
|
da317b94d9 | ||
|
|
c2c76a4d90 | ||
|
|
7f5fd314c0 | ||
|
|
d6019e1654 | ||
|
|
30b9c2348d | ||
|
|
039081b809 | ||
|
|
0c2adb0a9b | ||
|
|
b4f0abd246 | ||
|
|
7e1e3334f6 | ||
|
|
fa104be35e | ||
|
|
37de2b5c1e | ||
|
|
2d752737c5 | ||
|
|
78038e095f | ||
|
|
a69c0a1be5 | ||
|
|
b1de640f03 | ||
|
|
61ba602af5 | ||
|
|
c45a48c186 | ||
|
|
6f6a613032 | ||
|
|
99fb221280 | ||
|
|
524b00c0da | ||
|
|
6b2cae0c16 | ||
|
|
a5bb5bca52 | ||
|
|
87954638a6 | ||
|
|
667053a2f3 | ||
|
|
7f893258f6 | ||
|
|
6bcb68da41 | ||
|
|
b783858654 | ||
|
|
5f487e0317 | ||
|
|
066caf0551 | ||
|
|
70d416ec35 | ||
|
|
9725bda766 | ||
|
|
3cd8547a20 | ||
|
|
7eef2b0cd7 | ||
|
|
79b9209883 | ||
|
|
e0202d946d | ||
|
|
94c2f77a62 | ||
|
|
9600602267 | ||
|
|
40088d8b81 | ||
|
|
7d3ba88a98 | ||
|
|
cdf84b719c | ||
|
|
92acab0b6a | ||
|
|
4dc836773e | ||
|
|
ca567a03ad | ||
|
|
8e52a9063a | ||
|
|
b3ef742cbb | ||
|
|
612f4e2384 | ||
|
|
29f41e8a80 | ||
|
|
a2ea9f3ecc | ||
|
|
deda5ea788 | ||
|
|
c655f40ed2 | ||
|
|
9103197591 | ||
|
|
785da0e610 | ||
|
|
cbf8123512 | ||
|
|
378341e192 | ||
|
|
d89cd382da | ||
|
|
5628ec6673 | ||
|
|
b0d27cb902 | ||
|
|
edf92f1c41 | ||
|
|
7a1a12232a | ||
|
|
72a158703b | ||
|
|
ce4555967e | ||
|
|
52073b7675 | ||
|
|
a6e7d1c0e3 | ||
|
|
5e3ff62c34 | ||
|
|
226751ae4a | ||
|
|
1769dfab06 | ||
|
|
67c408cee9 | ||
|
|
5eda213ebe | ||
|
|
a6a48e87bc | ||
|
|
36086186a9 | ||
|
|
cda01d55ba | ||
|
|
478b50cf67 | ||
|
|
d2625fd657 | ||
|
|
b98af49d97 | ||
|
|
50f307a98f | ||
|
|
4249d4ba86 | ||
|
|
4e48c77572 | ||
|
|
dece3209f2 | ||
|
|
c3eb33763b | ||
|
|
902efde1cc | ||
|
|
36019f70e8 | ||
|
|
d5605699a1 | ||
|
|
a0aaa5660a | ||
|
|
fcb2bcfe65 | ||
|
|
eeb15452a0 | ||
|
|
b85f8afe37 | ||
|
|
14536c8c9c | ||
|
|
42082eda6f | ||
|
|
5ef24a806d | ||
|
|
b62f4daac0 | ||
|
|
0c75eeacd3 | ||
|
|
5ae8d6bcba | ||
|
|
dfcb42c68e | ||
|
|
bbc098ffb3 | ||
|
|
75787fd833 | ||
|
|
bd59f2b91d | ||
|
|
dc1ce3bc64 | ||
|
|
3909087801 | ||
|
|
d3cc91eee2 | ||
|
|
c9577ab5ea | ||
|
|
3f6b6f0b8c | ||
|
|
e61f5d55bc | ||
|
|
a59f436295 | ||
|
|
fd8ad019e1 | ||
|
|
006784378d | ||
|
|
0b2bde70dd | ||
|
|
a898936218 | ||
|
|
a108f841ba | ||
|
|
6f017a8f9d | ||
|
|
584ac22110 | ||
|
|
527c898ce8 | ||
|
|
5cdc25a754 | ||
|
|
a0957d5505 | ||
|
|
5711885a2b | ||
|
|
41b920ef01 | ||
|
|
88e20b8584 | ||
|
|
25af7a5dbc | ||
|
|
6af440ced4 | ||
|
|
17c2764d2e | ||
|
|
ff7b6ce9db | ||
|
|
97cf1f6c28 | ||
|
|
415ece7301 | ||
|
|
8d6a75dc3a | ||
|
|
190c615d43 | ||
|
|
5c57c69f9e | ||
|
|
4b26645c1a | ||
|
|
c051cbc83f | ||
|
|
8bf0eee8d9 | ||
|
|
82fe001b8d | ||
|
|
852f837f5e | ||
|
|
241fba4ea9 | ||
|
|
f5b132d652 | ||
|
|
ca48ace5c5 | ||
|
|
0b4bb91db6 | ||
|
|
26e43b48a3 | ||
|
|
cbce8c4644 | ||
|
|
3d7bf77f61 | ||
|
|
e0f7cfda68 | ||
|
|
c256e69d3f | ||
|
|
b74ce8d948 | ||
|
|
a9d14832fd | ||
|
|
42386fdb62 | ||
|
|
5382adbf2c | ||
|
|
ac9ce2cf03 | ||
|
|
5c84d2f560 | ||
|
|
4bf4a6501c | ||
|
|
32b18e0338 | ||
|
|
02498cc885 | ||
|
|
0574cadf85 | ||
|
|
e365352d6a | ||
|
|
211a14f627 | ||
|
|
810639536c | ||
|
|
e423c360fd | ||
|
|
9cd50f738f | ||
|
|
8ee3c7e676 | ||
|
|
4ddacd9921 | ||
|
|
02450ec69d | ||
|
|
8a99cb29d1 | ||
|
|
64a786a292 | ||
|
|
a54a61e7a9 | ||
|
|
adb46dbc6d | ||
|
|
7e25d81870 | ||
|
|
aafbe1ccd2 | ||
|
|
271fef0ef3 | ||
|
|
965e06da3c | ||
|
|
a398f821fa | ||
|
|
6d84daa5d6 | ||
|
|
3b848d3401 | ||
|
|
42b9a4177b | ||
|
|
cd8d7335af | ||
|
|
c7f690c243 | ||
|
|
32213d8d77 | ||
|
|
b42759158d | ||
|
|
1bc0b68d7b | ||
|
|
2f58cda4ce | ||
|
|
c71fdaed58 | ||
|
|
96a4c31be3 | ||
|
|
2b0180c37f | ||
|
|
7753a3a684 | ||
|
|
5dcd2deb3e | ||
|
|
b25b8417a7 | ||
|
|
b69437e1e5 | ||
|
|
36df342f9b | ||
|
|
4df2280b4f | ||
|
|
504bbcf3cd | ||
|
|
988d11b641 | ||
|
|
8a97a33063 | ||
|
|
22de0e6583 | ||
|
|
cd54249c21 | ||
|
|
92584bd3d5 | ||
|
|
342ec250c3 | ||
|
|
c6d8adb8a4 | ||
|
|
9575d1a91a | ||
|
|
75fe422323 | ||
|
|
412834dcf0 | ||
|
|
db05b447a5 | ||
|
|
3bdd80521a | ||
|
|
4544f0a691 | ||
|
|
c56f5b8edf | ||
|
|
c6913eeb76 | ||
|
|
04638f2fc3 | ||
|
|
045b2809f8 | ||
|
|
29d422e2a0 | ||
|
|
a7f5cd7fd5 | ||
|
|
afdf366921 | ||
|
|
fed45e1879 | ||
|
|
d07201a2bb | ||
|
|
bc9e878210 | ||
|
|
9fc3ebda13 | ||
|
|
1a70fe953a | ||
|
|
ea4507ee1c | ||
|
|
4b9af0a101 | ||
|
|
e92ce4e35b | ||
|
|
3426b8ed3f | ||
|
|
f5cd3db541 | ||
|
|
15e5f592c1 | ||
|
|
509a83dd36 | ||
|
|
8c7f5f3bec | ||
|
|
188f6443ae | ||
|
|
3675fb882c | ||
|
|
3b4d86bff5 | ||
|
|
282a480a35 | ||
|
|
1e2d4cb0e1 | ||
|
|
99cda4376e | ||
|
|
73325b221c | ||
|
|
a42abde699 | ||
|
|
64f7e2c4c0 | ||
|
|
7f97d57236 | ||
|
|
c9a8e3d1c7 | ||
|
|
3fce3f6b2b | ||
|
|
0ded2a0689 | ||
|
|
c5d975a743 | ||
|
|
d8f3ed2306 | ||
|
|
4e049c5259 | ||
|
|
b4a9d5bfe8 | ||
|
|
3d1160d58b | ||
|
|
4221c0dd30 | ||
|
|
fbbaaccaca | ||
|
|
04fac50045 | ||
|
|
94782e0e9c | ||
|
|
c3b344e36a | ||
|
|
9cf0f18754 | ||
|
|
cfd298b7ae | ||
|
|
874a18cfad | ||
|
|
6c79faaa9d | ||
|
|
1da5d3029e | ||
|
|
1bc4d009e1 | ||
|
|
fbf7c44bbf | ||
|
|
2f0275a4c3 | ||
|
|
eb7ece1381 | ||
|
|
5c60046553 | ||
|
|
cbd64894ec | ||
|
|
6de2649a6b | ||
|
|
173e72e64c | ||
|
|
80ccc66d7e | ||
|
|
5de18d5d0d | ||
|
|
e24fd37cda | ||
|
|
890f2f8b92 | ||
|
|
ca303d333b | ||
|
|
15652f9825 | ||
|
|
95248de327 | ||
|
|
28997596f2 | ||
|
|
bcb157f07f | ||
|
|
e942c15451 | ||
|
|
897dfd4eaa | ||
|
|
c621fe6685 | ||
|
|
feb4c32786 | ||
|
|
63d86d067a | ||
|
|
35ced1f705 | ||
|
|
71a16946dc | ||
|
|
5702e965d7 | ||
|
|
654d227a86 | ||
|
|
2f297fce73 | ||
|
|
656829b78f | ||
|
|
95dd301861 | ||
|
|
4e2322892b | ||
|
|
7b0d591dc3 | ||
|
|
7bbb8c5620 | ||
|
|
d0aeeee176 | ||
|
|
afc1b1eab7 | ||
|
|
5108690f19 | ||
|
|
3c76bcded0 | ||
|
|
ea5003bd1e | ||
|
|
45ba475b81 | ||
|
|
7067cbc8b5 | ||
|
|
f990fae812 | ||
|
|
a32d9eaf07 | ||
|
|
f953c2d039 | ||
|
|
342dbbbe4e | ||
|
|
7c43601d44 | ||
|
|
1aaa04191f | ||
|
|
e46a281de5 | ||
|
|
e1f1d28f34 | ||
|
|
388aff08dc | ||
|
|
3646578ae7 | ||
|
|
4365e4aad9 | ||
|
|
0850f11855 | ||
|
|
975dfb1c6c | ||
|
|
5cc2707742 | ||
|
|
47edeb9f59 | ||
|
|
35c77b7303 | ||
|
|
273a808180 | ||
|
|
7c9e81be40 | ||
|
|
c4558efbf3 | ||
|
|
750398acd8 | ||
|
|
2527b94fec | ||
|
|
d980abb22e | ||
|
|
b7c37f2fc0 | ||
|
|
7e47a69544 | ||
|
|
9fa24352ce | ||
|
|
3caeef94bd | ||
|
|
f93a41877d | ||
|
|
c98a45452b | ||
|
|
0e4f7045ea | ||
|
|
2141e6f30b | ||
|
|
dd7e60bd70 | ||
|
|
32620fe9d1 | ||
|
|
1041ab696e | ||
|
|
9970308c88 | ||
|
|
2aec073a52 | ||
|
|
b714a1fe09 | ||
|
|
bbb4ee8574 | ||
|
|
4af91ec072 | ||
|
|
6b2a843970 | ||
|
|
6b1f7beeee | ||
|
|
8109e8305b | ||
|
|
c4e6fb1524 | ||
|
|
a693ead6dc | ||
|
|
e33ac0e71d | ||
|
|
93cab6b319 | ||
|
|
2acc020b77 | ||
|
|
7c770d572a | ||
|
|
ea34a58385 | ||
|
|
4568182a8b | ||
|
|
e511c64a24 | ||
|
|
c38b76bf69 | ||
|
|
1703627ba8 | ||
|
|
498e89fe9d | ||
|
|
46bf83f07a | ||
|
|
7c47f0d946 | ||
|
|
058843bd0f | ||
|
|
543fd85460 | ||
|
|
1598af9ac9 | ||
|
|
06b3b640eb | ||
|
|
5bdf1f1a89 | ||
|
|
f20c673d0d | ||
|
|
a006fef78e | ||
|
|
0e5cf7bc09 | ||
|
|
bd2bceb91b | ||
|
|
6f0a93b069 | ||
|
|
ed60d9ded0 | ||
|
|
e721909d7f | ||
|
|
a0dcb8d821 | ||
|
|
26906f2d93 | ||
|
|
d4571f43e8 | ||
|
|
eef6935426 | ||
|
|
517dd307f9 | ||
|
|
a6bbbf2ff5 | ||
|
|
bba43f3f43 | ||
|
|
4badfebefc | ||
|
|
08e5536445 | ||
|
|
e54e123549 | ||
|
|
abd01ea214 | ||
|
|
a5b2791cc9 | ||
|
|
f00c54ae2e | ||
|
|
e71972d177 | ||
|
|
c1faa8b5b2 | ||
|
|
b252cf0d98 | ||
|
|
a4c4a7d5ca | ||
|
|
bdcf772aa5 | ||
|
|
89a5e2f704 | ||
|
|
024e6fed62 | ||
|
|
48b0951681 | ||
|
|
2dabd82236 | ||
|
|
09d0d67c13 | ||
|
|
0028a23b9f | ||
|
|
032b33059e | ||
|
|
3a3f964eda | ||
|
|
b7d1a1af76 | ||
|
|
8cfb6411ff | ||
|
|
2c0093d294 | ||
|
|
947e129219 | ||
|
|
0a2d5003df | ||
|
|
fb0a520897 | ||
|
|
230ec17d74 | ||
|
|
668bcfd5ca | ||
|
|
8774f78d1b | ||
|
|
f469880c61 | ||
|
|
bbdfbacdef | ||
|
|
e9754726d2 | ||
|
|
99fc818e93 | ||
|
|
265f835e3e | ||
|
|
33826fd028 | ||
|
|
92821996de | ||
|
|
11e2957d5f | ||
|
|
3a778a2913 | ||
|
|
4d2654783c | ||
|
|
2a21cdbe6b | ||
|
|
51e7a4378a | ||
|
|
74cc3b583d | ||
|
|
e7cf2b1022 | ||
|
|
60938ae772 | ||
|
|
4e71d95260 | ||
|
|
fefc111a2a | ||
|
|
b204ab6506 | ||
|
|
ec40e5ff42 | ||
|
|
b34aa49c25 | ||
|
|
1e8b9e7e69 | ||
|
|
d372d36592 | ||
|
|
36b5bb6f2f | ||
|
|
30c278aa6b | ||
|
|
083bec780d | ||
|
|
1edf8f1b4e | ||
|
|
65f2a56580 | ||
|
|
f1f5c70a04 | ||
|
|
0090a686c0 | ||
|
|
f5a7d5b164 | ||
|
|
abd2ed012b | ||
|
|
3bf15e2974 | ||
|
|
8df400cf8d | ||
|
|
fbeb85ecb9 | ||
|
|
3766e7ccab | ||
|
|
2e8cb108dc | ||
|
|
256f9573c5 | ||
|
|
b6b094fb77 | ||
|
|
0db46a7dd7 | ||
|
|
2537d46903 | ||
|
|
5447f836a0 | ||
|
|
66d9f2e521 | ||
|
|
139cd16cc5 | ||
|
|
fdb78f3d88 | ||
|
|
95ea531864 | ||
|
|
4842dde80c | ||
|
|
f91926a240 | ||
|
|
9282c33596 | ||
|
|
c3cddeaec8 | ||
|
|
df316fd43c | ||
|
|
2fceff5ba3 | ||
|
|
f404278186 | ||
|
|
68f5500d31 | ||
|
|
6f9076ff37 | ||
|
|
904732f68b | ||
|
|
cf5ecc3e1f | ||
|
|
2c340864be | ||
|
|
84bafb7471 | ||
|
|
5087afa108 | ||
|
|
93c2c9befc | ||
|
|
d900c0ae14 | ||
|
|
55b66f084d | ||
|
|
96cfba0fb4 | ||
|
|
cd68694646 | ||
|
|
1c16fd1f03 | ||
|
|
a5afc0a8f4 | ||
|
|
20b431e3a9 | ||
|
|
e83aefb3a0 | ||
|
|
1740c9fbfc | ||
|
|
2588d4ca41 | ||
|
|
878b5d07ef | ||
|
|
191b3f0ba9 | ||
|
|
46a6cec699 | ||
|
|
472af806ce | ||
|
|
5c1393bfc3 | ||
|
|
f7ac0ec89d | ||
|
|
598c423e65 | ||
|
|
360ef6769e | ||
|
|
13cfb04343 | ||
|
|
22b5d7c80b | ||
|
|
685755937a | ||
|
|
7c8ac50504 | ||
|
|
095db6bdb8 | ||
|
|
8dbeb110fb | ||
|
|
765b413794 | ||
|
|
d223dfe641 | ||
|
|
1c455bc084 | ||
|
|
9f6b0635ad | ||
|
|
98a7edf9f0 | ||
|
|
7831969634 | ||
|
|
9ba297e49f | ||
|
|
ddd13d677b | ||
|
|
821244cf67 | ||
|
|
edb128ce00 | ||
|
|
642aa226db | ||
|
|
b5cadfb564 | ||
|
|
c4fc172240 | ||
|
|
d88926f181 | ||
|
|
24f77b34d5 | ||
|
|
cccf27c89a | ||
|
|
c5cd28bd64 | ||
|
|
b3aee265c5 | ||
|
|
9fc81acae6 | ||
|
|
5d2e07f182 | ||
|
|
aa714f3af4 | ||
|
|
68c06bf6b2 | ||
|
|
c7b7984ac9 | ||
|
|
3db935a9e5 | ||
|
|
63d103ea48 | ||
|
|
999ffeca6c | ||
|
|
ffa4579679 | ||
|
|
51b9115b6d | ||
|
|
8ab92fc646 | ||
|
|
98dc178494 | ||
|
|
89f1eb8213 | ||
|
|
f717abd7c1 | ||
|
|
d5630dd60e | ||
|
|
134c00659a | ||
|
|
8bb870df9e | ||
|
|
95bba34b83 | ||
|
|
96a4cf8c29 | ||
|
|
da01515c40 | ||
|
|
7c43ea50fd | ||
|
|
c0832990f5 | ||
|
|
7cb81398b7 | ||
|
|
24798c5e59 | ||
|
|
5b0e3daf50 | ||
|
|
53d6bf40c1 | ||
|
|
1e98169086 | ||
|
|
866f1f41d1 | ||
|
|
536a16435b | ||
|
|
7f5bf370db | ||
|
|
2c7af9cb6e | ||
|
|
fe5772e9d0 | ||
|
|
8be18f3459 | ||
|
|
226afe4956 | ||
|
|
cfb399ad55 | ||
|
|
1efd583085 | ||
|
|
8ed11a815e | ||
|
|
38049c2bb9 | ||
|
|
918e613a32 | ||
|
|
23328d4b27 | ||
|
|
30765fed55 | ||
|
|
6a45ea4f88 | ||
|
|
78c3e20579 | ||
|
|
0c832ec5c6 | ||
|
|
947d78275b | ||
|
|
d35c0ff30b | ||
|
|
057c8a2b9e | ||
|
|
07a4ff79d2 | ||
|
|
964eaad78c | ||
|
|
3bc522a246 | ||
|
|
fd3b0eb01d | ||
|
|
d17b59e49f | ||
|
|
aea4126e4e | ||
|
|
eec82a0e1f | ||
|
|
dea8068015 | ||
|
|
4739ccdb39 | ||
|
|
54a1f4480e | ||
|
|
671c9e2dc8 | ||
|
|
a70da5b3ec | ||
|
|
c5f6da54fc | ||
|
|
f11d0c7908 | ||
|
|
323fa64559 | ||
|
|
3ed6e22771 | ||
|
|
e66055b8f7 | ||
|
|
b460c8f896 | ||
|
|
27e0c86307 | ||
|
|
7f429a5dbf | ||
|
|
c9d3ec6943 | ||
|
|
e98c526b68 | ||
|
|
1fda639ae7 | ||
|
|
4d88fc8173 | ||
|
|
b8c5929130 | ||
|
|
800a4a707d | ||
|
|
5cc2159526 | ||
|
|
6373af15d3 | ||
|
|
63d8834c26 | ||
|
|
8df5518bd9 | ||
|
|
9b222748e7 | ||
|
|
17e820aec3 | ||
|
|
244ed51a0d | ||
|
|
4f3df8bea2 | ||
|
|
2a7cbe77b3 | ||
|
|
94a209d8e1 | ||
|
|
24edfa9df9 | ||
|
|
0a17b8de06 | ||
|
|
e5db9c3b67 | ||
|
|
2daceb0342 | ||
|
|
147d4c96b0 | ||
|
|
61d24f102d | ||
|
|
79b184fb4b | ||
|
|
648f551a4a | ||
|
|
33a8de69dc | ||
|
|
319354eb6c | ||
|
|
e7db9896bb | ||
|
|
4f16215b9d | ||
|
|
a903e6919c | ||
|
|
f26328c2f3 | ||
|
|
a58fdc7a34 | ||
|
|
d21bf10dea | ||
|
|
d47c01a31a | ||
|
|
ef6b34bec2 | ||
|
|
becfdb995b | ||
|
|
6206682a35 | ||
|
|
88d6b87fca | ||
|
|
0e1f390bad | ||
|
|
be0d31b166 | ||
|
|
ed83ba5321 | ||
|
|
81f57e5a69 | ||
|
|
1cf218bcaa | ||
|
|
093050b660 | ||
|
|
0db17852cd | ||
|
|
1a9d60d2e3 | ||
|
|
9a10ea3fc0 | ||
|
|
1a002d88ad | ||
|
|
619aab841c | ||
|
|
a4aafeeef4 | ||
|
|
2ea8035460 | ||
|
|
5833e4f5d6 | ||
|
|
99e59d634a | ||
|
|
cb726fe8d4 | ||
|
|
9ddd859d2a | ||
|
|
f6ff1aa8e0 | ||
|
|
3a5485a9f8 | ||
|
|
9053c139fd | ||
|
|
3b0648ebc9 | ||
|
|
3ad344a517 | ||
|
|
6dbb6219e7 | ||
|
|
ec4a50b3c3 | ||
|
|
d18b716d25 | ||
|
|
1e4cb467e1 | ||
|
|
74ecfab401 | ||
|
|
5818a07a4f | ||
|
|
050ce4ca42 | ||
|
|
8e2a06bf5c | ||
|
|
a1644902eb | ||
|
|
bff9ce4db3 | ||
|
|
b7bfe69b66 | ||
|
|
5180f57c65 | ||
|
|
63fe4ee14c | ||
|
|
69f45c520c | ||
|
|
7bb98eee3c | ||
|
|
799379215e | ||
|
|
701d593f70 | ||
|
|
ee923b4cef | ||
|
|
46a2b3387a | ||
|
|
e09039c01c | ||
|
|
da3bd2779d | ||
|
|
b046d70676 | ||
|
|
ae007d4d09 | ||
|
|
660164a9ed | ||
|
|
367b126491 | ||
|
|
ac82e51f57 | ||
|
|
9f27b1eec3 | ||
|
|
9fd603be07 | ||
|
|
bec44866f1 | ||
|
|
5dbf4f42fb | ||
|
|
c58de759c8 | ||
|
|
44488723de | ||
|
|
ea1d84358b | ||
|
|
dd25165968 | ||
|
|
657e29c199 | ||
|
|
3208fc59db | ||
|
|
87adf1fa96 | ||
|
|
15a70fe510 | ||
|
|
3dbc46dfcd | ||
|
|
32e03a3016 | ||
|
|
8d00f34239 | ||
|
|
df53820170 | ||
|
|
c65c5d05fd | ||
|
|
8fdb4f1af3 | ||
|
|
ae432028d1 | ||
|
|
2dce10c56d | ||
|
|
18d7158809 | ||
|
|
0f39bab0df | ||
|
|
d61ff83be9 | ||
|
|
be681e123c | ||
|
|
6251989eb6 | ||
|
|
faee82c1bc | ||
|
|
4453cd8c73 | ||
|
|
a8f3b8b519 | ||
|
|
0f229cce65 | ||
|
|
020091406c | ||
|
|
ad880dc469 | ||
|
|
42a36658c1 | ||
|
|
c4ff5d1147 | ||
|
|
a5ee80b910 | ||
|
|
93ab9e421e | ||
|
|
dfcf48f499 | ||
|
|
0bf8f110e0 | ||
|
|
f3eac74bc5 | ||
|
|
3a9b3852c6 | ||
|
|
d2e1803197 | ||
|
|
4b9e0b5f74 | ||
|
|
447e1319b1 | ||
|
|
e77ec2ba6f | ||
|
|
195b9eeeed | ||
|
|
80c42f3e0c | ||
|
|
7a71af86ce | ||
|
|
32e62d1cc4 | ||
|
|
aeda172afd | ||
|
|
8d1b199d26 | ||
|
|
71fa451343 | ||
|
|
a9e1c50bb0 | ||
|
|
03c1d9f99d | ||
|
|
f889bb0384 | ||
|
|
83698d3191 | ||
|
|
6a40ebe86b | ||
|
|
d4bb6bddf8 | ||
|
|
ee9bf3eb6c | ||
|
|
41409651be | ||
|
|
fd05495748 | ||
|
|
4242a090c7 | ||
|
|
c3b1303387 | ||
|
|
5762f7778d | ||
|
|
7a412ded50 | ||
|
|
efb19e1330 | ||
|
|
c46ecc3a55 | ||
|
|
7388b43cae | ||
|
|
225055c30b | ||
|
|
e0311481b8 | ||
|
|
f9c5e5d92e | ||
|
|
9474483ab7 | ||
|
|
a708609945 | ||
|
|
a9e6c091d5 | ||
|
|
df5705442c | ||
|
|
a2b21191d9 | ||
|
|
396f8b71ac | ||
|
|
43d5b4ff31 | ||
|
|
f2ad35821c | ||
|
|
09e4e4b98e | ||
|
|
ce33b42bc6 | ||
|
|
579d553464 | ||
|
|
71fa3bc5ec | ||
|
|
e2f53b675a | ||
|
|
797c61aa2d | ||
|
|
597dab0fa8 | ||
|
|
b36bab7812 | ||
|
|
8ea92ddd13 | ||
|
|
d9a9d10f4f | ||
|
|
0d2baadfb4 | ||
|
|
dce1cc2a59 | ||
|
|
b214184160 | ||
|
|
aa09c2c631 | ||
|
|
6dd9b0fc43 | ||
|
|
e36f6b9cfa | ||
|
|
3e181369dd | ||
|
|
d3ddf0228e | ||
|
|
800e1cd969 | ||
|
|
293706e72c | ||
|
|
4a1fbd13ee | ||
|
|
9eba5614fe | ||
|
|
3b1fb1a022 | ||
|
|
fc90e42c86 | ||
|
|
26e6bac143 | ||
|
|
fc6fc7ff38 | ||
|
|
adfd95c2ac | ||
|
|
80eb43519e | ||
|
|
bbe0c8c5be | ||
|
|
5a34fcd76e | ||
|
|
b1fd0ccb38 | ||
|
|
b2284ed34a | ||
|
|
a43526302f | ||
|
|
2131ce570a | ||
|
|
45cd45bbbc | ||
|
|
bc9583efa2 | ||
|
|
a20152bdaf | ||
|
|
fd2b65ce53 | ||
|
|
263c62467d | ||
|
|
82c5ac4599 | ||
|
|
94e9215fbc | ||
|
|
f62f792057 | ||
|
|
5db9645f1b | ||
|
|
86963f40f8 | ||
|
|
d3379de5a9 | ||
|
|
4736eab947 | ||
|
|
23a05fa0c1 | ||
|
|
482a7d80cf | ||
|
|
ee743dca53 | ||
|
|
6da165c631 | ||
|
|
d0595f170c | ||
|
|
751e26cb9b | ||
|
|
f404acfa2c | ||
|
|
7744ef1ada | ||
|
|
ed998634cd | ||
|
|
884c580e05 | ||
|
|
bbbe61c958 | ||
|
|
df27a35137 | ||
|
|
f9ef874a21 | ||
|
|
442c9f13d4 | ||
|
|
156421a2af | ||
|
|
61ad8262a0 | ||
|
|
5c88dcca5b | ||
|
|
d2add2efaa | ||
|
|
b2ae61ecf2 | ||
|
|
78dfd43955 | ||
|
|
146b52edd1 | ||
|
|
13747c6fda | ||
|
|
174b07be93 | ||
|
|
15a40af2ed | ||
|
|
ea6e386008 | ||
|
|
34b61f5a25 | ||
|
|
e7f8ff4382 | ||
|
|
62b6948a27 | ||
|
|
0fbf8b9cea | ||
|
|
d895f7f060 | ||
|
|
ce0ed3b778 | ||
|
|
358c372d16 | ||
|
|
c4a52a6dca | ||
|
|
797a2a102d | ||
|
|
3c6a7cd44b | ||
|
|
dc4f678cdc | ||
|
|
0f2ece872d | ||
|
|
68a7b5ae1e | ||
|
|
161c9b4262 | ||
|
|
57cb030cea | ||
|
|
d441e6d8db | ||
|
|
228a8599ff | ||
|
|
d16bb406d4 | ||
|
|
f7ef20c5ee | ||
|
|
d0e68a98c5 | ||
|
|
a36fb72584 | ||
|
|
8f27a92754 | ||
|
|
6941b7b918 | ||
|
|
ef570cc869 | ||
|
|
4d3670fa50 | ||
|
|
5421196eca | ||
|
|
74b4b49494 | ||
|
|
de2b5b7439 | ||
|
|
64095ce9d7 | ||
|
|
206310c305 | ||
|
|
5863163732 | ||
|
|
83cb7c4635 | ||
|
|
04296664e0 | ||
|
|
fc7dae5229 | ||
|
|
be81f4dd81 | ||
|
|
e626c77808 | ||
|
|
da2a5a79ef | ||
|
|
11eaec9ae4 | ||
|
|
cbc0b0ec2d | ||
|
|
1df80b6561 | ||
|
|
3770b988c0 | ||
|
|
9641be2aac | ||
|
|
f94cfe6a12 | ||
|
|
7951c2699f | ||
|
|
5997efca83 | ||
|
|
57559471bf | ||
|
|
f4e1169341 | ||
|
|
febec8ff23 | ||
|
|
0208ab2e3f | ||
|
|
faed798c32 | ||
|
|
f71c6e52f7 | ||
|
|
9ade64dedf | ||
|
|
c526ed410c | ||
|
|
4379d0e457 | ||
|
|
7568d15acd | ||
|
|
08e4ea4884 | ||
|
|
98909c1d5b | ||
|
|
ccd395cbcc | ||
|
|
0d60939515 | ||
|
|
2ff5ac55c5 | ||
|
|
1db5f356f5 | ||
|
|
e6903980af | ||
|
|
855d29184e | ||
|
|
ac07bc8602 | ||
|
|
8e1dc4d7ca | ||
|
|
a985410d2d | ||
|
|
0ecedec82d | ||
|
|
9bd20155ba | ||
|
|
5d13669a2c | ||
|
|
adb5a2694a | ||
|
|
23b93b587b | ||
|
|
a50bce82ec | ||
|
|
713f49119f | ||
|
|
677741f87a | ||
|
|
5beb93e114 | ||
|
|
62d7dd5ffd | ||
|
|
6e913f9901 | ||
|
|
e255024bf7 | ||
|
|
8fa397a6bc | ||
|
|
03cf7e784c | ||
|
|
ce0727f9bd | ||
|
|
8e85545284 | ||
|
|
6620bf3444 | ||
|
|
7bb1cc9505 | ||
|
|
59e68615ce | ||
|
|
192540b522 | ||
|
|
e2ca32fc2b | ||
|
|
4d0bafb4ae | ||
|
|
e745572493 | ||
|
|
27dfffd5b7 | ||
|
|
d0dc991c62 | ||
|
|
2ec0497f08 | ||
|
|
6bf896d9b1 | ||
|
|
be71c37296 | ||
|
|
0015572372 | ||
|
|
6074fb0979 | ||
|
|
25536ea6a7 | ||
|
|
b3720c34e5 | ||
|
|
5733919dbc | ||
|
|
b333905011 | ||
|
|
918fc30fa4 | ||
|
|
0b9f5ef809 | ||
|
|
4817504d06 | ||
|
|
84b6e277d4 | ||
|
|
fa2c72e549 | ||
|
|
ffdfce8d14 | ||
|
|
816e243a87 | ||
|
|
c79f22c63a | ||
|
|
f3d781bb43 | ||
|
|
995a6b10e1 | ||
|
|
9ef562bcc6 | ||
|
|
7e159e0133 | ||
|
|
b9e1488865 | ||
|
|
e43bfb2906 | ||
|
|
9c52c3e07c | ||
|
|
1394b29120 | ||
|
|
b646fc409d | ||
|
|
f9b0b45238 | ||
|
|
ad89bf7894 | ||
|
|
e75440d2c9 | ||
|
|
188c53f7e8 | ||
|
|
7aba22ba28 | ||
|
|
bdba45957a | ||
|
|
0e1467a64c | ||
|
|
f2fc30751e | ||
|
|
1bfdb34f70 | ||
|
|
405edfdcab | ||
|
|
3c0ff9f939 | ||
|
|
b9ef708e40 | ||
|
|
e166891e0d | ||
|
|
9a436c0f89 | ||
|
|
7fd5df6b12 | ||
|
|
8c98b2591f | ||
|
|
be16cc23c6 | ||
|
|
4fa35e7336 | ||
|
|
a3a2e3a43d | ||
|
|
67ef4f63f1 | ||
|
|
3bfe583b8d | ||
|
|
627b044536 | ||
|
|
16363c0165 | ||
|
|
7ffa48ad38 | ||
|
|
5711dd8eac | ||
|
|
990390ab52 | ||
|
|
2ca873e8d8 | ||
|
|
7a2362611f | ||
|
|
618eb125f0 | ||
|
|
afb14cda8c | ||
|
|
df0cdf4ceb | ||
|
|
19b0d0e75b | ||
|
|
ea8c77a55b | ||
|
|
a7c71d8955 | ||
|
|
390c579568 | ||
|
|
0798170966 | ||
|
|
28ff14779e | ||
|
|
6600126825 | ||
|
|
f6c0bd641c | ||
|
|
ea7fe214c4 | ||
|
|
ebba6c4895 | ||
|
|
6f31dd72d2 | ||
|
|
4521eda739 | ||
|
|
5b6aaac9e6 | ||
|
|
8ce6421803 | ||
|
|
2c3ee8ad80 | ||
|
|
1c78c43bd3 | ||
|
|
21b52dd3eb | ||
|
|
d127ef78ad | ||
|
|
d674bb4bc8 | ||
|
|
e0af04056c | ||
|
|
333f926d67 | ||
|
|
dce7f142a6 | ||
|
|
77aae9654f | ||
|
|
ae55176091 | ||
|
|
fe06864836 | ||
|
|
0985bd4f80 | ||
|
|
20bee9684d | ||
|
|
0c58d22ad9 | ||
|
|
6a828b7a8e | ||
|
|
32268b183f | ||
|
|
ff6f9f96fd | ||
|
|
4a5397fb68 | ||
|
|
f9542a4231 | ||
|
|
acb2f06af1 | ||
|
|
33387d4a88 | ||
|
|
60d4e99cf3 | ||
|
|
3c075bf07f | ||
|
|
bdf40fd251 | ||
|
|
3f54a7460c | ||
|
|
bba391a99a | ||
|
|
af0368458a | ||
|
|
a2570242a9 | ||
|
|
f6666ad19d | ||
|
|
d43a7f2cc6 | ||
|
|
7467b76fbf | ||
|
|
6a0ea5d239 | ||
|
|
9a480169cd | ||
|
|
85a1a836a2 | ||
|
|
a98b8ce652 | ||
|
|
980e7e8bcd | ||
|
|
f45c90bb1c | ||
|
|
4692f9f7b6 | ||
|
|
835d355b97 | ||
|
|
29fd6746f5 | ||
|
|
e879dd4386 | ||
|
|
09f40a3cb9 | ||
|
|
f4324e51dd | ||
|
|
69569dd168 | ||
|
|
12cc43782c | ||
|
|
400b3b3614 | ||
|
|
3ec9dceb15 | ||
|
|
92064785ec | ||
|
|
a75a52a43e | ||
|
|
ada35f9c2c | ||
|
|
6aaa942d53 | ||
|
|
0933887112 | ||
|
|
b08259cdfe | ||
|
|
28507577b1 | ||
|
|
930e801214 | ||
|
|
fe0e302dff | ||
|
|
32cf5baeae | ||
|
|
45906fe63b | ||
|
|
482cdf2489 |
20
.cvsignore
20
.cvsignore
@@ -1,20 +0,0 @@
|
|||||||
openssl.pc
|
|
||||||
libcrypto.pc
|
|
||||||
libssl.pc
|
|
||||||
MINFO
|
|
||||||
makefile.one
|
|
||||||
outinc
|
|
||||||
rehash.time
|
|
||||||
testlog
|
|
||||||
make.log
|
|
||||||
maketest.log
|
|
||||||
cctest
|
|
||||||
cctest.c
|
|
||||||
cctest.a
|
|
||||||
*.flc
|
|
||||||
semantic.cache
|
|
||||||
Makefile
|
|
||||||
*.dll*
|
|
||||||
*.so*
|
|
||||||
*.sl*
|
|
||||||
*.dylib*
|
|
||||||
118
.gitignore
vendored
Normal file
118
.gitignore
vendored
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
# Object files
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
|
||||||
|
# editor artefacts
|
||||||
|
*.swp
|
||||||
|
.#*
|
||||||
|
#*#
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Top level excludes
|
||||||
|
/Makefile.bak
|
||||||
|
/Makefile
|
||||||
|
/MINFO
|
||||||
|
/*.a
|
||||||
|
/include
|
||||||
|
/*.pc
|
||||||
|
/rehash.time
|
||||||
|
/inc.*
|
||||||
|
/makefile.*
|
||||||
|
/out.*
|
||||||
|
/tmp.*
|
||||||
|
|
||||||
|
# Most *.c files under test/ are symlinks
|
||||||
|
/test/*.c
|
||||||
|
# Apart from these
|
||||||
|
!/test/asn1test.c
|
||||||
|
!/test/methtest.c
|
||||||
|
!/test/dummytest.c
|
||||||
|
!/test/igetest.c
|
||||||
|
!/test/r160test.c
|
||||||
|
!/test/fips_algvs.c
|
||||||
|
!/test/testutil.c
|
||||||
|
|
||||||
|
/test/*.ss
|
||||||
|
/test/*.srl
|
||||||
|
/test/.rnd
|
||||||
|
/test/test*.pem
|
||||||
|
/test/newkey.pem
|
||||||
|
|
||||||
|
# Certificate symbolic links
|
||||||
|
*.0
|
||||||
|
|
||||||
|
# Links under apps
|
||||||
|
/apps/CA.pl
|
||||||
|
/apps/md4.c
|
||||||
|
|
||||||
|
|
||||||
|
# Auto generated headers
|
||||||
|
/crypto/buildinf.h
|
||||||
|
/crypto/opensslconf.h
|
||||||
|
|
||||||
|
# Auto generated assembly language source files
|
||||||
|
*.s
|
||||||
|
!/crypto/bn/asm/pa-risc2.s
|
||||||
|
!/crypto/bn/asm/pa-risc2W.s
|
||||||
|
crypto/aes/asm/a_win32.asm
|
||||||
|
crypto/bf/asm/b_win32.asm
|
||||||
|
crypto/bn/asm/bn_win32.asm
|
||||||
|
crypto/bn/asm/co_win32.asm
|
||||||
|
crypto/bn/asm/mt_win32.asm
|
||||||
|
crypto/cast/asm/c_win32.asm
|
||||||
|
crypto/cpu_win32.asm
|
||||||
|
crypto/des/asm/d_win32.asm
|
||||||
|
crypto/des/asm/y_win32.asm
|
||||||
|
crypto/md5/asm/m5_win32.asm
|
||||||
|
crypto/rc4/asm/r4_win32.asm
|
||||||
|
crypto/rc5/asm/r5_win32.asm
|
||||||
|
crypto/ripemd/asm/rm_win32.asm
|
||||||
|
crypto/sha/asm/s1_win32.asm
|
||||||
|
crypto/sha/asm/sha512-sse2.asm
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
/apps/openssl
|
||||||
|
/test/sha256t
|
||||||
|
/test/sha512t
|
||||||
|
/test/gost2814789t
|
||||||
|
/test/*test
|
||||||
|
/test/fips_aesavs
|
||||||
|
/test/fips_desmovs
|
||||||
|
/test/fips_dhvs
|
||||||
|
/test/fips_drbgvs
|
||||||
|
/test/fips_dssvs
|
||||||
|
/test/fips_ecdhvs
|
||||||
|
/test/fips_ecdsavs
|
||||||
|
/test/fips_rngvs
|
||||||
|
/test/fips_test_suite
|
||||||
|
*.so*
|
||||||
|
*.dylib*
|
||||||
|
*.dll*
|
||||||
|
# Exceptions
|
||||||
|
!/test/bctest
|
||||||
|
!/crypto/des/times/486-50.sol
|
||||||
|
|
||||||
|
# Misc auto generated files
|
||||||
|
/tools/c_rehash
|
||||||
|
/test/evptests.txt
|
||||||
|
lib
|
||||||
|
Makefile.save
|
||||||
|
*.bak
|
||||||
|
tags
|
||||||
|
TAGS
|
||||||
|
cscope.out
|
||||||
|
*.d
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
/tmp32dll
|
||||||
|
/tmp32dll.dbg
|
||||||
|
/out32dll
|
||||||
|
/out32dll.dbg
|
||||||
|
/inc32
|
||||||
|
/MINFO
|
||||||
|
ms/bcb.mak
|
||||||
|
ms/libeay32.def
|
||||||
|
ms/nt.mak
|
||||||
|
ms/ntdll.mak
|
||||||
|
ms/ssleay32.def
|
||||||
|
ms/version32.rc
|
||||||
@@ -10,13 +10,18 @@ OpenSSL project.
|
|||||||
We would like to identify and thank the following such sponsors for their past
|
We would like to identify and thank the following such sponsors for their past
|
||||||
or current significant support of the OpenSSL project:
|
or current significant support of the OpenSSL project:
|
||||||
|
|
||||||
|
Major support:
|
||||||
|
|
||||||
|
Qualys http://www.qualys.com/
|
||||||
|
|
||||||
Very significant support:
|
Very significant support:
|
||||||
|
|
||||||
OpenGear: www.opengear.com
|
OpenGear: http://www.opengear.com/
|
||||||
|
|
||||||
Significant support:
|
Significant support:
|
||||||
|
|
||||||
PSW Group: www.psw.net
|
PSW Group: http://www.psw.net/
|
||||||
|
Acano Ltd. http://acano.com/
|
||||||
|
|
||||||
Please note that we ask permission to identify sponsors and that some sponsors
|
Please note that we ask permission to identify sponsors and that some sponsors
|
||||||
we consider eligible for inclusion here have requested to remain anonymous.
|
we consider eligible for inclusion here have requested to remain anonymous.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ eric (about to go bushwalking for the 4 day easter break :-)
|
|||||||
7-Jan-98
|
7-Jan-98
|
||||||
- Finally reworked the cipher string to ciphers again, so it
|
- Finally reworked the cipher string to ciphers again, so it
|
||||||
works correctly
|
works correctly
|
||||||
- All the app_data stuff is now ex_data with funcion calls to access.
|
- All the app_data stuff is now ex_data with function calls to access.
|
||||||
The index is supplied by a function and 'methods' can be setup
|
The index is supplied by a function and 'methods' can be setup
|
||||||
for the types that are called on XXX_new/XXX_free. This lets
|
for the types that are called on XXX_new/XXX_free. This lets
|
||||||
applications get notified on creation and destruction. Some of
|
applications get notified on creation and destruction. Some of
|
||||||
@@ -937,7 +937,7 @@ Reasons to start playing with version 0.5.0
|
|||||||
certificate, it is my aim to use perl5/Tk but I don't have time to do
|
certificate, it is my aim to use perl5/Tk but I don't have time to do
|
||||||
this right now. It will generate the certificates but the management
|
this right now. It will generate the certificates but the management
|
||||||
scripts still need to be written. This is not a hard task.
|
scripts still need to be written. This is not a hard task.
|
||||||
- Things have been cleaned up alot.
|
- Things have been cleaned up a lot.
|
||||||
- Have a look at the enc and dgst programs in the apps directory.
|
- Have a look at the enc and dgst programs in the apps directory.
|
||||||
- It supports v3 of x509 certiticates.
|
- It supports v3 of x509 certiticates.
|
||||||
|
|
||||||
|
|||||||
455
Configure
455
Configure
@@ -3,6 +3,8 @@ eval 'exec perl -S $0 ${1+"$@"}'
|
|||||||
if $running_under_some_shell;
|
if $running_under_some_shell;
|
||||||
##
|
##
|
||||||
## Configure -- OpenSSL source tree configuration script
|
## Configure -- OpenSSL source tree configuration script
|
||||||
|
## If editing this file, run this command before committing
|
||||||
|
## make -f Makefile.org TABLE
|
||||||
##
|
##
|
||||||
|
|
||||||
require 5.000;
|
require 5.000;
|
||||||
@@ -10,7 +12,7 @@ use strict;
|
|||||||
|
|
||||||
# see INSTALL for instructions.
|
# see INSTALL for instructions.
|
||||||
|
|
||||||
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]\n";
|
||||||
|
|
||||||
# Options:
|
# Options:
|
||||||
#
|
#
|
||||||
@@ -56,6 +58,7 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
|
|||||||
# [no-]zlib [don't] compile support for zlib compression.
|
# [no-]zlib [don't] compile support for zlib compression.
|
||||||
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
|
# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared
|
||||||
# library and will be loaded in run-time by the OpenSSL library.
|
# library and will be loaded in run-time by the OpenSSL library.
|
||||||
|
# sctp include SCTP support
|
||||||
# 386 generate 80386 code
|
# 386 generate 80386 code
|
||||||
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
|
# no-sse2 disables IA-32 SSE2 code, above option implies no-sse2
|
||||||
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
|
# no-<cipher> build without specified algorithm (rsa, idea, rc5, ...)
|
||||||
@@ -104,6 +107,8 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta
|
|||||||
|
|
||||||
my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED";
|
my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED";
|
||||||
|
|
||||||
|
my $clang_disabled_warnings = "-Wno-language-extension-token -Wno-extended-offsetof -Wno-padded -Wno-shorten-64-to-32 -Wno-format-nonliteral -Wno-missing-noreturn -Wno-unused-parameter -Wno-sign-conversion -Wno-unreachable-code -Wno-conversion -Wno-documentation -Wno-missing-variable-declarations -Wno-cast-align -Wno-incompatible-pointer-types-discards-qualifiers -Wno-missing-variable-declarations -Wno-missing-field-initializers -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-conditional-uninitialized -Wno-switch-enum";
|
||||||
|
|
||||||
my $strict_warnings = 0;
|
my $strict_warnings = 0;
|
||||||
|
|
||||||
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL";
|
||||||
@@ -123,24 +128,25 @@ my $tlib="-lnsl -lsocket";
|
|||||||
my $bits1="THIRTY_TWO_BIT ";
|
my $bits1="THIRTY_TWO_BIT ";
|
||||||
my $bits2="SIXTY_FOUR_BIT ";
|
my $bits2="SIXTY_FOUR_BIT ";
|
||||||
|
|
||||||
my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o:des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o:e_padlock-x86.o";
|
my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o::des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o:e_padlock-x86.o";
|
||||||
|
|
||||||
my $x86_elf_asm="$x86_asm:elf";
|
my $x86_elf_asm="$x86_asm:elf";
|
||||||
|
|
||||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:e_padlock-x86_64.o";
|
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o:ecp_nistz256.o ecp_nistz256-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o aesni-gcm-x86_64.o:e_padlock-x86_64.o";
|
||||||
my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void";
|
my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void";
|
||||||
my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void";
|
my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o::des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o::::::camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o:ghash-sparcv9.o::void";
|
||||||
my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void";
|
my $sparcv8_asm=":sparcv8.o::des_enc-sparc.o fcrypt_b.o:::::::::::::void";
|
||||||
my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void";
|
my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::sha1-alpha.o:::::::ghash-alpha.o::void";
|
||||||
my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::";
|
my $mips64_asm=":bn-mips.o mips-mont.o:::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o::::::::";
|
||||||
my $mips64_asm=":bn-mips.o mips-mont.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o::::::::";
|
my $mips32_asm=$mips64_asm; $mips32_asm =~ s/\s*sha512\-mips\.o//;
|
||||||
my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o s390x-gf2m.o::aes_ctr.o aes-s390x.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:";
|
my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o s390x-gf2m.o:::aes-s390x.o aes-ctr.o aes-xts.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:";
|
||||||
my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o::aes_cbc.o aes-armv4.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o::void";
|
my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o:::aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o ghashv8-armx.o::void";
|
||||||
my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::32";
|
my $aarch64_asm="armcap.o arm64cpuid.o mem_clr.o::::aes_core.o aes_cbc.o aesv8-armx.o:::sha1-armv8.o sha256-armv8.o sha512-armv8.o:::::::ghashv8-armx.o:";
|
||||||
my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::64";
|
my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::32";
|
||||||
my $ppc32_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o::::::::";
|
my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::64";
|
||||||
my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o::aes_core.o aes_cbc.o aes-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o::::::::";
|
my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o:::aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o sha256p8-ppc.o sha512p8-ppc.o:::::::ghashp8-ppc.o:";
|
||||||
my $no_asm=":::::::::::::::void";
|
my $ppc32_asm=$ppc64_asm;
|
||||||
|
my $no_asm="::::::::::::::::void";
|
||||||
|
|
||||||
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
# As for $BSDthreads. Idea is to maintain "collective" set of flags,
|
||||||
# which would cover all BSD flavors. -pthread applies to them all,
|
# which would cover all BSD flavors. -pthread applies to them all,
|
||||||
@@ -151,7 +157,7 @@ my $no_asm=":::::::::::::::void";
|
|||||||
# seems to be sufficient?
|
# seems to be sufficient?
|
||||||
my $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
|
my $BSDthreads="-pthread -D_THREAD_SAFE -D_REENTRANT";
|
||||||
|
|
||||||
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $modes_obj : $engines_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
|
#config-string $cc : $cflags : $unistd : $thread_cflag : $sys_id : $lflags : $bn_ops : $cpuid_obj : $bn_obj : $ec_obj : $des_obj : $aes_obj : $bf_obj : $md5_obj : $sha1_obj : $cast_obj : $rc4_obj : $rmd160_obj : $rc5_obj : $wp_obj : $cmll_obj : $modes_obj : $engines_obj : $dso_scheme : $shared_target : $shared_cflag : $shared_ldflag : $shared_extension : $ranlib : $arflags : $multilib
|
||||||
|
|
||||||
my %table=(
|
my %table=(
|
||||||
# File 'TABLE' (created by 'make TABLE') contains the data from this list,
|
# File 'TABLE' (created by 'make TABLE') contains the data from this list,
|
||||||
@@ -169,38 +175,46 @@ my %table=(
|
|||||||
"debug-ben", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DDEBUG_SAFESTACK -O2 -pipe::(unknown):::::",
|
"debug-ben", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DDEBUG_SAFESTACK -O2 -pipe::(unknown):::::",
|
||||||
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
"debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||||
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
"debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
|
||||||
"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe::(unknown)::::::",
|
"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DOPENSSL_NO_HW_PADLOCK -g3 -O2 -pipe::(unknown)::::::",
|
||||||
|
"debug-ben-debug-64", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"debug-ben-debug-64-clang", "clang:$gcc_devteam_warn -fsanitize=undefined -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"debug-ben-debug-64-noopt", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"debug-ben-macos", "cc:$gcc_devteam_warn -DOPENSSL_NO_ASM -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch i386 -O3 -DL_ENDIAN -g3 -pipe::(unknown)::::::",
|
||||||
"debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::",
|
"debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::",
|
||||||
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
|
"debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
|
||||||
|
"debug-ben-darwin64","cc:$gcc_devteam_warn -Wno-language-extension-token -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:$x86_64_asm:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||||
"debug-bodo", "gcc:$gcc_devteam_warn -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -DBIO_PAIR_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
"debug-bodo", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -DBIO_PAIR_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
|
"debug-erbridge", "gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
|
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
|
||||||
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -Wno-overlength-strings -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -Wno-overlength-strings -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -Wno-overlength-strings -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
||||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
|
||||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o:des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o:e_padlock-x86.o:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o:e_padlock-x86.o:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
"dist", "cc:-O::(unknown)::::::",
|
"dist", "cc:-O::(unknown)::::::",
|
||||||
|
"debug-test-64-clang", "clang:$gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"darwin64-debug-test-64-clang", "clang:-arch x86_64 -DL_ENDIAN $gcc_devteam_warn -Wno-error=overlength-strings -Wno-error=extended-offsetof -Wno-error=language-extension-token -Wno-error=unused-const-variable -Wstrict-overflow -Qunused-arguments -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:MACOSX::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
|
|
||||||
# Basic configs that should work on any (32 and less bit) box
|
# Basic configs that should work on any (32 and less bit) box
|
||||||
"gcc", "gcc:-O3::(unknown):::BN_LLONG:::",
|
"gcc", "gcc:-O3::(unknown):::BN_LLONG:::",
|
||||||
"cc", "cc:-O::(unknown)::::::",
|
"cc", "cc:-O::(unknown)::::::",
|
||||||
|
|
||||||
####VOS Configurations
|
####VOS Configurations
|
||||||
"vos-gcc","gcc:-O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
"vos-gcc","gcc:-O3 -Wall -DOPENSSL_SYSNAME_VOS -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
||||||
"debug-vos-gcc","gcc:-O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
"debug-vos-gcc","gcc:-O0 -g -Wall -DOPENSSL_SYSNAME_VOS -D_POSIX_C_SOURCE=200112L -D_BSD -D_VOS_EXTENDED_NAMES -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
||||||
|
|
||||||
#### Solaris x86 with GNU C setups
|
#### Solaris x86 with GNU C setups
|
||||||
# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
|
# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
|
||||||
@@ -220,7 +234,7 @@ my %table=(
|
|||||||
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||||
|
|
||||||
#### Solaris x86 with Sun C setups
|
#### Solaris x86 with Sun C setups
|
||||||
"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-x86-cc","cc:-fast -xarch=generic -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||||
|
|
||||||
#### SPARC Solaris with GNU C setups
|
#### SPARC Solaris with GNU C setups
|
||||||
@@ -240,15 +254,11 @@ my %table=(
|
|||||||
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64",
|
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64",
|
||||||
####
|
####
|
||||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SunOS configs, assuming sparc for the gcc one.
|
|
||||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
|
||||||
"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:${no_asm}::",
|
|
||||||
|
|
||||||
#### IRIX 5.x configs
|
#### IRIX 5.x configs
|
||||||
# -mips2 flag is added by ./config when appropriate.
|
# -mips2 flag is added by ./config when appropriate.
|
||||||
"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
@@ -293,9 +303,9 @@ my %table=(
|
|||||||
# Since there is mention of this in shlib/hpux10-cc.sh
|
# Since there is mention of this in shlib/hpux10-cc.sh
|
||||||
"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-cc-o4","cc:-Ae +O4 +ESlit -z -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc1_1-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${parisc11_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc1_1-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${parisc11_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
|
||||||
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1::pa-risc2.o::::::::::::::void:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1:".eval{my $asm=$parisc20_asm;$asm=~s/2W\./2\./;$asm=~s/:64/:32/;$asm}.":dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_32",
|
||||||
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o:::::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||||
|
|
||||||
# More attempts at unified 10.X and 11.X targets for HP C compiler.
|
# More attempts at unified 10.X and 11.X targets for HP C compiler.
|
||||||
#
|
#
|
||||||
@@ -303,7 +313,7 @@ my %table=(
|
|||||||
# Kevin Steves <ks@hp.se>
|
# Kevin Steves <ks@hp.se>
|
||||||
"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc-cc","cc:+O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DBN_DIV2W -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux-parisc1_1-cc","cc:+DA1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc11_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
|
"hpux-parisc1_1-cc","cc:+DA1.1 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-Wl,+s -ldld:MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc11_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
|
||||||
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2.o::::::::::::::void:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc2-cc","cc:+DA2.0 +DS2.0 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:".eval{my $asm=$parisc20_asm;$asm=~s/2W\./2\./;$asm=~s/:64/:32/;$asm}.":dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_32",
|
||||||
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc20_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
"hpux64-parisc2-cc","cc:+DD64 +O3 +Optrs_strongly_typed -Ae +ESlit -DB_ENDIAN -DMD32_XARRAY -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:${parisc20_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
|
||||||
|
|
||||||
# HP/UX IA-64 targets
|
# HP/UX IA-64 targets
|
||||||
@@ -342,20 +352,57 @@ my %table=(
|
|||||||
# throw in -D[BL]_ENDIAN, whichever appropriate...
|
# throw in -D[BL]_ENDIAN, whichever appropriate...
|
||||||
"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-generic32","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# It's believed that majority of ARM toolchains predefine appropriate -march.
|
|
||||||
# If you compiler does not, do complement config command line with one!
|
#######################################################################
|
||||||
|
# Note that -march is not among compiler options in below linux-armv4
|
||||||
|
# target line. Not specifying one is intentional to give you choice to:
|
||||||
|
#
|
||||||
|
# a) rely on your compiler default by not specifying one;
|
||||||
|
# b) specify your target platform explicitly for optimal performance,
|
||||||
|
# e.g. -march=armv6 or -march=armv7-a;
|
||||||
|
# c) build "universal" binary that targets *range* of platforms by
|
||||||
|
# specifying minimum and maximum supported architecture;
|
||||||
|
#
|
||||||
|
# As for c) option. It actually makes no sense to specify maximum to be
|
||||||
|
# less than ARMv7, because it's the least requirement for run-time
|
||||||
|
# switch between platform-specific code paths. And without run-time
|
||||||
|
# switch performance would be equivalent to one for minimum. Secondly,
|
||||||
|
# there are some natural limitations that you'd have to accept and
|
||||||
|
# respect. Most notably you can *not* build "universal" binary for
|
||||||
|
# big-endian platform. This is because ARMv7 processor always picks
|
||||||
|
# instructions in little-endian order. Another similar limitation is
|
||||||
|
# that -mthumb can't "cross" -march=armv6t2 boundary, because that's
|
||||||
|
# where it became Thumb-2. Well, this limitation is a bit artificial,
|
||||||
|
# because it's not really impossible, but it's deemed too tricky to
|
||||||
|
# support. And of course you have to be sure that your binutils are
|
||||||
|
# actually up to the task of handling maximum target platform. With all
|
||||||
|
# this in mind here is an example of how to configure "universal" build:
|
||||||
|
#
|
||||||
|
# ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
|
||||||
|
#
|
||||||
"linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-armv4", "gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"linux-aarch64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
# Configure script adds minimally required -march for assembly support,
|
||||||
|
# if no -march was specified at command line. mips32 and mips64 below
|
||||||
|
# refer to contemporary MIPS Architecture specifications, MIPS32 and
|
||||||
|
# MIPS64, rather than to kernel bitness.
|
||||||
|
"linux-mips32", "gcc:-mabi=32 -DTERMIO -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"linux-mips64", "gcc:-mabi=n32 -DTERMIO -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
|
||||||
|
"linux64-mips64", "gcc:-mabi=64 -DTERMIO -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
#### IA-32 targets...
|
#### IA-32 targets...
|
||||||
"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia32-icc", "icc:-DL_ENDIAN -DTERMIO -O2::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out",
|
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out",
|
||||||
####
|
####
|
||||||
"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
|
"linux-ppc64le","gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::",
|
||||||
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
|
"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -DTERMIO -O3 -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
|
"linux-x86_64-icc", "icc:-DL_ENDIAN -DTERMIO -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
|
"linux-x32", "gcc:-mx32 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32:",
|
||||||
"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
"linux64-s390x", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||||
#### So called "highgprs" target for z/Architecture CPUs
|
#### So called "highgprs" target for z/Architecture CPUs
|
||||||
# "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
|
# "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
|
||||||
@@ -397,11 +444,15 @@ my %table=(
|
|||||||
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||||
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||||
|
#
|
||||||
|
# TI_CGT_C6000_7.3.x is a requirement
|
||||||
|
"linux-c64xplus","cl6x:--linux -ea=.s -eo=.o -mv6400+ -o2 -ox -ms -pden -DOPENSSL_SMALL_FOOTPRINT::-D_REENTRANT:::BN_LLONG:c64xpluscpuid.o:bn-c64xplus.o c64xplus-gf2m.o:::aes-c64xplus.o aes_cbc.o aes_ctr.o:::sha1-c64xplus.o sha256-c64xplus.o sha512-c64xplus.o::rc4-c64xplus.o:::::ghash-c64xplus.o::void:dlfcn:linux-shared:--pic:-z --sysv --shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):true",
|
||||||
|
|
||||||
# Android: linux-* but without -DTERMIO and pointers to headers and libs.
|
# Android: linux-* but without -DTERMIO and pointers to headers and libs.
|
||||||
"android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"android-armv7","gcc:-march=armv7-a -mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"android-armv7","gcc:-march=armv7-a -mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"android-mips","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### *BSD [do see comment about ${BSDthreads} above!]
|
#### *BSD [do see comment about ${BSDthreads} above!]
|
||||||
"BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
@@ -423,18 +474,11 @@ my %table=(
|
|||||||
"nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
"nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
|
|
||||||
# NCR MP-RAS UNIX ver 02.03.01
|
|
||||||
"ncr-scde","cc:-O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw::(unknown)::-lsocket -lnsl -lc89:${x86_gcc_des} ${x86_gcc_opts}:::",
|
|
||||||
|
|
||||||
# QNX
|
# QNX
|
||||||
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
|
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:",
|
||||||
"QNX6", "gcc:-DTERMIOS::::-lsocket::${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"QNX6", "gcc:-DTERMIOS::::-lsocket::${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"QNX6-i386", "gcc:-DL_ENDIAN -DTERMIOS -O2 -Wall::::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"QNX6-i386", "gcc:-DL_ENDIAN -DTERMIOS -O2 -Wall::::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# BeOS
|
|
||||||
"beos-x86-r5", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lnet:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC -DPIC:-shared:.so",
|
|
||||||
"beos-x86-bone", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lbind -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC:-shared:.so",
|
|
||||||
|
|
||||||
#### SCO/Caldera targets.
|
#### SCO/Caldera targets.
|
||||||
#
|
#
|
||||||
# Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
|
# Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc.
|
||||||
@@ -449,57 +493,20 @@ my %table=(
|
|||||||
# UnixWare 2.0x fails destest with -O.
|
# UnixWare 2.0x fails destest with -O.
|
||||||
"unixware-2.0","cc:-DFILIO_H -DNO_STRINGS_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
"unixware-2.0","cc:-DFILIO_H -DNO_STRINGS_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
"unixware-2.1","cc:-O -DFILIO_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
"unixware-2.1","cc:-O -DFILIO_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
"unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}-1:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall::-D_REENTRANT::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall::-D_REENTRANT::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}-1:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the SCO cc.
|
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the SCO cc.
|
||||||
"sco5-cc", "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"sco5-cc", "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}-1:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}-1:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### IBM's AIX.
|
#### IBM's AIX.
|
||||||
"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
|
"aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
|
||||||
"aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X32",
|
"aix-gcc", "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:$ppc32_asm:aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X32",
|
||||||
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
|
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:$ppc64_asm:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
|
||||||
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
|
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
|
||||||
# at build time. $OBJECT_MODE is respected at ./config stage!
|
# at build time. $OBJECT_MODE is respected at ./config stage!
|
||||||
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:$ppc32_asm:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:$ppc64_asm:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
||||||
|
|
||||||
#
|
|
||||||
# Cray T90 and similar (SDSC)
|
|
||||||
# It's Big-endian, but the algorithms work properly when B_ENDIAN is NOT
|
|
||||||
# defined. The T90 ints and longs are 8 bytes long, and apparently the
|
|
||||||
# B_ENDIAN code assumes 4 byte ints. Fortunately, the non-B_ENDIAN and
|
|
||||||
# non L_ENDIAN code aligns the bytes in each word correctly.
|
|
||||||
#
|
|
||||||
# The BIT_FIELD_LIMITS define is to avoid two fatal compiler errors:
|
|
||||||
#'Taking the address of a bit field is not allowed. '
|
|
||||||
#'An expression with bit field exists as the operand of "sizeof" '
|
|
||||||
# (written by Wayne Schroeder <schroede@SDSC.EDU>)
|
|
||||||
#
|
|
||||||
# j90 is considered the base machine type for unicos machines,
|
|
||||||
# so this configuration is now called "cray-j90" ...
|
|
||||||
"cray-j90", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::(unknown):CRAY::SIXTY_FOUR_BIT_LONG DES_INT:::",
|
|
||||||
|
|
||||||
#
|
|
||||||
# Cray T3E (Research Center Juelich, beckman@acl.lanl.gov)
|
|
||||||
#
|
|
||||||
# The BIT_FIELD_LIMITS define was written for the C90 (it seems). I added
|
|
||||||
# another use. Basically, the problem is that the T3E uses some bit fields
|
|
||||||
# for some st_addr stuff, and then sizeof and address-of fails
|
|
||||||
# I could not use the ams/alpha.o option because the Cray assembler, 'cam'
|
|
||||||
# did not like it.
|
|
||||||
"cray-t3e", "cc: -DBIT_FIELD_LIMITS -DTERMIOS::(unknown):CRAY::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:::",
|
|
||||||
|
|
||||||
# DGUX, 88100.
|
|
||||||
"dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):::RC4_INDEX DES_UNROLL:::",
|
|
||||||
"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::-lnsl -lsocket:RC4_INDEX DES_UNROLL:::",
|
|
||||||
"dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown)::-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
|
||||||
|
|
||||||
# Sinix/ReliantUNIX RM400
|
|
||||||
# NOTE: The CDS++ Compiler up to V2.0Bsomething has the IRIX_CC_BUG optimizer problem. Better use -g */
|
|
||||||
"ReliantUNIX","cc:-KPIC -g -DTERMIOS -DB_ENDIAN::-Kthread:SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:BN_LLONG DES_PTR DES_RISC2 DES_UNROLL BF_PTR:${no_asm}:dlfcn:reliantunix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"SINIX","cc:-O::(unknown):SNI:-lsocket -lnsl -lc -L/usr/ucblib -lucb:RC4_INDEX RC4_CHAR:::",
|
|
||||||
"SINIX-N","/usr/ucb/cc:-O2 -misaligned::(unknown)::-lucb:RC4_INDEX RC4_CHAR:::",
|
|
||||||
|
|
||||||
# SIEMENS BS2000/OSD: an EBCDIC-based mainframe
|
# SIEMENS BS2000/OSD: an EBCDIC-based mainframe
|
||||||
"BS2000-OSD","c89:-O -XLLML -XLLMK -XL -DB_ENDIAN -DTERMIOS -DCHARSET_EBCDIC::(unknown)::-lsocket -lnsl:THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
|
"BS2000-OSD","c89:-O -XLLML -XLLMK -XL -DB_ENDIAN -DTERMIOS -DCHARSET_EBCDIC::(unknown)::-lsocket -lnsl:THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
|
||||||
@@ -513,15 +520,15 @@ my %table=(
|
|||||||
# Visual C targets
|
# Visual C targets
|
||||||
#
|
#
|
||||||
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
|
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
|
||||||
"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
||||||
"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
||||||
"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
|
||||||
"debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
"debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
|
||||||
# x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
|
# x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
|
||||||
# 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
|
# 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
|
||||||
"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
||||||
# Unified CE target
|
# Unified CE target
|
||||||
"debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
"debug-VC-WIN32","cl:-W3 -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
|
||||||
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
|
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
|
||||||
|
|
||||||
# Borland C++ 4.5
|
# Borland C++ 4.5
|
||||||
@@ -544,6 +551,7 @@ my %table=(
|
|||||||
# Cygwin
|
# Cygwin
|
||||||
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
|
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
|
||||||
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:coff:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:coff:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||||
|
"Cygwin-x86_64", "gcc:-DTERMIOS -DL_ENDIAN -O3 -Wall:::CYGWIN32::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:mingw64:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||||
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||||
|
|
||||||
# NetWare from David Ward (dsward@novell.com)
|
# NetWare from David Ward (dsward@novell.com)
|
||||||
@@ -570,23 +578,35 @@ my %table=(
|
|||||||
# K&R C is no longer supported; you need gcc on old Ultrix installations
|
# K&R C is no longer supported; you need gcc on old Ultrix installations
|
||||||
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
|
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
|
||||||
|
|
||||||
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
|
##### MacOS X (a.k.a. Darwin) setup
|
||||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
|
|
||||||
"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-ppc-cc","cc:-arch ppc -O3 -DB_ENDIAN -Wa,-force_cpusubtype_ALL::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"debug-darwin64-x86_64-cc","cc:-arch x86_64 -ggdb -g2 -O0 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
|
"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
# iPhoneOS/iOS
|
# iPhoneOS/iOS
|
||||||
"iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
#
|
||||||
|
# It takes three prior-set environment variables to make it work:
|
||||||
|
#
|
||||||
|
# CROSS_COMPILE=/where/toolchain/is/usr/bin/ [note ending slash]
|
||||||
|
# CROSS_TOP=/where/SDKs/are
|
||||||
|
# CROSS_SDK=iPhoneOSx.y.sdk
|
||||||
|
#
|
||||||
|
# Exact paths vary with Xcode releases, but for couple of last ones
|
||||||
|
# they would look like this:
|
||||||
|
#
|
||||||
|
# CROSS_COMPILE=`xcode-select --print-path`/Toolchains/XcodeDefault.xctoolchain/usr/bin/
|
||||||
|
# CROSS_TOP=`xcode-select --print-path`/Platforms/iPhoneOS.platform/Developer
|
||||||
|
# CROSS_SDK=iPhoneOS7.0.sdk
|
||||||
|
#
|
||||||
|
"iphoneos-cross","cc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
|
"ios64-cross","cc:-O3 -arch arm64 -mios-version-min=7.0.0 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR -RC4_CHUNK DES_INT DES_UNROLL -BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
||||||
|
|
||||||
##### A/UX
|
##### A/UX
|
||||||
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
||||||
|
|
||||||
##### Sony NEWS-OS 4.x
|
|
||||||
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
|
|
||||||
|
|
||||||
##### GNU Hurd
|
##### GNU Hurd
|
||||||
"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
||||||
|
|
||||||
@@ -603,9 +623,6 @@ my %table=(
|
|||||||
"vxworks-simlinux","ccpentium:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DL_ENDIAN -DCPU=SIMLINUX -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/h -I\$(WIND_BASE)/target/h/wrn/coreip -DOPENSSL_NO_HW_PADLOCK:::VXWORKS:-r::${no_asm}::::::ranlibpentium:",
|
"vxworks-simlinux","ccpentium:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DL_ENDIAN -DCPU=SIMLINUX -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/h -I\$(WIND_BASE)/target/h/wrn/coreip -DOPENSSL_NO_HW_PADLOCK:::VXWORKS:-r::${no_asm}::::::ranlibpentium:",
|
||||||
"vxworks-mips","ccmips:-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip::-D_REENTRANT:VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon::${mips32_asm}:o32::::::ranlibmips:",
|
"vxworks-mips","ccmips:-mrtp -mips2 -O -G 0 -B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -D_VSB_CONFIG_FILE=\"\$(WIND_BASE)/target/lib/h/config/vsbConfig.h\" -DCPU=MIPS32 -msoft-float -mno-branch-likely -DTOOL_FAMILY=gnu -DTOOL=gnu -fno-builtin -fno-defer-pop -DNO_STRINGS_H -I\$(WIND_BASE)/target/usr/h -I\$(WIND_BASE)/target/h/wrn/coreip::-D_REENTRANT:VXWORKS:-Wl,--defsym,__wrs_rtp_base=0xe0000000 -L \$(WIND_BASE)/target/usr/lib/mips/MIPSI32/sfcommon::${mips32_asm}:o32::::::ranlibmips:",
|
||||||
|
|
||||||
##### Compaq Non-Stop Kernel (Tandem)
|
|
||||||
"tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
|
|
||||||
|
|
||||||
# uClinux
|
# uClinux
|
||||||
"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):BN_LLONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||||
"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||||
@@ -629,6 +646,7 @@ my $idx_lflags = $idx++;
|
|||||||
my $idx_bn_ops = $idx++;
|
my $idx_bn_ops = $idx++;
|
||||||
my $idx_cpuid_obj = $idx++;
|
my $idx_cpuid_obj = $idx++;
|
||||||
my $idx_bn_obj = $idx++;
|
my $idx_bn_obj = $idx++;
|
||||||
|
my $idx_ec_obj = $idx++;
|
||||||
my $idx_des_obj = $idx++;
|
my $idx_des_obj = $idx++;
|
||||||
my $idx_aes_obj = $idx++;
|
my $idx_aes_obj = $idx++;
|
||||||
my $idx_bf_obj = $idx++;
|
my $idx_bf_obj = $idx++;
|
||||||
@@ -660,8 +678,6 @@ my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
|
|||||||
my $cross_compile_prefix="";
|
my $cross_compile_prefix="";
|
||||||
my $fipslibdir="/usr/local/ssl/fips-2.0/lib/";
|
my $fipslibdir="/usr/local/ssl/fips-2.0/lib/";
|
||||||
my $nofipscanistercheck=0;
|
my $nofipscanistercheck=0;
|
||||||
my $fipscanisterinternal="n";
|
|
||||||
my $fipscanisteronly = 0;
|
|
||||||
my $baseaddr="0xFB00000";
|
my $baseaddr="0xFB00000";
|
||||||
my $no_threads=0;
|
my $no_threads=0;
|
||||||
my $threads=0;
|
my $threads=0;
|
||||||
@@ -702,37 +718,26 @@ my $fips=0;
|
|||||||
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
|
||||||
|
|
||||||
my %disabled = ( # "what" => "comment" [or special keyword "experimental"]
|
my %disabled = ( # "what" => "comment" [or special keyword "experimental"]
|
||||||
|
"deprecated" => "default",
|
||||||
"ec_nistp_64_gcc_128" => "default",
|
"ec_nistp_64_gcc_128" => "default",
|
||||||
"gmp" => "default",
|
"gmp" => "default",
|
||||||
"jpake" => "experimental",
|
"jpake" => "experimental",
|
||||||
"md2" => "default",
|
"md2" => "default",
|
||||||
"rc5" => "default",
|
"rc5" => "default",
|
||||||
"rfc3779" => "default",
|
"rfc3779" => "default",
|
||||||
|
"sctp" => "default",
|
||||||
"shared" => "default",
|
"shared" => "default",
|
||||||
|
"ssl-trace" => "default",
|
||||||
"store" => "experimental",
|
"store" => "experimental",
|
||||||
|
"unit-test" => "default",
|
||||||
"zlib" => "default",
|
"zlib" => "default",
|
||||||
"zlib-dynamic" => "default"
|
"zlib-dynamic" => "default"
|
||||||
);
|
);
|
||||||
my @experimental = ();
|
my @experimental = ();
|
||||||
|
|
||||||
# If ssl directory missing assume truncated FIPS tarball
|
|
||||||
if (!-d "ssl")
|
|
||||||
{
|
|
||||||
print STDERR "Auto Configuring fipsonly\n";
|
|
||||||
$fips = 1;
|
|
||||||
$nofipscanistercheck = 1;
|
|
||||||
$fipslibdir="";
|
|
||||||
$fipscanisterinternal="y";
|
|
||||||
$fipscanisteronly = 2;
|
|
||||||
if (! -f "crypto/bn/bn_gf2m.c" )
|
|
||||||
{
|
|
||||||
$disabled{ec2m} = "forced";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# This is what $depflags will look like with the above defaults
|
# This is what $depflags will look like with the above defaults
|
||||||
# (we need this to see if we should advise the user to run "make depend"):
|
# (we need this to see if we should advise the user to run "make depend"):
|
||||||
my $default_depflags = " -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE";
|
my $default_depflags = " -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST";
|
||||||
|
|
||||||
# Explicit "no-..." options will be collected in %disabled along with the defaults.
|
# Explicit "no-..." options will be collected in %disabled along with the defaults.
|
||||||
# To remove something from %disabled, use "enable-foo" (unless it's experimental).
|
# To remove something from %disabled, use "enable-foo" (unless it's experimental).
|
||||||
@@ -790,6 +795,7 @@ PROCESS_ARGS:
|
|||||||
|
|
||||||
# rewrite some options in "enable-..." form
|
# rewrite some options in "enable-..." form
|
||||||
s /^-?-?shared$/enable-shared/;
|
s /^-?-?shared$/enable-shared/;
|
||||||
|
s /^sctp$/enable-sctp/;
|
||||||
s /^threads$/enable-threads/;
|
s /^threads$/enable-threads/;
|
||||||
s /^zlib$/enable-zlib/;
|
s /^zlib$/enable-zlib/;
|
||||||
s /^zlib-dynamic$/enable-zlib-dynamic/;
|
s /^zlib-dynamic$/enable-zlib-dynamic/;
|
||||||
@@ -800,13 +806,17 @@ PROCESS_ARGS:
|
|||||||
{
|
{
|
||||||
if ($1 eq "ssl")
|
if ($1 eq "ssl")
|
||||||
{
|
{
|
||||||
$disabled{"ssl2"} = "option(ssl)";
|
|
||||||
$disabled{"ssl3"} = "option(ssl)";
|
$disabled{"ssl3"} = "option(ssl)";
|
||||||
}
|
}
|
||||||
elsif ($1 eq "tls")
|
elsif ($1 eq "tls")
|
||||||
{
|
{
|
||||||
$disabled{"tls1"} = "option(tls)"
|
$disabled{"tls1"} = "option(tls)"
|
||||||
}
|
}
|
||||||
|
elsif ($1 eq "ssl3-method")
|
||||||
|
{
|
||||||
|
$disabled{"ssl3-method"} = "option(ssl)";
|
||||||
|
$disabled{"ssl3"} = "option(ssl)";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$disabled{$1} = "option";
|
$disabled{$1} = "option";
|
||||||
@@ -874,44 +884,9 @@ PROCESS_ARGS:
|
|||||||
$fips = 1;
|
$fips = 1;
|
||||||
$nofipscanistercheck = 1;
|
$nofipscanistercheck = 1;
|
||||||
}
|
}
|
||||||
elsif (/^fipscheck$/)
|
|
||||||
{
|
|
||||||
if ($fipscanisteronly != 2)
|
|
||||||
{
|
|
||||||
print STDERR <<"EOF";
|
|
||||||
ERROR: FIPS not autodetected. Not running from restricted tarball??
|
|
||||||
EOF
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elsif (/^fipscanisteronly$/)
|
|
||||||
{
|
|
||||||
$fips = 1;
|
|
||||||
$nofipscanistercheck = 1;
|
|
||||||
$fipslibdir="";
|
|
||||||
$fipscanisterinternal="y";
|
|
||||||
$fipscanisteronly = 1;
|
|
||||||
}
|
|
||||||
elsif (/^fipscanisterbuild$/)
|
|
||||||
{
|
|
||||||
$fips = 1;
|
|
||||||
$nofipscanistercheck = 1;
|
|
||||||
$fipslibdir="";
|
|
||||||
$fipscanisterinternal="y";
|
|
||||||
$fipscanisteronly = 1;
|
|
||||||
}
|
|
||||||
elsif (/^[-+]/)
|
elsif (/^[-+]/)
|
||||||
{
|
{
|
||||||
if (/^-[lL](.*)$/ or /^-Wl,/)
|
if (/^--prefix=(.*)$/)
|
||||||
{
|
|
||||||
$libs.=$_." ";
|
|
||||||
}
|
|
||||||
elsif (/^-[^-]/ or /^\+/)
|
|
||||||
{
|
|
||||||
$_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
|
|
||||||
$flags.=$_." ";
|
|
||||||
}
|
|
||||||
elsif (/^--prefix=(.*)$/)
|
|
||||||
{
|
{
|
||||||
$prefix=$1;
|
$prefix=$1;
|
||||||
}
|
}
|
||||||
@@ -951,10 +926,14 @@ EOF
|
|||||||
{
|
{
|
||||||
$cross_compile_prefix=$1;
|
$cross_compile_prefix=$1;
|
||||||
}
|
}
|
||||||
else
|
elsif (/^-[lL](.*)$/ or /^-Wl,/)
|
||||||
{
|
{
|
||||||
print STDERR $usage;
|
$libs.=$_." ";
|
||||||
exit(1);
|
}
|
||||||
|
else # common if (/^[-+]/), just pass down...
|
||||||
|
{
|
||||||
|
$_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei;
|
||||||
|
$flags.=$_." ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($_ =~ /^([^:]+):(.+)$/)
|
elsif ($_ =~ /^([^:]+):(.+)$/)
|
||||||
@@ -1015,12 +994,6 @@ if (defined($disabled{"ec"}))
|
|||||||
$disabled{"ecdh"} = "forced";
|
$disabled{"ecdh"} = "forced";
|
||||||
}
|
}
|
||||||
|
|
||||||
# SSL 2.0 requires MD5 and RSA
|
|
||||||
if (defined($disabled{"md5"}) || defined($disabled{"rsa"}))
|
|
||||||
{
|
|
||||||
$disabled{"ssl2"} = "forced";
|
|
||||||
}
|
|
||||||
|
|
||||||
# SSL 3.0 and TLS requires MD5 and SHA and either RSA or DSA+DH
|
# SSL 3.0 and TLS requires MD5 and SHA and either RSA or DSA+DH
|
||||||
if (defined($disabled{"md5"}) || defined($disabled{"sha"})
|
if (defined($disabled{"md5"}) || defined($disabled{"sha"})
|
||||||
|| (defined($disabled{"rsa"})
|
|| (defined($disabled{"rsa"})
|
||||||
@@ -1041,10 +1014,11 @@ if (defined($disabled{"ec"}) || defined($disabled{"dsa"})
|
|||||||
$disabled{"gost"} = "forced";
|
$disabled{"gost"} = "forced";
|
||||||
}
|
}
|
||||||
|
|
||||||
# SRP requires TLSEXT
|
# SRP and HEARTBEATS require TLSEXT
|
||||||
if (defined($disabled{"tlsext"}))
|
if (defined($disabled{"tlsext"}))
|
||||||
{
|
{
|
||||||
$disabled{"srp"} = "forced";
|
$disabled{"srp"} = "forced";
|
||||||
|
$disabled{"heartbeats"} = "forced";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($target eq "TABLE") {
|
if ($target eq "TABLE") {
|
||||||
@@ -1120,6 +1094,8 @@ foreach (sort (keys %disabled))
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
push @skip, $algo;
|
push @skip, $algo;
|
||||||
|
# fix-up crypto/directory name(s)
|
||||||
|
@skip[$#skip]="whrlpool" if $algo eq "whirlpool";
|
||||||
print " (skip dir)";
|
print " (skip dir)";
|
||||||
|
|
||||||
$depflags .= " -DOPENSSL_NO_$ALGO";
|
$depflags .= " -DOPENSSL_NO_$ALGO";
|
||||||
@@ -1201,6 +1177,7 @@ my $lflags = $fields[$idx_lflags];
|
|||||||
my $bn_ops = $fields[$idx_bn_ops];
|
my $bn_ops = $fields[$idx_bn_ops];
|
||||||
my $cpuid_obj = $fields[$idx_cpuid_obj];
|
my $cpuid_obj = $fields[$idx_cpuid_obj];
|
||||||
my $bn_obj = $fields[$idx_bn_obj];
|
my $bn_obj = $fields[$idx_bn_obj];
|
||||||
|
my $ec_obj = $fields[$idx_ec_obj];
|
||||||
my $des_obj = $fields[$idx_des_obj];
|
my $des_obj = $fields[$idx_des_obj];
|
||||||
my $aes_obj = $fields[$idx_aes_obj];
|
my $aes_obj = $fields[$idx_aes_obj];
|
||||||
my $bf_obj = $fields[$idx_bf_obj];
|
my $bf_obj = $fields[$idx_bf_obj];
|
||||||
@@ -1246,6 +1223,12 @@ if ($target =~ /^mingw/ && `$cc --target-help 2>&1` !~ m/\-mno\-cygwin/m)
|
|||||||
$shared_ldflag =~ s/\-mno\-cygwin\s*//;
|
$shared_ldflag =~ s/\-mno\-cygwin\s*//;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($target =~ /linux.*\-mips/ && !$no_asm && $flags !~ /\-m(ips|arch=)/) {
|
||||||
|
# minimally required architecture flags for assembly modules
|
||||||
|
$cflags="-mips2 $cflags" if ($target =~ /mips32/);
|
||||||
|
$cflags="-mips3 $cflags" if ($target =~ /mips64/);
|
||||||
|
}
|
||||||
|
|
||||||
my $no_shared_warn=0;
|
my $no_shared_warn=0;
|
||||||
my $no_user_cflags=0;
|
my $no_user_cflags=0;
|
||||||
|
|
||||||
@@ -1372,7 +1355,7 @@ $lflags="$libs$lflags" if ($libs ne "");
|
|||||||
|
|
||||||
if ($no_asm)
|
if ($no_asm)
|
||||||
{
|
{
|
||||||
$cpuid_obj=$bn_obj=
|
$cpuid_obj=$bn_obj=$ec_obj=
|
||||||
$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=$cmll_obj=
|
$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=$cmll_obj=
|
||||||
$modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj=$engines_obj="";
|
$modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj=$engines_obj="";
|
||||||
$cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
$cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
||||||
@@ -1414,6 +1397,12 @@ if ($zlib)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#Build the library with OPENSSL_USE_DEPRECATED if deprecation is not disabled
|
||||||
|
if(!defined($disabled{"deprecated"}))
|
||||||
|
{
|
||||||
|
$cflags = "-DOPENSSL_USE_DEPRECATED $cflags";
|
||||||
|
}
|
||||||
|
|
||||||
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
|
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
|
||||||
my $shared_mark = "";
|
my $shared_mark = "";
|
||||||
if ($shared_target eq "")
|
if ($shared_target eq "")
|
||||||
@@ -1459,6 +1448,7 @@ if ($target =~ /\-icc$/) # Intel C compiler
|
|||||||
}
|
}
|
||||||
if ($iccver>=8)
|
if ($iccver>=8)
|
||||||
{
|
{
|
||||||
|
$cflags=~s/\-KPIC/-fPIC/;
|
||||||
# Eliminate unnecessary dependency from libirc.a. This is
|
# Eliminate unnecessary dependency from libirc.a. This is
|
||||||
# essential for shared library support, as otherwise
|
# essential for shared library support, as otherwise
|
||||||
# apps/openssl can end up in endless loop upon startup...
|
# apps/openssl can end up in endless loop upon startup...
|
||||||
@@ -1466,12 +1456,17 @@ if ($target =~ /\-icc$/) # Intel C compiler
|
|||||||
}
|
}
|
||||||
if ($iccver>=9)
|
if ($iccver>=9)
|
||||||
{
|
{
|
||||||
$cflags.=" -i-static";
|
$lflags.=" -i-static";
|
||||||
$cflags=~s/\-no_cpprt/-no-cpprt/;
|
$lflags=~s/\-no_cpprt/-no-cpprt/;
|
||||||
}
|
}
|
||||||
if ($iccver>=10)
|
if ($iccver>=10)
|
||||||
{
|
{
|
||||||
$cflags=~s/\-i\-static/-static-intel/;
|
$lflags=~s/\-i\-static/-static-intel/;
|
||||||
|
}
|
||||||
|
if ($iccver>=11)
|
||||||
|
{
|
||||||
|
$cflags.=" -no-intel-extensions"; # disable Cilk
|
||||||
|
$lflags=~s/\-no\-cpprt/-no-cxxlib/;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1518,11 +1513,6 @@ $cflags.=" -DOPENSSL_BN_ASM_GF2m" if ($bn_obj =~ /-gf2m/);
|
|||||||
if ($fips)
|
if ($fips)
|
||||||
{
|
{
|
||||||
$openssl_other_defines.="#define OPENSSL_FIPS\n";
|
$openssl_other_defines.="#define OPENSSL_FIPS\n";
|
||||||
if ($fipscanisterinternal eq "y")
|
|
||||||
{
|
|
||||||
$openssl_other_defines.="#define OPENSSL_FIPSCANISTER\n";
|
|
||||||
$cflags = "-DOPENSSL_FIPSCANISTER $cflags";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$cpuid_obj="mem_clr.o" unless ($cpuid_obj =~ /\.o$/);
|
$cpuid_obj="mem_clr.o" unless ($cpuid_obj =~ /\.o$/);
|
||||||
@@ -1556,12 +1546,13 @@ if ($rmd160_obj =~ /\.o$/)
|
|||||||
}
|
}
|
||||||
if ($aes_obj =~ /\.o$/)
|
if ($aes_obj =~ /\.o$/)
|
||||||
{
|
{
|
||||||
$cflags.=" -DAES_ASM";
|
$cflags.=" -DAES_ASM" if ($aes_obj =~ m/\baes\-/);;
|
||||||
# aes_ctr.o is not a real file, only indication that assembler
|
# aes-ctr.o is not a real file, only indication that assembler
|
||||||
# module implements AES_ctr32_encrypt...
|
# module implements AES_ctr32_encrypt...
|
||||||
$cflags.=" -DAES_CTR_ASM" if ($aes_obj =~ s/\s*aes_ctr\.o//);
|
$cflags.=" -DAES_CTR_ASM" if ($aes_obj =~ s/\s*aes\-ctr\.o//);
|
||||||
|
# aes-xts.o indicates presence of AES_xts_[en|de]crypt...
|
||||||
|
$cflags.=" -DAES_XTS_ASM" if ($aes_obj =~ s/\s*aes\-xts\.o//);
|
||||||
$aes_obj =~ s/\s*(vpaes|aesni)\-x86\.o//g if ($no_sse2);
|
$aes_obj =~ s/\s*(vpaes|aesni)\-x86\.o//g if ($no_sse2);
|
||||||
$aes_obj =~ s/\s*(vp|bs)aes-\w*\.o//g if ($fipscanisterinternal eq "y");
|
|
||||||
$cflags.=" -DVPAES_ASM" if ($aes_obj =~ m/vpaes/);
|
$cflags.=" -DVPAES_ASM" if ($aes_obj =~ m/vpaes/);
|
||||||
$cflags.=" -DBSAES_ASM" if ($aes_obj =~ m/bsaes/);
|
$cflags.=" -DBSAES_ASM" if ($aes_obj =~ m/bsaes/);
|
||||||
}
|
}
|
||||||
@@ -1569,7 +1560,7 @@ else {
|
|||||||
$aes_obj=$aes_enc;
|
$aes_obj=$aes_enc;
|
||||||
}
|
}
|
||||||
$wp_obj="" if ($wp_obj =~ /mmx/ && $processor eq "386");
|
$wp_obj="" if ($wp_obj =~ /mmx/ && $processor eq "386");
|
||||||
if ($wp_obj =~ /\.o$/)
|
if ($wp_obj =~ /\.o$/ && !$disabled{"whirlpool"})
|
||||||
{
|
{
|
||||||
$cflags.=" -DWHIRLPOOL_ASM";
|
$cflags.=" -DWHIRLPOOL_ASM";
|
||||||
}
|
}
|
||||||
@@ -1577,10 +1568,14 @@ else {
|
|||||||
$wp_obj="wp_block.o";
|
$wp_obj="wp_block.o";
|
||||||
}
|
}
|
||||||
$cmll_obj=$cmll_enc unless ($cmll_obj =~ /.o$/);
|
$cmll_obj=$cmll_enc unless ($cmll_obj =~ /.o$/);
|
||||||
if ($modes_obj =~ /ghash/)
|
if ($modes_obj =~ /ghash\-/)
|
||||||
{
|
{
|
||||||
$cflags.=" -DGHASH_ASM";
|
$cflags.=" -DGHASH_ASM";
|
||||||
}
|
}
|
||||||
|
if ($ec_obj =~ /ecp_nistz256/)
|
||||||
|
{
|
||||||
|
$cflags.=" -DECP_NISTZ256_ASM";
|
||||||
|
}
|
||||||
|
|
||||||
# "Stringify" the C flags string. This permits it to be made part of a string
|
# "Stringify" the C flags string. This permits it to be made part of a string
|
||||||
# and works as well on command lines.
|
# and works as well on command lines.
|
||||||
@@ -1621,42 +1616,19 @@ if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
|
|||||||
if ($strict_warnings)
|
if ($strict_warnings)
|
||||||
{
|
{
|
||||||
my $wopt;
|
my $wopt;
|
||||||
die "ERROR --strict-warnings requires gcc" unless ($cc =~ /gcc$/);
|
die "ERROR --strict-warnings requires gcc or clang" unless ($cc =~ /gcc$/ or $cc =~ /clang$/);
|
||||||
foreach $wopt (split /\s+/, $gcc_devteam_warn)
|
foreach $wopt (split /\s+/, $gcc_devteam_warn)
|
||||||
{
|
{
|
||||||
$cflags .= " $wopt" unless ($cflags =~ /$wopt/)
|
$cflags .= " $wopt" unless ($cflags =~ /$wopt/)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($fipscanisterinternal eq "y")
|
open(IN,"<Makefile.org") || die "unable to read Makefile.org:$!\n";
|
||||||
{
|
|
||||||
open(IN,"<fips/fips_auth.in") || die "can't open fips_auth.in";
|
|
||||||
open(OUT,">fips/fips_auth.h") || die "can't open fips_auth.h";
|
|
||||||
while(<IN>)
|
|
||||||
{
|
|
||||||
s/FIPS_AUTH_KEY.*$/FIPS_AUTH_KEY $fips_auth_key/ if defined $fips_auth_key;
|
|
||||||
s/FIPS_AUTH_CRYPTO_OFFICER.*$/FIPS_AUTH_CRYPTO_OFFICER $fips_auth_officer/ if defined $fips_auth_officer;
|
|
||||||
s/FIPS_AUTH_CRYPTO_USER.*$/FIPS_AUTH_CRYPTO_USER $fips_auth_user/ if defined $fips_auth_user;
|
|
||||||
print OUT $_;
|
|
||||||
}
|
|
||||||
close IN;
|
|
||||||
close OUT;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $mforg = $fipscanisteronly ? "Makefile.fips" : "Makefile.org";
|
|
||||||
|
|
||||||
open(IN,"<$mforg") || die "unable to read $mforg:$!\n";
|
|
||||||
unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";
|
unlink("$Makefile.new") || die "unable to remove old $Makefile.new:$!\n" if -e "$Makefile.new";
|
||||||
open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";
|
open(OUT,">$Makefile.new") || die "unable to create $Makefile.new:$!\n";
|
||||||
print OUT "### Generated automatically from $mforg by Configure.\n\n";
|
print OUT "### Generated automatically from Makefile.org by Configure.\n\n";
|
||||||
my $sdirs=0;
|
my $sdirs=0;
|
||||||
|
|
||||||
if ($fipscanisteronly)
|
|
||||||
{
|
|
||||||
$aes_obj =~ s/aesni-sha1-x86_64.o//;
|
|
||||||
$bn_obj =~ s/modexp512-x86_64.o//;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
chomp;
|
chomp;
|
||||||
@@ -1700,7 +1672,7 @@ while (<IN>)
|
|||||||
s/^CC=.*$/CC= $cc/;
|
s/^CC=.*$/CC= $cc/;
|
||||||
s/^AR=\s*ar/AR= $ar/;
|
s/^AR=\s*ar/AR= $ar/;
|
||||||
s/^RANLIB=.*/RANLIB= $ranlib/;
|
s/^RANLIB=.*/RANLIB= $ranlib/;
|
||||||
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
|
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc" || ($cc eq 'cc' && $target =~ /darwin/);
|
||||||
}
|
}
|
||||||
s/^CFLAG=.*$/CFLAG= $cflags/;
|
s/^CFLAG=.*$/CFLAG= $cflags/;
|
||||||
s/^DEPFLAG=.*$/DEPFLAG=$depflags/;
|
s/^DEPFLAG=.*$/DEPFLAG=$depflags/;
|
||||||
@@ -1709,6 +1681,7 @@ while (<IN>)
|
|||||||
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
||||||
s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
|
s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
|
||||||
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
||||||
|
s/^EC_ASM=.*$/EC_ASM= $ec_obj/;
|
||||||
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
||||||
s/^AES_ENC=.*$/AES_ENC= $aes_obj/;
|
s/^AES_ENC=.*$/AES_ENC= $aes_obj/;
|
||||||
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
||||||
@@ -1734,7 +1707,6 @@ while (<IN>)
|
|||||||
s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
|
s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
|
||||||
s/^SHARED_FIPS=.*/SHARED_FIPS=/;
|
s/^SHARED_FIPS=.*/SHARED_FIPS=/;
|
||||||
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
|
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
|
||||||
s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
|
|
||||||
s/^BASEADDR=.*/BASEADDR=$baseaddr/;
|
s/^BASEADDR=.*/BASEADDR=$baseaddr/;
|
||||||
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
||||||
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
|
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
|
||||||
@@ -1758,10 +1730,6 @@ while (<IN>)
|
|||||||
s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.\$(SHLIB_MAJOR).dylib .dylib/;
|
s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.\$(SHLIB_MAJOR).dylib .dylib/;
|
||||||
}
|
}
|
||||||
s/^SHARED_LDFLAGS=.*/SHARED_LDFLAGS=$shared_ldflag/;
|
s/^SHARED_LDFLAGS=.*/SHARED_LDFLAGS=$shared_ldflag/;
|
||||||
if ($fipscanisteronly && exists $disabled{"ec2m"})
|
|
||||||
{
|
|
||||||
next if (/ec2_/ || /bn_gf2m/);
|
|
||||||
}
|
|
||||||
print OUT $_."\n";
|
print OUT $_."\n";
|
||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
@@ -1774,6 +1742,7 @@ print "CFLAG =$cflags\n";
|
|||||||
print "EX_LIBS =$lflags\n";
|
print "EX_LIBS =$lflags\n";
|
||||||
print "CPUID_OBJ =$cpuid_obj\n";
|
print "CPUID_OBJ =$cpuid_obj\n";
|
||||||
print "BN_ASM =$bn_obj\n";
|
print "BN_ASM =$bn_obj\n";
|
||||||
|
print "EC_ASM =$ec_obj\n";
|
||||||
print "DES_ENC =$des_obj\n";
|
print "DES_ENC =$des_obj\n";
|
||||||
print "AES_ENC =$aes_obj\n";
|
print "AES_ENC =$aes_obj\n";
|
||||||
print "BF_ENC =$bf_obj\n";
|
print "BF_ENC =$bf_obj\n";
|
||||||
@@ -1847,6 +1816,9 @@ open(OUT,'>crypto/opensslconf.h.new') || die "unable to create crypto/opensslcon
|
|||||||
print OUT "/* opensslconf.h */\n";
|
print OUT "/* opensslconf.h */\n";
|
||||||
print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\n\n";
|
print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\n\n";
|
||||||
|
|
||||||
|
print OUT "#ifdef __cplusplus\n";
|
||||||
|
print OUT "extern \"C\" {\n";
|
||||||
|
print OUT "#endif\n";
|
||||||
print OUT "/* OpenSSL was configured with the following options: */\n";
|
print OUT "/* OpenSSL was configured with the following options: */\n";
|
||||||
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
|
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
|
||||||
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n# define OPENSSL_NO_$1\n# endif\n#endif/mg;
|
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n# define OPENSSL_NO_$1\n# endif\n#endif/mg;
|
||||||
@@ -1951,6 +1923,9 @@ while (<IN>)
|
|||||||
{ print OUT $_; }
|
{ print OUT $_; }
|
||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
|
print OUT "#ifdef __cplusplus\n";
|
||||||
|
print OUT "}\n";
|
||||||
|
print OUT "#endif\n";
|
||||||
close(OUT);
|
close(OUT);
|
||||||
rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
|
rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
|
||||||
rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
|
rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
|
||||||
@@ -1998,11 +1973,9 @@ EOF
|
|||||||
$make_targets .= " links" if $symlink;
|
$make_targets .= " links" if $symlink;
|
||||||
$make_targets .= " depend" if $depflags ne $default_depflags && $make_depend;
|
$make_targets .= " depend" if $depflags ne $default_depflags && $make_depend;
|
||||||
$make_targets .= " gentests" if $symlink;
|
$make_targets .= " gentests" if $symlink;
|
||||||
(system $make_command.$make_targets) == 0 or exit $?
|
(system $make_command.$make_targets) == 0 or die "make $make_targets failed"
|
||||||
if $make_targets ne "";
|
if $make_targets ne "";
|
||||||
if ( $fipscanisteronly )
|
if ( $perl =~ m@^/@) {
|
||||||
{}
|
|
||||||
elsif ( $perl =~ m@^/@) {
|
|
||||||
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
&dofile("tools/c_rehash",$perl,'^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
||||||
&dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
|
&dofile("apps/CA.pl",$perl,'^#!/', '#!%s');
|
||||||
} else {
|
} else {
|
||||||
@@ -2010,7 +1983,7 @@ EOF
|
|||||||
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
&dofile("tools/c_rehash",'/usr/local/bin/perl','^#!/', '#!%s','^my \$dir;$', 'my $dir = "' . $openssldir . '";', '^my \$prefix;$', 'my $prefix = "' . $prefix . '";');
|
||||||
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
|
&dofile("apps/CA.pl",'/usr/local/bin/perl','^#!/', '#!%s');
|
||||||
}
|
}
|
||||||
if ($depflags ne $default_depflags && !$make_depend && !$fipscanisteronly) {
|
if ($depflags ne $default_depflags && !$make_depend) {
|
||||||
print <<EOF;
|
print <<EOF;
|
||||||
|
|
||||||
Since you've disabled or enabled at least one algorithm, you need to do
|
Since you've disabled or enabled at least one algorithm, you need to do
|
||||||
@@ -2115,21 +2088,6 @@ libraries on this platform, they will at least look at it and try their best
|
|||||||
(but please first make sure you have tried with a current version of OpenSSL).
|
(but please first make sure you have tried with a current version of OpenSSL).
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
print <<\EOF if ($fipscanisterinternal eq "y");
|
|
||||||
|
|
||||||
WARNING: OpenSSL has been configured using unsupported option(s) to internally
|
|
||||||
generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
|
|
||||||
compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
|
|
||||||
OpenSSL FIPS Object Module as identified by the CMVP
|
|
||||||
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
|
|
||||||
140-2 validated software.
|
|
||||||
|
|
||||||
This is a test OpenSSL 2.0 FIPS module.
|
|
||||||
|
|
||||||
See the file README.FIPS for details of how to build a test library.
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
sub usage
|
sub usage
|
||||||
@@ -2202,12 +2160,12 @@ sub print_table_entry
|
|||||||
{
|
{
|
||||||
my $target = shift;
|
my $target = shift;
|
||||||
|
|
||||||
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $sys_id,my $lflags,
|
my ($cc, $cflags, $unistd, $thread_cflag, $sys_id, $lflags,
|
||||||
my $bn_ops,my $cpuid_obj,my $bn_obj,my $des_obj,my $aes_obj, my $bf_obj,
|
$bn_ops, $cpuid_obj, $bn_obj, $ec_obj, $des_obj, $aes_obj, $bf_obj,
|
||||||
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
|
$md5_obj, $sha1_obj, $cast_obj, $rc4_obj, $rmd160_obj,
|
||||||
my $rc5_obj,my $wp_obj,my $cmll_obj,my $modes_obj, my $engines_obj,
|
$rc5_obj, $wp_obj, $cmll_obj, $modes_obj, $engines_obj,
|
||||||
my $perlasm_scheme,my $dso_scheme,my $shared_target,my $shared_cflag,
|
$perlasm_scheme, $dso_scheme, $shared_target, $shared_cflag,
|
||||||
my $shared_ldflag,my $shared_extension,my $ranlib,my $arflags,my $multilib)=
|
$shared_ldflag, $shared_extension, $ranlib, $arflags, $multilib)=
|
||||||
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||||
|
|
||||||
print <<EOF
|
print <<EOF
|
||||||
@@ -2222,6 +2180,7 @@ sub print_table_entry
|
|||||||
\$bn_ops = $bn_ops
|
\$bn_ops = $bn_ops
|
||||||
\$cpuid_obj = $cpuid_obj
|
\$cpuid_obj = $cpuid_obj
|
||||||
\$bn_obj = $bn_obj
|
\$bn_obj = $bn_obj
|
||||||
|
\$ec_obj = $ec_obj
|
||||||
\$des_obj = $des_obj
|
\$des_obj = $des_obj
|
||||||
\$aes_obj = $aes_obj
|
\$aes_obj = $aes_obj
|
||||||
\$bf_obj = $bf_obj
|
\$bf_obj = $bf_obj
|
||||||
|
|||||||
133
FAQ
133
FAQ
@@ -10,6 +10,7 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why aren't tools like 'autoconf' and 'libtool' used?
|
* Why aren't tools like 'autoconf' and 'libtool' used?
|
||||||
* What is an 'engine' version?
|
* What is an 'engine' version?
|
||||||
* How do I check the authenticity of the OpenSSL distribution?
|
* How do I check the authenticity of the OpenSSL distribution?
|
||||||
|
* How does the versioning scheme work?
|
||||||
|
|
||||||
[LEGAL] Legal questions
|
[LEGAL] Legal questions
|
||||||
|
|
||||||
@@ -34,6 +35,7 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
||||||
* Why does OpenSSL set the authority key identifier extension incorrectly?
|
* Why does OpenSSL set the authority key identifier extension incorrectly?
|
||||||
* How can I set up a bundle of commercial root CA certificates?
|
* How can I set up a bundle of commercial root CA certificates?
|
||||||
|
* Some secure servers 'hang' with OpenSSL 1.0.1, is this a bug?
|
||||||
|
|
||||||
[BUILD] Questions about building and testing OpenSSL
|
[BUILD] Questions about building and testing OpenSSL
|
||||||
|
|
||||||
@@ -74,6 +76,7 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why does Valgrind complain about the use of uninitialized data?
|
* Why does Valgrind complain about the use of uninitialized data?
|
||||||
* Why doesn't a memory BIO work when a file does?
|
* Why doesn't a memory BIO work when a file does?
|
||||||
* Where are the declarations and implementations of d2i_X509() etc?
|
* Where are the declarations and implementations of d2i_X509() etc?
|
||||||
|
* When debugging I observe SIGILL during OpenSSL initialization: why?
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|
||||||
@@ -82,11 +85,10 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Which is the current version of OpenSSL?
|
* Which is the current version of OpenSSL?
|
||||||
|
|
||||||
The current version is available from <URL: http://www.openssl.org>.
|
The current version is available from <URL: http://www.openssl.org>.
|
||||||
OpenSSL 1.0.0e was released on Sep 6th, 2011.
|
|
||||||
|
|
||||||
In addition to the current stable release, you can also access daily
|
In addition to the current stable release, you can also access daily
|
||||||
snapshots of the OpenSSL development version at <URL:
|
snapshots of the OpenSSL development version at <URL:
|
||||||
ftp://ftp.openssl.org/snapshot/>, or get it by anonymous CVS access.
|
ftp://ftp.openssl.org/snapshot/>, or get it by anonymous Git access.
|
||||||
|
|
||||||
|
|
||||||
* Where is the documentation?
|
* Where is the documentation?
|
||||||
@@ -108,12 +110,9 @@ In addition, you can read the most current versions at
|
|||||||
<URL: http://www.openssl.org/docs/>. Note that the online documents refer
|
<URL: http://www.openssl.org/docs/>. Note that the online documents refer
|
||||||
to the very latest development versions of OpenSSL and may include features
|
to the very latest development versions of OpenSSL and may include features
|
||||||
not present in released versions. If in doubt refer to the documentation
|
not present in released versions. If in doubt refer to the documentation
|
||||||
that came with the version of OpenSSL you are using.
|
that came with the version of OpenSSL you are using. The pod format
|
||||||
|
documentation is included in each OpenSSL distribution under the docs
|
||||||
For information on parts of libcrypto that are not yet documented, you
|
directory.
|
||||||
might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's
|
|
||||||
predecessor, at <URL: http://www.columbia.edu/~ariel/ssleay/>. Much
|
|
||||||
of this still applies to OpenSSL.
|
|
||||||
|
|
||||||
There is some documentation about certificate extensions and PKCS#12
|
There is some documentation about certificate extensions and PKCS#12
|
||||||
in doc/openssl.txt
|
in doc/openssl.txt
|
||||||
@@ -134,7 +133,7 @@ OpenSSL. Information on the OpenSSL mailing lists is available from
|
|||||||
* Where can I get a compiled version of OpenSSL?
|
* Where can I get a compiled version of OpenSSL?
|
||||||
|
|
||||||
You can finder pointers to binary distributions in
|
You can finder pointers to binary distributions in
|
||||||
<URL: http://www.openssl.org/related/binaries.html> .
|
<URL: http://www.openssl.org/about/binaries.html> .
|
||||||
|
|
||||||
Some applications that use OpenSSL are distributed in binary form.
|
Some applications that use OpenSSL are distributed in binary form.
|
||||||
When using such an application, you don't need to install OpenSSL
|
When using such an application, you don't need to install OpenSSL
|
||||||
@@ -173,14 +172,31 @@ just do:
|
|||||||
|
|
||||||
pgp TARBALL.asc
|
pgp TARBALL.asc
|
||||||
|
|
||||||
|
* How does the versioning scheme work?
|
||||||
|
|
||||||
|
After the release of OpenSSL 1.0.0 the versioning scheme changed. Letter
|
||||||
|
releases (e.g. 1.0.1a) can only contain bug and security fixes and no
|
||||||
|
new features. Minor releases change the last number (e.g. 1.0.2) and
|
||||||
|
can contain new features that retain binary compatibility. Changes to
|
||||||
|
the middle number are considered major releases and neither source nor
|
||||||
|
binary compatibility is guaranteed.
|
||||||
|
|
||||||
|
Therefore the answer to the common question "when will feature X be
|
||||||
|
backported to OpenSSL 1.0.0/0.9.8?" is "never" but it could appear
|
||||||
|
in the next minor release.
|
||||||
|
|
||||||
|
* What happens when the letter release reaches z?
|
||||||
|
|
||||||
|
It was decided after the release of OpenSSL 0.9.8y the next version should
|
||||||
|
be 0.9.8za then 0.9.8zb and so on.
|
||||||
|
|
||||||
|
|
||||||
[LEGAL] =======================================================================
|
[LEGAL] =======================================================================
|
||||||
|
|
||||||
* Do I need patent licenses to use OpenSSL?
|
* Do I need patent licenses to use OpenSSL?
|
||||||
|
|
||||||
The patents section of the README file lists patents that may apply to
|
For information on intellectual property rights, please consult a lawyer.
|
||||||
you if you want to use OpenSSL. For information on intellectual
|
The OpenSSL team does not offer legal advice.
|
||||||
property rights, please consult a lawyer. The OpenSSL team does not
|
|
||||||
offer legal advice.
|
|
||||||
|
|
||||||
You can configure OpenSSL so as not to use IDEA, MDC2 and RC5 by using
|
You can configure OpenSSL so as not to use IDEA, MDC2 and RC5 by using
|
||||||
./config no-idea no-mdc2 no-rc5
|
./config no-idea no-mdc2 no-rc5
|
||||||
@@ -284,7 +300,7 @@ current directory in this case, but this has changed with 0.9.6a.)
|
|||||||
Check out the CA.pl(1) manual page. This provides a simple wrapper round
|
Check out the CA.pl(1) manual page. This provides a simple wrapper round
|
||||||
the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
|
the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
|
||||||
out the manual pages for the individual utilities and the certificate
|
out the manual pages for the individual utilities and the certificate
|
||||||
extensions documentation (currently in doc/openssl.txt).
|
extensions documentation (in ca(1), req(1), x509v3_config(5) )
|
||||||
|
|
||||||
|
|
||||||
* Why can't I create certificate requests?
|
* Why can't I create certificate requests?
|
||||||
@@ -396,7 +412,7 @@ whatever name they choose.
|
|||||||
The ways to print out the oneline format of the DN (Distinguished Name) have
|
The ways to print out the oneline format of the DN (Distinguished Name) have
|
||||||
been extended in version 0.9.7 of OpenSSL. Using the new X509_NAME_print_ex()
|
been extended in version 0.9.7 of OpenSSL. Using the new X509_NAME_print_ex()
|
||||||
interface, the "-nameopt" option could be introduded. See the manual
|
interface, the "-nameopt" option could be introduded. See the manual
|
||||||
page of the "openssl x509" commandline tool for details. The old behaviour
|
page of the "openssl x509" command line tool for details. The old behaviour
|
||||||
has however been left as default for the sake of compatibility.
|
has however been left as default for the sake of compatibility.
|
||||||
|
|
||||||
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
||||||
@@ -418,7 +434,7 @@ software from the US only weak encryption algorithms could be freely exported
|
|||||||
inadequate. A relaxation of the rules allowed the use of strong encryption but
|
inadequate. A relaxation of the rules allowed the use of strong encryption but
|
||||||
only to an authorised server.
|
only to an authorised server.
|
||||||
|
|
||||||
Two slighly different techniques were developed to support this, one used by
|
Two slightly different techniques were developed to support this, one used by
|
||||||
Netscape was called "step up", the other used by MSIE was called "Server Gated
|
Netscape was called "step up", the other used by MSIE was called "Server Gated
|
||||||
Cryptography" (SGC). When a browser initially connected to a server it would
|
Cryptography" (SGC). When a browser initially connected to a server it would
|
||||||
check to see if the certificate contained certain extensions and was issued by
|
check to see if the certificate contained certain extensions and was issued by
|
||||||
@@ -469,6 +485,16 @@ bundle used by Mozilla and/or modssl as described in this article:
|
|||||||
<URL: http://www.mail-archive.com/modssl-users@modssl.org/msg16980.html>
|
<URL: http://www.mail-archive.com/modssl-users@modssl.org/msg16980.html>
|
||||||
|
|
||||||
|
|
||||||
|
* Some secure servers 'hang' with OpenSSL 1.0.1, is this a bug?
|
||||||
|
|
||||||
|
OpenSSL 1.0.1 is the first release to support TLS 1.2, among other things,
|
||||||
|
this increases the size of the default ClientHello message to more than
|
||||||
|
255 bytes in length. Some software cannot handle this and hangs. For more
|
||||||
|
details and workarounds see:
|
||||||
|
|
||||||
|
<URL: http://rt.openssl.org/Ticket/Display.html?user=guest&pass=guest&id=2771>
|
||||||
|
|
||||||
|
|
||||||
[BUILD] =======================================================================
|
[BUILD] =======================================================================
|
||||||
|
|
||||||
* Why does the linker complain about undefined symbols?
|
* Why does the linker complain about undefined symbols?
|
||||||
@@ -597,8 +623,8 @@ valid for the current DOS session.
|
|||||||
* What is special about OpenSSL on Redhat?
|
* What is special about OpenSSL on Redhat?
|
||||||
|
|
||||||
Red Hat Linux (release 7.0 and later) include a preinstalled limited
|
Red Hat Linux (release 7.0 and later) include a preinstalled limited
|
||||||
version of OpenSSL. For patent reasons, support for IDEA, RC5 and MDC2
|
version of OpenSSL. Red Hat has chosen to disable support for IDEA, RC5 and
|
||||||
is disabled in this version. The same may apply to other Linux distributions.
|
MDC2 in this version. The same may apply to other Linux distributions.
|
||||||
Users may therefore wish to install more or all of the features left out.
|
Users may therefore wish to install more or all of the features left out.
|
||||||
|
|
||||||
To do this you MUST ensure that you do not overwrite the openssl that is in
|
To do this you MUST ensure that you do not overwrite the openssl that is in
|
||||||
@@ -621,11 +647,6 @@ relevant updates in packages up to and including 0.9.6b.
|
|||||||
A possible way around this is to persuade Red Hat to produce a non-US
|
A possible way around this is to persuade Red Hat to produce a non-US
|
||||||
version of Red Hat Linux.
|
version of Red Hat Linux.
|
||||||
|
|
||||||
FYI: Patent numbers and expiry dates of US patents:
|
|
||||||
MDC-2: 4,908,861 13/03/2007
|
|
||||||
IDEA: 5,214,703 25/05/2010
|
|
||||||
RC5: 5,724,428 03/03/2015
|
|
||||||
|
|
||||||
|
|
||||||
* Why does the OpenSSL compilation fail on MacOS X?
|
* Why does the OpenSSL compilation fail on MacOS X?
|
||||||
|
|
||||||
@@ -688,7 +709,7 @@ working across wider range of *BSD branches, not just OpenBSD.
|
|||||||
If the test program in question fails withs SIGILL, Illegal Instruction
|
If the test program in question fails withs SIGILL, Illegal Instruction
|
||||||
exception, then you more than likely to run SSE2-capable CPU, such as
|
exception, then you more than likely to run SSE2-capable CPU, such as
|
||||||
Intel P4, under control of kernel which does not support SSE2
|
Intel P4, under control of kernel which does not support SSE2
|
||||||
instruction extentions. See accompanying INSTALL file and
|
instruction extensions. See accompanying INSTALL file and
|
||||||
OPENSSL_ia32cap(3) documentation page for further information.
|
OPENSSL_ia32cap(3) documentation page for further information.
|
||||||
|
|
||||||
* Why does compiler fail to compile sha512.c?
|
* Why does compiler fail to compile sha512.c?
|
||||||
@@ -702,15 +723,15 @@ possible alternative might be to switch to GCC.
|
|||||||
|
|
||||||
* Test suite still fails, what to do?
|
* Test suite still fails, what to do?
|
||||||
|
|
||||||
Another common reason for failure to complete some particular test is
|
Another common reason for test failures is bugs in the toolchain
|
||||||
simply bad code generated by a buggy component in toolchain or deficiency
|
or run-time environment. Known cases of this are documented in the
|
||||||
in run-time environment. There are few cases documented in PROBLEMS file,
|
PROBLEMS file, please review it before you beat the drum. Even if you
|
||||||
consult it for possible workaround before you beat the drum. Even if you
|
don't find anything in that file, please do consider the possibility
|
||||||
don't find solution or even mention there, do reserve for possibility of
|
of a compiler bug. Compiler bugs often appear in rather bizarre ways,
|
||||||
a compiler bug. Compiler bugs might appear in rather bizarre ways, they
|
they never make sense, and tend to emerge when you least expect
|
||||||
never make sense, and tend to emerge when you least expect them. In order
|
them. One thing to try is to reduce the level of optimization (such
|
||||||
to identify one, drop optimization level, e.g. by editing CFLAG line in
|
as by editing the CFLAG variable line in the top-level Makefile),
|
||||||
top-level Makefile, recompile and re-run the test.
|
and then recompile and re-run the test.
|
||||||
|
|
||||||
* I think I've found a bug, what should I do?
|
* I think I've found a bug, what should I do?
|
||||||
|
|
||||||
@@ -720,9 +741,16 @@ documentation and the mailing lists for similar queries. If you are still
|
|||||||
unsure whether it is a bug or not submit a query to the openssl-users mailing
|
unsure whether it is a bug or not submit a query to the openssl-users mailing
|
||||||
list.
|
list.
|
||||||
|
|
||||||
|
If you think you have found a bug based on the output of static analysis tools
|
||||||
|
then please manually check the issue is genuine. Such tools can produce a
|
||||||
|
LOT of false positives.
|
||||||
|
|
||||||
|
|
||||||
* I'm SURE I've found a bug, how do I report it?
|
* I'm SURE I've found a bug, how do I report it?
|
||||||
|
|
||||||
|
To avoid duplicated reports check the mailing lists and release notes for the
|
||||||
|
relevant version of OpenSSL to see if the problem has been reported already.
|
||||||
|
|
||||||
Bug reports with no security implications should be sent to the request
|
Bug reports with no security implications should be sent to the request
|
||||||
tracker. This can be done by mailing the report to <rt@openssl.org> (or its
|
tracker. This can be done by mailing the report to <rt@openssl.org> (or its
|
||||||
alias <openssl-bugs@openssl.org>), please note that messages sent to the
|
alias <openssl-bugs@openssl.org>), please note that messages sent to the
|
||||||
@@ -750,7 +778,12 @@ See also <URL: http://www.openssl.org/support/rt.html>
|
|||||||
If you think your bug has security implications then please send it to
|
If you think your bug has security implications then please send it to
|
||||||
openssl-security@openssl.org if you don't get a prompt reply at least
|
openssl-security@openssl.org if you don't get a prompt reply at least
|
||||||
acknowledging receipt then resend or mail it directly to one of the
|
acknowledging receipt then resend or mail it directly to one of the
|
||||||
more active team members (e.g. Steve).
|
more active team members (e.g. Steve). If you wish to use PGP to send
|
||||||
|
in a report please use one or more of the keys of the team members listed
|
||||||
|
at <URL: http://www.openssl.org/about/>
|
||||||
|
|
||||||
|
Note that bugs only present in the openssl utility are not in general
|
||||||
|
considered to be security issues.
|
||||||
|
|
||||||
[PROG] ========================================================================
|
[PROG] ========================================================================
|
||||||
|
|
||||||
@@ -848,7 +881,7 @@ The opposite assumes we already have len bytes in buf:
|
|||||||
p = buf;
|
p = buf;
|
||||||
p7 = d2i_PKCS7(NULL, &p, len);
|
p7 = d2i_PKCS7(NULL, &p, len);
|
||||||
|
|
||||||
At this point p7 contains a valid PKCS7 structure of NULL if an error
|
At this point p7 contains a valid PKCS7 structure or NULL if an error
|
||||||
occurred. If an error occurred ERR_print_errors(bio) should give more
|
occurred. If an error occurred ERR_print_errors(bio) should give more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
@@ -860,6 +893,21 @@ that has been read or written. This may well be uninitialized data
|
|||||||
and attempts to free the buffer will have unpredictable results
|
and attempts to free the buffer will have unpredictable results
|
||||||
because it no longer points to the same address.
|
because it no longer points to the same address.
|
||||||
|
|
||||||
|
Memory allocation and encoding can also be combined in a single
|
||||||
|
operation by the ASN1 routines:
|
||||||
|
|
||||||
|
unsigned char *buf = NULL; /* mandatory */
|
||||||
|
int len;
|
||||||
|
len = i2d_PKCS7(p7, &buf);
|
||||||
|
if (len < 0)
|
||||||
|
/* Error */
|
||||||
|
/* Do some things with 'buf' */
|
||||||
|
/* Finished with buf: free it */
|
||||||
|
OPENSSL_free(buf);
|
||||||
|
|
||||||
|
In this special case the "buf" parameter is *not* incremented, it points
|
||||||
|
to the start of the encoding.
|
||||||
|
|
||||||
|
|
||||||
* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
|
* OpenSSL uses DER but I need BER format: does OpenSSL support BER?
|
||||||
|
|
||||||
@@ -1021,5 +1069,20 @@ These are defined and implemented by macros of the form:
|
|||||||
The implementation passes an ASN1 "template" defining the structure into an
|
The implementation passes an ASN1 "template" defining the structure into an
|
||||||
ASN1 interpreter using generalised functions such as ASN1_item_d2i().
|
ASN1 interpreter using generalised functions such as ASN1_item_d2i().
|
||||||
|
|
||||||
|
* When debugging I observe SIGILL during OpenSSL initialization: why?
|
||||||
|
|
||||||
|
OpenSSL adapts to processor it executes on and for this reason has to
|
||||||
|
query its capabilities. Unfortunately on some processors the only way
|
||||||
|
to achieve this for non-privileged code is to attempt instructions
|
||||||
|
that can cause Illegal Instruction exceptions. The initialization
|
||||||
|
procedure is coded to handle these exceptions to manipulate corresponding
|
||||||
|
bits in capabilities vector. This normally appears transparent, except
|
||||||
|
when you execute it under debugger, which stops prior delivering signal
|
||||||
|
to handler. Simply resuming execution does the trick, but when debugging
|
||||||
|
a lot it might feel counterproductive. Two options. Either set explicit
|
||||||
|
capability environment variable in order to bypass the capability query
|
||||||
|
(see corresponding crypto/*cap.c for details). Or configure debugger not
|
||||||
|
to stop upon SIGILL exception, e.g. in gdb case add 'handle SIGILL nostop'
|
||||||
|
to your .gdbinit.
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
|||||||
10
GitConfigure
Executable file
10
GitConfigure
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BRANCH=`git rev-parse --abbrev-ref HEAD`
|
||||||
|
|
||||||
|
./Configure $@ no-symlinks
|
||||||
|
make files
|
||||||
|
util/mk1mf.pl OUT=out.$BRANCH TMP=tmp.$BRANCH INC=inc.$BRANCH copy > makefile.$BRANCH
|
||||||
|
MAKE=make
|
||||||
|
which bsdmake > /dev/null && MAKE=bsdmake
|
||||||
|
$MAKE -f makefile.$BRANCH init
|
||||||
7
GitMake
Executable file
7
GitMake
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
BRANCH=`git rev-parse --abbrev-ref HEAD`
|
||||||
|
|
||||||
|
MAKE=make
|
||||||
|
which bsdmake > /dev/null && MAKE=bsdmake
|
||||||
|
$MAKE -f makefile.$BRANCH $@
|
||||||
2
INSTALL
2
INSTALL
@@ -79,7 +79,7 @@
|
|||||||
compiler flags for any other CPU specific configuration,
|
compiler flags for any other CPU specific configuration,
|
||||||
e.g. "-m32" to build x86 code on an x64 system.
|
e.g. "-m32" to build x86 code on an x64 system.
|
||||||
|
|
||||||
no-sse2 Exclude SSE2 code pathes. Normally SSE2 extention is
|
no-sse2 Exclude SSE2 code pathes. Normally SSE2 extension is
|
||||||
detected at run-time, but the decision whether or not the
|
detected at run-time, but the decision whether or not the
|
||||||
machine code will be executed is taken solely on CPU
|
machine code will be executed is taken solely on CPU
|
||||||
capability vector. This means that if you happen to run OS
|
capability vector. This means that if you happen to run OS
|
||||||
|
|||||||
@@ -1,72 +0,0 @@
|
|||||||
OpenSSL - Port To The Macintosh OS 9 or Earlier
|
|
||||||
===============================================
|
|
||||||
|
|
||||||
Thanks to Roy Wood <roy@centricsystems.ca> initial support for Mac OS (pre
|
|
||||||
X) is now provided. "Initial" means that unlike other platforms where you
|
|
||||||
get an SDK and a "swiss army" openssl application, on Macintosh you only
|
|
||||||
get one sample application which fetches a page over HTTPS(*) and dumps it
|
|
||||||
in a window. We don't even build the test applications so that we can't
|
|
||||||
guarantee that all algorithms are operational.
|
|
||||||
|
|
||||||
Required software:
|
|
||||||
|
|
||||||
- StuffIt Expander 5.5 or later, alternatively MacGzip and SUNtar;
|
|
||||||
- Scriptable Finder;
|
|
||||||
- CodeWarrior Pro 5;
|
|
||||||
|
|
||||||
Installation procedure:
|
|
||||||
|
|
||||||
- fetch the source at ftp://ftp.openssl.org/ (well, you probably already
|
|
||||||
did, huh?)
|
|
||||||
- unpack the .tar.gz file:
|
|
||||||
- if you have StuffIt Expander then just drag it over it;
|
|
||||||
- otherwise uncompress it with MacGzip and then unpack with SUNtar;
|
|
||||||
- locate MacOS folder in OpenSSL source tree and open it;
|
|
||||||
- unbinhex mklinks.as.hqx and OpenSSL.mcp.hqx if present (**), do it
|
|
||||||
"in-place", i.e. unpacked files should end-up in the very same folder;
|
|
||||||
- execute mklinks.as;
|
|
||||||
- open OpenSSL.mcp(***) and build 'GetHTTPS PPC' target(****);
|
|
||||||
- that's it for now;
|
|
||||||
|
|
||||||
(*) URL is hardcoded into ./MacOS/GetHTTPS.src/GetHTTPS.cpp, lines 40
|
|
||||||
to 42, change appropriately.
|
|
||||||
(**) If you use SUNtar, then it might have already unbinhexed the files
|
|
||||||
in question.
|
|
||||||
(***) The project file was saved with CW Pro 5.3. If you have an earlier
|
|
||||||
version and it refuses to open it, then download
|
|
||||||
http://www.openssl.org/~appro/OpenSSL.mcp.xml and import it
|
|
||||||
overwriting the original OpenSSL.mcp.
|
|
||||||
(****) Other targets are works in progress. If you feel like giving 'em a
|
|
||||||
shot, then you should know that OpenSSL* and Lib* targets are
|
|
||||||
supposed to be built with the GUSI, MacOS library which mimics
|
|
||||||
BSD sockets and some other POSIX APIs. The GUSI distribution is
|
|
||||||
expected to be found in the same directory as the openssl source tree,
|
|
||||||
i.e., in the parent directory to the one where this very file,
|
|
||||||
namely INSTALL.MacOS, resides. For more information about GUSI, see
|
|
||||||
http://www.iis.ee.ethz.ch/~neeri/macintosh/gusi-qa.html
|
|
||||||
|
|
||||||
Finally some essential comments from our generous contributor:-)
|
|
||||||
|
|
||||||
"I've gotten OpenSSL working on the Macintosh. It's probably a bit of a
|
|
||||||
hack, but it works for what I'm doing. If you don't like the way I've done
|
|
||||||
it, then feel free to change what I've done. I freely admit that I've done
|
|
||||||
some less-than-ideal things in my port, and if you don't like the way I've
|
|
||||||
done something, then feel free to change it-- I won't be offended!
|
|
||||||
|
|
||||||
... I've tweaked "bss_sock.c" a little to call routines in a "MacSocket"
|
|
||||||
library I wrote. My MacSocket library is a wrapper around OpenTransport,
|
|
||||||
handling stuff like endpoint creation, reading, writing, etc. It is not
|
|
||||||
designed as a high-performance package such as you'd use in a webserver,
|
|
||||||
but is fine for lots of other applications. MacSocket also uses some other
|
|
||||||
code libraries I've written to deal with string manipulations and error
|
|
||||||
handling. Feel free to use these things in your own code, but give me
|
|
||||||
credit and/or send me free stuff in appreciation! :-)
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
If you have any questions, feel free to email me as the following:
|
|
||||||
|
|
||||||
roy@centricsystems.ca
|
|
||||||
|
|
||||||
-Roy Wood"
|
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ The openssl program has numerous options and can be used for many different
|
|||||||
things. Many of the options operate in an interactive mode requiring the
|
things. Many of the options operate in an interactive mode requiring the
|
||||||
user to enter data. Because of this, a default screen is created for the
|
user to enter data. Because of this, a default screen is created for the
|
||||||
program. However, when running the test script it is not desirable to
|
program. However, when running the test script it is not desirable to
|
||||||
have a seperate screen. Therefore, the build also creates openssl2.nlm.
|
have a separate screen. Therefore, the build also creates openssl2.nlm.
|
||||||
Openssl2.nlm is functionally identical but uses the console screen.
|
Openssl2.nlm is functionally identical but uses the console screen.
|
||||||
Openssl2 can be used when a non-interactive mode is desired.
|
Openssl2 can be used when a non-interactive mode is desired.
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ Currently, the logical names supported are:
|
|||||||
will not be implemented. Supported algorithms to
|
will not be implemented. Supported algorithms to
|
||||||
do this with are: RSA, DSA, DH, MD2, MD4, MD5, RIPEMD,
|
do this with are: RSA, DSA, DH, MD2, MD4, MD5, RIPEMD,
|
||||||
SHA, DES, MDC2, CR2, RC4, RC5, IDEA, BF, CAST, HMAC,
|
SHA, DES, MDC2, CR2, RC4, RC5, IDEA, BF, CAST, HMAC,
|
||||||
SSL2. So, for example, having the logical name
|
SSL3. So, for example, having the logical name
|
||||||
OPENSSL_NO_RSA with the value YES means that the
|
OPENSSL_NO_RSA with the value YES means that the
|
||||||
LIBCRYPTO.OLB library will not contain an RSA
|
LIBCRYPTO.OLB library will not contain an RSA
|
||||||
implementation.
|
implementation.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
is required if you intend to utilize assembler modules. Note that NASM
|
is required if you intend to utilize assembler modules. Note that NASM
|
||||||
is now the only supported assembler.
|
is now the only supported assembler.
|
||||||
|
|
||||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
If you are compiling from a tarball or a Git snapshot then the Win32 files
|
||||||
may well be not up to date. This may mean that some "tweaking" is required to
|
may well be not up to date. This may mean that some "tweaking" is required to
|
||||||
get it all to work. See the trouble shooting section later on for if (when?)
|
get it all to work. See the trouble shooting section later on for if (when?)
|
||||||
it goes wrong.
|
it goes wrong.
|
||||||
@@ -257,7 +257,7 @@
|
|||||||
|
|
||||||
then ms\do_XXX should not give a warning any more. However the numbers that
|
then ms\do_XXX should not give a warning any more. However the numbers that
|
||||||
get assigned by this technique may not match those that eventually get
|
get assigned by this technique may not match those that eventually get
|
||||||
assigned in the CVS tree: so anything linked against this version of the
|
assigned in the Git tree: so anything linked against this version of the
|
||||||
library may need to be recompiled.
|
library may need to be recompiled.
|
||||||
|
|
||||||
If you get errors about unresolved symbols there are several possible
|
If you get errors about unresolved symbols there are several possible
|
||||||
|
|||||||
638
Makefile.fips
638
Makefile.fips
@@ -1,638 +0,0 @@
|
|||||||
##
|
|
||||||
## Makefile for OpenSSL: fipscanister.o only
|
|
||||||
##
|
|
||||||
|
|
||||||
VERSION=fips-2.0-test
|
|
||||||
MAJOR=
|
|
||||||
MINOR=
|
|
||||||
SHLIB_VERSION_NUMBER=
|
|
||||||
SHLIB_VERSION_HISTORY=
|
|
||||||
SHLIB_MAJOR=
|
|
||||||
SHLIB_MINOR=
|
|
||||||
SHLIB_EXT=
|
|
||||||
PLATFORM=dist
|
|
||||||
OPTIONS=
|
|
||||||
CONFIGURE_ARGS=
|
|
||||||
SHLIB_TARGET=
|
|
||||||
|
|
||||||
# HERE indicates where this Makefile lives. This can be used to indicate
|
|
||||||
# where sub-Makefiles are expected to be. Currently has very limited usage,
|
|
||||||
# and should probably not be bothered with at all.
|
|
||||||
HERE=.
|
|
||||||
|
|
||||||
# INSTALL_PREFIX is for package builders so that they can configure
|
|
||||||
# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
|
|
||||||
# Normally it is left empty.
|
|
||||||
INSTALL_PREFIX=
|
|
||||||
INSTALLTOP=/usr/local/ssl
|
|
||||||
|
|
||||||
# Do not edit this manually. Use Configure --openssldir=DIR do change this!
|
|
||||||
OPENSSLDIR=/usr/local/ssl
|
|
||||||
|
|
||||||
# NO_IDEA - Define to build without the IDEA algorithm
|
|
||||||
# NO_RC4 - Define to build without the RC4 algorithm
|
|
||||||
# NO_RC2 - Define to build without the RC2 algorithm
|
|
||||||
# THREADS - Define when building with threads, you will probably also need any
|
|
||||||
# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
|
|
||||||
# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
|
|
||||||
# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
|
|
||||||
# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
|
|
||||||
# DEVRANDOM - Give this the value of the 'random device' if your OS supports
|
|
||||||
# one. 32 bytes will be read from this when the random
|
|
||||||
# number generator is initalised.
|
|
||||||
# SSL_FORBID_ENULL - define if you want the server to be not able to use the
|
|
||||||
# NULL encryption ciphers.
|
|
||||||
#
|
|
||||||
# LOCK_DEBUG - turns on lots of lock debug output :-)
|
|
||||||
# REF_CHECK - turn on some xyz_free() assertions.
|
|
||||||
# REF_PRINT - prints some stuff on structure free.
|
|
||||||
# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
|
|
||||||
# MFUNC - Make all Malloc/Free/Realloc calls call
|
|
||||||
# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
|
|
||||||
# call application defined callbacks via CRYPTO_set_mem_functions()
|
|
||||||
# MD5_ASM needs to be defined to use the x86 assembler for MD5
|
|
||||||
# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
|
|
||||||
# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
|
|
||||||
# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
|
|
||||||
# equal 4.
|
|
||||||
# PKCS1_CHECK - pkcs1 tests.
|
|
||||||
|
|
||||||
CC= cc
|
|
||||||
CFLAG= -O
|
|
||||||
DEPFLAG=
|
|
||||||
PEX_LIBS=
|
|
||||||
EX_LIBS=
|
|
||||||
EXE_EXT=
|
|
||||||
ARFLAGS=
|
|
||||||
AR=ar $(ARFLAGS) r
|
|
||||||
RANLIB= ranlib
|
|
||||||
NM= nm
|
|
||||||
PERL= perl
|
|
||||||
TAR= tar
|
|
||||||
TARFLAGS= --no-recursion
|
|
||||||
MAKEDEPPROG=makedepend
|
|
||||||
LIBDIR=lib
|
|
||||||
|
|
||||||
# We let the C compiler driver to take care of .s files. This is done in
|
|
||||||
# order to be excused from maintaining a separate set of architecture
|
|
||||||
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
|
|
||||||
# gcc, then the driver will automatically translate it to -xarch=v8plus
|
|
||||||
# and pass it down to assembler.
|
|
||||||
#AS=$(CC) -c
|
|
||||||
ASFLAG=$(CFLAG)
|
|
||||||
|
|
||||||
# For x86 assembler: Set PROCESSOR to 386 if you want to support
|
|
||||||
# the 80386.
|
|
||||||
PROCESSOR=
|
|
||||||
|
|
||||||
# CPUID module collects small commonly used assembler snippets
|
|
||||||
CPUID_OBJ=
|
|
||||||
BN_ASM= bn_asm.o
|
|
||||||
DES_ENC= des_enc.o fcrypt_b.o
|
|
||||||
AES_ENC= aes_core.o aes_cbc.o
|
|
||||||
BF_ENC= bf_enc.o
|
|
||||||
CAST_ENC= c_enc.o
|
|
||||||
RC4_ENC= rc4_enc.o
|
|
||||||
RC5_ENC= rc5_enc.o
|
|
||||||
MD5_ASM_OBJ=
|
|
||||||
SHA1_ASM_OBJ=
|
|
||||||
RMD160_ASM_OBJ=
|
|
||||||
WP_ASM_OBJ=
|
|
||||||
CMLL_ENC=
|
|
||||||
MODES_ASM_OBJ=
|
|
||||||
PERLASM_SCHEME=
|
|
||||||
|
|
||||||
# KRB5 stuff
|
|
||||||
KRB5_INCLUDES=
|
|
||||||
LIBKRB5=
|
|
||||||
|
|
||||||
# Zlib stuff
|
|
||||||
ZLIB_INCLUDE=
|
|
||||||
LIBZLIB=
|
|
||||||
|
|
||||||
# This is the location of fipscanister.o and friends.
|
|
||||||
# The FIPS module build will place it $(INSTALLTOP)/lib
|
|
||||||
# but since $(INSTALLTOP) can only take the default value
|
|
||||||
# when the module is built it will be in /usr/local/ssl/lib
|
|
||||||
# $(INSTALLTOP) for this build may be different so hard
|
|
||||||
# code the path.
|
|
||||||
|
|
||||||
FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/
|
|
||||||
|
|
||||||
# This is set to "y" if fipscanister.o is compiled internally as
|
|
||||||
# opposed to coming from an external validated location.
|
|
||||||
|
|
||||||
FIPSCANISTERINTERNAL=n
|
|
||||||
|
|
||||||
# This is set if we only build fipscanister.o
|
|
||||||
|
|
||||||
FIPSCANISTERONLY=y
|
|
||||||
|
|
||||||
# The location of the library which contains fipscanister.o
|
|
||||||
# normally it will be libcrypto unless fipsdso is set in which
|
|
||||||
# case it will be libfips. If not compiling in FIPS mode at all
|
|
||||||
# this is empty making it a useful test for a FIPS compile.
|
|
||||||
|
|
||||||
FIPSCANLIB=
|
|
||||||
|
|
||||||
# Shared library base address. Currently only used on Windows.
|
|
||||||
#
|
|
||||||
|
|
||||||
BASEADDR=
|
|
||||||
|
|
||||||
DIRS= crypto fips test
|
|
||||||
ENGDIRS= ccgost
|
|
||||||
SHLIBDIRS= crypto
|
|
||||||
|
|
||||||
# dirs in crypto to build
|
|
||||||
SDIRS= \
|
|
||||||
sha hmac des aes modes \
|
|
||||||
bn ec rsa dsa ecdsa dh \
|
|
||||||
buffer evp ecdh cmac
|
|
||||||
# keep in mind that the above list is adjusted by ./Configure
|
|
||||||
# according to no-xxx arguments...
|
|
||||||
|
|
||||||
LINKDIRS= \
|
|
||||||
objects sha hmac des aes modes \
|
|
||||||
bn ec rsa dsa ecdh cmac ecdsa dh engine \
|
|
||||||
buffer bio stack lhash rand err \
|
|
||||||
evp asn1 ui
|
|
||||||
|
|
||||||
# tests to perform. "alltests" is a special word indicating that all tests
|
|
||||||
# should be performed.
|
|
||||||
TESTS = alltests
|
|
||||||
|
|
||||||
MAKEFILE= Makefile
|
|
||||||
|
|
||||||
MANDIR=$(OPENSSLDIR)/man
|
|
||||||
MAN1=1
|
|
||||||
MAN3=3
|
|
||||||
MANSUFFIX=
|
|
||||||
HTMLSUFFIX=html
|
|
||||||
HTMLDIR=$(OPENSSLDIR)/html
|
|
||||||
SHELL=/bin/sh
|
|
||||||
|
|
||||||
TOP= .
|
|
||||||
ONEDIRS=out tmp
|
|
||||||
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
|
|
||||||
WDIRS= windows
|
|
||||||
LIBS=
|
|
||||||
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
|
|
||||||
SHARED_SSL=libssl$(SHLIB_EXT)
|
|
||||||
SHARED_LIBS=
|
|
||||||
SHARED_LIBS_LINK_EXTS=
|
|
||||||
SHARED_LDFLAGS=
|
|
||||||
|
|
||||||
GENERAL= Makefile
|
|
||||||
BASENAME= openssl
|
|
||||||
NAME= $(BASENAME)-$(VERSION)
|
|
||||||
TARFILE= openssl-fips-2.0-test.tar
|
|
||||||
WTARFILE= $(NAME)-win.tar
|
|
||||||
EXHEADER= e_os2.h
|
|
||||||
HEADER= e_os.h
|
|
||||||
|
|
||||||
all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
|
|
||||||
|
|
||||||
# as we stick to -e, CLEARENV ensures that local variables in lower
|
|
||||||
# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
|
|
||||||
# shell, which [annoyingly enough] terminates unset with error if VAR
|
|
||||||
# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
|
|
||||||
# which terminates unset with error if no variable was present:-(
|
|
||||||
CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
|
|
||||||
$${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES} \
|
|
||||||
$${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC} \
|
|
||||||
$${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \
|
|
||||||
$${EXHEADER+EXHEADER} $${HEADER+HEADER} \
|
|
||||||
$${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
|
|
||||||
$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
|
|
||||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \
|
|
||||||
$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
|
|
||||||
$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
|
|
||||||
|
|
||||||
BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
|
||||||
CC='$(CC)' CFLAG='$(CFLAG)' \
|
|
||||||
ASFLAG='$(CFLAG) -c' \
|
|
||||||
AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
|
|
||||||
CROSS_COMPILE='$(CROSS_COMPILE)' \
|
|
||||||
PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
|
|
||||||
SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)' \
|
|
||||||
INSTALL_PREFIX='$(INSTALL_PREFIX)' \
|
|
||||||
INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)' \
|
|
||||||
LIBDIR='$(LIBDIR)' \
|
|
||||||
MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
|
|
||||||
DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)' \
|
|
||||||
MAKEDEPPROG='$(MAKEDEPPROG)' \
|
|
||||||
SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \
|
|
||||||
KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
|
|
||||||
ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
|
|
||||||
EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
|
|
||||||
SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
|
|
||||||
PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
|
|
||||||
CPUID_OBJ='$(CPUID_OBJ)' \
|
|
||||||
BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' \
|
|
||||||
AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)' \
|
|
||||||
BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)' \
|
|
||||||
RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)' \
|
|
||||||
SHA1_ASM_OBJ='$(SHA1_ASM_OBJ)' \
|
|
||||||
MD5_ASM_OBJ='$(MD5_ASM_OBJ)' \
|
|
||||||
RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)' \
|
|
||||||
WP_ASM_OBJ='$(WP_ASM_OBJ)' \
|
|
||||||
MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
|
|
||||||
PERLASM_SCHEME='$(PERLASM_SCHEME)' \
|
|
||||||
FIPSLIBDIR='${FIPSLIBDIR}' \
|
|
||||||
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
|
||||||
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
|
||||||
FIPSCANISTERONLY='${FIPSCANISTERONLY}' \
|
|
||||||
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
|
||||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
|
||||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
|
||||||
# which in turn eliminates ambiguities in variable treatment with -e.
|
|
||||||
|
|
||||||
# BUILD_CMD is a generic macro to build a given target in a given
|
|
||||||
# subdirectory. The target must be given through the shell variable
|
|
||||||
# `target' and the subdirectory to build in must be given through `dir'.
|
|
||||||
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
|
|
||||||
# BUILD_ONE_CMD instead.
|
|
||||||
#
|
|
||||||
# BUILD_ONE_CMD is a macro to build a given target in a given
|
|
||||||
# subdirectory if that subdirectory is part of $(DIRS). It requires
|
|
||||||
# exactly the same shell variables as BUILD_CMD.
|
|
||||||
#
|
|
||||||
# RECURSIVE_BUILD_CMD is a macro to build a given target in all
|
|
||||||
# subdirectories defined in $(DIRS). It requires that the target
|
|
||||||
# is given through the shell variable `target'.
|
|
||||||
BUILD_CMD= if [ -d "$$dir" ]; then \
|
|
||||||
( cd $$dir && echo "making $$target in $$dir..." && \
|
|
||||||
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
|
|
||||||
) || exit 1; \
|
|
||||||
fi
|
|
||||||
RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
|
|
||||||
BUILD_ONE_CMD=\
|
|
||||||
if expr " $(DIRS) " : ".* $$dir " >/dev/null 2>&1; then \
|
|
||||||
$(BUILD_CMD); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
reflect:
|
|
||||||
@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
|
|
||||||
|
|
||||||
FIPS_EX_OBJ= ../crypto/aes/aes_cfb.o \
|
|
||||||
../crypto/aes/aes_ecb.o \
|
|
||||||
../crypto/aes/aes_ofb.o \
|
|
||||||
../crypto/bn/bn_add.o \
|
|
||||||
../crypto/bn/bn_blind.o \
|
|
||||||
../crypto/bn/bn_ctx.o \
|
|
||||||
../crypto/bn/bn_div.o \
|
|
||||||
../crypto/bn/bn_exp2.o \
|
|
||||||
../crypto/bn/bn_exp.o \
|
|
||||||
../crypto/bn/bn_gcd.o \
|
|
||||||
../crypto/bn/bn_gf2m.o \
|
|
||||||
../crypto/bn/bn_lib.o \
|
|
||||||
../crypto/bn/bn_mod.o \
|
|
||||||
../crypto/bn/bn_mont.o \
|
|
||||||
../crypto/bn/bn_mul.o \
|
|
||||||
../crypto/bn/bn_nist.o \
|
|
||||||
../crypto/bn/bn_prime.o \
|
|
||||||
../crypto/bn/bn_rand.o \
|
|
||||||
../crypto/bn/bn_recp.o \
|
|
||||||
../crypto/bn/bn_shift.o \
|
|
||||||
../crypto/bn/bn_sqr.o \
|
|
||||||
../crypto/bn/bn_word.o \
|
|
||||||
../crypto/bn/bn_x931p.o \
|
|
||||||
../crypto/buffer/buf_str.o \
|
|
||||||
../crypto/cmac/cmac.o \
|
|
||||||
../crypto/cryptlib.o \
|
|
||||||
../crypto/des/cfb64ede.o \
|
|
||||||
../crypto/des/cfb64enc.o \
|
|
||||||
../crypto/des/cfb_enc.o \
|
|
||||||
../crypto/des/ecb3_enc.o \
|
|
||||||
../crypto/des/ofb64ede.o \
|
|
||||||
../crypto/des/fcrypt.o \
|
|
||||||
../crypto/des/set_key.o \
|
|
||||||
../crypto/dh/dh_check.o \
|
|
||||||
../crypto/dh/dh_gen.o \
|
|
||||||
../crypto/dh/dh_key.o \
|
|
||||||
../crypto/dsa/dsa_gen.o \
|
|
||||||
../crypto/dsa/dsa_key.o \
|
|
||||||
../crypto/dsa/dsa_ossl.o \
|
|
||||||
../crypto/ec/ec_curve.o \
|
|
||||||
../crypto/ec/ec_cvt.o \
|
|
||||||
../crypto/ec/ec_key.o \
|
|
||||||
../crypto/ec/ec_lib.o \
|
|
||||||
../crypto/ec/ecp_mont.o \
|
|
||||||
../crypto/ec/ec_mult.o \
|
|
||||||
../crypto/ec/ecp_nist.o \
|
|
||||||
../crypto/ec/ecp_smpl.o \
|
|
||||||
../crypto/ec/ec2_mult.o \
|
|
||||||
../crypto/ec/ec2_smpl.o \
|
|
||||||
../crypto/ecdh/ech_key.o \
|
|
||||||
../crypto/ecdh/ech_ossl.o \
|
|
||||||
../crypto/ecdsa/ecs_ossl.o \
|
|
||||||
../crypto/evp/e_aes.o \
|
|
||||||
../crypto/evp/e_des3.o \
|
|
||||||
../crypto/evp/e_null.o \
|
|
||||||
../crypto/evp/m_sha1.o \
|
|
||||||
../crypto/evp/m_dss1.o \
|
|
||||||
../crypto/evp/m_dss.o \
|
|
||||||
../crypto/evp/m_ecdsa.o \
|
|
||||||
../crypto/hmac/hmac.o \
|
|
||||||
../crypto/modes/cbc128.o \
|
|
||||||
../crypto/modes/ccm128.o \
|
|
||||||
../crypto/modes/cfb128.o \
|
|
||||||
../crypto/modes/ctr128.o \
|
|
||||||
../crypto/modes/gcm128.o \
|
|
||||||
../crypto/modes/ofb128.o \
|
|
||||||
../crypto/modes/xts128.o \
|
|
||||||
../crypto/rsa/rsa_eay.o \
|
|
||||||
../crypto/rsa/rsa_gen.o \
|
|
||||||
../crypto/rsa/rsa_crpt.o \
|
|
||||||
../crypto/rsa/rsa_none.o \
|
|
||||||
../crypto/rsa/rsa_oaep.o \
|
|
||||||
../crypto/rsa/rsa_pk1.o \
|
|
||||||
../crypto/rsa/rsa_pss.o \
|
|
||||||
../crypto/rsa/rsa_ssl.o \
|
|
||||||
../crypto/rsa/rsa_x931.o \
|
|
||||||
../crypto/rsa/rsa_x931g.o \
|
|
||||||
../crypto/sha/sha1dgst.o \
|
|
||||||
../crypto/sha/sha256.o \
|
|
||||||
../crypto/sha/sha512.o \
|
|
||||||
../crypto/thr_id.o \
|
|
||||||
../crypto/uid.o
|
|
||||||
|
|
||||||
sub_all: build_all
|
|
||||||
build_all: build_libs
|
|
||||||
|
|
||||||
build_libs: build_crypto build_fips
|
|
||||||
|
|
||||||
build_fips:
|
|
||||||
@dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
|
|
||||||
|
|
||||||
build_crypto:
|
|
||||||
if [ -n "$(FIPSCANLIB)" ]; then \
|
|
||||||
EXCL_OBJ='$(AES_ENC) $(BN_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(MODES_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
|
|
||||||
ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
|
|
||||||
else \
|
|
||||||
ARX='${AR}' ; \
|
|
||||||
fi ; export ARX ; \
|
|
||||||
if [ $(FIPSCANISTERINTERNAL) = "y" ]; then \
|
|
||||||
AS='$(PERL) $${TOP}/util/fipsas.pl $${TOP} $${<} $(CC)' ; \
|
|
||||||
else \
|
|
||||||
AS='$(CC) -c' ; \
|
|
||||||
fi ; export AS ; \
|
|
||||||
dir=crypto; target=fips; $(BUILD_ONE_CMD)
|
|
||||||
build_ssl:
|
|
||||||
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
|
||||||
build_engines:
|
|
||||||
@dir=engines; target=all; $(BUILD_ONE_CMD)
|
|
||||||
build_apps:
|
|
||||||
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
|
||||||
build_tests:
|
|
||||||
@dir=test; target=fipsexe; $(BUILD_ONE_CMD)
|
|
||||||
build_algvs:
|
|
||||||
@dir=test; target=fipsalgvs; $(BUILD_ONE_CMD)
|
|
||||||
build_tools:
|
|
||||||
@dir=tools; target=all; $(BUILD_ONE_CMD)
|
|
||||||
|
|
||||||
all_testapps: build_libs build_testapps
|
|
||||||
build_testapps:
|
|
||||||
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
|
||||||
|
|
||||||
libcrypto$(SHLIB_EXT): libcrypto.a build_fips
|
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
|
||||||
FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
|
|
||||||
export CC FIPSLD_CC; \
|
|
||||||
fi; \
|
|
||||||
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
|
||||||
else \
|
|
||||||
echo "There's no support for shared libraries on this platform" >&2; \
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
|
|
||||||
else \
|
|
||||||
echo "There's no support for shared libraries on this platform" >&2; \
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
clean-shared:
|
|
||||||
@set -e; for i in $(SHLIBDIRS); do \
|
|
||||||
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
|
||||||
tmp="$(SHARED_LIBS_LINK_EXTS)"; \
|
|
||||||
for j in $${tmp:-x}; do \
|
|
||||||
( set -x; rm -f lib$$i$$j ); \
|
|
||||||
done; \
|
|
||||||
fi; \
|
|
||||||
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
|
|
||||||
if [ "$(PLATFORM)" = "Cygwin" ]; then \
|
|
||||||
( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
link-shared:
|
|
||||||
@ set -e; for i in $(SHLIBDIRS); do \
|
|
||||||
$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
|
|
||||||
LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
|
|
||||||
LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
|
|
||||||
symlink.$(SHLIB_TARGET); \
|
|
||||||
libs="$$libs -l$$i"; \
|
|
||||||
done
|
|
||||||
|
|
||||||
build-shared: do_$(SHLIB_TARGET) link-shared
|
|
||||||
|
|
||||||
do_$(SHLIB_TARGET):
|
|
||||||
@ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
|
|
||||||
if [ "$$i" = "ssl" -a -n "$(LIBKRB5)" ]; then \
|
|
||||||
libs="$(LIBKRB5) $$libs"; \
|
|
||||||
fi; \
|
|
||||||
$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
|
||||||
LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
|
|
||||||
LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
|
|
||||||
LIBDEPS="$$libs $(EX_LIBS)" \
|
|
||||||
link_a.$(SHLIB_TARGET); \
|
|
||||||
libs="-l$$i $$libs"; \
|
|
||||||
done
|
|
||||||
|
|
||||||
libcrypto.pc: Makefile
|
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
|
||||||
echo 'includedir=$${prefix}/include'; \
|
|
||||||
echo ''; \
|
|
||||||
echo 'Name: OpenSSL-libcrypto'; \
|
|
||||||
echo 'Description: OpenSSL cryptography library'; \
|
|
||||||
echo 'Version: '$(VERSION); \
|
|
||||||
echo 'Requires: '; \
|
|
||||||
echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
|
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
|
|
||||||
|
|
||||||
libssl.pc: Makefile
|
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
|
||||||
echo 'includedir=$${prefix}/include'; \
|
|
||||||
echo ''; \
|
|
||||||
echo 'Name: OpenSSL'; \
|
|
||||||
echo 'Description: Secure Sockets Layer and cryptography libraries'; \
|
|
||||||
echo 'Version: '$(VERSION); \
|
|
||||||
echo 'Requires: '; \
|
|
||||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
|
|
||||||
|
|
||||||
openssl.pc: Makefile
|
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
|
||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
|
||||||
echo 'includedir=$${prefix}/include'; \
|
|
||||||
echo ''; \
|
|
||||||
echo 'Name: OpenSSL'; \
|
|
||||||
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
|
|
||||||
echo 'Version: '$(VERSION); \
|
|
||||||
echo 'Requires: '; \
|
|
||||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
|
|
||||||
|
|
||||||
Makefile: Makefile.fips Configure config
|
|
||||||
@echo "Makefile is older than Makefile.org, Configure or config."
|
|
||||||
@echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
|
|
||||||
@false
|
|
||||||
|
|
||||||
libclean:
|
|
||||||
rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib
|
|
||||||
|
|
||||||
clean: libclean
|
|
||||||
rm -f shlib/*.o *.o core a.out fluff testlog make.log cctest cctest.c
|
|
||||||
@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
|
|
||||||
rm -f $(LIBS)
|
|
||||||
rm -f openssl.pc libssl.pc libcrypto.pc
|
|
||||||
rm -f speed.* .pure
|
|
||||||
rm -f $(TARFILE)
|
|
||||||
@set -e; for i in $(ONEDIRS) ;\
|
|
||||||
do \
|
|
||||||
rm -fr $$i/*; \
|
|
||||||
done
|
|
||||||
|
|
||||||
makefile.one: files
|
|
||||||
$(PERL) util/mk1mf.pl >makefile.one; \
|
|
||||||
sh util/do_ms.sh
|
|
||||||
|
|
||||||
files:
|
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
|
|
||||||
@set -e; target=files; $(RECURSIVE_BUILD_CMD)
|
|
||||||
|
|
||||||
links:
|
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
|
|
||||||
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
|
|
||||||
@set -e; dir=fips target=links; $(RECURSIVE_BUILD_CMD)
|
|
||||||
@(cd crypto ; SDIRS='$(LINKDIRS)' $(MAKE) -e links)
|
|
||||||
|
|
||||||
gentests:
|
|
||||||
@(cd test && echo "generating dummy tests (if needed)..." && \
|
|
||||||
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
|
|
||||||
|
|
||||||
dclean:
|
|
||||||
rm -rf *.bak include/openssl certs/.0
|
|
||||||
@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
|
|
||||||
|
|
||||||
test: tests
|
|
||||||
|
|
||||||
tests:
|
|
||||||
@echo "Not implemented in FIPS build" ; false
|
|
||||||
|
|
||||||
report:
|
|
||||||
@$(PERL) util/selftest.pl
|
|
||||||
|
|
||||||
depend:
|
|
||||||
@echo make depend not supported ; false
|
|
||||||
|
|
||||||
lint:
|
|
||||||
@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
|
|
||||||
|
|
||||||
tags:
|
|
||||||
rm -f TAGS
|
|
||||||
find . -name '[^.]*.[ch]' | xargs etags -a
|
|
||||||
|
|
||||||
errors:
|
|
||||||
$(PERL) util/mkerr.pl -recurse -write
|
|
||||||
(cd engines; $(MAKE) PERL=$(PERL) errors)
|
|
||||||
$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
|
|
||||||
|
|
||||||
stacks:
|
|
||||||
$(PERL) util/mkstack.pl -write
|
|
||||||
|
|
||||||
util/libeay.num::
|
|
||||||
$(PERL) util/mkdef.pl crypto update
|
|
||||||
|
|
||||||
util/ssleay.num::
|
|
||||||
$(PERL) util/mkdef.pl ssl update
|
|
||||||
|
|
||||||
crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
|
|
||||||
$(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
|
|
||||||
crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
|
|
||||||
$(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
|
|
||||||
crypto/objects/obj_xref.h: crypto/objects/objxref.pl crypto/objects/obj_xref.txt crypto/objects/obj_mac.num
|
|
||||||
$(PERL) crypto/objects/objxref.pl crypto/objects/obj_mac.num crypto/objects/obj_xref.txt >crypto/objects/obj_xref.h
|
|
||||||
|
|
||||||
apps/openssl-vms.cnf: apps/openssl.cnf
|
|
||||||
$(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
|
|
||||||
|
|
||||||
crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
|
|
||||||
$(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
|
|
||||||
|
|
||||||
|
|
||||||
TABLE: Configure
|
|
||||||
(echo 'Output of `Configure TABLE'"':"; \
|
|
||||||
$(PERL) Configure TABLE) > TABLE
|
|
||||||
|
|
||||||
update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h crypto/objects/obj_xref.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
|
|
||||||
|
|
||||||
# Build distribution tar-file. As the list of files returned by "find" is
|
|
||||||
# pretty long, on several platforms a "too many arguments" error or similar
|
|
||||||
# would occur. Therefore the list of files is temporarily stored into a file
|
|
||||||
# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
|
|
||||||
# tar does not support the --files-from option.
|
|
||||||
tar:
|
|
||||||
find . -type d -print | xargs chmod 755
|
|
||||||
find . -type f -print | xargs chmod a+r
|
|
||||||
find . -type f -perm -0100 -print | xargs chmod a+x
|
|
||||||
find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | $(BUILDENV) LINKDIRS='$(LINKDIRS)' $(PERL) util/fipsdist.pl | sort > ../$(TARFILE).list; \
|
|
||||||
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
|
||||||
tardy --user_number=0 --user_name=openssl \
|
|
||||||
--group_number=0 --group_name=openssl \
|
|
||||||
--prefix=openssl-$(VERSION) - |\
|
|
||||||
gzip --best >../$(TARFILE).gz; \
|
|
||||||
rm -f ../$(TARFILE).list; \
|
|
||||||
ls -l ../$(TARFILE).gz
|
|
||||||
|
|
||||||
tar-snap:
|
|
||||||
@$(TAR) $(TARFLAGS) -cvf - \
|
|
||||||
`find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \! -name '*test' \! -name '.#*' \! -name '*~' | sort` |\
|
|
||||||
tardy --user_number=0 --user_name=openssl \
|
|
||||||
--group_number=0 --group_name=openssl \
|
|
||||||
--prefix=openssl-$(VERSION) - > ../$(TARFILE);\
|
|
||||||
ls -l ../$(TARFILE)
|
|
||||||
|
|
||||||
dist:
|
|
||||||
$(PERL) Configure dist fipscanisteronly
|
|
||||||
@$(MAKE) dist_pem_h
|
|
||||||
@$(MAKE) SDIRS='$(SDIRS)' clean
|
|
||||||
@$(MAKE) -f Makefile.fips TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar
|
|
||||||
|
|
||||||
dist_pem_h:
|
|
||||||
(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
|
|
||||||
|
|
||||||
install: all install_sw
|
|
||||||
|
|
||||||
install_sw:
|
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
|
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl
|
|
||||||
@set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
|
|
||||||
do \
|
|
||||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
|
||||||
done;
|
|
||||||
@set -e; target=install; $(RECURSIVE_BUILD_CMD)
|
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
|
||||||
255
Makefile.org
255
Makefile.org
@@ -68,6 +68,8 @@ AR=ar $(ARFLAGS) r
|
|||||||
RANLIB= ranlib
|
RANLIB= ranlib
|
||||||
NM= nm
|
NM= nm
|
||||||
PERL= perl
|
PERL= perl
|
||||||
|
#RM= echo --
|
||||||
|
RM= rm -f
|
||||||
TAR= tar
|
TAR= tar
|
||||||
TARFLAGS= --no-recursion
|
TARFLAGS= --no-recursion
|
||||||
MAKEDEPPROG=makedepend
|
MAKEDEPPROG=makedepend
|
||||||
@@ -78,7 +80,7 @@ LIBDIR=lib
|
|||||||
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
|
# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
|
||||||
# gcc, then the driver will automatically translate it to -xarch=v8plus
|
# gcc, then the driver will automatically translate it to -xarch=v8plus
|
||||||
# and pass it down to assembler.
|
# and pass it down to assembler.
|
||||||
#AS=$(CC) -c
|
AS=$(CC) -c
|
||||||
ASFLAG=$(CFLAG)
|
ASFLAG=$(CFLAG)
|
||||||
|
|
||||||
# For x86 assembler: Set PROCESSOR to 386 if you want to support
|
# For x86 assembler: Set PROCESSOR to 386 if you want to support
|
||||||
@@ -88,6 +90,7 @@ PROCESSOR=
|
|||||||
# CPUID module collects small commonly used assembler snippets
|
# CPUID module collects small commonly used assembler snippets
|
||||||
CPUID_OBJ=
|
CPUID_OBJ=
|
||||||
BN_ASM= bn_asm.o
|
BN_ASM= bn_asm.o
|
||||||
|
EC_ASM=
|
||||||
DES_ENC= des_enc.o fcrypt_b.o
|
DES_ENC= des_enc.o fcrypt_b.o
|
||||||
AES_ENC= aes_core.o aes_cbc.o
|
AES_ENC= aes_core.o aes_cbc.o
|
||||||
BF_ENC= bf_enc.o
|
BF_ENC= bf_enc.o
|
||||||
@@ -120,15 +123,9 @@ LIBZLIB=
|
|||||||
|
|
||||||
FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/
|
FIPSLIBDIR=/usr/local/ssl/$(LIBDIR)/
|
||||||
|
|
||||||
# This is set to "y" if fipscanister.o is compiled internally as
|
|
||||||
# opposed to coming from an external validated location.
|
|
||||||
|
|
||||||
FIPSCANISTERINTERNAL=n
|
|
||||||
|
|
||||||
# The location of the library which contains fipscanister.o
|
# The location of the library which contains fipscanister.o
|
||||||
# normally it will be libcrypto unless fipsdso is set in which
|
# normally it will be libcrypto. If not compiling in FIPS mode
|
||||||
# case it will be libfips. If not compiling in FIPS mode at all
|
# at all this is empty making it a useful test for a FIPS compile.
|
||||||
# this is empty making it a useful test for a FIPS compile.
|
|
||||||
|
|
||||||
FIPSCANLIB=
|
FIPSCANLIB=
|
||||||
|
|
||||||
@@ -137,7 +134,7 @@ FIPSCANLIB=
|
|||||||
|
|
||||||
BASEADDR=
|
BASEADDR=
|
||||||
|
|
||||||
DIRS= crypto fips ssl engines apps test tools
|
DIRS= crypto ssl engines apps test tools
|
||||||
ENGDIRS= ccgost
|
ENGDIRS= ccgost
|
||||||
SHLIBDIRS= crypto ssl
|
SHLIBDIRS= crypto ssl
|
||||||
|
|
||||||
@@ -186,6 +183,17 @@ WTARFILE= $(NAME)-win.tar
|
|||||||
EXHEADER= e_os2.h
|
EXHEADER= e_os2.h
|
||||||
HEADER= e_os.h
|
HEADER= e_os.h
|
||||||
|
|
||||||
|
# Directories created on install if they don't exist.
|
||||||
|
INSTALLDIRS= \
|
||||||
|
$(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
||||||
|
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
|
||||||
|
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
|
||||||
|
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
|
||||||
|
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
|
||||||
|
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
|
||||||
|
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
|
||||||
|
$(INSTALL_PREFIX)$(OPENSSLDIR)/private
|
||||||
|
|
||||||
all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
|
all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
|
||||||
|
|
||||||
# as we stick to -e, CLEARENV ensures that local variables in lower
|
# as we stick to -e, CLEARENV ensures that local variables in lower
|
||||||
@@ -200,13 +208,13 @@ CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
|
|||||||
$${EXHEADER+EXHEADER} $${HEADER+HEADER} \
|
$${EXHEADER+EXHEADER} $${HEADER+HEADER} \
|
||||||
$${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
|
$${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
|
||||||
$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
|
$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
|
||||||
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} \
|
$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
|
||||||
$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
|
$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
|
||||||
$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
|
$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
|
||||||
|
|
||||||
BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
||||||
CC='$(CC)' CFLAG='$(CFLAG)' \
|
CC='$(CC)' CFLAG='$(CFLAG)' \
|
||||||
ASFLAG='$(CFLAG) -c' \
|
AS='$(CC)' ASFLAG='$(CFLAG) -c' \
|
||||||
AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
|
AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
|
||||||
CROSS_COMPILE='$(CROSS_COMPILE)' \
|
CROSS_COMPILE='$(CROSS_COMPILE)' \
|
||||||
PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
|
PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
|
||||||
@@ -223,8 +231,8 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
|||||||
EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
|
EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
|
||||||
SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
|
SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
|
||||||
PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
|
PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
|
||||||
CPUID_OBJ='$(CPUID_OBJ)' \
|
CPUID_OBJ='$(CPUID_OBJ)' BN_ASM='$(BN_ASM)' \
|
||||||
BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' \
|
EC_ASM='$(EC_ASM)' DES_ENC='$(DES_ENC)' \
|
||||||
AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)' \
|
AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)' \
|
||||||
BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)' \
|
BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)' \
|
||||||
RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)' \
|
RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)' \
|
||||||
@@ -237,7 +245,6 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
|||||||
PERLASM_SCHEME='$(PERLASM_SCHEME)' \
|
PERLASM_SCHEME='$(PERLASM_SCHEME)' \
|
||||||
FIPSLIBDIR='${FIPSLIBDIR}' \
|
FIPSLIBDIR='${FIPSLIBDIR}' \
|
||||||
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
|
||||||
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
|
||||||
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
FIPS_EX_OBJ='${FIPS_EX_OBJ}' \
|
||||||
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
|
||||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
|
||||||
@@ -249,13 +256,13 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
|
|||||||
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
|
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
|
||||||
# BUILD_ONE_CMD instead.
|
# BUILD_ONE_CMD instead.
|
||||||
#
|
#
|
||||||
# BUILD_ONE_CMD is a macro to build a given target in a given
|
|
||||||
# subdirectory if that subdirectory is part of $(DIRS). It requires
|
|
||||||
# exactly the same shell variables as BUILD_CMD.
|
|
||||||
#
|
|
||||||
# RECURSIVE_BUILD_CMD is a macro to build a given target in all
|
# RECURSIVE_BUILD_CMD is a macro to build a given target in all
|
||||||
# subdirectories defined in $(DIRS). It requires that the target
|
# subdirectories defined in $(DIRS). It requires that the target
|
||||||
# is given through the shell variable `target'.
|
# is given through the shell variable `target'.
|
||||||
|
#
|
||||||
|
# BUILD_ONE_CMD is a macro to build a given target in a given
|
||||||
|
# subdirectory if that subdirectory is part of $(DIRS). It requires
|
||||||
|
# exactly the same shell variables as BUILD_CMD.
|
||||||
BUILD_CMD= if [ -d "$$dir" ]; then \
|
BUILD_CMD= if [ -d "$$dir" ]; then \
|
||||||
( cd $$dir && echo "making $$target in $$dir..." && \
|
( cd $$dir && echo "making $$target in $$dir..." && \
|
||||||
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
|
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
|
||||||
@@ -354,48 +361,36 @@ FIPS_EX_OBJ= ../crypto/aes/aes_cfb.o \
|
|||||||
../crypto/uid.o
|
../crypto/uid.o
|
||||||
|
|
||||||
sub_all: build_all
|
sub_all: build_all
|
||||||
|
|
||||||
build_all: build_libs build_apps build_tests build_tools
|
build_all: build_libs build_apps build_tests build_tools
|
||||||
|
|
||||||
build_libs: build_crypto build_fips build_ssl build_engines
|
build_libs: build_crypto build_ssl build_engines
|
||||||
|
|
||||||
build_fips:
|
|
||||||
@dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
|
|
||||||
|
|
||||||
build_crypto:
|
build_crypto:
|
||||||
if [ -n "$(FIPSCANLIB)" ]; then \
|
@dir=crypto; target=all; $(BUILD_ONE_CMD)
|
||||||
EXCL_OBJ='$(AES_ENC) $(BN_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(MODES_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
|
build_ssl: build_crypto
|
||||||
ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
|
|
||||||
else \
|
|
||||||
ARX='${AR}' ; \
|
|
||||||
fi ; export ARX ; \
|
|
||||||
if [ $(FIPSCANISTERINTERNAL) = "y" ]; then \
|
|
||||||
AS='$(PERL) $${TOP}/util/fipsas.pl $${TOP} $${<} $(CC) -c' ; \
|
|
||||||
else \
|
|
||||||
AS='$(CC) -c' ; \
|
|
||||||
fi ; export AS ; \
|
|
||||||
dir=crypto; target=all; $(BUILD_ONE_CMD)
|
|
||||||
build_ssl:
|
|
||||||
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
||||||
build_engines:
|
build_engines: build_crypto
|
||||||
@dir=engines; target=all; AS='$(CC) -c'; export AS; $(BUILD_ONE_CMD)
|
@dir=engines; target=all; AS='$(CC) -c'; export AS; $(BUILD_ONE_CMD)
|
||||||
build_apps:
|
|
||||||
|
build_apps: build_libs
|
||||||
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tests:
|
build_tests: build_libs
|
||||||
@dir=test; target=all; $(BUILD_ONE_CMD)
|
@dir=test; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tools:
|
build_tools: build_libs
|
||||||
@dir=tools; target=all; $(BUILD_ONE_CMD)
|
@dir=tools; target=all; $(BUILD_ONE_CMD)
|
||||||
|
|
||||||
all_testapps: build_libs build_testapps
|
all_testapps: build_libs build_testapps
|
||||||
build_testapps:
|
build_testapps:
|
||||||
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
||||||
|
|
||||||
libcrypto$(SHLIB_EXT): libcrypto.a build_fips
|
libcrypto$(SHLIB_EXT): libcrypto.a
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
||||||
FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
|
FIPSLD_CC="$(CC)"; CC=fips/fipsld; \
|
||||||
export CC FIPSLD_CC; \
|
export CC FIPSLD_CC; \
|
||||||
fi; \
|
fi; \
|
||||||
$(MAKE) -e SHLIBDIRS=crypto build-shared; \
|
$(MAKE) -e SHLIBDIRS=crypto CC="$${CC:-$(CC)}" build-shared; \
|
||||||
else \
|
else \
|
||||||
echo "There's no support for shared libraries on this platform" >&2; \
|
echo "There's no support for shared libraries on this platform" >&2; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
@@ -418,7 +413,7 @@ clean-shared:
|
|||||||
done; \
|
done; \
|
||||||
fi; \
|
fi; \
|
||||||
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
|
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
|
||||||
if [ "$(PLATFORM)" = "Cygwin" ]; then \
|
if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
|
||||||
( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
|
( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
@@ -457,7 +452,8 @@ libcrypto.pc: Makefile
|
|||||||
echo 'Description: OpenSSL cryptography library'; \
|
echo 'Description: OpenSSL cryptography library'; \
|
||||||
echo 'Version: '$(VERSION); \
|
echo 'Version: '$(VERSION); \
|
||||||
echo 'Requires: '; \
|
echo 'Requires: '; \
|
||||||
echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
|
echo 'Libs: -L$${libdir} -lcrypto'; \
|
||||||
|
echo 'Libs.private: $(EX_LIBS)'; \
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
|
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
|
||||||
|
|
||||||
libssl.pc: Makefile
|
libssl.pc: Makefile
|
||||||
@@ -466,11 +462,12 @@ libssl.pc: Makefile
|
|||||||
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
|
||||||
echo 'includedir=$${prefix}/include'; \
|
echo 'includedir=$${prefix}/include'; \
|
||||||
echo ''; \
|
echo ''; \
|
||||||
echo 'Name: OpenSSL'; \
|
echo 'Name: OpenSSL-libssl'; \
|
||||||
echo 'Description: Secure Sockets Layer and cryptography libraries'; \
|
echo 'Description: Secure Sockets Layer and cryptography libraries'; \
|
||||||
echo 'Version: '$(VERSION); \
|
echo 'Version: '$(VERSION); \
|
||||||
echo 'Requires: '; \
|
echo 'Requires.private: libcrypto'; \
|
||||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
echo 'Libs: -L$${libdir} -lssl'; \
|
||||||
|
echo 'Libs.private: $(EX_LIBS)'; \
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
|
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
|
||||||
|
|
||||||
openssl.pc: Makefile
|
openssl.pc: Makefile
|
||||||
@@ -482,9 +479,7 @@ openssl.pc: Makefile
|
|||||||
echo 'Name: OpenSSL'; \
|
echo 'Name: OpenSSL'; \
|
||||||
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
|
echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
|
||||||
echo 'Version: '$(VERSION); \
|
echo 'Version: '$(VERSION); \
|
||||||
echo 'Requires: '; \
|
echo 'Requires: libssl libcrypto' ) > openssl.pc
|
||||||
echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
|
|
||||||
echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
|
|
||||||
|
|
||||||
Makefile: Makefile.org Configure config
|
Makefile: Makefile.org Configure config
|
||||||
@echo "Makefile is older than Makefile.org, Configure or config."
|
@echo "Makefile is older than Makefile.org, Configure or config."
|
||||||
@@ -492,12 +487,13 @@ Makefile: Makefile.org Configure config
|
|||||||
@false
|
@false
|
||||||
|
|
||||||
libclean:
|
libclean:
|
||||||
rm -f *.map *.so *.so.* *.dll engines/*.so engines/*.dll *.a engines/*.a */lib */*/lib
|
rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
|
||||||
|
|
||||||
clean: libclean
|
clean: libclean
|
||||||
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
|
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
|
||||||
|
rm -rf *.bak certs/.0
|
||||||
@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
|
@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
|
||||||
rm -f $(LIBS)
|
rm -f $(LIBS) tags TAGS
|
||||||
rm -f openssl.pc libssl.pc libcrypto.pc
|
rm -f openssl.pc libssl.pc libcrypto.pc
|
||||||
rm -f speed.* .pure
|
rm -f speed.* .pure
|
||||||
rm -f $(TARFILE)
|
rm -f $(TARFILE)
|
||||||
@@ -518,16 +514,12 @@ links:
|
|||||||
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
|
@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
|
||||||
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
|
@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
|
||||||
@set -e; target=links; $(RECURSIVE_BUILD_CMD)
|
@set -e; target=links; $(RECURSIVE_BUILD_CMD)
|
||||||
@if [ -z "$(FIPSCANLIB)" ]; then \
|
|
||||||
set -e; target=links; dir=fips ; $(BUILD_CMD) ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
gentests:
|
gentests:
|
||||||
@(cd test && echo "generating dummy tests (if needed)..." && \
|
@(cd test && echo "generating dummy tests (if needed)..." && \
|
||||||
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
|
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
|
||||||
|
|
||||||
dclean:
|
dclean:
|
||||||
rm -rf *.bak include/openssl certs/.0
|
|
||||||
@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
|
@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
|
||||||
|
|
||||||
rehash: rehash.time
|
rehash: rehash.time
|
||||||
@@ -537,7 +529,7 @@ rehash.time: certs apps
|
|||||||
[ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
|
[ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
|
||||||
OPENSSL_DEBUG_MEMORY=on; \
|
OPENSSL_DEBUG_MEMORY=on; \
|
||||||
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
||||||
$(PERL) tools/c_rehash certs) && \
|
$(PERL) tools/c_rehash certs/demo) && \
|
||||||
touch rehash.time; \
|
touch rehash.time; \
|
||||||
else :; fi
|
else :; fi
|
||||||
|
|
||||||
@@ -557,14 +549,17 @@ depend:
|
|||||||
lint:
|
lint:
|
||||||
@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
|
@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
|
||||||
|
|
||||||
tags:
|
tags TAGS: FORCE
|
||||||
rm -f TAGS
|
rm -f TAGS tags
|
||||||
find . -name '[^.]*.[ch]' | xargs etags -a
|
-ctags -R .
|
||||||
|
-etags -R .
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
||||||
errors:
|
errors:
|
||||||
|
$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
|
||||||
$(PERL) util/mkerr.pl -recurse -write
|
$(PERL) util/mkerr.pl -recurse -write
|
||||||
(cd engines; $(MAKE) PERL=$(PERL) errors)
|
(cd engines; $(MAKE) PERL=$(PERL) errors)
|
||||||
$(PERL) util/ck_errf.pl -strict */*.c */*/*.c
|
|
||||||
|
|
||||||
stacks:
|
stacks:
|
||||||
$(PERL) util/mkstack.pl -write
|
$(PERL) util/mkstack.pl -write
|
||||||
@@ -632,15 +627,10 @@ dist_pem_h:
|
|||||||
|
|
||||||
install: all install_docs install_sw
|
install: all install_docs install_sw
|
||||||
|
|
||||||
|
uninstall: uninstall_sw uninstall_docs
|
||||||
|
|
||||||
install_sw:
|
install_sw:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALLDIRS)
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
|
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
|
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
|
|
||||||
$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
|
|
||||||
$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
|
|
||||||
$(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
|
|
||||||
$(INSTALL_PREFIX)$(OPENSSLDIR)/private
|
|
||||||
@set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
|
@set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
|
||||||
do \
|
do \
|
||||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||||
@@ -663,11 +653,7 @@ install_sw:
|
|||||||
do \
|
do \
|
||||||
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
||||||
( echo installing $$i; \
|
( echo installing $$i; \
|
||||||
if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
|
||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
|
||||||
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
|
||||||
else \
|
|
||||||
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
||||||
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||||
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||||
@@ -675,6 +661,10 @@ install_sw:
|
|||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
else \
|
||||||
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||||
|
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||||
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
fi ); \
|
fi ); \
|
||||||
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
||||||
( case $$i in \
|
( case $$i in \
|
||||||
@@ -682,9 +672,9 @@ install_sw:
|
|||||||
*ssl*) i=ssleay32.dll;; \
|
*ssl*) i=ssleay32.dll;; \
|
||||||
esac; \
|
esac; \
|
||||||
echo installing $$i; \
|
echo installing $$i; \
|
||||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
|
||||||
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
|
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
|
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
|
||||||
fi; \
|
fi; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
@@ -705,16 +695,59 @@ install_sw:
|
|||||||
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
|
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
|
||||||
|
|
||||||
|
uninstall_sw:
|
||||||
|
cd include/openssl && files=* && cd $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl && $(RM) $$files
|
||||||
|
@for i in $(LIBS) ;\
|
||||||
|
do \
|
||||||
|
test -f "$$i" && \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i && \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
done;
|
||||||
|
@if [ -n "$(SHARED_LIBS)" ]; then \
|
||||||
|
tmp="$(SHARED_LIBS)"; \
|
||||||
|
for i in $${tmp:-x}; \
|
||||||
|
do \
|
||||||
|
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
||||||
|
if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \
|
||||||
|
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
else \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||||
|
fi; \
|
||||||
|
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
||||||
|
case $$i in \
|
||||||
|
*crypto*) i=libeay32.dll;; \
|
||||||
|
*ssl*) i=ssleay32.dll;; \
|
||||||
|
esac; \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
fi
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
|
||||||
|
@target=uninstall; $(RECURSIVE_BUILD_CMD)
|
||||||
|
|
||||||
install_html_docs:
|
install_html_docs:
|
||||||
here="`pwd`"; \
|
here="`pwd`"; \
|
||||||
|
filecase=; \
|
||||||
|
case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*|darwin*-*-cc) \
|
||||||
|
filecase=-i; \
|
||||||
|
esac; \
|
||||||
for subdir in apps crypto ssl; do \
|
for subdir in apps crypto ssl; do \
|
||||||
mkdir -p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
|
$(PERL) $(TOP)/util/mkdir-p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
|
||||||
for i in doc/$$subdir/*.pod; do \
|
for i in doc/$$subdir/*.pod; do \
|
||||||
fn=`basename $$i .pod`; \
|
fn=`basename $$i .pod`; \
|
||||||
echo "installing html/$$fn.$(HTMLSUFFIX)"; \
|
echo "installing html/$$fn.$(HTMLSUFFIX)"; \
|
||||||
cat $$i \
|
cat $$i \
|
||||||
| sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
|
| sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
|
||||||
| pod2html --podroot=doc --htmlroot=.. --podpath=apps:crypto:ssl \
|
| pod2html --podroot=doc --htmlroot=.. --podpath=$$subdir:apps:crypto:ssl \
|
||||||
| sed -r 's/<!DOCTYPE.*//g' \
|
| sed -r 's/<!DOCTYPE.*//g' \
|
||||||
> $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
|
> $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
|
||||||
$(PERL) util/extract-names.pl < $$i | \
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
@@ -726,26 +759,43 @@ install_html_docs:
|
|||||||
done; \
|
done; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
uninstall_html_docs:
|
||||||
|
here="`pwd`"; \
|
||||||
|
filecase=; \
|
||||||
|
case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*|darwin*-*-cc) \
|
||||||
|
filecase=-i; \
|
||||||
|
esac; \
|
||||||
|
for subdir in apps crypto ssl; do \
|
||||||
|
for i in doc/$$subdir/*.pod; do \
|
||||||
|
fn=`basename $$i .pod`; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
|
||||||
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
|
grep -v $$filecase "^$$fn\$$" | \
|
||||||
|
while read n; do \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/"$$n".$(HTMLSUFFIX); \
|
||||||
|
done; \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
|
||||||
install_docs:
|
install_docs:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man1 \
|
$(INSTALL_PREFIX)$(MANDIR)/man1 \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man3 \
|
$(INSTALL_PREFIX)$(MANDIR)/man3 \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man5 \
|
$(INSTALL_PREFIX)$(MANDIR)/man5 \
|
||||||
$(INSTALL_PREFIX)$(MANDIR)/man7
|
$(INSTALL_PREFIX)$(MANDIR)/man7
|
||||||
@pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
|
|
||||||
here="`pwd`"; \
|
here="`pwd`"; \
|
||||||
filecase=; \
|
filecase=; \
|
||||||
if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
|
case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*|darwin*-*-cc) \
|
||||||
filecase=-i; \
|
filecase=-i; \
|
||||||
fi; \
|
esac; \
|
||||||
set -e; for i in doc/apps/*.pod; do \
|
set -e; for i in doc/apps/*.pod; do \
|
||||||
fn=`basename $$i .pod`; \
|
fn=`basename $$i .pod`; \
|
||||||
sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
|
sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
|
||||||
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
|
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
|
||||||
(cd `$(PERL) util/dirname.pl $$i`; \
|
(cd `$(PERL) util/dirname.pl $$i`; \
|
||||||
sh -c "$$pod2man \
|
pod2man \
|
||||||
--section=$$sec --center=OpenSSL \
|
--section=$$sec --center=OpenSSL \
|
||||||
--release=$(VERSION) `basename $$i`") \
|
--release=$(VERSION) `basename $$i`) \
|
||||||
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
$(PERL) util/extract-names.pl < $$i | \
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
(grep -v $$filecase "^$$fn\$$"; true) | \
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
@@ -760,9 +810,9 @@ install_docs:
|
|||||||
sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
|
sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
|
||||||
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
|
echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
|
||||||
(cd `$(PERL) util/dirname.pl $$i`; \
|
(cd `$(PERL) util/dirname.pl $$i`; \
|
||||||
sh -c "$$pod2man \
|
pod2man \
|
||||||
--section=$$sec --center=OpenSSL \
|
--section=$$sec --center=OpenSSL \
|
||||||
--release=$(VERSION) `basename $$i`") \
|
--release=$(VERSION) `basename $$i`) \
|
||||||
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
$(PERL) util/extract-names.pl < $$i | \
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
(grep -v $$filecase "^$$fn\$$"; true) | \
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
@@ -773,4 +823,37 @@ install_docs:
|
|||||||
done); \
|
done); \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
uninstall_docs:
|
||||||
|
@here="`pwd`"; \
|
||||||
|
filecase=; \
|
||||||
|
case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*) \
|
||||||
|
filecase=-i; \
|
||||||
|
esac; \
|
||||||
|
for i in doc/apps/*.pod; do \
|
||||||
|
fn=`basename $$i .pod`; \
|
||||||
|
sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
|
(grep -v "[ ]"; true) | \
|
||||||
|
while read n; do \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/"$$n".$${sec}$(MANSUFFIX); \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/"$$n".$${sec}$(MANSUFFIX); \
|
||||||
|
done; \
|
||||||
|
done; \
|
||||||
|
for i in doc/crypto/*.pod doc/ssl/*.pod; do \
|
||||||
|
fn=`basename $$i .pod`; \
|
||||||
|
sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
|
||||||
|
$(PERL) util/extract-names.pl < $$i | \
|
||||||
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
|
(grep -v "[ ]"; true) | \
|
||||||
|
while read n; do \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/"$$n".$${sec}$(MANSUFFIX); \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(MANDIR)/man$$sec/"$$n".$${sec}$(MANSUFFIX); \
|
||||||
|
done; \
|
||||||
|
done
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
|
|||||||
@@ -170,17 +170,6 @@ link_a.gnu:
|
|||||||
link_app.gnu:
|
link_app.gnu:
|
||||||
@ $(DO_GNU_APP); $(LINK_APP)
|
@ $(DO_GNU_APP); $(LINK_APP)
|
||||||
|
|
||||||
DO_BEOS_SO= SHLIB=lib$(LIBNAME).so; \
|
|
||||||
SHLIB_SUFFIX=; \
|
|
||||||
ALLSYMSFLAGS='-Wl,--whole-archive'; \
|
|
||||||
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
|
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SUFFIX"
|
|
||||||
|
|
||||||
link_o.beos:
|
|
||||||
@ $(DO_BEOS_SO); $(LINK_SO_O)
|
|
||||||
link_a.beos:
|
|
||||||
@ $(DO_BEOS_SO); $(LINK_SO_A)
|
|
||||||
|
|
||||||
link_o.bsd:
|
link_o.bsd:
|
||||||
@if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \
|
@if $(DETECT_GNU_LD); then $(DO_GNU_SO); else \
|
||||||
$(CALC_VERSIONS); \
|
$(CALC_VERSIONS); \
|
||||||
@@ -555,28 +544,10 @@ link_app.aix:
|
|||||||
LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
|
LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
|
||||||
$(LINK_APP)
|
$(LINK_APP)
|
||||||
|
|
||||||
link_o.reliantunix:
|
|
||||||
@ $(CALC_VERSIONS); \
|
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
|
||||||
SHLIB_SUFFIX=; \
|
|
||||||
ALLSYMSFLAGS=; \
|
|
||||||
NOALLSYMSFLAGS=''; \
|
|
||||||
SHAREDFLAGS='$(CFLAGS) -G'; \
|
|
||||||
$(LINK_SO_O)
|
|
||||||
link_a.reliantunix:
|
|
||||||
@ $(CALC_VERSIONS); \
|
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
|
||||||
SHLIB_SUFFIX=; \
|
|
||||||
ALLSYMSFLAGS=; \
|
|
||||||
NOALLSYMSFLAGS=''; \
|
|
||||||
SHAREDFLAGS='$(CFLAGS) -G'; \
|
|
||||||
$(LINK_SO_A_UNPACKED)
|
|
||||||
link_app.reliantunix:
|
|
||||||
$(LINK_APP)
|
|
||||||
|
|
||||||
# Targets to build symbolic links when needed
|
# Targets to build symbolic links when needed
|
||||||
symlink.gnu symlink.solaris symlink.svr3 symlink.svr5 symlink.irix \
|
symlink.gnu symlink.solaris symlink.svr3 symlink.svr5 symlink.irix \
|
||||||
symlink.aix symlink.reliantunix:
|
symlink.aix:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
SHLIB=lib$(LIBNAME).so; \
|
||||||
$(SYMLINK_SO)
|
$(SYMLINK_SO)
|
||||||
@@ -591,7 +562,7 @@ symlink.hpux:
|
|||||||
expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
|
expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
|
||||||
$(SYMLINK_SO)
|
$(SYMLINK_SO)
|
||||||
# The following lines means those specific architectures do no symlinks
|
# The following lines means those specific architectures do no symlinks
|
||||||
symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath symlink.beos:
|
symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
|
||||||
|
|
||||||
# Compatibility targets
|
# Compatibility targets
|
||||||
link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu
|
link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu
|
||||||
@@ -645,11 +616,3 @@ link_o.aix-shared: link_o.aix
|
|||||||
link_a.aix-shared: link_a.aix
|
link_a.aix-shared: link_a.aix
|
||||||
link_app.aix-shared: link_app.aix
|
link_app.aix-shared: link_app.aix
|
||||||
symlink.aix-shared: symlink.aix
|
symlink.aix-shared: symlink.aix
|
||||||
link_o.reliantunix-shared: link_o.reliantunix
|
|
||||||
link_a.reliantunix-shared: link_a.reliantunix
|
|
||||||
link_app.reliantunix-shared: link_app.reliantunix
|
|
||||||
symlink.reliantunix-shared: symlink.reliantunix
|
|
||||||
link_o.beos-shared: link_o.beos
|
|
||||||
link_a.beos-shared: link_a.beos
|
|
||||||
link_app.beos-shared: link_app.gnu
|
|
||||||
symlink.beos-shared: symlink.beos
|
|
||||||
|
|||||||
291
NEWS
291
NEWS
@@ -5,11 +5,147 @@
|
|||||||
This file gives a brief overview of the major changes between each OpenSSL
|
This file gives a brief overview of the major changes between each OpenSSL
|
||||||
release. For more details please read the CHANGES file.
|
release. For more details please read the CHANGES file.
|
||||||
|
|
||||||
Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d:
|
Major changes between OpenSSL 1.0.1j and OpenSSL 1.0.2 [in beta]:
|
||||||
|
|
||||||
|
o Suite B support for TLS 1.2 and DTLS 1.2
|
||||||
|
o Support for DTLS 1.2
|
||||||
|
o TLS automatic EC curve selection.
|
||||||
|
o API to set TLS supported signature algorithms and curves
|
||||||
|
o SSL_CONF configuration API.
|
||||||
|
o TLS Brainpool support.
|
||||||
|
o ALPN support.
|
||||||
|
o CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1i and OpenSSL 1.0.1j [15 Oct 2014]
|
||||||
|
|
||||||
|
o Fix for CVE-2014-3513
|
||||||
|
o Fix for CVE-2014-3567
|
||||||
|
o Mitigation for CVE-2014-3566 (SSL protocol vulnerability)
|
||||||
|
o Fix for CVE-2014-3568
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1h and OpenSSL 1.0.1i [6 Aug 2014]
|
||||||
|
|
||||||
|
o Fix for CVE-2014-3512
|
||||||
|
o Fix for CVE-2014-3511
|
||||||
|
o Fix for CVE-2014-3510
|
||||||
|
o Fix for CVE-2014-3507
|
||||||
|
o Fix for CVE-2014-3506
|
||||||
|
o Fix for CVE-2014-3505
|
||||||
|
o Fix for CVE-2014-3509
|
||||||
|
o Fix for CVE-2014-5139
|
||||||
|
o Fix for CVE-2014-3508
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1g and OpenSSL 1.0.1h [5 Jun 2014]
|
||||||
|
|
||||||
|
o Fix for CVE-2014-0224
|
||||||
|
o Fix for CVE-2014-0221
|
||||||
|
o Fix for CVE-2014-0195
|
||||||
|
o Fix for CVE-2014-3470
|
||||||
|
o Fix for CVE-2010-5298
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1f and OpenSSL 1.0.1g [7 Apr 2014]
|
||||||
|
|
||||||
|
o Fix for CVE-2014-0160
|
||||||
|
o Add TLS padding extension workaround for broken servers.
|
||||||
|
o Fix for CVE-2014-0076
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1e and OpenSSL 1.0.1f [6 Jan 2014]
|
||||||
|
|
||||||
|
o Don't include gmt_unix_time in TLS server and client random values
|
||||||
|
o Fix for TLS record tampering bug CVE-2013-4353
|
||||||
|
o Fix for TLS version checking bug CVE-2013-6449
|
||||||
|
o Fix for DTLS retransmission bug CVE-2013-6450
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1d and OpenSSL 1.0.1e [11 Feb 2013]:
|
||||||
|
|
||||||
|
o Corrected fix for CVE-2013-0169
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d [4 Feb 2013]:
|
||||||
|
|
||||||
|
o Fix renegotiation in TLS 1.1, 1.2 by using the correct TLS version.
|
||||||
|
o Include the fips configuration module.
|
||||||
|
o Fix OCSP bad key DoS attack CVE-2013-0166
|
||||||
|
o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
|
||||||
|
o Fix for TLS AESNI record handling flaw CVE-2012-2686
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c [10 May 2012]:
|
||||||
|
|
||||||
|
o Fix TLS/DTLS record length checking bug CVE-2012-2333
|
||||||
|
o Don't attempt to use non-FIPS composite ciphers in FIPS mode.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1a and OpenSSL 1.0.1b [26 Apr 2012]:
|
||||||
|
|
||||||
|
o Fix compilation error on non-x86 platforms.
|
||||||
|
o Make FIPS capable OpenSSL ciphers work in non-FIPS mode.
|
||||||
|
o Fix SSL_OP_NO_TLSv1_1 clash with SSL_OP_ALL in OpenSSL 1.0.0
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.1 and OpenSSL 1.0.1a [19 Apr 2012]:
|
||||||
|
|
||||||
|
o Fix for ASN1 overflow bug CVE-2012-2110
|
||||||
|
o Workarounds for some servers that hang on long client hellos.
|
||||||
|
o Fix SEGV in AES code.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1 [14 Mar 2012]:
|
||||||
|
|
||||||
|
o TLS/DTLS heartbeat support.
|
||||||
|
o SCTP support.
|
||||||
|
o RFC 5705 TLS key material exporter.
|
||||||
|
o RFC 5764 DTLS-SRTP negotiation.
|
||||||
|
o Next Protocol Negotiation.
|
||||||
|
o PSS signatures in certificates, requests and CRLs.
|
||||||
|
o Support for password based recipient info for CMS.
|
||||||
|
o Support TLS v1.2 and TLS v1.1.
|
||||||
|
o Preliminary FIPS capability for unvalidated 2.0 FIPS module.
|
||||||
|
o SRP support.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0k and OpenSSL 1.0.0l [6 Jan 2014]
|
||||||
|
|
||||||
|
o Fix for DTLS retransmission bug CVE-2013-6450
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0j and OpenSSL 1.0.0k [5 Feb 2013]:
|
||||||
|
|
||||||
|
o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
|
||||||
|
o Fix OCSP bad key DoS attack CVE-2013-0166
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0i and OpenSSL 1.0.0j [10 May 2012]:
|
||||||
|
|
||||||
|
o Fix DTLS record length checking bug CVE-2012-2333
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.0i [19 Apr 2012]:
|
||||||
|
|
||||||
|
o Fix for ASN1 overflow bug CVE-2012-2110
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0g and OpenSSL 1.0.0h [12 Mar 2012]:
|
||||||
|
|
||||||
|
o Fix for CMS/PKCS#7 MMA CVE-2012-0884
|
||||||
|
o Corrected fix for CVE-2011-4619
|
||||||
|
o Various DTLS fixes.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g [18 Jan 2012]:
|
||||||
|
|
||||||
|
o Fix for DTLS DoS issue CVE-2012-0050
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f [4 Jan 2012]:
|
||||||
|
|
||||||
|
o Fix for DTLS plaintext recovery attack CVE-2011-4108
|
||||||
|
o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
|
||||||
|
o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
|
||||||
|
o Check parameters are not NULL in GOST ENGINE CVE-2012-0027
|
||||||
|
o Check for malformed RFC3779 data CVE-2011-4577
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e [6 Sep 2011]:
|
||||||
|
|
||||||
|
o Fix for CRL vulnerability issue CVE-2011-3207
|
||||||
|
o Fix for ECDH crashes CVE-2011-3210
|
||||||
|
o Protection against EC timing attacks.
|
||||||
|
o Support ECDH ciphersuites for certificates using SHA2 algorithms.
|
||||||
|
o Various DTLS fixes.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d [8 Feb 2011]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2011-0014
|
o Fix for security issue CVE-2011-0014
|
||||||
|
|
||||||
Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c:
|
Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c [2 Dec 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-4180
|
o Fix for security issue CVE-2010-4180
|
||||||
o Fix for CVE-2010-4252
|
o Fix for CVE-2010-4252
|
||||||
@@ -17,18 +153,18 @@
|
|||||||
o Fix various platform compilation issues.
|
o Fix various platform compilation issues.
|
||||||
o Corrected fix for security issue CVE-2010-3864.
|
o Corrected fix for security issue CVE-2010-3864.
|
||||||
|
|
||||||
Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b:
|
Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b [16 Nov 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-3864.
|
o Fix for security issue CVE-2010-3864.
|
||||||
o Fix for CVE-2010-2939
|
o Fix for CVE-2010-2939
|
||||||
o Fix WIN32 build system for GOST ENGINE.
|
o Fix WIN32 build system for GOST ENGINE.
|
||||||
|
|
||||||
Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a:
|
Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a [1 Jun 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-1633.
|
o Fix for security issue CVE-2010-1633.
|
||||||
o GOST MAC and CFB fixes.
|
o GOST MAC and CFB fixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0:
|
Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0 [29 Mar 2010]:
|
||||||
|
|
||||||
o RFC3280 path validation: sufficient to process PKITS tests.
|
o RFC3280 path validation: sufficient to process PKITS tests.
|
||||||
o Integrated support for PVK files and keyblobs.
|
o Integrated support for PVK files and keyblobs.
|
||||||
@@ -51,20 +187,65 @@
|
|||||||
o Opaque PRF Input TLS extension support.
|
o Opaque PRF Input TLS extension support.
|
||||||
o Updated time routines to avoid OS limitations.
|
o Updated time routines to avoid OS limitations.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r:
|
Major changes between OpenSSL 0.9.8y and OpenSSL 0.9.8za [5 Jun 2014]:
|
||||||
|
|
||||||
|
o Fix for CVE-2014-0224
|
||||||
|
o Fix for CVE-2014-0221
|
||||||
|
o Fix for CVE-2014-0195
|
||||||
|
o Fix for CVE-2014-3470
|
||||||
|
o Fix for CVE-2014-0076
|
||||||
|
o Fix for CVE-2010-5298
|
||||||
|
o Fix to TLS alert handling.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8x and OpenSSL 0.9.8y [5 Feb 2013]:
|
||||||
|
|
||||||
|
o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
|
||||||
|
o Fix OCSP bad key DoS attack CVE-2013-0166
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8w and OpenSSL 0.9.8x [10 May 2012]:
|
||||||
|
|
||||||
|
o Fix DTLS record length checking bug CVE-2012-2333
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8v and OpenSSL 0.9.8w [23 Apr 2012]:
|
||||||
|
|
||||||
|
o Fix for CVE-2012-2131 (corrected fix for 0.9.8 and CVE-2012-2110)
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8u and OpenSSL 0.9.8v [19 Apr 2012]:
|
||||||
|
|
||||||
|
o Fix for ASN1 overflow bug CVE-2012-2110
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8t and OpenSSL 0.9.8u [12 Mar 2012]:
|
||||||
|
|
||||||
|
o Fix for CMS/PKCS#7 MMA CVE-2012-0884
|
||||||
|
o Corrected fix for CVE-2011-4619
|
||||||
|
o Various DTLS fixes.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8s and OpenSSL 0.9.8t [18 Jan 2012]:
|
||||||
|
|
||||||
|
o Fix for DTLS DoS issue CVE-2012-0050
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8r and OpenSSL 0.9.8s [4 Jan 2012]:
|
||||||
|
|
||||||
|
o Fix for DTLS plaintext recovery attack CVE-2011-4108
|
||||||
|
o Fix policy check double free error CVE-2011-4109
|
||||||
|
o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
|
||||||
|
o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
|
||||||
|
o Check for malformed RFC3779 data CVE-2011-4577
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r [8 Feb 2011]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2011-0014
|
o Fix for security issue CVE-2011-0014
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q:
|
Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q [2 Dec 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-4180
|
o Fix for security issue CVE-2010-4180
|
||||||
o Fix for CVE-2010-4252
|
o Fix for CVE-2010-4252
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p:
|
Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p [16 Nov 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-3864.
|
o Fix for security issue CVE-2010-3864.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o:
|
Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o [1 Jun 2010]:
|
||||||
|
|
||||||
o Fix for security issue CVE-2010-0742.
|
o Fix for security issue CVE-2010-0742.
|
||||||
o Various DTLS fixes.
|
o Various DTLS fixes.
|
||||||
@@ -72,12 +253,12 @@
|
|||||||
o Fix for no-rc4 compilation.
|
o Fix for no-rc4 compilation.
|
||||||
o Chil ENGINE unload workaround.
|
o Chil ENGINE unload workaround.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n:
|
Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n [24 Mar 2010]:
|
||||||
|
|
||||||
o CFB cipher definition fixes.
|
o CFB cipher definition fixes.
|
||||||
o Fix security issues CVE-2010-0740 and CVE-2010-0433.
|
o Fix security issues CVE-2010-0740 and CVE-2010-0433.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m:
|
Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m [25 Feb 2010]:
|
||||||
|
|
||||||
o Cipher definition fixes.
|
o Cipher definition fixes.
|
||||||
o Workaround for slow RAND_poll() on some WIN32 versions.
|
o Workaround for slow RAND_poll() on some WIN32 versions.
|
||||||
@@ -89,33 +270,33 @@
|
|||||||
o Ticket and SNI coexistence fixes.
|
o Ticket and SNI coexistence fixes.
|
||||||
o Many fixes to DTLS handling.
|
o Many fixes to DTLS handling.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l:
|
Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l [5 Nov 2009]:
|
||||||
|
|
||||||
o Temporary work around for CVE-2009-3555: disable renegotiation.
|
o Temporary work around for CVE-2009-3555: disable renegotiation.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k:
|
Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k [25 Mar 2009]:
|
||||||
|
|
||||||
o Fix various build issues.
|
o Fix various build issues.
|
||||||
o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789)
|
o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789)
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j:
|
Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j [7 Jan 2009]:
|
||||||
|
|
||||||
o Fix security issue (CVE-2008-5077)
|
o Fix security issue (CVE-2008-5077)
|
||||||
o Merge FIPS 140-2 branch code.
|
o Merge FIPS 140-2 branch code.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h:
|
Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h [28 May 2008]:
|
||||||
|
|
||||||
o CryptoAPI ENGINE support.
|
o CryptoAPI ENGINE support.
|
||||||
o Various precautionary measures.
|
o Various precautionary measures.
|
||||||
o Fix for bugs affecting certificate request creation.
|
o Fix for bugs affecting certificate request creation.
|
||||||
o Support for local machine keyset attribute in PKCS#12 files.
|
o Support for local machine keyset attribute in PKCS#12 files.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g:
|
Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g [19 Oct 2007]:
|
||||||
|
|
||||||
o Backport of CMS functionality to 0.9.8.
|
o Backport of CMS functionality to 0.9.8.
|
||||||
o Fixes for bugs introduced with 0.9.8f.
|
o Fixes for bugs introduced with 0.9.8f.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f:
|
Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f [11 Oct 2007]:
|
||||||
|
|
||||||
o Add gcc 4.2 support.
|
o Add gcc 4.2 support.
|
||||||
o Add support for AES and SSE2 assembly lanugauge optimization
|
o Add support for AES and SSE2 assembly lanugauge optimization
|
||||||
@@ -126,23 +307,23 @@
|
|||||||
o RFC4507bis support.
|
o RFC4507bis support.
|
||||||
o TLS Extensions support.
|
o TLS Extensions support.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e:
|
Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e [23 Feb 2007]:
|
||||||
|
|
||||||
o Various ciphersuite selection fixes.
|
o Various ciphersuite selection fixes.
|
||||||
o RFC3779 support.
|
o RFC3779 support.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d:
|
Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d [28 Sep 2006]:
|
||||||
|
|
||||||
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
||||||
o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
|
o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
|
||||||
o Changes to ciphersuite selection algorithm
|
o Changes to ciphersuite selection algorithm
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c:
|
Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c [5 Sep 2006]:
|
||||||
|
|
||||||
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
||||||
o New cipher Camellia
|
o New cipher Camellia
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b:
|
Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b [4 May 2006]:
|
||||||
|
|
||||||
o Cipher string fixes.
|
o Cipher string fixes.
|
||||||
o Fixes for VC++ 2005.
|
o Fixes for VC++ 2005.
|
||||||
@@ -152,12 +333,12 @@
|
|||||||
o Built in dynamic engine compilation support on Win32.
|
o Built in dynamic engine compilation support on Win32.
|
||||||
o Fixes auto dynamic engine loading in Win32.
|
o Fixes auto dynamic engine loading in Win32.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a:
|
Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a [11 Oct 2005]:
|
||||||
|
|
||||||
o Fix potential SSL 2.0 rollback, CVE-2005-2969
|
o Fix potential SSL 2.0 rollback, CVE-2005-2969
|
||||||
o Extended Windows CE support
|
o Extended Windows CE support
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8:
|
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8 [5 Jul 2005]:
|
||||||
|
|
||||||
o Major work on the BIGNUM library for higher efficiency and to
|
o Major work on the BIGNUM library for higher efficiency and to
|
||||||
make operations more streamlined and less contradictory. This
|
make operations more streamlined and less contradictory. This
|
||||||
@@ -231,36 +412,36 @@
|
|||||||
o Added initial support for Win64.
|
o Added initial support for Win64.
|
||||||
o Added alternate pkg-config files.
|
o Added alternate pkg-config files.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m:
|
Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m [23 Feb 2007]:
|
||||||
|
|
||||||
o FIPS 1.1.1 module linking.
|
o FIPS 1.1.1 module linking.
|
||||||
o Various ciphersuite selection fixes.
|
o Various ciphersuite selection fixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
|
Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l [28 Sep 2006]:
|
||||||
|
|
||||||
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
||||||
o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
|
o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k:
|
Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k [5 Sep 2006]:
|
||||||
|
|
||||||
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j:
|
Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j [4 May 2006]:
|
||||||
|
|
||||||
o Visual C++ 2005 fixes.
|
o Visual C++ 2005 fixes.
|
||||||
o Update Windows build system for FIPS.
|
o Update Windows build system for FIPS.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i:
|
Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i [14 Oct 2005]:
|
||||||
|
|
||||||
o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
|
o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h:
|
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h [11 Oct 2005]:
|
||||||
|
|
||||||
o Fix SSL 2.0 Rollback, CVE-2005-2969
|
o Fix SSL 2.0 Rollback, CVE-2005-2969
|
||||||
o Allow use of fixed-length exponent on DSA signing
|
o Allow use of fixed-length exponent on DSA signing
|
||||||
o Default fixed-window RSA, DSA, DH private-key operations
|
o Default fixed-window RSA, DSA, DH private-key operations
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
|
Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g [11 Apr 2005]:
|
||||||
|
|
||||||
o More compilation issues fixed.
|
o More compilation issues fixed.
|
||||||
o Adaptation to more modern Kerberos API.
|
o Adaptation to more modern Kerberos API.
|
||||||
@@ -269,7 +450,7 @@
|
|||||||
o More constification.
|
o More constification.
|
||||||
o Added processing of proxy certificates (RFC 3820).
|
o Added processing of proxy certificates (RFC 3820).
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f:
|
Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f [22 Mar 2005]:
|
||||||
|
|
||||||
o Several compilation issues fixed.
|
o Several compilation issues fixed.
|
||||||
o Many memory allocation failure checks added.
|
o Many memory allocation failure checks added.
|
||||||
@@ -277,12 +458,12 @@
|
|||||||
o Mandatory basic checks on certificates.
|
o Mandatory basic checks on certificates.
|
||||||
o Performance improvements.
|
o Performance improvements.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e:
|
Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e [25 Oct 2004]:
|
||||||
|
|
||||||
o Fix race condition in CRL checking code.
|
o Fix race condition in CRL checking code.
|
||||||
o Fixes to PKCS#7 (S/MIME) code.
|
o Fixes to PKCS#7 (S/MIME) code.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d:
|
Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d [17 Mar 2004]:
|
||||||
|
|
||||||
o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
|
o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug
|
||||||
o Security: Fix null-pointer assignment in do_change_cipher_spec()
|
o Security: Fix null-pointer assignment in do_change_cipher_spec()
|
||||||
@@ -290,14 +471,14 @@
|
|||||||
o Multiple X509 verification fixes
|
o Multiple X509 verification fixes
|
||||||
o Speed up HMAC and other operations
|
o Speed up HMAC and other operations
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c:
|
Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c [30 Sep 2003]:
|
||||||
|
|
||||||
o Security: fix various ASN1 parsing bugs.
|
o Security: fix various ASN1 parsing bugs.
|
||||||
o New -ignore_err option to OCSP utility.
|
o New -ignore_err option to OCSP utility.
|
||||||
o Various interop and bug fixes in S/MIME code.
|
o Various interop and bug fixes in S/MIME code.
|
||||||
o SSL/TLS protocol fix for unrequested client certificates.
|
o SSL/TLS protocol fix for unrequested client certificates.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b:
|
Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b [10 Apr 2003]:
|
||||||
|
|
||||||
o Security: counter the Klima-Pokorny-Rosa extension of
|
o Security: counter the Klima-Pokorny-Rosa extension of
|
||||||
Bleichbacher's attack
|
Bleichbacher's attack
|
||||||
@@ -308,7 +489,7 @@
|
|||||||
o ASN.1: treat domainComponent correctly.
|
o ASN.1: treat domainComponent correctly.
|
||||||
o Documentation: fixes and additions.
|
o Documentation: fixes and additions.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a:
|
Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a [19 Feb 2003]:
|
||||||
|
|
||||||
o Security: Important security related bugfixes.
|
o Security: Important security related bugfixes.
|
||||||
o Enhanced compatibility with MIT Kerberos.
|
o Enhanced compatibility with MIT Kerberos.
|
||||||
@@ -319,7 +500,7 @@
|
|||||||
o SSL/TLS: now handles manual certificate chain building.
|
o SSL/TLS: now handles manual certificate chain building.
|
||||||
o SSL/TLS: certain session ID malfunctions corrected.
|
o SSL/TLS: certain session ID malfunctions corrected.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7:
|
Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7 [30 Dec 2002]:
|
||||||
|
|
||||||
o New library section OCSP.
|
o New library section OCSP.
|
||||||
o Complete rewrite of ASN1 code.
|
o Complete rewrite of ASN1 code.
|
||||||
@@ -365,23 +546,23 @@
|
|||||||
o SSL/TLS: add callback to retrieve SSL/TLS messages.
|
o SSL/TLS: add callback to retrieve SSL/TLS messages.
|
||||||
o SSL/TLS: support AES cipher suites (RFC3268).
|
o SSL/TLS: support AES cipher suites (RFC3268).
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k:
|
Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k [30 Sep 2003]:
|
||||||
|
|
||||||
o Security: fix various ASN1 parsing bugs.
|
o Security: fix various ASN1 parsing bugs.
|
||||||
o SSL/TLS protocol fix for unrequested client certificates.
|
o SSL/TLS protocol fix for unrequested client certificates.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j:
|
Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j [10 Apr 2003]:
|
||||||
|
|
||||||
o Security: counter the Klima-Pokorny-Rosa extension of
|
o Security: counter the Klima-Pokorny-Rosa extension of
|
||||||
Bleichbacher's attack
|
Bleichbacher's attack
|
||||||
o Security: make RSA blinding default.
|
o Security: make RSA blinding default.
|
||||||
o Build: shared library support fixes.
|
o Build: shared library support fixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i:
|
Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i [19 Feb 2003]:
|
||||||
|
|
||||||
o Important security related bugfixes.
|
o Important security related bugfixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h:
|
Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h [5 Dec 2002]:
|
||||||
|
|
||||||
o New configuration targets for Tandem OSS and A/UX.
|
o New configuration targets for Tandem OSS and A/UX.
|
||||||
o New OIDs for Microsoft attributes.
|
o New OIDs for Microsoft attributes.
|
||||||
@@ -395,25 +576,25 @@
|
|||||||
o Fixes for smaller building problems.
|
o Fixes for smaller building problems.
|
||||||
o Updates of manuals, FAQ and other instructive documents.
|
o Updates of manuals, FAQ and other instructive documents.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g:
|
Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g [9 Aug 2002]:
|
||||||
|
|
||||||
o Important building fixes on Unix.
|
o Important building fixes on Unix.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f:
|
Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f [8 Aug 2002]:
|
||||||
|
|
||||||
o Various important bugfixes.
|
o Various important bugfixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e:
|
Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e [30 Jul 2002]:
|
||||||
|
|
||||||
o Important security related bugfixes.
|
o Important security related bugfixes.
|
||||||
o Various SSL/TLS library bugfixes.
|
o Various SSL/TLS library bugfixes.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d:
|
Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d [9 May 2002]:
|
||||||
|
|
||||||
o Various SSL/TLS library bugfixes.
|
o Various SSL/TLS library bugfixes.
|
||||||
o Fix DH parameter generation for 'non-standard' generators.
|
o Fix DH parameter generation for 'non-standard' generators.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c:
|
Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c [21 Dec 2001]:
|
||||||
|
|
||||||
o Various SSL/TLS library bugfixes.
|
o Various SSL/TLS library bugfixes.
|
||||||
o BIGNUM library fixes.
|
o BIGNUM library fixes.
|
||||||
@@ -426,7 +607,7 @@
|
|||||||
Broadcom and Cryptographic Appliance's keyserver
|
Broadcom and Cryptographic Appliance's keyserver
|
||||||
[in 0.9.6c-engine release].
|
[in 0.9.6c-engine release].
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b:
|
Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b [9 Jul 2001]:
|
||||||
|
|
||||||
o Security fix: PRNG improvements.
|
o Security fix: PRNG improvements.
|
||||||
o Security fix: RSA OAEP check.
|
o Security fix: RSA OAEP check.
|
||||||
@@ -443,7 +624,7 @@
|
|||||||
o Increase default size for BIO buffering filter.
|
o Increase default size for BIO buffering filter.
|
||||||
o Compatibility fixes in some scripts.
|
o Compatibility fixes in some scripts.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a:
|
Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a [5 Apr 2001]:
|
||||||
|
|
||||||
o Security fix: change behavior of OpenSSL to avoid using
|
o Security fix: change behavior of OpenSSL to avoid using
|
||||||
environment variables when running as root.
|
environment variables when running as root.
|
||||||
@@ -468,7 +649,7 @@
|
|||||||
o New function BN_rand_range().
|
o New function BN_rand_range().
|
||||||
o Add "-rand" option to openssl s_client and s_server.
|
o Add "-rand" option to openssl s_client and s_server.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6:
|
Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6 [10 Oct 2000]:
|
||||||
|
|
||||||
o Some documentation for BIO and SSL libraries.
|
o Some documentation for BIO and SSL libraries.
|
||||||
o Enhanced chain verification using key identifiers.
|
o Enhanced chain verification using key identifiers.
|
||||||
@@ -483,7 +664,7 @@
|
|||||||
[1] The support for external crypto devices is currently a separate
|
[1] The support for external crypto devices is currently a separate
|
||||||
distribution. See the file README.ENGINE.
|
distribution. See the file README.ENGINE.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a:
|
Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a [1 Apr 2000]:
|
||||||
|
|
||||||
o Bug fixes for Win32, SuSE Linux, NeXTSTEP and FreeBSD 2.2.8
|
o Bug fixes for Win32, SuSE Linux, NeXTSTEP and FreeBSD 2.2.8
|
||||||
o Shared library support for HPUX and Solaris-gcc
|
o Shared library support for HPUX and Solaris-gcc
|
||||||
@@ -492,7 +673,7 @@
|
|||||||
o New 'rand' application
|
o New 'rand' application
|
||||||
o New way to check for existence of algorithms from scripts
|
o New way to check for existence of algorithms from scripts
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5:
|
Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5 [25 May 2000]:
|
||||||
|
|
||||||
o S/MIME support in new 'smime' command
|
o S/MIME support in new 'smime' command
|
||||||
o Documentation for the OpenSSL command line application
|
o Documentation for the OpenSSL command line application
|
||||||
@@ -528,7 +709,7 @@
|
|||||||
o Enhanced support for Alpha Linux
|
o Enhanced support for Alpha Linux
|
||||||
o Experimental MacOS support
|
o Experimental MacOS support
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4:
|
Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4 [9 Aug 1999]:
|
||||||
|
|
||||||
o Transparent support for PKCS#8 format private keys: these are used
|
o Transparent support for PKCS#8 format private keys: these are used
|
||||||
by several software packages and are more secure than the standard
|
by several software packages and are more secure than the standard
|
||||||
@@ -539,7 +720,7 @@
|
|||||||
o New pipe-like BIO that allows using the SSL library when actual I/O
|
o New pipe-like BIO that allows using the SSL library when actual I/O
|
||||||
must be handled by the application (BIO pair)
|
must be handled by the application (BIO pair)
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3:
|
Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3 [24 May 1999]:
|
||||||
o Lots of enhancements and cleanups to the Configuration mechanism
|
o Lots of enhancements and cleanups to the Configuration mechanism
|
||||||
o RSA OEAP related fixes
|
o RSA OEAP related fixes
|
||||||
o Added `openssl ca -revoke' option for revoking a certificate
|
o Added `openssl ca -revoke' option for revoking a certificate
|
||||||
@@ -553,7 +734,7 @@
|
|||||||
o Sparc assembler bignum implementation, optimized hash functions
|
o Sparc assembler bignum implementation, optimized hash functions
|
||||||
o Option to disable selected ciphers
|
o Option to disable selected ciphers
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b:
|
Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b [22 Mar 1999]:
|
||||||
o Fixed a security hole related to session resumption
|
o Fixed a security hole related to session resumption
|
||||||
o Fixed RSA encryption routines for the p < q case
|
o Fixed RSA encryption routines for the p < q case
|
||||||
o "ALL" in cipher lists now means "everything except NULL ciphers"
|
o "ALL" in cipher lists now means "everything except NULL ciphers"
|
||||||
@@ -575,7 +756,7 @@
|
|||||||
o Lots of memory leak fixes.
|
o Lots of memory leak fixes.
|
||||||
o Lots of bug fixes.
|
o Lots of bug fixes.
|
||||||
|
|
||||||
Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c:
|
Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c [23 Dec 1998]:
|
||||||
o Integration of the popular NO_RSA/NO_DSA patches
|
o Integration of the popular NO_RSA/NO_DSA patches
|
||||||
o Initial support for compression inside the SSL record layer
|
o Initial support for compression inside the SSL record layer
|
||||||
o Added BIO proxy and filtering functionality
|
o Added BIO proxy and filtering functionality
|
||||||
|
|||||||
@@ -270,22 +270,6 @@ sub ssl_tests
|
|||||||
print( OUT "\n========================================================\n");
|
print( OUT "\n========================================================\n");
|
||||||
print( OUT "SSL TESTS:\n\n");
|
print( OUT "SSL TESTS:\n\n");
|
||||||
|
|
||||||
system("ssltest -ssl2 (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2:");
|
|
||||||
log_output("ssltest -ssl2", $outFile);
|
|
||||||
|
|
||||||
system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with server authentication:");
|
|
||||||
log_output("$ssltest -ssl2 -server_auth", $outFile);
|
|
||||||
|
|
||||||
system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with client authentication:");
|
|
||||||
log_output("$ssltest -ssl2 -client_auth", $outFile);
|
|
||||||
|
|
||||||
system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with both client and server authentication:");
|
|
||||||
log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile);
|
|
||||||
|
|
||||||
system("ssltest -ssl3 (CLIB_OPT)/>$outFile");
|
system("ssltest -ssl3 (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3:");
|
log_desc("Testing sslv3:");
|
||||||
log_output("ssltest -ssl3", $outFile);
|
log_output("ssltest -ssl3", $outFile);
|
||||||
@@ -318,26 +302,10 @@ sub ssl_tests
|
|||||||
log_desc("Testing sslv2/sslv3 with both client and server authentication:");
|
log_desc("Testing sslv2/sslv3 with both client and server authentication:");
|
||||||
log_output("$ssltest -server_auth -client_auth", $outFile);
|
log_output("$ssltest -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 via BIO pair:");
|
|
||||||
log_output("ssltest -bio_pair -ssl2", $outFile);
|
|
||||||
|
|
||||||
system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile);
|
log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile);
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with server authentication via BIO pair:");
|
|
||||||
log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile);
|
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with client authentication via BIO pair:");
|
|
||||||
log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile);
|
|
||||||
|
|
||||||
system("$ssltest -bio_pair -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
|
||||||
log_desc("Testing sslv2 with both client and server authentication via BIO pair:");
|
|
||||||
log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile);
|
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile");
|
system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 via BIO pair:");
|
log_desc("Testing sslv3 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl3", $outFile);
|
log_output("ssltest -bio_pair -ssl3", $outFile);
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ static LHASH *error_hash=NULL;
|
|||||||
static LHASH *thread_hash=NULL;
|
static LHASH *thread_hash=NULL;
|
||||||
|
|
||||||
several files have routines with static "init" to track if error strings
|
several files have routines with static "init" to track if error strings
|
||||||
have been loaded ( may not want seperate error strings for each process )
|
have been loaded ( may not want separate error strings for each process )
|
||||||
The "init" variable can't be left "global" because the error has is a ptr
|
The "init" variable can't be left "global" because the error has is a ptr
|
||||||
that is malloc'ed. The malloc'ed error has is dependant on the "init"
|
that is malloc'ed. The malloc'ed error has is dependant on the "init"
|
||||||
vars.
|
vars.
|
||||||
|
|||||||
14
PROBLEMS
14
PROBLEMS
@@ -197,3 +197,17 @@ reconfigure with additional no-sse2 [or 386] option passed to ./config.
|
|||||||
We don't have framework to associate -ldl with no-dso, therefore the only
|
We don't have framework to associate -ldl with no-dso, therefore the only
|
||||||
way is to edit Makefile right after ./config no-dso and remove -ldl from
|
way is to edit Makefile right after ./config no-dso and remove -ldl from
|
||||||
EX_LIBS line.
|
EX_LIBS line.
|
||||||
|
|
||||||
|
* hpux-parisc2-cc no-asm build fails with SEGV in ECDSA/DH.
|
||||||
|
|
||||||
|
Compiler bug, presumably at particular patch level. Remaining
|
||||||
|
hpux*-parisc*-cc configurations can be affected too. Drop optimization
|
||||||
|
level to +O2 when compiling bn_nist.o.
|
||||||
|
|
||||||
|
* solaris64-sparcv9-cc link failure
|
||||||
|
|
||||||
|
Solaris 8 ar can fail to maintain symbol table in .a, which results in
|
||||||
|
link failures. Apply 109147-09 or later or modify Makefile generated
|
||||||
|
by ./Configure solaris64-sparcv9-cc and replace RANLIB assignment with
|
||||||
|
|
||||||
|
RANLIB= /usr/ccs/bin/ar rs
|
||||||
|
|||||||
40
README
40
README
@@ -90,32 +90,6 @@
|
|||||||
SSL/TLS Client and Server Tests
|
SSL/TLS Client and Server Tests
|
||||||
Handling of S/MIME signed or encrypted mail
|
Handling of S/MIME signed or encrypted mail
|
||||||
|
|
||||||
|
|
||||||
PATENTS
|
|
||||||
-------
|
|
||||||
|
|
||||||
Various companies hold various patents for various algorithms in various
|
|
||||||
locations around the world. _YOU_ are responsible for ensuring that your use
|
|
||||||
of any algorithms is legal by checking if there are any patents in your
|
|
||||||
country. The file contains some of the patents that we know about or are
|
|
||||||
rumored to exist. This is not a definitive list.
|
|
||||||
|
|
||||||
RSA Security holds software patents on the RC5 algorithm. If you
|
|
||||||
intend to use this cipher, you must contact RSA Security for
|
|
||||||
licensing conditions. Their web page is http://www.rsasecurity.com/.
|
|
||||||
|
|
||||||
RC4 is a trademark of RSA Security, so use of this label should perhaps
|
|
||||||
only be used with RSA Security's permission.
|
|
||||||
|
|
||||||
The IDEA algorithm is patented by Ascom in Austria, France, Germany, Italy,
|
|
||||||
Japan, the Netherlands, Spain, Sweden, Switzerland, UK and the USA. They
|
|
||||||
should be contacted if that algorithm is to be used; their web page is
|
|
||||||
http://www.ascom.ch/.
|
|
||||||
|
|
||||||
NTT and Mitsubishi have patents and pending patents on the Camellia
|
|
||||||
algorithm, but allow use at no charge without requiring an explicit
|
|
||||||
licensing agreement: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
|
|
||||||
|
|
||||||
INSTALLATION
|
INSTALLATION
|
||||||
------------
|
------------
|
||||||
|
|
||||||
@@ -161,8 +135,7 @@
|
|||||||
- Problem Description (steps that will reproduce the problem, if known)
|
- Problem Description (steps that will reproduce the problem, if known)
|
||||||
- Stack Traceback (if the application dumps core)
|
- Stack Traceback (if the application dumps core)
|
||||||
|
|
||||||
Report the bug to the OpenSSL project via the Request Tracker
|
Email the report to:
|
||||||
(http://www.openssl.org/support/rt.html) by mail to:
|
|
||||||
|
|
||||||
openssl-bugs@openssl.org
|
openssl-bugs@openssl.org
|
||||||
|
|
||||||
@@ -170,10 +143,11 @@
|
|||||||
or support queries. Just because something doesn't work the way you expect
|
or support queries. Just because something doesn't work the way you expect
|
||||||
does not mean it is necessarily a bug in OpenSSL.
|
does not mean it is necessarily a bug in OpenSSL.
|
||||||
|
|
||||||
Note that mail to openssl-bugs@openssl.org is recorded in the publicly
|
Note that mail to openssl-bugs@openssl.org is recorded in the public
|
||||||
readable request tracker database and is forwarded to a public
|
request tracker database (see https://www.openssl.org/support/rt.html
|
||||||
mailing list. Confidential mail may be sent to openssl-security@openssl.org
|
for details) and also forwarded to a public mailing list. Confidential
|
||||||
(PGP key available from the key servers).
|
mail may be sent to openssl-security@openssl.org (PGP key available from
|
||||||
|
the key servers).
|
||||||
|
|
||||||
HOW TO CONTRIBUTE TO OpenSSL
|
HOW TO CONTRIBUTE TO OpenSSL
|
||||||
----------------------------
|
----------------------------
|
||||||
@@ -190,7 +164,7 @@
|
|||||||
reason as to why that feature isn't implemented.
|
reason as to why that feature isn't implemented.
|
||||||
|
|
||||||
Patches should be as up to date as possible, preferably relative to the
|
Patches should be as up to date as possible, preferably relative to the
|
||||||
current CVS or the last snapshot. They should follow the coding style of
|
current Git or the last snapshot. They should follow the coding style of
|
||||||
OpenSSL and compile without warnings. Some of the core team developer targets
|
OpenSSL and compile without warnings. Some of the core team developer targets
|
||||||
can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL
|
can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL
|
||||||
compiles on many varied platforms: try to ensure you only use portable
|
compiles on many varied platforms: try to ensure you only use portable
|
||||||
|
|||||||
148
STATUS
148
STATUS
@@ -1,148 +0,0 @@
|
|||||||
|
|
||||||
OpenSSL STATUS Last modified at
|
|
||||||
______________ $Date: 2011/02/08 17:48:56 $
|
|
||||||
|
|
||||||
DEVELOPMENT STATE
|
|
||||||
|
|
||||||
o OpenSSL 1.1.0: Under development...
|
|
||||||
o OpenSSL 1.0.1: Under development...
|
|
||||||
o OpenSSL 1.0.0d: Released on February 8nd, 2011
|
|
||||||
o OpenSSL 1.0.0c: Released on December 2nd, 2010
|
|
||||||
o OpenSSL 1.0.0b: Released on November 16th, 2010
|
|
||||||
o OpenSSL 1.0.0a: Released on June 1st, 2010
|
|
||||||
o OpenSSL 1.0.0: Released on March 29th, 2010
|
|
||||||
o OpenSSL 0.9.8r: Released on February 8nd, 2011
|
|
||||||
o OpenSSL 0.9.8q: Released on December 2nd, 2010
|
|
||||||
o OpenSSL 0.9.8p: Released on November 16th, 2010
|
|
||||||
o OpenSSL 0.9.8o: Released on June 1st, 2010
|
|
||||||
o OpenSSL 0.9.8n: Released on March 24th, 2010
|
|
||||||
o OpenSSL 0.9.8m: Released on February 25th, 2010
|
|
||||||
o OpenSSL 0.9.8l: Released on November 5th, 2009
|
|
||||||
o OpenSSL 0.9.8k: Released on March 25th, 2009
|
|
||||||
o OpenSSL 0.9.8j: Released on January 7th, 2009
|
|
||||||
o OpenSSL 0.9.8i: Released on September 15th, 2008
|
|
||||||
o OpenSSL 0.9.8h: Released on May 28th, 2008
|
|
||||||
o OpenSSL 0.9.8g: Released on October 19th, 2007
|
|
||||||
o OpenSSL 0.9.8f: Released on October 11th, 2007
|
|
||||||
o OpenSSL 0.9.8e: Released on February 23rd, 2007
|
|
||||||
o OpenSSL 0.9.8d: Released on September 28th, 2006
|
|
||||||
o OpenSSL 0.9.8c: Released on September 5th, 2006
|
|
||||||
o OpenSSL 0.9.8b: Released on May 4th, 2006
|
|
||||||
o OpenSSL 0.9.8a: Released on October 11th, 2005
|
|
||||||
o OpenSSL 0.9.8: Released on July 5th, 2005
|
|
||||||
o OpenSSL 0.9.7m: Released on February 23rd, 2007
|
|
||||||
o OpenSSL 0.9.7l: Released on September 28th, 2006
|
|
||||||
o OpenSSL 0.9.7k: Released on September 5th, 2006
|
|
||||||
o OpenSSL 0.9.7j: Released on May 4th, 2006
|
|
||||||
o OpenSSL 0.9.7i: Released on October 14th, 2005
|
|
||||||
o OpenSSL 0.9.7h: Released on October 11th, 2005
|
|
||||||
o OpenSSL 0.9.7g: Released on April 11th, 2005
|
|
||||||
o OpenSSL 0.9.7f: Released on March 22nd, 2005
|
|
||||||
o OpenSSL 0.9.7e: Released on October 25th, 2004
|
|
||||||
o OpenSSL 0.9.7d: Released on March 17th, 2004
|
|
||||||
o OpenSSL 0.9.7c: Released on September 30th, 2003
|
|
||||||
o OpenSSL 0.9.7b: Released on April 10th, 2003
|
|
||||||
o OpenSSL 0.9.7a: Released on February 19th, 2003
|
|
||||||
o OpenSSL 0.9.7: Released on December 31st, 2002
|
|
||||||
o OpenSSL 0.9.6m: Released on March 17th, 2004
|
|
||||||
o OpenSSL 0.9.6l: Released on November 4th, 2003
|
|
||||||
o OpenSSL 0.9.6k: Released on September 30th, 2003
|
|
||||||
o OpenSSL 0.9.6j: Released on April 10th, 2003
|
|
||||||
o OpenSSL 0.9.6i: Released on February 19th, 2003
|
|
||||||
o OpenSSL 0.9.6h: Released on December 5th, 2002
|
|
||||||
o OpenSSL 0.9.6g: Released on August 9th, 2002
|
|
||||||
o OpenSSL 0.9.6f: Released on August 8th, 2002
|
|
||||||
o OpenSSL 0.9.6e: Released on July 30th, 2002
|
|
||||||
o OpenSSL 0.9.6d: Released on May 9th, 2002
|
|
||||||
o OpenSSL 0.9.6c: Released on December 21st, 2001
|
|
||||||
o OpenSSL 0.9.6b: Released on July 9th, 2001
|
|
||||||
o OpenSSL 0.9.6a: Released on April 5th, 2001
|
|
||||||
o OpenSSL 0.9.6: Released on September 24th, 2000
|
|
||||||
o OpenSSL 0.9.5a: Released on April 1st, 2000
|
|
||||||
o OpenSSL 0.9.5: Released on February 28th, 2000
|
|
||||||
o OpenSSL 0.9.4: Released on August 09th, 1999
|
|
||||||
o OpenSSL 0.9.3a: Released on May 29th, 1999
|
|
||||||
o OpenSSL 0.9.3: Released on May 25th, 1999
|
|
||||||
o OpenSSL 0.9.2b: Released on March 22th, 1999
|
|
||||||
o OpenSSL 0.9.1c: Released on December 23th, 1998
|
|
||||||
|
|
||||||
[See also http://www.openssl.org/support/rt.html]
|
|
||||||
|
|
||||||
RELEASE SHOWSTOPPERS
|
|
||||||
|
|
||||||
o The Makefiles fail with some SysV makes.
|
|
||||||
o
|
|
||||||
|
|
||||||
AVAILABLE PATCHES
|
|
||||||
|
|
||||||
o
|
|
||||||
|
|
||||||
IN PROGRESS
|
|
||||||
|
|
||||||
o Steve is currently working on (in no particular order):
|
|
||||||
ASN1 code redesign, butchery, replacement.
|
|
||||||
OCSP
|
|
||||||
EVP cipher enhancement.
|
|
||||||
Enhanced certificate chain verification.
|
|
||||||
Private key, certificate and CRL API and implementation.
|
|
||||||
Developing and bugfixing PKCS#7 (S/MIME code).
|
|
||||||
Various X509 issues: character sets, certificate request extensions.
|
|
||||||
o Richard is currently working on:
|
|
||||||
Constification
|
|
||||||
Attribute Certificate support
|
|
||||||
Certificate Pair support
|
|
||||||
Storage Engines (primarly an LDAP storage engine)
|
|
||||||
Certificate chain validation with full RFC 3280 compatibility
|
|
||||||
|
|
||||||
NEEDS PATCH
|
|
||||||
|
|
||||||
o 0.9.8-dev: COMPLEMENTOFALL and COMPLEMENTOFDEFAULT do not
|
|
||||||
handle ECCdraft cipher suites correctly.
|
|
||||||
|
|
||||||
o apps/ca.c: "Sign the certificate?" - "n" creates empty certificate file
|
|
||||||
|
|
||||||
o "OpenSSL STATUS" is never up-to-date.
|
|
||||||
|
|
||||||
OPEN ISSUES
|
|
||||||
|
|
||||||
o The Makefile hierarchy and build mechanism is still not a round thing:
|
|
||||||
|
|
||||||
1. The config vs. Configure scripts
|
|
||||||
It's the same nasty situation as for Apache with APACI vs.
|
|
||||||
src/Configure. It confuses.
|
|
||||||
Suggestion: Merge Configure and config into a single configure
|
|
||||||
script with a Autoconf style interface ;-) and remove
|
|
||||||
Configure and config. Or even let us use GNU Autoconf
|
|
||||||
itself. Then we can avoid a lot of those platform checks
|
|
||||||
which are currently in Configure.
|
|
||||||
|
|
||||||
o Support for Shared Libraries has to be added at least
|
|
||||||
for the major Unix platforms. The details we can rip from the stuff
|
|
||||||
Ralf has done for the Apache src/Configure script. Ben wants the
|
|
||||||
solution to be really simple.
|
|
||||||
|
|
||||||
Status: Ralf will look how we can easily incorporate the
|
|
||||||
compiler PIC and linker DSO flags from Apache
|
|
||||||
into the OpenSSL Configure script.
|
|
||||||
|
|
||||||
Ulf: +1 for using GNU autoconf and libtool (but not automake,
|
|
||||||
which apparently is not flexible enough to generate
|
|
||||||
libcrypto)
|
|
||||||
|
|
||||||
WISHES
|
|
||||||
|
|
||||||
o Add variants of DH_generate_parameters() and BN_generate_prime() [etc?]
|
|
||||||
where the callback function can request that the function be aborted.
|
|
||||||
[Gregory Stark <ghstark@pobox.com>, <rayyang2000@yahoo.com>]
|
|
||||||
|
|
||||||
o SRP in TLS.
|
|
||||||
[wished by:
|
|
||||||
Dj <derek@yo.net>, Tom Wu <tom@arcot.com>,
|
|
||||||
Tom Holroyd <tomh@po.crl.go.jp>]
|
|
||||||
|
|
||||||
See http://search.ietf.org/internet-drafts/draft-ietf-tls-srp-00.txt
|
|
||||||
as well as http://www-cs-students.stanford.edu/~tjw/srp/.
|
|
||||||
|
|
||||||
Tom Holroyd tells us there is a SRP patch for OpenSSH at
|
|
||||||
http://members.tripod.com/professor_tom/archives/, that could
|
|
||||||
be useful.
|
|
||||||
@@ -6,6 +6,7 @@ $! P2: Zlib object library path (optional).
|
|||||||
$!
|
$!
|
||||||
$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO[32].OLB
|
$! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO[32].OLB
|
||||||
$! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]SSL_LIBSSL[32].OLB
|
$! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]SSL_LIBSSL[32].OLB
|
||||||
|
$! [.CRYPTO.xxx]OPENSSLCONF.H
|
||||||
$! Output: [.xxx.EXE.CRYPTO]SSL_LIBCRYPTO_SHR[32].OPT,.MAP,.EXE
|
$! Output: [.xxx.EXE.CRYPTO]SSL_LIBCRYPTO_SHR[32].OPT,.MAP,.EXE
|
||||||
$! [.xxx.EXE.SSL]SSL_LIBSSL_SRH[32].OPT,.MAP,.EXE
|
$! [.xxx.EXE.SSL]SSL_LIBSSL_SRH[32].OPT,.MAP,.EXE
|
||||||
$!
|
$!
|
||||||
@@ -70,6 +71,9 @@ $ endif
|
|||||||
$ endif
|
$ endif
|
||||||
$ endif
|
$ endif
|
||||||
$!
|
$!
|
||||||
|
$! ----- Prepare info for processing: disabled algorithms info
|
||||||
|
$ gosub read_disabled_algorithms_info
|
||||||
|
$!
|
||||||
$ ZLIB = p2
|
$ ZLIB = p2
|
||||||
$ zlib_lib = ""
|
$ zlib_lib = ""
|
||||||
$ if (ZLIB .nes. "")
|
$ if (ZLIB .nes. "")
|
||||||
@@ -384,8 +388,7 @@ $ alg_i = alg_i + 1
|
|||||||
$ if alg_entry .eqs. "" then goto loop2
|
$ if alg_entry .eqs. "" then goto loop2
|
||||||
$ if alg_entry .nes. ","
|
$ if alg_entry .nes. ","
|
||||||
$ then
|
$ then
|
||||||
$ if alg_entry .eqs. "KRB5" then goto loop ! Special for now
|
$ if disabled_algorithms - ("," + alg_entry + ",") .nes disabled_algorithms then goto loop
|
||||||
$ if alg_entry .eqs. "STATIC_ENGINE" then goto loop ! Special for now
|
|
||||||
$ if f$trnlnm("OPENSSL_NO_"+alg_entry) .nes. "" then goto loop
|
$ if f$trnlnm("OPENSSL_NO_"+alg_entry) .nes. "" then goto loop
|
||||||
$ goto loop2
|
$ goto loop2
|
||||||
$ endif
|
$ endif
|
||||||
@@ -452,3 +455,22 @@ $ endif
|
|||||||
$ endloop_rvi:
|
$ endloop_rvi:
|
||||||
$ close vf
|
$ close vf
|
||||||
$ return
|
$ return
|
||||||
|
$
|
||||||
|
$! The disabled algorithms reader
|
||||||
|
$ read_disabled_algorithms_info:
|
||||||
|
$ disabled_algorithms = ","
|
||||||
|
$ open /read cf [.CRYPTO.'ARCH']OPENSSLCONF.H
|
||||||
|
$ loop_rci:
|
||||||
|
$ read/err=endloop_rci/end=endloop_rci cf rci_line
|
||||||
|
$ rci_line = f$edit(rci_line,"TRIM,COMPRESS")
|
||||||
|
$ rci_ei = 0
|
||||||
|
$ if f$extract(0,9,rci_line) .eqs. "# define " then rci_ei = 2
|
||||||
|
$ if f$extract(0,8,rci_line) .eqs. "#define " then rci_ei = 1
|
||||||
|
$ if rci_ei .eq. 0 then goto loop_rci
|
||||||
|
$ rci_e = f$element(rci_ei," ",rci_line)
|
||||||
|
$ if f$extract(0,11,rci_e) .nes. "OPENSSL_NO_" then goto loop_rci
|
||||||
|
$ disabled_algorithms = disabled_algorithms + f$extract(11,999,rci_e) + ","
|
||||||
|
$ goto loop_rci
|
||||||
|
$ endloop_rci:
|
||||||
|
$ close cf
|
||||||
|
$ return
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
openssl
|
|
||||||
Makefile.save
|
|
||||||
der_chop
|
|
||||||
der_chop.bak
|
|
||||||
CA.pl
|
|
||||||
*.flc
|
|
||||||
semantic.cache
|
|
||||||
*.dll
|
|
||||||
@@ -1,37 +1,10 @@
|
|||||||
#!/usr/local/bin/perl
|
#!/usr/local/bin/perl
|
||||||
#
|
#
|
||||||
# CA - wrapper around ca to make it easier to use ... basically ca requires
|
# CA - wrapper around ca to make it easier to use
|
||||||
# some setup stuff to be done before you can use it and this makes
|
|
||||||
# things easier between now and when Eric is convinced to fix it :-)
|
|
||||||
#
|
#
|
||||||
# CA -newca ... will setup the right stuff
|
# CA -newca ... will setup the right stuff
|
||||||
# CA -newreq[-nodes] ... will generate a certificate request
|
# CA -newreq[-nodes] ... will generate a certificate request
|
||||||
# CA -sign ... will sign the generated request and output
|
# CA -sign ... will sign the generated request and output
|
||||||
#
|
|
||||||
# At the end of that grab newreq.pem and newcert.pem (one has the key
|
|
||||||
# and the other the certificate) and cat them together and that is what
|
|
||||||
# you want/need ... I'll make even this a little cleaner later.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 12-Jan-96 tjh Added more things ... including CA -signcert which
|
|
||||||
# converts a certificate to a request and then signs it.
|
|
||||||
# 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
|
|
||||||
# environment variable so this can be driven from
|
|
||||||
# a script.
|
|
||||||
# 25-Jul-96 eay Cleaned up filenames some more.
|
|
||||||
# 11-Jun-96 eay Fixed a few filename missmatches.
|
|
||||||
# 03-May-96 eay Modified to use 'ssleay cmd' instead of 'cmd'.
|
|
||||||
# 18-Apr-96 tjh Original hacking
|
|
||||||
#
|
|
||||||
# Tim Hudson
|
|
||||||
# tjh@cryptsoft.com
|
|
||||||
#
|
|
||||||
|
|
||||||
# 27-Apr-98 snh Translation into perl, fix existing CA bug.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Steve Henson
|
|
||||||
# shenson@bigfoot.com
|
|
||||||
|
|
||||||
# default openssl.cnf file has setup as per the following
|
# default openssl.cnf file has setup as per the following
|
||||||
# demoCA ... where everything is stored
|
# demoCA ... where everything is stored
|
||||||
@@ -57,6 +30,7 @@ $CATOP="./demoCA";
|
|||||||
$CAKEY="cakey.pem";
|
$CAKEY="cakey.pem";
|
||||||
$CAREQ="careq.pem";
|
$CAREQ="careq.pem";
|
||||||
$CACERT="cacert.pem";
|
$CACERT="cacert.pem";
|
||||||
|
$CACRL="crl.pem";
|
||||||
|
|
||||||
$DIRMODE = 0777;
|
$DIRMODE = 0777;
|
||||||
|
|
||||||
@@ -65,6 +39,7 @@ $RET = 0;
|
|||||||
foreach (@ARGV) {
|
foreach (@ARGV) {
|
||||||
if ( /^(-\?|-h|-help)$/ ) {
|
if ( /^(-\?|-h|-help)$/ ) {
|
||||||
print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n";
|
print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n";
|
||||||
|
print STDERR " CA -crl|-revoke cert-filename [reason]\n";
|
||||||
exit 0;
|
exit 0;
|
||||||
} elsif (/^-newcert$/) {
|
} elsif (/^-newcert$/) {
|
||||||
# create a certificate
|
# create a certificate
|
||||||
@@ -160,17 +135,50 @@ foreach (@ARGV) {
|
|||||||
} else {
|
} else {
|
||||||
system ("$VERIFY -CAfile $CATOP/$CACERT newcert.pem");
|
system ("$VERIFY -CAfile $CATOP/$CACERT newcert.pem");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
exit 0;
|
exit $RET;
|
||||||
}
|
}
|
||||||
|
} elsif (/^-crl$/) {
|
||||||
|
system ("$CA -gencrl -out $CATOP/crl/$CACRL");
|
||||||
|
$RET=$?;
|
||||||
|
print "Generated CRL is in $CATOP/crl/$CACRL\n" if (!$RET);
|
||||||
|
} elsif (/^-revoke$/) {
|
||||||
|
my $cname = $ARGV[1];
|
||||||
|
if (!defined $cname) {
|
||||||
|
print "Certificate filename is required; reason optional.\n";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
my $reason = $ARGV[2];
|
||||||
|
$reason = " -crl_reason $reason"
|
||||||
|
if defined $reason && crl_reason_ok($reason);
|
||||||
|
my $cmd = "$CA -revoke \"$cname\"".$reason;
|
||||||
|
system ($cmd);
|
||||||
|
$RET=$?;
|
||||||
|
exit $RET;
|
||||||
} else {
|
} else {
|
||||||
print STDERR "Unknown arg $_\n";
|
print STDERR "Unknown arg $_\n";
|
||||||
print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n";
|
print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n";
|
||||||
|
print STDERR " CA -crl|-revoke cert-filename [reason]\n";
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exit $RET;
|
exit $RET;
|
||||||
|
|
||||||
|
sub crl_reason_ok {
|
||||||
|
my ($r) = shift;
|
||||||
|
if ($r eq 'unspecified' || $r eq 'keyCompromise' ||
|
||||||
|
$r eq 'CACompromise' || $r eq 'affiliationChanged' ||
|
||||||
|
$r eq 'superseded' || $r eq 'cessationOfOperation' ||
|
||||||
|
$r eq 'certificateHold' || $r eq 'removeFromCRL') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
print STDERR "Invalid CRL reason; must be one of:\n";
|
||||||
|
print STDERR " unspecified, keyCompromise, CACompromise,\n";
|
||||||
|
print STDERR " affiliationChanged, superseded, cessationOfOperation\n";
|
||||||
|
print STDERR " certificateHold, removeFromCRL";
|
||||||
|
exit 1;
|
||||||
|
}
|
||||||
|
|
||||||
sub cp_pem {
|
sub cp_pem {
|
||||||
my ($infile, $outfile, $bound) = @_;
|
my ($infile, $outfile, $bound) = @_;
|
||||||
open IN, $infile;
|
open IN, $infile;
|
||||||
|
|||||||
260
apps/Makefile
260
apps/Makefile
@@ -117,6 +117,19 @@ install:
|
|||||||
chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
|
chmod 644 $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new; \
|
||||||
mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
|
mv -f $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf.new $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
@set -e; for i in $(EXE); \
|
||||||
|
do \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
|
||||||
|
done;
|
||||||
|
@set -e; for i in $(SCRIPTS); \
|
||||||
|
do \
|
||||||
|
echo $(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i; \
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/misc/$$i; \
|
||||||
|
done
|
||||||
|
$(RM) $(INSTALL_PREFIX)$(OPENSSLDIR)/openssl.cnf
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
ctags $(SRC)
|
ctags $(SRC)
|
||||||
|
|
||||||
@@ -137,7 +150,6 @@ depend:
|
|||||||
dclean:
|
dclean:
|
||||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||||
mv -f Makefile.new $(MAKEFILE)
|
mv -f Makefile.new $(MAKEFILE)
|
||||||
rm -f CA.pl
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
|
rm -f *.o *.obj *.dll lib tags core .pure .nfs* *.old *.bak fluff $(EXE)
|
||||||
@@ -245,13 +257,13 @@ ciphers.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
ciphers.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
ciphers.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
ciphers.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
ciphers.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
ciphers.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
ciphers.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
||||||
ciphers.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
ciphers.o: ../include/openssl/sha.h ../include/openssl/srtp.h
|
||||||
ciphers.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
ciphers.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||||
ciphers.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
ciphers.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||||
ciphers.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
ciphers.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
ciphers.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
ciphers.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
||||||
ciphers.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
ciphers.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
ciphers.o: ciphers.c
|
ciphers.o: ../include/openssl/x509v3.h apps.h ciphers.c
|
||||||
cms.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
cms.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
cms.o: ../include/openssl/buffer.h ../include/openssl/cms.h
|
cms.o: ../include/openssl/buffer.h ../include/openssl/cms.h
|
||||||
cms.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
cms.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -350,20 +362,18 @@ dsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dsa.c
|
|||||||
dsaparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
dsaparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
dsaparam.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
dsaparam.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
|
||||||
dsaparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
dsaparam.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
||||||
dsaparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
dsaparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
||||||
dsaparam.o: ../include/openssl/engine.h ../include/openssl/err.h
|
dsaparam.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||||
dsaparam.o: ../include/openssl/evp.h ../include/openssl/lhash.h
|
dsaparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
|
||||||
dsaparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
dsaparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
|
||||||
dsaparam.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
|
dsaparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
dsaparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
dsaparam.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
dsaparam.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
dsaparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||||
dsaparam.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
dsaparam.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
dsaparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
dsaparam.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
dsaparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
|
||||||
dsaparam.o: ../include/openssl/ui.h ../include/openssl/x509.h
|
|
||||||
dsaparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
dsaparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
||||||
dsaparam.o: dsaparam.c
|
dsaparam.o: dsaparam.c
|
||||||
ec.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
ec.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
@@ -427,13 +437,13 @@ engine.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
engine.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
engine.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
engine.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
engine.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
engine.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
engine.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
||||||
engine.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
engine.o: ../include/openssl/sha.h ../include/openssl/srtp.h
|
||||||
engine.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
engine.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||||
engine.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
engine.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||||
engine.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
engine.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
engine.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
engine.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
||||||
engine.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
engine.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
engine.o: engine.c
|
engine.o: ../include/openssl/x509v3.h apps.h engine.c
|
||||||
errstr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
errstr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
errstr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
errstr.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
||||||
errstr.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
errstr.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -448,32 +458,30 @@ errstr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
errstr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
errstr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
errstr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
errstr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
errstr.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
errstr.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
||||||
errstr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
errstr.o: ../include/openssl/sha.h ../include/openssl/srtp.h
|
||||||
errstr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
errstr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||||
errstr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
errstr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||||
errstr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
errstr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
errstr.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
errstr.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
||||||
errstr.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
errstr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
errstr.o: errstr.c
|
errstr.o: ../include/openssl/x509v3.h apps.h errstr.c
|
||||||
gendh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
gendh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
gendh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
gendh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
gendh.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
gendh.o: ../include/openssl/dh.h ../include/openssl/e_os2.h
|
||||||
gendh.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
gendh.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
||||||
gendh.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
gendh.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
||||||
gendh.o: ../include/openssl/engine.h ../include/openssl/err.h
|
gendh.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||||
gendh.o: ../include/openssl/evp.h ../include/openssl/lhash.h
|
gendh.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
|
||||||
gendh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
gendh.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
|
||||||
gendh.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
|
gendh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
gendh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
gendh.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
gendh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
gendh.o: ../include/openssl/rand.h ../include/openssl/safestack.h
|
||||||
gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
|
||||||
gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||||
gendh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
gendh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
||||||
gendh.o: ../include/openssl/ui.h ../include/openssl/x509.h
|
gendh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
gendh.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
gendh.o: ../include/openssl/x509v3.h apps.h gendh.c
|
||||||
gendh.o: gendh.c
|
|
||||||
gendsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
gendsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -510,7 +518,6 @@ genpkey.o: genpkey.c
|
|||||||
genrsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
genrsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
genrsa.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
|
||||||
genrsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
genrsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
||||||
genrsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
genrsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
||||||
genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
|
genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
|
||||||
@@ -523,9 +530,8 @@ genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
|||||||
genrsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
genrsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||||
genrsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
genrsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||||
genrsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
genrsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
||||||
genrsa.o: ../include/openssl/ui.h ../include/openssl/x509.h
|
genrsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
genrsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
genrsa.o: ../include/openssl/x509v3.h apps.h genrsa.c
|
||||||
genrsa.o: genrsa.c
|
|
||||||
nseq.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
nseq.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
nseq.o: ../include/openssl/buffer.h ../include/openssl/conf.h
|
nseq.o: ../include/openssl/buffer.h ../include/openssl/conf.h
|
||||||
nseq.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
nseq.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
@@ -556,12 +562,12 @@ ocsp.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
|||||||
ocsp.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
ocsp.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||||
ocsp.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
ocsp.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
||||||
ocsp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
ocsp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||||
ocsp.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
ocsp.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
ocsp.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
ocsp.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
ocsp.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
ocsp.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
ocsp.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
ocsp.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
ocsp.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
ocsp.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
ocsp.o: ../include/openssl/x509v3.h apps.h ocsp.c
|
ocsp.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ocsp.c
|
||||||
openssl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
openssl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
openssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
openssl.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
||||||
openssl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
openssl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -575,8 +581,9 @@ openssl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
|
|||||||
openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
openssl.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
openssl.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
|
||||||
openssl.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||||
|
openssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
@@ -729,21 +736,20 @@ rand.o: ../include/openssl/x509v3.h apps.h rand.c
|
|||||||
req.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
req.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
req.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
req.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
req.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
req.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
|
||||||
req.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
req.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
||||||
req.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
req.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
||||||
req.o: ../include/openssl/engine.h ../include/openssl/err.h
|
req.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||||
req.o: ../include/openssl/evp.h ../include/openssl/lhash.h
|
req.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
|
||||||
req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
req.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
|
||||||
req.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
|
req.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
req.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
req.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
req.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
req.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
req.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
|
|
||||||
req.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
req.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||||
req.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
req.o: ../include/openssl/sha.h ../include/openssl/stack.h
|
||||||
req.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
req.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
||||||
req.o: ../include/openssl/ui.h ../include/openssl/x509.h
|
req.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
req.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h req.c
|
req.o: ../include/openssl/x509v3.h apps.h req.c
|
||||||
rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -777,8 +783,9 @@ rsautl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
|
|||||||
rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
rsautl.o: ../include/openssl/x509v3.h apps.h rsautl.c
|
rsautl.o: ../include/openssl/x509v3.h apps.h rsautl.c
|
||||||
s_cb.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
s_cb.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
s_cb.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
s_cb.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
s_cb.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
s_cb.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||||
|
s_cb.o: ../include/openssl/crypto.h ../include/openssl/dh.h
|
||||||
s_cb.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
|
s_cb.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
|
||||||
s_cb.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
s_cb.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
||||||
s_cb.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
s_cb.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
||||||
@@ -791,12 +798,13 @@ s_cb.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
|||||||
s_cb.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
s_cb.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
s_cb.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
|
s_cb.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
|
||||||
s_cb.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
s_cb.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||||
s_cb.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
s_cb.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
s_cb.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
s_cb.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
s_cb.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
s_cb.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
s_cb.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
s_cb.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
s_cb.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
s_cb.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
s_cb.o: ../include/openssl/x509v3.h apps.h s_apps.h s_cb.c
|
s_cb.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
||||||
|
s_cb.o: s_apps.h s_cb.c
|
||||||
s_client.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
s_client.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
s_client.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
s_client.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||||
@@ -813,36 +821,37 @@ s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
|||||||
s_client.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
s_client.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
||||||
s_client.o: ../include/openssl/rand.h ../include/openssl/safestack.h
|
s_client.o: ../include/openssl/rand.h ../include/openssl/safestack.h
|
||||||
s_client.o: ../include/openssl/sha.h ../include/openssl/srp.h
|
s_client.o: ../include/openssl/sha.h ../include/openssl/srp.h
|
||||||
s_client.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
s_client.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
s_client.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
s_client.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
s_client.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
s_client.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
s_client.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
s_client.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
s_client.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
s_client.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
s_client.o: ../include/openssl/x509v3.h apps.h s_apps.h s_client.c timeouts.h
|
s_client.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
||||||
|
s_client.o: s_apps.h s_client.c timeouts.h
|
||||||
s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h
|
||||||
s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
|
||||||
s_server.o: ../include/openssl/crypto.h ../include/openssl/dh.h
|
s_server.o: ../include/openssl/crypto.h ../include/openssl/dh.h
|
||||||
s_server.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
|
s_server.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
|
||||||
s_server.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
|
s_server.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
|
||||||
s_server.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
|
s_server.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
|
||||||
s_server.o: ../include/openssl/engine.h ../include/openssl/err.h
|
s_server.o: ../include/openssl/err.h ../include/openssl/evp.h
|
||||||
s_server.o: ../include/openssl/evp.h ../include/openssl/hmac.h
|
s_server.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
|
||||||
s_server.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
|
s_server.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
|
||||||
s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
|
s_server.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
|
||||||
s_server.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
|
s_server.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
s_server.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
s_server.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
s_server.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
s_server.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
|
||||||
s_server.o: ../include/openssl/rand.h ../include/openssl/rsa.h
|
s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||||
s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
s_server.o: ../include/openssl/sha.h ../include/openssl/srp.h
|
||||||
s_server.o: ../include/openssl/srp.h ../include/openssl/ssl.h
|
s_server.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
s_server.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
|
s_server.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
s_server.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
s_server.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
||||||
s_server.o: ../include/openssl/x509v3.h apps.h s_apps.h s_server.c timeouts.h
|
s_server.o: s_apps.h s_server.c timeouts.h
|
||||||
s_socket.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
s_socket.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
s_socket.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
s_socket.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
||||||
s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -857,12 +866,13 @@ s_socket.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
|||||||
s_socket.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
s_socket.o: ../include/openssl/pem.h ../include/openssl/pem2.h
|
||||||
s_socket.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
s_socket.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h
|
||||||
s_socket.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
s_socket.o: ../include/openssl/safestack.h ../include/openssl/sha.h
|
||||||
s_socket.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
s_socket.o: ../include/openssl/srtp.h ../include/openssl/ssl.h
|
||||||
s_socket.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
s_socket.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
||||||
s_socket.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
s_socket.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
||||||
s_socket.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
s_socket.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
||||||
s_socket.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
s_socket.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
||||||
s_socket.o: ../include/openssl/x509v3.h apps.h s_apps.h s_socket.c
|
s_socket.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
||||||
|
s_socket.o: s_apps.h s_socket.c
|
||||||
s_time.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
s_time.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
s_time.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
s_time.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
||||||
s_time.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
s_time.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -877,13 +887,13 @@ s_time.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
s_time.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
s_time.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
s_time.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
s_time.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
s_time.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
s_time.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
||||||
s_time.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
s_time.o: ../include/openssl/sha.h ../include/openssl/srtp.h
|
||||||
s_time.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
s_time.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||||
s_time.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
s_time.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||||
s_time.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
s_time.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
s_time.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
s_time.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
||||||
s_time.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
s_time.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
s_time.o: s_apps.h s_time.c
|
s_time.o: ../include/openssl/x509v3.h apps.h s_apps.h s_time.c
|
||||||
sess_id.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
sess_id.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
sess_id.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
sess_id.o: ../include/openssl/buffer.h ../include/openssl/comp.h
|
||||||
sess_id.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
sess_id.o: ../include/openssl/conf.h ../include/openssl/crypto.h
|
||||||
@@ -898,13 +908,13 @@ sess_id.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
sess_id.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
sess_id.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
|
||||||
sess_id.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
sess_id.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
|
||||||
sess_id.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
sess_id.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
|
||||||
sess_id.o: ../include/openssl/sha.h ../include/openssl/ssl.h
|
sess_id.o: ../include/openssl/sha.h ../include/openssl/srtp.h
|
||||||
sess_id.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
|
sess_id.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
|
||||||
sess_id.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
|
sess_id.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
|
||||||
sess_id.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
|
sess_id.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
sess_id.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
|
sess_id.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
|
||||||
sess_id.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
|
sess_id.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
|
||||||
sess_id.o: sess_id.c
|
sess_id.o: ../include/openssl/x509v3.h apps.h sess_id.c
|
||||||
smime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
smime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||||
smime.o: ../include/openssl/buffer.h ../include/openssl/conf.h
|
smime.o: ../include/openssl/buffer.h ../include/openssl/conf.h
|
||||||
smime.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
smime.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
|
|||||||
425
apps/apps.c
425
apps/apps.c
@@ -109,16 +109,18 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _POSIX_C_SOURCE
|
#if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS)
|
||||||
#define _POSIX_C_SOURCE 2 /* On VMS, you need to define this to get
|
/* On VMS, you need to define this to get
|
||||||
the declaration of fileno(). The value
|
* the declaration of fileno(). The value
|
||||||
2 is to make sure no function defined
|
* 2 is to make sure no function defined
|
||||||
in POSIX-2 is left undefined. */
|
* in POSIX-2 is left undefined.
|
||||||
|
*/
|
||||||
|
#define _POSIX_C_SOURCE 2
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if !defined(OPENSSL_SYSNAME_WIN32) && !defined(NETWARE_CLIB)
|
#if !defined(OPENSSL_SYSNAME_WIN32) && !defined(OPENSSL_SYSNAME_WINCE) && !defined(NETWARE_CLIB)
|
||||||
#include <strings.h>
|
#include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@@ -263,6 +265,8 @@ int str2fmt(char *s)
|
|||||||
return(FORMAT_ASN1);
|
return(FORMAT_ASN1);
|
||||||
else if ((*s == 'T') || (*s == 't'))
|
else if ((*s == 'T') || (*s == 't'))
|
||||||
return(FORMAT_TEXT);
|
return(FORMAT_TEXT);
|
||||||
|
else if ((strcmp(s,"NSS") == 0) || (strcmp(s,"nss") == 0))
|
||||||
|
return(FORMAT_NSS);
|
||||||
else if ((*s == 'N') || (*s == 'n'))
|
else if ((*s == 'N') || (*s == 'n'))
|
||||||
return(FORMAT_NETSCAPE);
|
return(FORMAT_NETSCAPE);
|
||||||
else if ((*s == 'S') || (*s == 's'))
|
else if ((*s == 'S') || (*s == 's'))
|
||||||
@@ -275,6 +279,8 @@ int str2fmt(char *s)
|
|||||||
return(FORMAT_PKCS12);
|
return(FORMAT_PKCS12);
|
||||||
else if ((*s == 'E') || (*s == 'e'))
|
else if ((*s == 'E') || (*s == 'e'))
|
||||||
return(FORMAT_ENGINE);
|
return(FORMAT_ENGINE);
|
||||||
|
else if ((*s == 'H') || (*s == 'h'))
|
||||||
|
return FORMAT_HTTP;
|
||||||
else if ((*s == 'P') || (*s == 'p'))
|
else if ((*s == 'P') || (*s == 'p'))
|
||||||
{
|
{
|
||||||
if (s[1] == 'V' || s[1] == 'v')
|
if (s[1] == 'V' || s[1] == 'v')
|
||||||
@@ -286,7 +292,7 @@ int str2fmt(char *s)
|
|||||||
return(FORMAT_UNDEF);
|
return(FORMAT_UNDEF);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16) || defined(OPENSSL_SYS_NETWARE)
|
#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_NETWARE)
|
||||||
void program_name(char *in, char *out, int size)
|
void program_name(char *in, char *out, int size)
|
||||||
{
|
{
|
||||||
int i,n;
|
int i,n;
|
||||||
@@ -390,6 +396,8 @@ int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
|
|||||||
{
|
{
|
||||||
arg->count=20;
|
arg->count=20;
|
||||||
arg->data=(char **)OPENSSL_malloc(sizeof(char *)*arg->count);
|
arg->data=(char **)OPENSSL_malloc(sizeof(char *)*arg->count);
|
||||||
|
if (arg->data == NULL)
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
for (i=0; i<arg->count; i++)
|
for (i=0; i<arg->count; i++)
|
||||||
arg->data[i]=NULL;
|
arg->data[i]=NULL;
|
||||||
@@ -586,12 +594,12 @@ int password_callback(char *buf, int bufsiz, int verify,
|
|||||||
|
|
||||||
if (ok >= 0)
|
if (ok >= 0)
|
||||||
ok = UI_add_input_string(ui,prompt,ui_flags,buf,
|
ok = UI_add_input_string(ui,prompt,ui_flags,buf,
|
||||||
PW_MIN_LENGTH,BUFSIZ-1);
|
PW_MIN_LENGTH,bufsiz-1);
|
||||||
if (ok >= 0 && verify)
|
if (ok >= 0 && verify)
|
||||||
{
|
{
|
||||||
buff = (char *)OPENSSL_malloc(bufsiz);
|
buff = (char *)OPENSSL_malloc(bufsiz);
|
||||||
ok = UI_add_verify_string(ui,prompt,ui_flags,buff,
|
ok = UI_add_verify_string(ui,prompt,ui_flags,buff,
|
||||||
PW_MIN_LENGTH,BUFSIZ-1, buf);
|
PW_MIN_LENGTH,bufsiz-1, buf);
|
||||||
}
|
}
|
||||||
if (ok >= 0)
|
if (ok >= 0)
|
||||||
do
|
do
|
||||||
@@ -783,12 +791,80 @@ static int load_pkcs12(BIO *err, BIO *in, const char *desc,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int load_cert_crl_http(const char *url, BIO *err,
|
||||||
|
X509 **pcert, X509_CRL **pcrl)
|
||||||
|
{
|
||||||
|
char *host = NULL, *port = NULL, *path = NULL;
|
||||||
|
BIO *bio = NULL;
|
||||||
|
OCSP_REQ_CTX *rctx = NULL;
|
||||||
|
int use_ssl, rv = 0;
|
||||||
|
if (!OCSP_parse_url(url, &host, &port, &path, &use_ssl))
|
||||||
|
goto err;
|
||||||
|
if (use_ssl)
|
||||||
|
{
|
||||||
|
if (err)
|
||||||
|
BIO_puts(err, "https not supported\n");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
bio = BIO_new_connect(host);
|
||||||
|
if (!bio || !BIO_set_conn_port(bio, port))
|
||||||
|
goto err;
|
||||||
|
rctx = OCSP_REQ_CTX_new(bio, 1024);
|
||||||
|
if (!rctx)
|
||||||
|
goto err;
|
||||||
|
if (!OCSP_REQ_CTX_http(rctx, "GET", path))
|
||||||
|
goto err;
|
||||||
|
if (!OCSP_REQ_CTX_add1_header(rctx, "Host", host))
|
||||||
|
goto err;
|
||||||
|
if (pcert)
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
rv = X509_http_nbio(rctx, pcert);
|
||||||
|
}
|
||||||
|
while (rv == -1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
rv = X509_CRL_http_nbio(rctx, pcrl);
|
||||||
|
} while (rv == -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
err:
|
||||||
|
if (host)
|
||||||
|
OPENSSL_free(host);
|
||||||
|
if (path)
|
||||||
|
OPENSSL_free(path);
|
||||||
|
if (port)
|
||||||
|
OPENSSL_free(port);
|
||||||
|
if (bio)
|
||||||
|
BIO_free_all(bio);
|
||||||
|
if (rctx)
|
||||||
|
OCSP_REQ_CTX_free(rctx);
|
||||||
|
if (rv != 1)
|
||||||
|
{
|
||||||
|
if (bio && err)
|
||||||
|
BIO_printf(bio_err, "Error loading %s from %s\n",
|
||||||
|
pcert ? "certificate" : "CRL", url);
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
X509 *load_cert(BIO *err, const char *file, int format,
|
X509 *load_cert(BIO *err, const char *file, int format,
|
||||||
const char *pass, ENGINE *e, const char *cert_descrip)
|
const char *pass, ENGINE *e, const char *cert_descrip)
|
||||||
{
|
{
|
||||||
X509 *x=NULL;
|
X509 *x=NULL;
|
||||||
BIO *cert;
|
BIO *cert;
|
||||||
|
|
||||||
|
if (format == FORMAT_HTTP)
|
||||||
|
{
|
||||||
|
load_cert_crl_http(file, err, &x, NULL);
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
if ((cert=BIO_new(BIO_s_file())) == NULL)
|
if ((cert=BIO_new(BIO_s_file())) == NULL)
|
||||||
{
|
{
|
||||||
ERR_print_errors(err);
|
ERR_print_errors(err);
|
||||||
@@ -859,6 +935,55 @@ end:
|
|||||||
return(x);
|
return(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
X509_CRL *load_crl(const char *infile, int format)
|
||||||
|
{
|
||||||
|
X509_CRL *x=NULL;
|
||||||
|
BIO *in=NULL;
|
||||||
|
|
||||||
|
if (format == FORMAT_HTTP)
|
||||||
|
{
|
||||||
|
load_cert_crl_http(infile, bio_err, NULL, &x);
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
in=BIO_new(BIO_s_file());
|
||||||
|
if (in == NULL)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (infile == NULL)
|
||||||
|
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (BIO_read_filename(in,infile) <= 0)
|
||||||
|
{
|
||||||
|
perror(infile);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (format == FORMAT_ASN1)
|
||||||
|
x=d2i_X509_CRL_bio(in,NULL);
|
||||||
|
else if (format == FORMAT_PEM)
|
||||||
|
x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL);
|
||||||
|
else {
|
||||||
|
BIO_printf(bio_err,"bad input format specified for input crl\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
if (x == NULL)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"unable to load CRL\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
|
BIO_free(in);
|
||||||
|
return(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
||||||
const char *pass, ENGINE *e, const char *key_descrip)
|
const char *pass, ENGINE *e, const char *key_descrip)
|
||||||
{
|
{
|
||||||
@@ -1215,7 +1340,8 @@ STACK_OF(X509) *load_certs(BIO *err, const char *file, int format,
|
|||||||
const char *pass, ENGINE *e, const char *desc)
|
const char *pass, ENGINE *e, const char *desc)
|
||||||
{
|
{
|
||||||
STACK_OF(X509) *certs;
|
STACK_OF(X509) *certs;
|
||||||
load_certs_crls(err, file, format, pass, e, desc, &certs, NULL);
|
if (!load_certs_crls(err, file, format, pass, e, desc, &certs, NULL))
|
||||||
|
return NULL;
|
||||||
return certs;
|
return certs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1223,7 +1349,8 @@ STACK_OF(X509_CRL) *load_crls(BIO *err, const char *file, int format,
|
|||||||
const char *pass, ENGINE *e, const char *desc)
|
const char *pass, ENGINE *e, const char *desc)
|
||||||
{
|
{
|
||||||
STACK_OF(X509_CRL) *crls;
|
STACK_OF(X509_CRL) *crls;
|
||||||
load_certs_crls(err, file, format, pass, e, desc, NULL, &crls);
|
if (!load_certs_crls(err, file, format, pass, e, desc, NULL, &crls))
|
||||||
|
return NULL;
|
||||||
return crls;
|
return crls;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1540,6 +1667,8 @@ char *make_config_name()
|
|||||||
|
|
||||||
len=strlen(t)+strlen(OPENSSL_CONF)+2;
|
len=strlen(t)+strlen(OPENSSL_CONF)+2;
|
||||||
p=OPENSSL_malloc(len);
|
p=OPENSSL_malloc(len);
|
||||||
|
if (p == NULL)
|
||||||
|
return NULL;
|
||||||
BUF_strlcpy(p,t,len);
|
BUF_strlcpy(p,t,len);
|
||||||
#ifndef OPENSSL_SYS_VMS
|
#ifndef OPENSSL_SYS_VMS
|
||||||
BUF_strlcat(p,"/",len);
|
BUF_strlcat(p,"/",len);
|
||||||
@@ -2130,7 +2259,7 @@ X509_NAME *parse_name(char *subject, long chtype, int multirdn)
|
|||||||
X509_NAME *n = NULL;
|
X509_NAME *n = NULL;
|
||||||
int nid;
|
int nid;
|
||||||
|
|
||||||
if (!buf || !ne_types || !ne_values)
|
if (!buf || !ne_types || !ne_values || !mval)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "malloc error\n");
|
BIO_printf(bio_err, "malloc error\n");
|
||||||
goto error;
|
goto error;
|
||||||
@@ -2234,6 +2363,7 @@ X509_NAME *parse_name(char *subject, long chtype, int multirdn)
|
|||||||
OPENSSL_free(ne_values);
|
OPENSSL_free(ne_values);
|
||||||
OPENSSL_free(ne_types);
|
OPENSSL_free(ne_types);
|
||||||
OPENSSL_free(buf);
|
OPENSSL_free(buf);
|
||||||
|
OPENSSL_free(mval);
|
||||||
return n;
|
return n;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@@ -2242,6 +2372,8 @@ error:
|
|||||||
OPENSSL_free(ne_values);
|
OPENSSL_free(ne_values);
|
||||||
if (ne_types)
|
if (ne_types)
|
||||||
OPENSSL_free(ne_types);
|
OPENSSL_free(ne_types);
|
||||||
|
if (mval)
|
||||||
|
OPENSSL_free(mval);
|
||||||
if (buf)
|
if (buf)
|
||||||
OPENSSL_free(buf);
|
OPENSSL_free(buf);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -2257,6 +2389,10 @@ int args_verify(char ***pargs, int *pargc,
|
|||||||
char **oldargs = *pargs;
|
char **oldargs = *pargs;
|
||||||
char *arg = **pargs, *argn = (*pargs)[1];
|
char *arg = **pargs, *argn = (*pargs)[1];
|
||||||
const X509_VERIFY_PARAM *vpm = NULL;
|
const X509_VERIFY_PARAM *vpm = NULL;
|
||||||
|
time_t at_time = 0;
|
||||||
|
char *hostname = NULL;
|
||||||
|
char *email = NULL;
|
||||||
|
char *ipasc = NULL;
|
||||||
if (!strcmp(arg, "-policy"))
|
if (!strcmp(arg, "-policy"))
|
||||||
{
|
{
|
||||||
if (!argn)
|
if (!argn)
|
||||||
@@ -2324,6 +2460,48 @@ int args_verify(char ***pargs, int *pargc,
|
|||||||
}
|
}
|
||||||
(*pargs)++;
|
(*pargs)++;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(arg,"-attime") == 0)
|
||||||
|
{
|
||||||
|
if (!argn)
|
||||||
|
*badarg = 1;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
long timestamp;
|
||||||
|
/* interpret the -attime argument as seconds since
|
||||||
|
* Epoch */
|
||||||
|
if (sscanf(argn, "%li", ×tamp) != 1)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"Error parsing timestamp %s\n",
|
||||||
|
argn);
|
||||||
|
*badarg = 1;
|
||||||
|
}
|
||||||
|
/* on some platforms time_t may be a float */
|
||||||
|
at_time = (time_t) timestamp;
|
||||||
|
}
|
||||||
|
(*pargs)++;
|
||||||
|
}
|
||||||
|
else if (strcmp(arg,"-verify_hostname") == 0)
|
||||||
|
{
|
||||||
|
if (!argn)
|
||||||
|
*badarg = 1;
|
||||||
|
hostname = argn;
|
||||||
|
(*pargs)++;
|
||||||
|
}
|
||||||
|
else if (strcmp(arg,"-verify_email") == 0)
|
||||||
|
{
|
||||||
|
if (!argn)
|
||||||
|
*badarg = 1;
|
||||||
|
email = argn;
|
||||||
|
(*pargs)++;
|
||||||
|
}
|
||||||
|
else if (strcmp(arg,"-verify_ip") == 0)
|
||||||
|
{
|
||||||
|
if (!argn)
|
||||||
|
*badarg = 1;
|
||||||
|
ipasc = argn;
|
||||||
|
(*pargs)++;
|
||||||
|
}
|
||||||
else if (!strcmp(arg, "-ignore_critical"))
|
else if (!strcmp(arg, "-ignore_critical"))
|
||||||
flags |= X509_V_FLAG_IGNORE_CRITICAL;
|
flags |= X509_V_FLAG_IGNORE_CRITICAL;
|
||||||
else if (!strcmp(arg, "-issuer_checks"))
|
else if (!strcmp(arg, "-issuer_checks"))
|
||||||
@@ -2352,6 +2530,14 @@ int args_verify(char ***pargs, int *pargc,
|
|||||||
flags |= X509_V_FLAG_CHECK_SS_SIGNATURE;
|
flags |= X509_V_FLAG_CHECK_SS_SIGNATURE;
|
||||||
else if (!strcmp(arg, "-trusted_first"))
|
else if (!strcmp(arg, "-trusted_first"))
|
||||||
flags |= X509_V_FLAG_TRUSTED_FIRST;
|
flags |= X509_V_FLAG_TRUSTED_FIRST;
|
||||||
|
else if (!strcmp(arg, "-suiteB_128_only"))
|
||||||
|
flags |= X509_V_FLAG_SUITEB_128_LOS_ONLY;
|
||||||
|
else if (!strcmp(arg, "-suiteB_128"))
|
||||||
|
flags |= X509_V_FLAG_SUITEB_128_LOS;
|
||||||
|
else if (!strcmp(arg, "-suiteB_192"))
|
||||||
|
flags |= X509_V_FLAG_SUITEB_192_LOS;
|
||||||
|
else if (!strcmp(arg, "-partial_chain"))
|
||||||
|
flags |= X509_V_FLAG_PARTIAL_CHAIN;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -2383,6 +2569,18 @@ int args_verify(char ***pargs, int *pargc,
|
|||||||
if (depth >= 0)
|
if (depth >= 0)
|
||||||
X509_VERIFY_PARAM_set_depth(*pm, depth);
|
X509_VERIFY_PARAM_set_depth(*pm, depth);
|
||||||
|
|
||||||
|
if (at_time)
|
||||||
|
X509_VERIFY_PARAM_set_time(*pm, at_time);
|
||||||
|
|
||||||
|
if (hostname && !X509_VERIFY_PARAM_set1_host(*pm, hostname, 0))
|
||||||
|
*badarg = 1;
|
||||||
|
|
||||||
|
if (email && !X509_VERIFY_PARAM_set1_email(*pm, email, 0))
|
||||||
|
*badarg = 1;
|
||||||
|
|
||||||
|
if (ipasc && !X509_VERIFY_PARAM_set1_ip_asc(*pm, ipasc))
|
||||||
|
*badarg = 1;
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
||||||
(*pargs)++;
|
(*pargs)++;
|
||||||
@@ -2675,6 +2873,9 @@ void jpake_client_auth(BIO *out, BIO *conn, const char *secret)
|
|||||||
|
|
||||||
BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
|
BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
|
||||||
|
|
||||||
|
if (psk_key)
|
||||||
|
OPENSSL_free(psk_key);
|
||||||
|
|
||||||
psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
|
psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
|
||||||
|
|
||||||
BIO_pop(bconn);
|
BIO_pop(bconn);
|
||||||
@@ -2704,6 +2905,9 @@ void jpake_server_auth(BIO *out, BIO *conn, const char *secret)
|
|||||||
|
|
||||||
BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
|
BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
|
||||||
|
|
||||||
|
if (psk_key)
|
||||||
|
OPENSSL_free(psk_key);
|
||||||
|
|
||||||
psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
|
psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
|
||||||
|
|
||||||
BIO_pop(bconn);
|
BIO_pop(bconn);
|
||||||
@@ -2714,6 +2918,158 @@ void jpake_server_auth(BIO *out, BIO *conn, const char *secret)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
/*-
|
||||||
|
* next_protos_parse parses a comma separated list of strings into a string
|
||||||
|
* in a format suitable for passing to SSL_CTX_set_next_protos_advertised.
|
||||||
|
* outlen: (output) set to the length of the resulting buffer on success.
|
||||||
|
* err: (maybe NULL) on failure, an error message line is written to this BIO.
|
||||||
|
* in: a NUL termianted string like "abc,def,ghi"
|
||||||
|
*
|
||||||
|
* returns: a malloced buffer or NULL on failure.
|
||||||
|
*/
|
||||||
|
unsigned char *next_protos_parse(unsigned short *outlen, const char *in)
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
unsigned char *out;
|
||||||
|
size_t i, start = 0;
|
||||||
|
|
||||||
|
len = strlen(in);
|
||||||
|
if (len >= 65535)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
out = OPENSSL_malloc(strlen(in) + 1);
|
||||||
|
if (!out)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
for (i = 0; i <= len; ++i)
|
||||||
|
{
|
||||||
|
if (i == len || in[i] == ',')
|
||||||
|
{
|
||||||
|
if (i - start > 255)
|
||||||
|
{
|
||||||
|
OPENSSL_free(out);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
out[start] = i - start;
|
||||||
|
start = i + 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
out[i+1] = in[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
*outlen = len + 1;
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
#endif /* ndef OPENSSL_NO_TLSEXT */
|
||||||
|
|
||||||
|
void print_cert_checks(BIO *bio, X509 *x,
|
||||||
|
const char *checkhost,
|
||||||
|
const char *checkemail,
|
||||||
|
const char *checkip)
|
||||||
|
{
|
||||||
|
if (x == NULL)
|
||||||
|
return;
|
||||||
|
if (checkhost)
|
||||||
|
{
|
||||||
|
BIO_printf(bio, "Hostname %s does%s match certificate\n",
|
||||||
|
checkhost,
|
||||||
|
X509_check_host(x, checkhost, 0, 0, NULL)
|
||||||
|
? "" : " NOT");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkemail)
|
||||||
|
{
|
||||||
|
BIO_printf(bio, "Email %s does%s match certificate\n",
|
||||||
|
checkemail, X509_check_email(x, checkemail, 0,
|
||||||
|
0) ? "" : " NOT");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkip)
|
||||||
|
{
|
||||||
|
BIO_printf(bio, "IP %s does%s match certificate\n",
|
||||||
|
checkip, X509_check_ip_asc(x, checkip,
|
||||||
|
0) ? "" : " NOT");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get first http URL from a DIST_POINT structure */
|
||||||
|
|
||||||
|
static const char *get_dp_url(DIST_POINT *dp)
|
||||||
|
{
|
||||||
|
GENERAL_NAMES *gens;
|
||||||
|
GENERAL_NAME *gen;
|
||||||
|
int i, gtype;
|
||||||
|
ASN1_STRING *uri;
|
||||||
|
if (!dp->distpoint || dp->distpoint->type != 0)
|
||||||
|
return NULL;
|
||||||
|
gens = dp->distpoint->name.fullname;
|
||||||
|
for (i = 0; i < sk_GENERAL_NAME_num(gens); i++)
|
||||||
|
{
|
||||||
|
gen = sk_GENERAL_NAME_value(gens, i);
|
||||||
|
uri = GENERAL_NAME_get0_value(gen, >ype);
|
||||||
|
if (gtype == GEN_URI && ASN1_STRING_length(uri) > 6)
|
||||||
|
{
|
||||||
|
char *uptr = (char *)ASN1_STRING_data(uri);
|
||||||
|
if (!strncmp(uptr, "http://", 7))
|
||||||
|
return uptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Look through a CRLDP structure and attempt to find an http URL to downloads
|
||||||
|
* a CRL from.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static X509_CRL *load_crl_crldp(STACK_OF(DIST_POINT) *crldp)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
const char *urlptr = NULL;
|
||||||
|
for (i = 0; i < sk_DIST_POINT_num(crldp); i++)
|
||||||
|
{
|
||||||
|
DIST_POINT *dp = sk_DIST_POINT_value(crldp, i);
|
||||||
|
urlptr = get_dp_url(dp);
|
||||||
|
if (urlptr)
|
||||||
|
return load_crl(urlptr, FORMAT_HTTP);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Example of downloading CRLs from CRLDP: not usable for real world
|
||||||
|
* as it always downloads, doesn't support non-blocking I/O and doesn't
|
||||||
|
* cache anything.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static STACK_OF(X509_CRL) *crls_http_cb(X509_STORE_CTX *ctx, X509_NAME *nm)
|
||||||
|
{
|
||||||
|
X509 *x;
|
||||||
|
STACK_OF(X509_CRL) *crls = NULL;
|
||||||
|
X509_CRL *crl;
|
||||||
|
STACK_OF(DIST_POINT) *crldp;
|
||||||
|
x = X509_STORE_CTX_get_current_cert(ctx);
|
||||||
|
crldp = X509_get_ext_d2i(x, NID_crl_distribution_points, NULL, NULL);
|
||||||
|
crl = load_crl_crldp(crldp);
|
||||||
|
sk_DIST_POINT_pop_free(crldp, DIST_POINT_free);
|
||||||
|
if (!crl)
|
||||||
|
return NULL;
|
||||||
|
crls = sk_X509_CRL_new_null();
|
||||||
|
sk_X509_CRL_push(crls, crl);
|
||||||
|
/* Try to download delta CRL */
|
||||||
|
crldp = X509_get_ext_d2i(x, NID_freshest_crl, NULL, NULL);
|
||||||
|
crl = load_crl_crldp(crldp);
|
||||||
|
sk_DIST_POINT_pop_free(crldp, DIST_POINT_free);
|
||||||
|
if (crl)
|
||||||
|
sk_X509_CRL_push(crls, crl);
|
||||||
|
return crls;
|
||||||
|
}
|
||||||
|
|
||||||
|
void store_setup_crl_download(X509_STORE *st)
|
||||||
|
{
|
||||||
|
X509_STORE_set_lookup_crls_cb(st, crls_http_cb);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Platform-specific sections
|
* Platform-specific sections
|
||||||
*/
|
*/
|
||||||
@@ -2788,7 +3144,7 @@ double app_tminterval(int stop,int usertime)
|
|||||||
|
|
||||||
if (proc==NULL)
|
if (proc==NULL)
|
||||||
{
|
{
|
||||||
if (GetVersion() < 0x80000000)
|
if (check_winnt())
|
||||||
proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,
|
proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,
|
||||||
GetCurrentProcessId());
|
GetCurrentProcessId());
|
||||||
if (proc==NULL) proc = (HANDLE)-1;
|
if (proc==NULL) proc = (HANDLE)-1;
|
||||||
@@ -3039,46 +3395,3 @@ int raw_write_stdout(const void *buf,int siz)
|
|||||||
int raw_write_stdout(const void *buf,int siz)
|
int raw_write_stdout(const void *buf,int siz)
|
||||||
{ return write(fileno(stdout),buf,siz); }
|
{ return write(fileno(stdout),buf,siz); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
|
|
||||||
/* next_protos_parse parses a comma separated list of strings into a string
|
|
||||||
* in a format suitable for passing to SSL_CTX_set_next_protos_advertised.
|
|
||||||
* outlen: (output) set to the length of the resulting buffer on success.
|
|
||||||
* in: a NUL termianted string like "abc,def,ghi"
|
|
||||||
*
|
|
||||||
* returns: a malloced buffer or NULL on failure.
|
|
||||||
*/
|
|
||||||
unsigned char *next_protos_parse(unsigned short *outlen, const char *in)
|
|
||||||
{
|
|
||||||
size_t len;
|
|
||||||
unsigned char *out;
|
|
||||||
size_t i, start = 0;
|
|
||||||
|
|
||||||
len = strlen(in);
|
|
||||||
if (len >= 65535)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
out = OPENSSL_malloc(strlen(in) + 1);
|
|
||||||
if (!out)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
for (i = 0; i <= len; ++i)
|
|
||||||
{
|
|
||||||
if (i == len || in[i] == ',')
|
|
||||||
{
|
|
||||||
if (i - start > 255)
|
|
||||||
{
|
|
||||||
OPENSSL_free(out);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
out[start] = i - start;
|
|
||||||
start = i + 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
out[i+1] = in[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
*outlen = len + 1;
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
#endif /* !OPENSSL_NO_TLSEXT && !OPENSSL_NO_NEXTPROTONEG */
|
|
||||||
|
|||||||
30
apps/apps.h
30
apps/apps.h
@@ -188,6 +188,7 @@ extern BIO *bio_err;
|
|||||||
do { CONF_modules_unload(1); destroy_ui_method(); \
|
do { CONF_modules_unload(1); destroy_ui_method(); \
|
||||||
OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \
|
OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \
|
||||||
CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
|
CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
|
||||||
|
RAND_cleanup(); \
|
||||||
ERR_free_strings(); zlib_cleanup();} while(0)
|
ERR_free_strings(); zlib_cleanup();} while(0)
|
||||||
# else
|
# else
|
||||||
# define apps_startup() \
|
# define apps_startup() \
|
||||||
@@ -198,11 +199,12 @@ extern BIO *bio_err;
|
|||||||
do { CONF_modules_unload(1); destroy_ui_method(); \
|
do { CONF_modules_unload(1); destroy_ui_method(); \
|
||||||
OBJ_cleanup(); EVP_cleanup(); \
|
OBJ_cleanup(); EVP_cleanup(); \
|
||||||
CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
|
CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \
|
||||||
|
RAND_cleanup(); \
|
||||||
ERR_free_strings(); zlib_cleanup(); } while(0)
|
ERR_free_strings(); zlib_cleanup(); } while(0)
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OPENSSL_SYSNAME_WIN32
|
#if defined(OPENSSL_SYSNAME_WIN32) || defined(OPENSSL_SYSNAME_WINCE)
|
||||||
# define openssl_fdset(a,b) FD_SET((unsigned int)a, b)
|
# define openssl_fdset(a,b) FD_SET((unsigned int)a, b)
|
||||||
#else
|
#else
|
||||||
# define openssl_fdset(a,b) FD_SET(a, b)
|
# define openssl_fdset(a,b) FD_SET(a, b)
|
||||||
@@ -245,6 +247,9 @@ int app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2);
|
|||||||
int add_oid_section(BIO *err, CONF *conf);
|
int add_oid_section(BIO *err, CONF *conf);
|
||||||
X509 *load_cert(BIO *err, const char *file, int format,
|
X509 *load_cert(BIO *err, const char *file, int format,
|
||||||
const char *pass, ENGINE *e, const char *cert_descrip);
|
const char *pass, ENGINE *e, const char *cert_descrip);
|
||||||
|
X509_CRL *load_crl(const char *infile, int format);
|
||||||
|
int load_cert_crl_http(const char *url, BIO *err,
|
||||||
|
X509 **pcert, X509_CRL **pcrl);
|
||||||
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
EVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin,
|
||||||
const char *pass, ENGINE *e, const char *key_descrip);
|
const char *pass, ENGINE *e, const char *key_descrip);
|
||||||
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
|
EVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin,
|
||||||
@@ -260,9 +265,10 @@ ENGINE *setup_engine(BIO *err, const char *engine, int debug);
|
|||||||
|
|
||||||
#ifndef OPENSSL_NO_OCSP
|
#ifndef OPENSSL_NO_OCSP
|
||||||
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
||||||
char *host, char *path, char *port, int use_ssl,
|
const char *host, const char *path,
|
||||||
STACK_OF(CONF_VALUE) *headers,
|
const char *port, int use_ssl,
|
||||||
int req_timeout);
|
const STACK_OF(CONF_VALUE) *headers,
|
||||||
|
int req_timeout);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int load_config(BIO *err, CONF *cnf);
|
int load_config(BIO *err, CONF *cnf);
|
||||||
@@ -331,6 +337,17 @@ void jpake_client_auth(BIO *out, BIO *conn, const char *secret);
|
|||||||
void jpake_server_auth(BIO *out, BIO *conn, const char *secret);
|
void jpake_server_auth(BIO *out, BIO *conn, const char *secret);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
unsigned char *next_protos_parse(unsigned short *outlen, const char *in);
|
||||||
|
#endif /* ndef OPENSSL_NO_TLSEXT */
|
||||||
|
|
||||||
|
void print_cert_checks(BIO *bio, X509 *x,
|
||||||
|
const char *checkhost,
|
||||||
|
const char *checkemail,
|
||||||
|
const char *checkip);
|
||||||
|
|
||||||
|
void store_setup_crl_download(X509_STORE *st);
|
||||||
|
|
||||||
#define FORMAT_UNDEF 0
|
#define FORMAT_UNDEF 0
|
||||||
#define FORMAT_ASN1 1
|
#define FORMAT_ASN1 1
|
||||||
#define FORMAT_TEXT 2
|
#define FORMAT_TEXT 2
|
||||||
@@ -345,6 +362,8 @@ void jpake_server_auth(BIO *out, BIO *conn, const char *secret);
|
|||||||
#define FORMAT_ASN1RSA 10 /* DER RSAPubicKey format */
|
#define FORMAT_ASN1RSA 10 /* DER RSAPubicKey format */
|
||||||
#define FORMAT_MSBLOB 11 /* MS Key blob format */
|
#define FORMAT_MSBLOB 11 /* MS Key blob format */
|
||||||
#define FORMAT_PVK 12 /* MS PVK file format */
|
#define FORMAT_PVK 12 /* MS PVK file format */
|
||||||
|
#define FORMAT_HTTP 13 /* Download using HTTP */
|
||||||
|
#define FORMAT_NSS 14 /* NSS keylog format */
|
||||||
|
|
||||||
#define EXT_COPY_NONE 0
|
#define EXT_COPY_NONE 0
|
||||||
#define EXT_COPY_ADD 1
|
#define EXT_COPY_ADD 1
|
||||||
@@ -363,10 +382,7 @@ int raw_write_stdout(const void *,int);
|
|||||||
#define TM_START 0
|
#define TM_START 0
|
||||||
#define TM_STOP 1
|
#define TM_STOP 1
|
||||||
double app_tminterval (int stop,int usertime);
|
double app_tminterval (int stop,int usertime);
|
||||||
#endif
|
|
||||||
|
|
||||||
#define OPENSSL_NO_SSL_INTERN
|
#define OPENSSL_NO_SSL_INTERN
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_NEXTPROTONEG
|
|
||||||
unsigned char *next_protos_parse(unsigned short *outlen, const char *in);
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -69,7 +69,8 @@
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -i - indent the details by depth
|
* -i - indent the details by depth
|
||||||
* -offset - where in the file to start
|
* -offset - where in the file to start
|
||||||
@@ -80,6 +81,7 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG asn1parse_main
|
#define PROG asn1parse_main
|
||||||
|
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
static int do_generate(BIO *bio, char *genstr, char *genconf, BUF_MEM *buf);
|
static int do_generate(BIO *bio, char *genstr, char *genconf, BUF_MEM *buf);
|
||||||
@@ -90,8 +92,8 @@ int MAIN(int argc, char **argv)
|
|||||||
unsigned int length=0;
|
unsigned int length=0;
|
||||||
long num,tmplen;
|
long num,tmplen;
|
||||||
BIO *in=NULL,*out=NULL,*b64=NULL, *derout = NULL;
|
BIO *in=NULL,*out=NULL,*b64=NULL, *derout = NULL;
|
||||||
int informat,indent=0, noout = 0, dump = 0;
|
int informat,indent=0, noout = 0, dump = 0, strictpem = 0;
|
||||||
char *infile=NULL,*str=NULL,*prog,*oidfile=NULL, *derfile=NULL;
|
char *infile=NULL,*str=NULL,*prog,*oidfile=NULL, *derfile=NULL, *name=NULL, *header=NULL;
|
||||||
char *genstr=NULL, *genconf=NULL;
|
char *genstr=NULL, *genconf=NULL;
|
||||||
unsigned char *tmpbuf;
|
unsigned char *tmpbuf;
|
||||||
const unsigned char *ctmpbuf;
|
const unsigned char *ctmpbuf;
|
||||||
@@ -181,6 +183,11 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
genconf= *(++argv);
|
genconf= *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-strictpem") == 0)
|
||||||
|
{
|
||||||
|
strictpem = 1;
|
||||||
|
informat = FORMAT_PEM;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||||
@@ -211,6 +218,8 @@ bad:
|
|||||||
BIO_printf(bio_err," ASN1 blob wrappings\n");
|
BIO_printf(bio_err," ASN1 blob wrappings\n");
|
||||||
BIO_printf(bio_err," -genstr str string to generate ASN1 structure from\n");
|
BIO_printf(bio_err," -genstr str string to generate ASN1 structure from\n");
|
||||||
BIO_printf(bio_err," -genconf file file to generate ASN1 structure from\n");
|
BIO_printf(bio_err," -genconf file file to generate ASN1 structure from\n");
|
||||||
|
BIO_printf(bio_err," -strictpem do not attempt base64 decode outside PEM markers (-inform \n");
|
||||||
|
BIO_printf(bio_err," will be ignored)\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,44 +270,58 @@ bad:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((buf=BUF_MEM_new()) == NULL) goto end;
|
if(strictpem)
|
||||||
if (!BUF_MEM_grow(buf,BUFSIZ*8)) goto end; /* Pre-allocate :-) */
|
|
||||||
|
|
||||||
if (genstr || genconf)
|
|
||||||
{
|
{
|
||||||
num = do_generate(bio_err, genstr, genconf, buf);
|
if(PEM_read_bio(in, &name, &header, (unsigned char **)&str, &num) != 1)
|
||||||
if (num < 0)
|
|
||||||
{
|
{
|
||||||
|
BIO_printf(bio_err,"Error reading PEM file\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
if (informat == FORMAT_PEM)
|
if ((buf=BUF_MEM_new()) == NULL) goto end;
|
||||||
{
|
if (!BUF_MEM_grow(buf,BUFSIZ*8)) goto end; /* Pre-allocate :-) */
|
||||||
BIO *tmp;
|
|
||||||
|
|
||||||
if ((b64=BIO_new(BIO_f_base64())) == NULL)
|
if (genstr || genconf)
|
||||||
|
{
|
||||||
|
num = do_generate(bio_err, genstr, genconf, buf);
|
||||||
|
if (num < 0)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
BIO_push(b64,in);
|
}
|
||||||
tmp=in;
|
|
||||||
in=b64;
|
|
||||||
b64=tmp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
num=0;
|
else
|
||||||
for (;;)
|
|
||||||
{
|
{
|
||||||
if (!BUF_MEM_grow(buf,(int)num+BUFSIZ)) goto end;
|
|
||||||
i=BIO_read(in,&(buf->data[num]),BUFSIZ);
|
if (informat == FORMAT_PEM)
|
||||||
if (i <= 0) break;
|
{
|
||||||
num+=i;
|
BIO *tmp;
|
||||||
|
|
||||||
|
if ((b64=BIO_new(BIO_f_base64())) == NULL)
|
||||||
|
goto end;
|
||||||
|
BIO_push(b64,in);
|
||||||
|
tmp=in;
|
||||||
|
in=b64;
|
||||||
|
b64=tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
num=0;
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
if (!BUF_MEM_grow(buf,(int)num+BUFSIZ)) goto end;
|
||||||
|
i=BIO_read(in,&(buf->data[num]),BUFSIZ);
|
||||||
|
if (i <= 0) break;
|
||||||
|
num+=i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
str=buf->data;
|
||||||
|
|
||||||
}
|
}
|
||||||
str=buf->data;
|
|
||||||
|
|
||||||
/* If any structs to parse go through in sequence */
|
/* If any structs to parse go through in sequence */
|
||||||
|
|
||||||
@@ -377,6 +400,9 @@ end:
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
if (buf != NULL) BUF_MEM_free(buf);
|
if (buf != NULL) BUF_MEM_free(buf);
|
||||||
|
if (name != NULL) OPENSSL_free(name);
|
||||||
|
if (header != NULL) OPENSSL_free(header);
|
||||||
|
if (strictpem && str != NULL) OPENSSL_free(str);
|
||||||
if (at != NULL) ASN1_TYPE_free(at);
|
if (at != NULL) ASN1_TYPE_free(at);
|
||||||
if (osk != NULL) sk_OPENSSL_STRING_free(osk);
|
if (osk != NULL) sk_OPENSSL_STRING_free(osk);
|
||||||
OBJ_cleanup();
|
OBJ_cleanup();
|
||||||
|
|||||||
50
apps/ca.c
50
apps/ca.c
@@ -148,7 +148,7 @@
|
|||||||
static const char *ca_usage[]={
|
static const char *ca_usage[]={
|
||||||
"usage: ca args\n",
|
"usage: ca args\n",
|
||||||
"\n",
|
"\n",
|
||||||
" -verbose - Talk alot while doing things\n",
|
" -verbose - Talk a lot while doing things\n",
|
||||||
" -config file - A config file\n",
|
" -config file - A config file\n",
|
||||||
" -name arg - The particular CA definition to use\n",
|
" -name arg - The particular CA definition to use\n",
|
||||||
" -gencrl - Generate a new CRL\n",
|
" -gencrl - Generate a new CRL\n",
|
||||||
@@ -179,7 +179,7 @@ static const char *ca_usage[]={
|
|||||||
" -utf8 - input characters are UTF8 (default ASCII)\n",
|
" -utf8 - input characters are UTF8 (default ASCII)\n",
|
||||||
" -multivalue-rdn - enable support for multivalued RDNs\n",
|
" -multivalue-rdn - enable support for multivalued RDNs\n",
|
||||||
" -extensions .. - Extension section (override value in config file)\n",
|
" -extensions .. - Extension section (override value in config file)\n",
|
||||||
" -extfile file - Configuration file with X509v3 extentions to add\n",
|
" -extfile file - Configuration file with X509v3 extensions to add\n",
|
||||||
" -crlexts .. - CRL extension section (override value in config file)\n",
|
" -crlexts .. - CRL extension section (override value in config file)\n",
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
" -engine e - use engine e, possibly a hardware device.\n",
|
" -engine e - use engine e, possibly a hardware device.\n",
|
||||||
@@ -501,6 +501,12 @@ EF_ALIGNMENT=0;
|
|||||||
infile= *(++argv);
|
infile= *(++argv);
|
||||||
dorevoke=1;
|
dorevoke=1;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-valid") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
infile= *(++argv);
|
||||||
|
dorevoke=2;
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-extensions") == 0)
|
else if (strcmp(*argv,"-extensions") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -649,7 +655,7 @@ bad:
|
|||||||
oid_bio=BIO_new_file(p,"r");
|
oid_bio=BIO_new_file(p,"r");
|
||||||
if (oid_bio == NULL)
|
if (oid_bio == NULL)
|
||||||
{
|
{
|
||||||
/*
|
/*-
|
||||||
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
|
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
*/
|
*/
|
||||||
@@ -703,7 +709,7 @@ bad:
|
|||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
#ifdef RL_DEBUG
|
#ifdef RL_DEBUG
|
||||||
if (!p)
|
if (!p)
|
||||||
BIO_printf(bio_err, "DEBUG: unique_subject undefined\n", p);
|
BIO_printf(bio_err, "DEBUG: unique_subject undefined\n");
|
||||||
#endif
|
#endif
|
||||||
#ifdef RL_DEBUG
|
#ifdef RL_DEBUG
|
||||||
BIO_printf(bio_err, "DEBUG: configured unique_subject is %d\n",
|
BIO_printf(bio_err, "DEBUG: configured unique_subject is %d\n",
|
||||||
@@ -988,7 +994,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
/* Read extentions config file */
|
/* Read extensions config file */
|
||||||
if (extfile)
|
if (extfile)
|
||||||
{
|
{
|
||||||
extconf = NCONF_new(NULL);
|
extconf = NCONF_new(NULL);
|
||||||
@@ -1491,7 +1497,8 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (crlnumberfile != NULL) /* we have a CRL number that need updating */
|
/* we have a CRL number that need updating */
|
||||||
|
if (crlnumberfile != NULL)
|
||||||
if (!save_serial(crlnumberfile,"new",crlnumber,NULL)) goto err;
|
if (!save_serial(crlnumberfile,"new",crlnumber,NULL)) goto err;
|
||||||
|
|
||||||
if (crlnumber)
|
if (crlnumber)
|
||||||
@@ -1523,6 +1530,8 @@ bad:
|
|||||||
NULL, e, infile);
|
NULL, e, infile);
|
||||||
if (revcert == NULL)
|
if (revcert == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
if (dorevoke == 2)
|
||||||
|
rev_type = -1;
|
||||||
j=do_revoke(revcert,db, rev_type, rev_arg);
|
j=do_revoke(revcert,db, rev_type, rev_arg);
|
||||||
if (j <= 0) goto err;
|
if (j <= 0) goto err;
|
||||||
X509_free(revcert);
|
X509_free(revcert);
|
||||||
@@ -1620,12 +1629,14 @@ static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
|||||||
{
|
{
|
||||||
ok=0;
|
ok=0;
|
||||||
BIO_printf(bio_err,"Signature verification problems....\n");
|
BIO_printf(bio_err,"Signature verification problems....\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
ok=0;
|
ok=0;
|
||||||
BIO_printf(bio_err,"Signature did not match the certificate request\n");
|
BIO_printf(bio_err,"Signature did not match the certificate request\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2044,7 +2055,13 @@ again2:
|
|||||||
|
|
||||||
if (enddate == NULL)
|
if (enddate == NULL)
|
||||||
X509_time_adj_ex(X509_get_notAfter(ret),days, 0, NULL);
|
X509_time_adj_ex(X509_get_notAfter(ret),days, 0, NULL);
|
||||||
else ASN1_TIME_set_string(X509_get_notAfter(ret),enddate);
|
else
|
||||||
|
{
|
||||||
|
int tdays;
|
||||||
|
ASN1_TIME_set_string(X509_get_notAfter(ret),enddate);
|
||||||
|
ASN1_TIME_diff(&tdays, NULL, NULL, X509_get_notAfter(ret));
|
||||||
|
days = tdays;
|
||||||
|
}
|
||||||
|
|
||||||
if (!X509_set_subject_name(ret,subject)) goto err;
|
if (!X509_set_subject_name(ret,subject)) goto err;
|
||||||
|
|
||||||
@@ -2486,7 +2503,10 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Revoke Certificate */
|
/* Revoke Certificate */
|
||||||
ok = do_revoke(x509,db, type, value);
|
if (type == -1)
|
||||||
|
ok = 1;
|
||||||
|
else
|
||||||
|
ok = do_revoke(x509,db, type, value);
|
||||||
|
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
@@ -2497,6 +2517,12 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, char *value)
|
|||||||
row[DB_name]);
|
row[DB_name]);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
else if (type == -1)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"ERROR:Already present, serial number %s\n",
|
||||||
|
row[DB_serial]);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
else if (rrow[DB_type][0]=='R')
|
else if (rrow[DB_type][0]=='R')
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"ERROR:Already revoked, serial number %s\n",
|
BIO_printf(bio_err,"ERROR:Already revoked, serial number %s\n",
|
||||||
@@ -2561,7 +2587,7 @@ static int get_certificate_status(const char *serial, CA_DB *db)
|
|||||||
|
|
||||||
/* Make it Upper Case */
|
/* Make it Upper Case */
|
||||||
for (i=0; row[DB_serial][i] != '\0'; i++)
|
for (i=0; row[DB_serial][i] != '\0'; i++)
|
||||||
row[DB_serial][i] = toupper(row[DB_serial][i]);
|
row[DB_serial][i] = toupper((unsigned char)row[DB_serial][i]);
|
||||||
|
|
||||||
|
|
||||||
ok=1;
|
ok=1;
|
||||||
@@ -2777,6 +2803,9 @@ char *make_revocation_str(int rev_type, char *rev_arg)
|
|||||||
|
|
||||||
revtm = X509_gmtime_adj(NULL, 0);
|
revtm = X509_gmtime_adj(NULL, 0);
|
||||||
|
|
||||||
|
if (!revtm)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
i = revtm->length + 1;
|
i = revtm->length + 1;
|
||||||
|
|
||||||
if (reason) i += strlen(reason) + 1;
|
if (reason) i += strlen(reason) + 1;
|
||||||
@@ -2801,7 +2830,8 @@ char *make_revocation_str(int rev_type, char *rev_arg)
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert revocation field to X509_REVOKED entry
|
/*-
|
||||||
|
* Convert revocation field to X509_REVOKED entry
|
||||||
* return code:
|
* return code:
|
||||||
* 0 error
|
* 0 error
|
||||||
* 1 OK
|
* 1 OK
|
||||||
|
|||||||
@@ -59,9 +59,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
@@ -73,7 +70,6 @@ static const char *ciphers_usage[]={
|
|||||||
"usage: ciphers args\n",
|
"usage: ciphers args\n",
|
||||||
" -v - verbose mode, a textual listing of the SSL/TLS ciphers in OpenSSL\n",
|
" -v - verbose mode, a textual listing of the SSL/TLS ciphers in OpenSSL\n",
|
||||||
" -V - even more verbose\n",
|
" -V - even more verbose\n",
|
||||||
" -ssl2 - SSL2 mode\n",
|
|
||||||
" -ssl3 - SSL3 mode\n",
|
" -ssl3 - SSL3 mode\n",
|
||||||
" -tls1 - TLS1 mode\n",
|
" -tls1 - TLS1 mode\n",
|
||||||
NULL
|
NULL
|
||||||
@@ -85,6 +81,10 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
int ret=1,i;
|
int ret=1,i;
|
||||||
int verbose=0,Verbose=0;
|
int verbose=0,Verbose=0;
|
||||||
|
int use_supported = 0;
|
||||||
|
#ifndef OPENSSL_NO_SSL_TRACE
|
||||||
|
int stdname = 0;
|
||||||
|
#endif
|
||||||
const char **pp;
|
const char **pp;
|
||||||
const char *p;
|
const char *p;
|
||||||
int badops=0;
|
int badops=0;
|
||||||
@@ -92,17 +92,11 @@ int MAIN(int argc, char **argv)
|
|||||||
SSL *ssl=NULL;
|
SSL *ssl=NULL;
|
||||||
char *ciphers=NULL;
|
char *ciphers=NULL;
|
||||||
const SSL_METHOD *meth=NULL;
|
const SSL_METHOD *meth=NULL;
|
||||||
STACK_OF(SSL_CIPHER) *sk;
|
STACK_OF(SSL_CIPHER) *sk=NULL;
|
||||||
char buf[512];
|
char buf[512];
|
||||||
BIO *STDout=NULL;
|
BIO *STDout=NULL;
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
|
||||||
meth=SSLv23_server_method();
|
meth=SSLv23_server_method();
|
||||||
#elif !defined(OPENSSL_NO_SSL3)
|
|
||||||
meth=SSLv3_server_method();
|
|
||||||
#elif !defined(OPENSSL_NO_SSL2)
|
|
||||||
meth=SSLv2_server_method();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
|
||||||
@@ -126,9 +120,11 @@ int MAIN(int argc, char **argv)
|
|||||||
verbose=1;
|
verbose=1;
|
||||||
else if (strcmp(*argv,"-V") == 0)
|
else if (strcmp(*argv,"-V") == 0)
|
||||||
verbose=Verbose=1;
|
verbose=Verbose=1;
|
||||||
#ifndef OPENSSL_NO_SSL2
|
else if (strcmp(*argv,"-s") == 0)
|
||||||
else if (strcmp(*argv,"-ssl2") == 0)
|
use_supported = 1;
|
||||||
meth=SSLv2_client_method();
|
#ifndef OPENSSL_NO_SSL_TRACE
|
||||||
|
else if (strcmp(*argv,"-stdname") == 0)
|
||||||
|
stdname=verbose=1;
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_SSL3
|
#ifndef OPENSSL_NO_SSL3
|
||||||
else if (strcmp(*argv,"-ssl3") == 0)
|
else if (strcmp(*argv,"-ssl3") == 0)
|
||||||
@@ -172,12 +168,17 @@ int MAIN(int argc, char **argv)
|
|||||||
ssl=SSL_new(ctx);
|
ssl=SSL_new(ctx);
|
||||||
if (ssl == NULL) goto err;
|
if (ssl == NULL) goto err;
|
||||||
|
|
||||||
|
if (use_supported)
|
||||||
|
sk=SSL_get1_supported_ciphers(ssl);
|
||||||
|
else
|
||||||
|
sk=SSL_get_ciphers(ssl);
|
||||||
|
|
||||||
if (!verbose)
|
if (!verbose)
|
||||||
{
|
{
|
||||||
for (i=0; ; i++)
|
for (i=0; i<sk_SSL_CIPHER_num(sk); i++)
|
||||||
{
|
{
|
||||||
p=SSL_get_cipher_list(ssl,i);
|
SSL_CIPHER *c = sk_SSL_CIPHER_value(sk,i);
|
||||||
|
p = SSL_CIPHER_get_name(c);
|
||||||
if (p == NULL) break;
|
if (p == NULL) break;
|
||||||
if (i != 0) BIO_printf(STDout,":");
|
if (i != 0) BIO_printf(STDout,":");
|
||||||
BIO_printf(STDout,"%s",p);
|
BIO_printf(STDout,"%s",p);
|
||||||
@@ -186,7 +187,6 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else /* verbose */
|
else /* verbose */
|
||||||
{
|
{
|
||||||
sk=SSL_get_ciphers(ssl);
|
|
||||||
|
|
||||||
for (i=0; i<sk_SSL_CIPHER_num(sk); i++)
|
for (i=0; i<sk_SSL_CIPHER_num(sk); i++)
|
||||||
{
|
{
|
||||||
@@ -202,14 +202,26 @@ int MAIN(int argc, char **argv)
|
|||||||
int id2 = (int)((id >> 8) & 0xffL);
|
int id2 = (int)((id >> 8) & 0xffL);
|
||||||
int id3 = (int)(id & 0xffL);
|
int id3 = (int)(id & 0xffL);
|
||||||
|
|
||||||
if ((id & 0xff000000L) == 0x02000000L)
|
if ((id & 0xff000000L) == 0x03000000L)
|
||||||
BIO_printf(STDout, " 0x%02X,0x%02X,0x%02X - ", id1, id2, id3); /* SSL2 cipher */
|
{
|
||||||
else if ((id & 0xff000000L) == 0x03000000L)
|
/* SSL3 cipher */
|
||||||
BIO_printf(STDout, " 0x%02X,0x%02X - ", id2, id3); /* SSL3 cipher */
|
BIO_printf(STDout, " 0x%02X,0x%02X - ", id2, id3);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
BIO_printf(STDout, "0x%02X,0x%02X,0x%02X,0x%02X - ", id0, id1, id2, id3); /* whatever */
|
{
|
||||||
|
/* whatever */
|
||||||
|
BIO_printf(STDout, "0x%02X,0x%02X,0x%02X,0x%02X - ", id0, id1, id2, id3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_SSL_TRACE
|
||||||
|
if (stdname)
|
||||||
|
{
|
||||||
|
const char *nm = SSL_CIPHER_standard_name(c);
|
||||||
|
if (nm == NULL)
|
||||||
|
nm = "UNKNOWN";
|
||||||
|
BIO_printf(STDout, "%s - ", nm);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
BIO_puts(STDout,SSL_CIPHER_description(c,buf,sizeof buf));
|
BIO_puts(STDout,SSL_CIPHER_description(c,buf,sizeof buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -222,6 +234,8 @@ err:
|
|||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
|
if (use_supported && sk)
|
||||||
|
sk_SSL_CIPHER_free(sk);
|
||||||
if (ctx != NULL) SSL_CTX_free(ctx);
|
if (ctx != NULL) SSL_CTX_free(ctx);
|
||||||
if (ssl != NULL) SSL_free(ssl);
|
if (ssl != NULL) SSL_free(ssl);
|
||||||
if (STDout != NULL) BIO_free_all(STDout);
|
if (STDout != NULL) BIO_free_all(STDout);
|
||||||
|
|||||||
@@ -1,24 +1,52 @@
|
|||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
subject= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = Test Client Cert
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Client test cert (512 bit)
|
issuer= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = OpenSSL Test Intermediate CA
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB6TCCAVICAQIwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
|
MIID5zCCAs+gAwIBAgIJALnu1NlVpZ6yMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
|
BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVT
|
||||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTcwNjA5MTM1NzU2WhcNOTgwNjA5
|
VElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQDDBxPcGVuU1NMIFRlc3QgSW50ZXJt
|
||||||
MTM1NzU2WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
|
ZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoXDTIxMTAxNjE0MDE0OFowZDELMAkG
|
||||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGkNsaWVudCB0ZXN0IGNl
|
A1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBU
|
||||||
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALtv55QyzG6i2Plw
|
RVNUSU5HIFBVUlBPU0VTIE9OTFkxGTAXBgNVBAMMEFRlc3QgQ2xpZW50IENlcnQw
|
||||||
Z1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexmq/R4KedLjFEIYjocDui+IXs62NNt
|
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0ranbHRLcLVqN+0BzcZpY
|
||||||
XrT8odkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBwtMmI7oGUG8nKmftQssATViH5
|
+yOLqxzDWT1LD9eW1stC4NzXX9/DCtSIVyN7YIHdGLrIPr64IDdXXaMRzgZ2rOKs
|
||||||
NRRtoEw07DxJp/LfatHdrhqQB73eGdL5WILZJXk46Xz2e9WMSUjVCSYhdKxtflU3
|
lmHCAiFpO/ja99gGCJRxH0xwQatqAULfJVHeUhs7OEGOZc2nWifjqKvGfNTilP7D
|
||||||
UR2Ajv1Oo0sTNdfz0wDqJNirLNtzyhhsaq8qMTrLwXrCP31VxBiigFSQSUFnZyTE
|
nwi69ipQFq9oS19FmhwVHk2wg7KZGHI1qDyG04UrfCZMRitvS9+UVhPpIPjuiBi2
|
||||||
9TKwhS4GlwbtCfxSKQ==
|
x3/FZIpL5gXJvvFK6xHY63oq2asyzBATntBgnP4qJFWWcvRx24wF1PnZabxuVoL2
|
||||||
|
bPnQ/KvONDrw3IdqkKhYNTul7jEcu3OlcZIMw+7DiaKJLAzKb/bBF5gm/pwW6As9
|
||||||
|
AgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwLAYJYIZI
|
||||||
|
AYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQW
|
||||||
|
BBSZHKyLoTh7Mb409Zn/mK1ceSDAjDAfBgNVHSMEGDAWgBQ2w2yI55X+sL3szj49
|
||||||
|
hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEAD0mL7PtPYgCEuDyOQSbLpeND5hVS
|
||||||
|
curxQdGnrJ6Acrhodb7E9ccATokeb0PLx6HBLQUicxhTZIQ9FbO43YkQcOU6C3BB
|
||||||
|
IlwskqmtN6+VmrQzNolHCDzvxNZs9lYL2VbGPGqVRyjZeHpoAlf9cQr8PgDb4d4b
|
||||||
|
vUx2KAhHQvV2nkmYvKyXcgnRuHggumF87mkxidriGAEFwH4qfOqetUg64WyxP7P2
|
||||||
|
QLipm04SyQa7ONtIApfVXgHcE42Py4/f4arzCzMjKe3VyhGkS7nsT55X/fWgTaRm
|
||||||
|
CQPkO+H94P958WTvQDt77bQ+D3IvYaVvfil8n6HJMOJfFT0LJuSUbpSXJg==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
MIIBOwIBAAJBALtv55QyzG6i2PlwZ1pah7++Gv8L5j6Hnyr/uTZE1NLG0ABDDexm
|
MIIEpQIBAAKCAQEAtK2p2x0S3C1ajftAc3GaWPsji6scw1k9Sw/XltbLQuDc11/f
|
||||||
q/R4KedLjFEIYjocDui+IXs62NNtXrT8odkCAwEAAQJAbwXq0vJ/+uyEvsNgxLko
|
wwrUiFcje2CB3Ri6yD6+uCA3V12jEc4GdqzirJZhwgIhaTv42vfYBgiUcR9McEGr
|
||||||
/V86mGXQ/KrSkeKlL0r4ENxjcyeMAGoKu6J9yMY7+X9+Zm4nxShNfTsf/+Freoe1
|
agFC3yVR3lIbOzhBjmXNp1on46irxnzU4pT+w58IuvYqUBavaEtfRZocFR5NsIOy
|
||||||
HQIhAPOSm5Q1YI+KIsII2GeVJx1U69+wnd71OasIPakS1L1XAiEAxQAW+J3/JWE0
|
mRhyNag8htOFK3wmTEYrb0vflFYT6SD47ogYtsd/xWSKS+YFyb7xSusR2Ot6Ktmr
|
||||||
ftEYakbhUOKL8tD1OaFZS71/5GdG7E8CIQCefUMmySSvwd6kC0VlATSWbW+d+jp/
|
MswQE57QYJz+KiRVlnL0cduMBdT52Wm8blaC9mz50PyrzjQ68NyHapCoWDU7pe4x
|
||||||
nWmM1KvqnAo5uQIhALqEADu5U1Wvt8UN8UDGBRPQulHWNycuNV45d3nnskWPAiAw
|
HLtzpXGSDMPuw4miiSwMym/2wReYJv6cFugLPQIDAQABAoIBAAZOyc9MhIwLSU4L
|
||||||
ueTyr6WsZ5+SD8g/Hy3xuvF3nPmJRH+rwvVihlcFOg==
|
p4RgQvM4UVVe8/Id+3XTZ8NsXExJbWxXfIhiqGjaIfL8u4vsgRjcl+v1s/jo2/iT
|
||||||
|
KMab4o4D8gXD7UavQVDjtjb/ta79WL3SjRl2Uc9YjjMkyq6WmDNQeo2NKDdafCTB
|
||||||
|
1uzSJtLNipB8Z53ELPuHJhxX9QMHrMnuha49riQgXZ7buP9iQrHJFhImBjSzbxJx
|
||||||
|
L+TI6rkyLSf9Wi0Pd3L27Ob3QWNfNRYNSeTE+08eSRChkur5W0RuXAcuAICdQlCl
|
||||||
|
LBvWO/LmmvbzCqiDcgy/TliSb6CGGwgiNG7LJZmlkYNj8laGwalNlYZs3UrVv6NO
|
||||||
|
Br2loAECgYEA2kvCvPGj0Dg/6g7WhXDvAkEbcaL1tSeCxBbNH+6HS2UWMWvyTtCn
|
||||||
|
/bbD519QIdkvayy1QjEf32GV/UjUVmlULMLBcDy0DGjtL3+XpIhLKWDNxN1v1/ai
|
||||||
|
1oz23ZJCOgnk6K4qtFtlRS1XtynjA+rBetvYvLP9SKeFrnpzCgaA2r0CgYEA0+KX
|
||||||
|
1ACXDTNH5ySX3kMjSS9xdINf+OOw4CvPHFwbtc9aqk2HePlEsBTz5I/W3rKwXva3
|
||||||
|
NqZ/bRqVVeZB/hHKFywgdUQk2Uc5z/S7Lw70/w1HubNTXGU06Ngb6zOFAo/o/TwZ
|
||||||
|
zTP1BMIKSOB6PAZPS3l+aLO4FRIRotfFhgRHOoECgYEAmiZbqt8cJaJDB/5YYDzC
|
||||||
|
mp3tSk6gIb936Q6M5VqkMYp9pIKsxhk0N8aDCnTU+kIK6SzWBpr3/d9Ecmqmfyq7
|
||||||
|
5SvWO3KyVf0WWK9KH0abhOm2BKm2HBQvI0DB5u8sUx2/hsvOnjPYDISbZ11t0MtK
|
||||||
|
u35Zy89yMYcSsIYJjG/ROCUCgYEAgI2P9G5PNxEP5OtMwOsW84Y3Xat/hPAQFlI+
|
||||||
|
HES+AzbFGWJkeT8zL2nm95tVkFP1sggZ7Kxjz3w7cpx7GX0NkbWSE9O+T51pNASV
|
||||||
|
tN1sQ3p5M+/a+cnlqgfEGJVvc7iAcXQPa3LEi5h2yPR49QYXAgG6cifn3dDSpmwn
|
||||||
|
SUI7PQECgYEApGCIIpSRPLAEHTGmP87RBL1smurhwmy2s/pghkvUkWehtxg0sGHh
|
||||||
|
kuaqDWcskogv+QC0sVdytiLSz8G0DwcEcsHK1Fkyb8A+ayiw6jWJDo2m9+IF4Fww
|
||||||
|
1Te6jFPYDESnbhq7+TLGgHGhtwcu5cnb4vSuYXGXKupZGzoLOBbv1Zw=
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
|
|||||||
175
apps/cms.c
175
apps/cms.c
@@ -74,6 +74,8 @@ static void receipt_request_print(BIO *out, CMS_ContentInfo *cms);
|
|||||||
static CMS_ReceiptRequest *make_receipt_request(STACK_OF(OPENSSL_STRING) *rr_to,
|
static CMS_ReceiptRequest *make_receipt_request(STACK_OF(OPENSSL_STRING) *rr_to,
|
||||||
int rr_allorfirst,
|
int rr_allorfirst,
|
||||||
STACK_OF(OPENSSL_STRING) *rr_from);
|
STACK_OF(OPENSSL_STRING) *rr_from);
|
||||||
|
static int cms_set_pkey_param(EVP_PKEY_CTX *pctx,
|
||||||
|
STACK_OF(OPENSSL_STRING) *param);
|
||||||
|
|
||||||
#define SMIME_OP 0x10
|
#define SMIME_OP 0x10
|
||||||
#define SMIME_IP 0x20
|
#define SMIME_IP 0x20
|
||||||
@@ -97,6 +99,15 @@ static CMS_ReceiptRequest *make_receipt_request(STACK_OF(OPENSSL_STRING) *rr_to,
|
|||||||
|
|
||||||
int verify_err = 0;
|
int verify_err = 0;
|
||||||
|
|
||||||
|
typedef struct cms_key_param_st cms_key_param;
|
||||||
|
|
||||||
|
struct cms_key_param_st
|
||||||
|
{
|
||||||
|
int idx;
|
||||||
|
STACK_OF(OPENSSL_STRING) *param;
|
||||||
|
cms_key_param *next;
|
||||||
|
};
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
@@ -111,7 +122,7 @@ int MAIN(int argc, char **argv)
|
|||||||
STACK_OF(OPENSSL_STRING) *sksigners = NULL, *skkeys = NULL;
|
STACK_OF(OPENSSL_STRING) *sksigners = NULL, *skkeys = NULL;
|
||||||
char *certfile = NULL, *keyfile = NULL, *contfile=NULL;
|
char *certfile = NULL, *keyfile = NULL, *contfile=NULL;
|
||||||
char *certsoutfile = NULL;
|
char *certsoutfile = NULL;
|
||||||
const EVP_CIPHER *cipher = NULL;
|
const EVP_CIPHER *cipher = NULL, *wrap_cipher = NULL;
|
||||||
CMS_ContentInfo *cms = NULL, *rcms = NULL;
|
CMS_ContentInfo *cms = NULL, *rcms = NULL;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
X509 *cert = NULL, *recip = NULL, *signer = NULL;
|
X509 *cert = NULL, *recip = NULL, *signer = NULL;
|
||||||
@@ -139,6 +150,8 @@ int MAIN(int argc, char **argv)
|
|||||||
unsigned char *pwri_pass = NULL, *pwri_tmp = NULL;
|
unsigned char *pwri_pass = NULL, *pwri_tmp = NULL;
|
||||||
size_t secret_keylen = 0, secret_keyidlen = 0;
|
size_t secret_keylen = 0, secret_keyidlen = 0;
|
||||||
|
|
||||||
|
cms_key_param *key_first = NULL, *key_param = NULL;
|
||||||
|
|
||||||
ASN1_OBJECT *econtent_type = NULL;
|
ASN1_OBJECT *econtent_type = NULL;
|
||||||
|
|
||||||
X509_VERIFY_PARAM *vpm = NULL;
|
X509_VERIFY_PARAM *vpm = NULL;
|
||||||
@@ -204,6 +217,8 @@ int MAIN(int argc, char **argv)
|
|||||||
cipher = EVP_des_ede3_cbc();
|
cipher = EVP_des_ede3_cbc();
|
||||||
else if (!strcmp (*args, "-des"))
|
else if (!strcmp (*args, "-des"))
|
||||||
cipher = EVP_des_cbc();
|
cipher = EVP_des_cbc();
|
||||||
|
else if (!strcmp (*args, "-des3-wrap"))
|
||||||
|
wrap_cipher = EVP_des_ede3_wrap();
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_SEED
|
#ifndef OPENSSL_NO_SEED
|
||||||
else if (!strcmp (*args, "-seed"))
|
else if (!strcmp (*args, "-seed"))
|
||||||
@@ -224,6 +239,12 @@ int MAIN(int argc, char **argv)
|
|||||||
cipher = EVP_aes_192_cbc();
|
cipher = EVP_aes_192_cbc();
|
||||||
else if (!strcmp(*args,"-aes256"))
|
else if (!strcmp(*args,"-aes256"))
|
||||||
cipher = EVP_aes_256_cbc();
|
cipher = EVP_aes_256_cbc();
|
||||||
|
else if (!strcmp(*args,"-aes128-wrap"))
|
||||||
|
wrap_cipher = EVP_aes_128_wrap();
|
||||||
|
else if (!strcmp(*args,"-aes192-wrap"))
|
||||||
|
wrap_cipher = EVP_aes_192_wrap();
|
||||||
|
else if (!strcmp(*args,"-aes256-wrap"))
|
||||||
|
wrap_cipher = EVP_aes_256_wrap();
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_CAMELLIA
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
else if (!strcmp(*args,"-camellia128"))
|
else if (!strcmp(*args,"-camellia128"))
|
||||||
@@ -233,8 +254,12 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (!strcmp(*args,"-camellia256"))
|
else if (!strcmp(*args,"-camellia256"))
|
||||||
cipher = EVP_camellia_256_cbc();
|
cipher = EVP_camellia_256_cbc();
|
||||||
#endif
|
#endif
|
||||||
|
else if (!strcmp (*args, "-debug_decrypt"))
|
||||||
|
flags |= CMS_DEBUG_DECRYPT;
|
||||||
else if (!strcmp (*args, "-text"))
|
else if (!strcmp (*args, "-text"))
|
||||||
flags |= CMS_TEXT;
|
flags |= CMS_TEXT;
|
||||||
|
else if (!strcmp (*args, "-asciicrlf"))
|
||||||
|
flags |= CMS_ASCIICRLF;
|
||||||
else if (!strcmp (*args, "-nointern"))
|
else if (!strcmp (*args, "-nointern"))
|
||||||
flags |= CMS_NOINTERN;
|
flags |= CMS_NOINTERN;
|
||||||
else if (!strcmp (*args, "-noverify")
|
else if (!strcmp (*args, "-noverify")
|
||||||
@@ -410,7 +435,20 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
if (!args[1])
|
if (!args[1])
|
||||||
goto argerr;
|
goto argerr;
|
||||||
recipfile = *++args;
|
if (operation == SMIME_ENCRYPT)
|
||||||
|
{
|
||||||
|
if (!encerts)
|
||||||
|
encerts = sk_X509_new_null();
|
||||||
|
cert = load_cert(bio_err,*++args,FORMAT_PEM,
|
||||||
|
NULL, e,
|
||||||
|
"recipient certificate file");
|
||||||
|
if (!cert)
|
||||||
|
goto end;
|
||||||
|
sk_X509_push(encerts, cert);
|
||||||
|
cert = NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
recipfile = *++args;
|
||||||
}
|
}
|
||||||
else if (!strcmp (*args, "-certsout"))
|
else if (!strcmp (*args, "-certsout"))
|
||||||
{
|
{
|
||||||
@@ -458,6 +496,43 @@ int MAIN(int argc, char **argv)
|
|||||||
goto argerr;
|
goto argerr;
|
||||||
keyform = str2fmt(*++args);
|
keyform = str2fmt(*++args);
|
||||||
}
|
}
|
||||||
|
else if (!strcmp (*args, "-keyopt"))
|
||||||
|
{
|
||||||
|
int keyidx = -1;
|
||||||
|
if (!args[1])
|
||||||
|
goto argerr;
|
||||||
|
if (operation == SMIME_ENCRYPT)
|
||||||
|
{
|
||||||
|
if (encerts)
|
||||||
|
keyidx += sk_X509_num(encerts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (keyfile || signerfile)
|
||||||
|
keyidx++;
|
||||||
|
if (skkeys)
|
||||||
|
keyidx += sk_OPENSSL_STRING_num(skkeys);
|
||||||
|
}
|
||||||
|
if (keyidx < 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "No key specified\n");
|
||||||
|
goto argerr;
|
||||||
|
}
|
||||||
|
if (key_param == NULL || key_param->idx != keyidx)
|
||||||
|
{
|
||||||
|
cms_key_param *nparam;
|
||||||
|
nparam = OPENSSL_malloc(sizeof(cms_key_param));
|
||||||
|
nparam->idx = keyidx;
|
||||||
|
nparam->param = sk_OPENSSL_STRING_new_null();
|
||||||
|
nparam->next = NULL;
|
||||||
|
if (key_first == NULL)
|
||||||
|
key_first = nparam;
|
||||||
|
else
|
||||||
|
key_param->next = nparam;
|
||||||
|
key_param = nparam;
|
||||||
|
}
|
||||||
|
sk_OPENSSL_STRING_push(key_param->param, *++args);
|
||||||
|
}
|
||||||
else if (!strcmp (*args, "-rctform"))
|
else if (!strcmp (*args, "-rctform"))
|
||||||
{
|
{
|
||||||
if (!args[1])
|
if (!args[1])
|
||||||
@@ -575,7 +650,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (operation == SMIME_ENCRYPT)
|
else if (operation == SMIME_ENCRYPT)
|
||||||
{
|
{
|
||||||
if (!*args && !secret_key && !pwri_pass)
|
if (!*args && !secret_key && !pwri_pass && !encerts)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
|
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
|
||||||
badarg = 1;
|
badarg = 1;
|
||||||
@@ -626,11 +701,12 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "-certsout file certificate output file\n");
|
BIO_printf (bio_err, "-certsout file certificate output file\n");
|
||||||
BIO_printf (bio_err, "-signer file signer certificate file\n");
|
BIO_printf (bio_err, "-signer file signer certificate file\n");
|
||||||
BIO_printf (bio_err, "-recip file recipient certificate file for decryption\n");
|
BIO_printf (bio_err, "-recip file recipient certificate file for decryption\n");
|
||||||
BIO_printf (bio_err, "-keyid use subject key identifier\n");
|
BIO_printf (bio_err, "-keyid use subject key identifier\n");
|
||||||
BIO_printf (bio_err, "-in file input file\n");
|
BIO_printf (bio_err, "-in file input file\n");
|
||||||
BIO_printf (bio_err, "-inform arg input format SMIME (default), PEM or DER\n");
|
BIO_printf (bio_err, "-inform arg input format SMIME (default), PEM or DER\n");
|
||||||
BIO_printf (bio_err, "-inkey file input private key (if not signer or recipient)\n");
|
BIO_printf (bio_err, "-inkey file input private key (if not signer or recipient)\n");
|
||||||
BIO_printf (bio_err, "-keyform arg input private key format (PEM or ENGINE)\n");
|
BIO_printf (bio_err, "-keyform arg input private key format (PEM or ENGINE)\n");
|
||||||
|
BIO_printf (bio_err, "-keyopt nm:v set public key parameters\n");
|
||||||
BIO_printf (bio_err, "-out file output file\n");
|
BIO_printf (bio_err, "-out file output file\n");
|
||||||
BIO_printf (bio_err, "-outform arg output format SMIME (default), PEM or DER\n");
|
BIO_printf (bio_err, "-outform arg output format SMIME (default), PEM or DER\n");
|
||||||
BIO_printf (bio_err, "-content file supply or override content for detached signature\n");
|
BIO_printf (bio_err, "-content file supply or override content for detached signature\n");
|
||||||
@@ -640,6 +716,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "-text include or delete text MIME headers\n");
|
BIO_printf (bio_err, "-text include or delete text MIME headers\n");
|
||||||
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
||||||
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
||||||
|
BIO_printf (bio_err, "-trusted_first use locally trusted certificates first when building trust chain\n");
|
||||||
BIO_printf (bio_err, "-crl_check check revocation status of signer's certificate using CRLs\n");
|
BIO_printf (bio_err, "-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||||
BIO_printf (bio_err, "-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
BIO_printf (bio_err, "-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
@@ -716,7 +793,7 @@ int MAIN(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*args)
|
if (*args && !encerts)
|
||||||
encerts = sk_X509_new_null();
|
encerts = sk_X509_new_null();
|
||||||
while (*args)
|
while (*args)
|
||||||
{
|
{
|
||||||
@@ -910,10 +987,45 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (operation == SMIME_ENCRYPT)
|
else if (operation == SMIME_ENCRYPT)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
flags |= CMS_PARTIAL;
|
flags |= CMS_PARTIAL;
|
||||||
cms = CMS_encrypt(encerts, in, cipher, flags);
|
cms = CMS_encrypt(NULL, in, cipher, flags);
|
||||||
if (!cms)
|
if (!cms)
|
||||||
goto end;
|
goto end;
|
||||||
|
for (i = 0; i < sk_X509_num(encerts); i++)
|
||||||
|
{
|
||||||
|
CMS_RecipientInfo *ri;
|
||||||
|
cms_key_param *kparam;
|
||||||
|
int tflags = flags;
|
||||||
|
X509 *x = sk_X509_value(encerts, i);
|
||||||
|
for(kparam = key_first; kparam; kparam = kparam->next)
|
||||||
|
{
|
||||||
|
if(kparam->idx == i)
|
||||||
|
{
|
||||||
|
tflags |= CMS_KEY_PARAM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ri = CMS_add1_recipient_cert(cms, x, tflags);
|
||||||
|
if (!ri)
|
||||||
|
goto end;
|
||||||
|
if (kparam)
|
||||||
|
{
|
||||||
|
EVP_PKEY_CTX *pctx;
|
||||||
|
pctx = CMS_RecipientInfo_get0_pkey_ctx(ri);
|
||||||
|
if (!cms_set_pkey_param(pctx, kparam->param))
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
if (CMS_RecipientInfo_type(ri) == CMS_RECIPINFO_AGREE
|
||||||
|
&& wrap_cipher)
|
||||||
|
{
|
||||||
|
EVP_CIPHER_CTX *wctx;
|
||||||
|
wctx = CMS_RecipientInfo_kari_get0_ctx(ri);
|
||||||
|
EVP_EncryptInit_ex(wctx, wrap_cipher,
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (secret_key)
|
if (secret_key)
|
||||||
{
|
{
|
||||||
if (!CMS_add0_recipient_key(cms, NID_undef,
|
if (!CMS_add0_recipient_key(cms, NID_undef,
|
||||||
@@ -1002,8 +1114,11 @@ int MAIN(int argc, char **argv)
|
|||||||
for (i = 0; i < sk_OPENSSL_STRING_num(sksigners); i++)
|
for (i = 0; i < sk_OPENSSL_STRING_num(sksigners); i++)
|
||||||
{
|
{
|
||||||
CMS_SignerInfo *si;
|
CMS_SignerInfo *si;
|
||||||
|
cms_key_param *kparam;
|
||||||
|
int tflags = flags;
|
||||||
signerfile = sk_OPENSSL_STRING_value(sksigners, i);
|
signerfile = sk_OPENSSL_STRING_value(sksigners, i);
|
||||||
keyfile = sk_OPENSSL_STRING_value(skkeys, i);
|
keyfile = sk_OPENSSL_STRING_value(skkeys, i);
|
||||||
|
|
||||||
signer = load_cert(bio_err, signerfile,FORMAT_PEM, NULL,
|
signer = load_cert(bio_err, signerfile,FORMAT_PEM, NULL,
|
||||||
e, "signer certificate");
|
e, "signer certificate");
|
||||||
if (!signer)
|
if (!signer)
|
||||||
@@ -1012,9 +1127,24 @@ int MAIN(int argc, char **argv)
|
|||||||
"signing key file");
|
"signing key file");
|
||||||
if (!key)
|
if (!key)
|
||||||
goto end;
|
goto end;
|
||||||
si = CMS_add1_signer(cms, signer, key, sign_md, flags);
|
for(kparam = key_first; kparam; kparam = kparam->next)
|
||||||
|
{
|
||||||
|
if(kparam->idx == i)
|
||||||
|
{
|
||||||
|
tflags |= CMS_KEY_PARAM;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
si = CMS_add1_signer(cms, signer, key, sign_md, tflags);
|
||||||
if (!si)
|
if (!si)
|
||||||
goto end;
|
goto end;
|
||||||
|
if (kparam)
|
||||||
|
{
|
||||||
|
EVP_PKEY_CTX *pctx;
|
||||||
|
pctx = CMS_SignerInfo_get0_pkey_ctx(si);
|
||||||
|
if (!cms_set_pkey_param(pctx, kparam->param))
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
if (rr && !CMS_add1_ReceiptRequest(si, rr))
|
if (rr && !CMS_add1_ReceiptRequest(si, rr))
|
||||||
goto end;
|
goto end;
|
||||||
X509_free(signer);
|
X509_free(signer);
|
||||||
@@ -1039,6 +1169,8 @@ int MAIN(int argc, char **argv)
|
|||||||
ret = 4;
|
ret = 4;
|
||||||
if (operation == SMIME_DECRYPT)
|
if (operation == SMIME_DECRYPT)
|
||||||
{
|
{
|
||||||
|
if (flags & CMS_DEBUG_DECRYPT)
|
||||||
|
CMS_decrypt(cms, NULL, NULL, NULL, NULL, flags);
|
||||||
|
|
||||||
if (secret_key)
|
if (secret_key)
|
||||||
{
|
{
|
||||||
@@ -1206,6 +1338,14 @@ end:
|
|||||||
sk_OPENSSL_STRING_free(rr_to);
|
sk_OPENSSL_STRING_free(rr_to);
|
||||||
if (rr_from)
|
if (rr_from)
|
||||||
sk_OPENSSL_STRING_free(rr_from);
|
sk_OPENSSL_STRING_free(rr_from);
|
||||||
|
for(key_param = key_first; key_param;)
|
||||||
|
{
|
||||||
|
cms_key_param *tparam;
|
||||||
|
sk_OPENSSL_STRING_free(key_param->param);
|
||||||
|
tparam = key_param->next;
|
||||||
|
OPENSSL_free(key_param);
|
||||||
|
key_param = tparam;
|
||||||
|
}
|
||||||
X509_STORE_free(store);
|
X509_STORE_free(store);
|
||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
X509_free(recip);
|
X509_free(recip);
|
||||||
@@ -1390,4 +1530,25 @@ static CMS_ReceiptRequest *make_receipt_request(STACK_OF(OPENSSL_STRING) *rr_to,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cms_set_pkey_param(EVP_PKEY_CTX *pctx,
|
||||||
|
STACK_OF(OPENSSL_STRING) *param)
|
||||||
|
{
|
||||||
|
char *keyopt;
|
||||||
|
int i;
|
||||||
|
if (sk_OPENSSL_STRING_num(param) <= 0)
|
||||||
|
return 1;
|
||||||
|
for (i = 0; i < sk_OPENSSL_STRING_num(param); i++)
|
||||||
|
{
|
||||||
|
keyopt = sk_OPENSSL_STRING_value(param, i);
|
||||||
|
if (pkey_ctrl_string(pctx, keyopt) <= 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "parameter error \"%s\"\n",
|
||||||
|
keyopt);
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
124
apps/crl.c
124
apps/crl.c
@@ -81,6 +81,9 @@ static const char *crl_usage[]={
|
|||||||
" -in arg - input file - default stdin\n",
|
" -in arg - input file - default stdin\n",
|
||||||
" -out arg - output file - default stdout\n",
|
" -out arg - output file - default stdout\n",
|
||||||
" -hash - print hash value\n",
|
" -hash - print hash value\n",
|
||||||
|
#ifndef OPENSSL_NO_MD5
|
||||||
|
" -hash_old - print old-style (MD5) hash value\n",
|
||||||
|
#endif
|
||||||
" -fingerprint - print the crl fingerprint\n",
|
" -fingerprint - print the crl fingerprint\n",
|
||||||
" -issuer - print issuer DN\n",
|
" -issuer - print issuer DN\n",
|
||||||
" -lastupdate - lastUpdate field\n",
|
" -lastupdate - lastUpdate field\n",
|
||||||
@@ -93,7 +96,6 @@ static const char *crl_usage[]={
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static X509_CRL *load_crl(char *file, int format);
|
|
||||||
static BIO *bio_out=NULL;
|
static BIO *bio_out=NULL;
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
@@ -103,11 +105,14 @@ int MAIN(int argc, char **argv)
|
|||||||
unsigned long nmflag = 0;
|
unsigned long nmflag = 0;
|
||||||
X509_CRL *x=NULL;
|
X509_CRL *x=NULL;
|
||||||
char *CAfile = NULL, *CApath = NULL;
|
char *CAfile = NULL, *CApath = NULL;
|
||||||
int ret=1,i,num,badops=0;
|
int ret=1,i,num,badops=0,badsig=0;
|
||||||
BIO *out=NULL;
|
BIO *out=NULL;
|
||||||
int informat,outformat;
|
int informat,outformat, keyformat;
|
||||||
char *infile=NULL,*outfile=NULL;
|
char *infile=NULL,*outfile=NULL, *crldiff = NULL, *keyfile = NULL;
|
||||||
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
|
int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0;
|
||||||
|
#ifndef OPENSSL_NO_MD5
|
||||||
|
int hash_old=0;
|
||||||
|
#endif
|
||||||
int fingerprint = 0, crlnumber = 0;
|
int fingerprint = 0, crlnumber = 0;
|
||||||
const char **pp;
|
const char **pp;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
@@ -141,6 +146,7 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
informat=FORMAT_PEM;
|
informat=FORMAT_PEM;
|
||||||
outformat=FORMAT_PEM;
|
outformat=FORMAT_PEM;
|
||||||
|
keyformat=FORMAT_PEM;
|
||||||
|
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
@@ -169,6 +175,21 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
infile= *(++argv);
|
infile= *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-gendelta") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
crldiff= *(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-key") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
keyfile= *(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-keyform") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
keyformat=str2fmt(*(++argv));
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-out") == 0)
|
else if (strcmp(*argv,"-out") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -192,6 +213,10 @@ int MAIN(int argc, char **argv)
|
|||||||
text = 1;
|
text = 1;
|
||||||
else if (strcmp(*argv,"-hash") == 0)
|
else if (strcmp(*argv,"-hash") == 0)
|
||||||
hash= ++num;
|
hash= ++num;
|
||||||
|
#ifndef OPENSSL_NO_MD5
|
||||||
|
else if (strcmp(*argv,"-hash_old") == 0)
|
||||||
|
hash_old= ++num;
|
||||||
|
#endif
|
||||||
else if (strcmp(*argv,"-nameopt") == 0)
|
else if (strcmp(*argv,"-nameopt") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -209,6 +234,8 @@ int MAIN(int argc, char **argv)
|
|||||||
fingerprint= ++num;
|
fingerprint= ++num;
|
||||||
else if (strcmp(*argv,"-crlnumber") == 0)
|
else if (strcmp(*argv,"-crlnumber") == 0)
|
||||||
crlnumber= ++num;
|
crlnumber= ++num;
|
||||||
|
else if (strcmp(*argv,"-badsig") == 0)
|
||||||
|
badsig = 1;
|
||||||
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
||||||
{
|
{
|
||||||
/* ok */
|
/* ok */
|
||||||
@@ -276,6 +303,39 @@ bad:
|
|||||||
else BIO_printf(bio_err, "verify OK\n");
|
else BIO_printf(bio_err, "verify OK\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (crldiff)
|
||||||
|
{
|
||||||
|
X509_CRL *newcrl, *delta;
|
||||||
|
if (!keyfile)
|
||||||
|
{
|
||||||
|
BIO_puts(bio_err, "Missing CRL signing key\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
newcrl = load_crl(crldiff,informat);
|
||||||
|
if (!newcrl)
|
||||||
|
goto end;
|
||||||
|
pkey = load_key(bio_err, keyfile, keyformat, 0, NULL, NULL,
|
||||||
|
"CRL signing key");
|
||||||
|
if (!pkey)
|
||||||
|
{
|
||||||
|
X509_CRL_free(newcrl);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
delta = X509_CRL_diff(x, newcrl, pkey, digest, 0);
|
||||||
|
X509_CRL_free(newcrl);
|
||||||
|
EVP_PKEY_free(pkey);
|
||||||
|
if (delta)
|
||||||
|
{
|
||||||
|
X509_CRL_free(x);
|
||||||
|
x = delta;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BIO_puts(bio_err, "Error creating delta CRL\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (num)
|
if (num)
|
||||||
{
|
{
|
||||||
for (i=1; i<=num; i++)
|
for (i=1; i<=num; i++)
|
||||||
@@ -304,6 +364,14 @@ bad:
|
|||||||
BIO_printf(bio_out,"%08lx\n",
|
BIO_printf(bio_out,"%08lx\n",
|
||||||
X509_NAME_hash(X509_CRL_get_issuer(x)));
|
X509_NAME_hash(X509_CRL_get_issuer(x)));
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_MD5
|
||||||
|
if (hash_old == i)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_out,"%08lx\n",
|
||||||
|
X509_NAME_hash_old(
|
||||||
|
X509_CRL_get_issuer(x)));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (lastupdate == i)
|
if (lastupdate == i)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_out,"lastUpdate=");
|
BIO_printf(bio_out,"lastUpdate=");
|
||||||
@@ -378,6 +446,9 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (badsig)
|
||||||
|
x->signature->data[x->signature->length - 1] ^= 0x1;
|
||||||
|
|
||||||
if (outformat == FORMAT_ASN1)
|
if (outformat == FORMAT_ASN1)
|
||||||
i=(int)i2d_X509_CRL_bio(out,x);
|
i=(int)i2d_X509_CRL_bio(out,x);
|
||||||
else if (outformat == FORMAT_PEM)
|
else if (outformat == FORMAT_PEM)
|
||||||
@@ -390,6 +461,8 @@ bad:
|
|||||||
if (!i) { BIO_printf(bio_err,"unable to write CRL\n"); goto end; }
|
if (!i) { BIO_printf(bio_err,"unable to write CRL\n"); goto end; }
|
||||||
ret=0;
|
ret=0;
|
||||||
end:
|
end:
|
||||||
|
if (ret != 0)
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
BIO_free_all(out);
|
BIO_free_all(out);
|
||||||
BIO_free_all(bio_out);
|
BIO_free_all(bio_out);
|
||||||
bio_out=NULL;
|
bio_out=NULL;
|
||||||
@@ -401,46 +474,3 @@ end:
|
|||||||
apps_shutdown();
|
apps_shutdown();
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static X509_CRL *load_crl(char *infile, int format)
|
|
||||||
{
|
|
||||||
X509_CRL *x=NULL;
|
|
||||||
BIO *in=NULL;
|
|
||||||
|
|
||||||
in=BIO_new(BIO_s_file());
|
|
||||||
if (in == NULL)
|
|
||||||
{
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (infile == NULL)
|
|
||||||
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (BIO_read_filename(in,infile) <= 0)
|
|
||||||
{
|
|
||||||
perror(infile);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (format == FORMAT_ASN1)
|
|
||||||
x=d2i_X509_CRL_bio(in,NULL);
|
|
||||||
else if (format == FORMAT_PEM)
|
|
||||||
x=PEM_read_bio_X509_CRL(in,NULL,NULL,NULL);
|
|
||||||
else {
|
|
||||||
BIO_printf(bio_err,"bad input format specified for input crl\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
if (x == NULL)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err,"unable to load CRL\n");
|
|
||||||
ERR_print_errors(bio_err);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
end:
|
|
||||||
BIO_free(in);
|
|
||||||
return(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,8 @@ static int add_certs_from_file(STACK_OF(X509) *stack, char *certfile);
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG crl2pkcs7_main
|
#define PROG crl2pkcs7_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
@@ -141,7 +142,13 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
if(!certflst) certflst = sk_OPENSSL_STRING_new_null();
|
if(!certflst) certflst = sk_OPENSSL_STRING_new_null();
|
||||||
sk_OPENSSL_STRING_push(certflst,*(++argv));
|
if (!certflst)
|
||||||
|
goto end;
|
||||||
|
if (!sk_OPENSSL_STRING_push(certflst,*(++argv)))
|
||||||
|
{
|
||||||
|
sk_OPENSSL_STRING_free(certflst);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -282,7 +289,7 @@ end:
|
|||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*-
|
||||||
*----------------------------------------------------------------------
|
*----------------------------------------------------------------------
|
||||||
* int add_certs_from_file
|
* int add_certs_from_file
|
||||||
*
|
*
|
||||||
|
|||||||
22
apps/dgst.c
22
apps/dgst.c
@@ -128,6 +128,7 @@ int MAIN(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
char *hmac_key=NULL;
|
char *hmac_key=NULL;
|
||||||
char *mac_name=NULL;
|
char *mac_name=NULL;
|
||||||
|
int non_fips_allow = 0;
|
||||||
STACK_OF(OPENSSL_STRING) *sigopts = NULL, *macopts = NULL;
|
STACK_OF(OPENSSL_STRING) *sigopts = NULL, *macopts = NULL;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
@@ -220,6 +221,8 @@ int MAIN(int argc, char **argv)
|
|||||||
debug=1;
|
debug=1;
|
||||||
else if (!strcmp(*argv,"-fips-fingerprint"))
|
else if (!strcmp(*argv,"-fips-fingerprint"))
|
||||||
hmac_key = "etaonrishdlcupfm";
|
hmac_key = "etaonrishdlcupfm";
|
||||||
|
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||||
|
non_fips_allow=1;
|
||||||
else if (!strcmp(*argv,"-hmac"))
|
else if (!strcmp(*argv,"-hmac"))
|
||||||
{
|
{
|
||||||
if (--argc < 1)
|
if (--argc < 1)
|
||||||
@@ -273,6 +276,8 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"-d to output debug info\n");
|
BIO_printf(bio_err,"-d to output debug info\n");
|
||||||
BIO_printf(bio_err,"-hex output as hex dump\n");
|
BIO_printf(bio_err,"-hex output as hex dump\n");
|
||||||
BIO_printf(bio_err,"-binary output in binary form\n");
|
BIO_printf(bio_err,"-binary output in binary form\n");
|
||||||
|
BIO_printf(bio_err,"-hmac arg set the HMAC key to arg\n");
|
||||||
|
BIO_printf(bio_err,"-non-fips-allow allow use of non FIPS digest\n");
|
||||||
BIO_printf(bio_err,"-sign file sign digest using private key in file\n");
|
BIO_printf(bio_err,"-sign file sign digest using private key in file\n");
|
||||||
BIO_printf(bio_err,"-verify file verify a signature using public key in file\n");
|
BIO_printf(bio_err,"-verify file verify a signature using public key in file\n");
|
||||||
BIO_printf(bio_err,"-prverify file verify a signature using private key in file\n");
|
BIO_printf(bio_err,"-prverify file verify a signature using private key in file\n");
|
||||||
@@ -405,6 +410,13 @@ int MAIN(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (non_fips_allow)
|
||||||
|
{
|
||||||
|
EVP_MD_CTX *md_ctx;
|
||||||
|
BIO_get_md_ctx(bmd,&md_ctx);
|
||||||
|
EVP_MD_CTX_set_flags(md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
|
||||||
|
}
|
||||||
|
|
||||||
if (hmac_key)
|
if (hmac_key)
|
||||||
{
|
{
|
||||||
sigkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, impl,
|
sigkey = EVP_PKEY_new_mac_key(EVP_PKEY_HMAC, impl,
|
||||||
@@ -519,7 +531,8 @@ int MAIN(int argc, char **argv)
|
|||||||
EVP_PKEY_asn1_get0_info(NULL, NULL,
|
EVP_PKEY_asn1_get0_info(NULL, NULL,
|
||||||
NULL, NULL, &sig_name, ameth);
|
NULL, NULL, &sig_name, ameth);
|
||||||
}
|
}
|
||||||
md_name = EVP_MD_name(md);
|
if (md)
|
||||||
|
md_name = EVP_MD_name(md);
|
||||||
}
|
}
|
||||||
err = 0;
|
err = 0;
|
||||||
for (i=0; i<argc; i++)
|
for (i=0; i<argc; i++)
|
||||||
@@ -631,7 +644,12 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (sig_name)
|
if (sig_name)
|
||||||
BIO_printf(out, "%s-%s(%s)= ", sig_name, md_name, file);
|
{
|
||||||
|
BIO_puts(out, sig_name);
|
||||||
|
if (md_name)
|
||||||
|
BIO_printf(out, "-%s", md_name);
|
||||||
|
BIO_printf(out, "(%s)= ", file);
|
||||||
|
}
|
||||||
else if (md_name)
|
else if (md_name)
|
||||||
BIO_printf(out, "%s(%s)= ", md_name, file);
|
BIO_printf(out, "%s(%s)= ", md_name, file);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -74,7 +74,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG dh_main
|
#define PROG dh_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
|
|||||||
@@ -130,9 +130,10 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG dhparam_main
|
#define PROG dhparam_main
|
||||||
|
|
||||||
#define DEFBITS 512
|
#define DEFBITS 2048
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
@@ -143,7 +144,7 @@
|
|||||||
* -C
|
* -C
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb);
|
static int dh_cb(int p, int n, BN_GENCB *cb);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
@@ -253,7 +254,7 @@ bad:
|
|||||||
BIO_printf(bio_err," -C Output C code\n");
|
BIO_printf(bio_err," -C Output C code\n");
|
||||||
BIO_printf(bio_err," -2 generate parameters using 2 as the generator value\n");
|
BIO_printf(bio_err," -2 generate parameters using 2 as the generator value\n");
|
||||||
BIO_printf(bio_err," -5 generate parameters using 5 as the generator value\n");
|
BIO_printf(bio_err," -5 generate parameters using 5 as the generator value\n");
|
||||||
BIO_printf(bio_err," numbits number of bits in to generate (default 512)\n");
|
BIO_printf(bio_err," numbits number of bits in to generate (default 2048)\n");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n");
|
BIO_printf(bio_err," -engine e use engine e, possibly a hardware device.\n");
|
||||||
#endif
|
#endif
|
||||||
@@ -292,8 +293,15 @@ bad:
|
|||||||
|
|
||||||
if(num) {
|
if(num) {
|
||||||
|
|
||||||
BN_GENCB cb;
|
BN_GENCB *cb;
|
||||||
BN_GENCB_set(&cb, dh_cb, bio_err);
|
cb = BN_GENCB_new();
|
||||||
|
if(!cb)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
BN_GENCB_set(cb, dh_cb, bio_err);
|
||||||
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL)
|
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option\n");
|
BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option\n");
|
||||||
@@ -309,9 +317,10 @@ bad:
|
|||||||
|
|
||||||
BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime\n",num);
|
BIO_printf(bio_err,"Generating DSA parameters, %d bit long prime\n",num);
|
||||||
if(!dsa || !DSA_generate_parameters_ex(dsa, num,
|
if(!dsa || !DSA_generate_parameters_ex(dsa, num,
|
||||||
NULL, 0, NULL, NULL, &cb))
|
NULL, 0, NULL, NULL, cb))
|
||||||
{
|
{
|
||||||
if(dsa) DSA_free(dsa);
|
if(dsa) DSA_free(dsa);
|
||||||
|
BN_GENCB_free(cb);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -320,6 +329,7 @@ bad:
|
|||||||
DSA_free(dsa);
|
DSA_free(dsa);
|
||||||
if (dh == NULL)
|
if (dh == NULL)
|
||||||
{
|
{
|
||||||
|
BN_GENCB_free(cb);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -330,14 +340,15 @@ bad:
|
|||||||
dh = DH_new();
|
dh = DH_new();
|
||||||
BIO_printf(bio_err,"Generating DH parameters, %d bit long safe prime, generator %d\n",num,g);
|
BIO_printf(bio_err,"Generating DH parameters, %d bit long safe prime, generator %d\n",num,g);
|
||||||
BIO_printf(bio_err,"This is going to take a long time\n");
|
BIO_printf(bio_err,"This is going to take a long time\n");
|
||||||
if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb))
|
if(!dh || !DH_generate_parameters_ex(dh, num, g, cb))
|
||||||
{
|
{
|
||||||
if(dh) DH_free(dh);
|
BN_GENCB_free(cb);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BN_GENCB_free(cb);
|
||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@@ -513,7 +524,12 @@ bad:
|
|||||||
if (outformat == FORMAT_ASN1)
|
if (outformat == FORMAT_ASN1)
|
||||||
i=i2d_DHparams_bio(out,dh);
|
i=i2d_DHparams_bio(out,dh);
|
||||||
else if (outformat == FORMAT_PEM)
|
else if (outformat == FORMAT_PEM)
|
||||||
i=PEM_write_bio_DHparams(out,dh);
|
{
|
||||||
|
if (dh->q)
|
||||||
|
i=PEM_write_bio_DHxparams(out,dh);
|
||||||
|
else
|
||||||
|
i=PEM_write_bio_DHparams(out,dh);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
BIO_printf(bio_err,"bad output format specified for outfile\n");
|
BIO_printf(bio_err,"bad output format specified for outfile\n");
|
||||||
goto end;
|
goto end;
|
||||||
@@ -535,7 +551,7 @@ end:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* dh_cb is identical to dsa_cb in apps/dsaparam.c */
|
/* dh_cb is identical to dsa_cb in apps/dsaparam.c */
|
||||||
static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
|
static int dh_cb(int p, int n, BN_GENCB *cb)
|
||||||
{
|
{
|
||||||
char c='*';
|
char c='*';
|
||||||
|
|
||||||
@@ -543,11 +559,8 @@ static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
|
|||||||
if (p == 1) c='+';
|
if (p == 1) c='+';
|
||||||
if (p == 2) c='*';
|
if (p == 2) c='*';
|
||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(cb->arg,&c,1);
|
BIO_write(BN_GENCB_get_arg(cb),&c,1);
|
||||||
(void)BIO_flush(cb->arg);
|
(void)BIO_flush(BN_GENCB_get_arg(cb));
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG dsa_main
|
#define PROG dsa_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
|
|||||||
@@ -57,11 +57,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
|
||||||
* deprecated functions for openssl-internal code */
|
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
|
||||||
#undef OPENSSL_NO_DEPRECATED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@@ -80,7 +75,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG dsaparam_main
|
#define PROG dsaparam_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
@@ -105,7 +101,7 @@ static void timebomb_sigalarm(int foo)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int MS_CALLBACK dsa_cb(int p, int n, BN_GENCB *cb);
|
static int dsa_cb(int p, int n, BN_GENCB *cb);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
@@ -119,6 +115,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int numbits= -1,num,genkey=0;
|
int numbits= -1,num,genkey=0;
|
||||||
int need_rand=0;
|
int need_rand=0;
|
||||||
int non_fips_allow = 0;
|
int non_fips_allow = 0;
|
||||||
|
BN_GENCB *cb = NULL;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -291,8 +288,13 @@ bad:
|
|||||||
|
|
||||||
if (numbits > 0)
|
if (numbits > 0)
|
||||||
{
|
{
|
||||||
BN_GENCB cb;
|
cb = BN_GENCB_new();
|
||||||
BN_GENCB_set(&cb, dsa_cb, bio_err);
|
if(!cb)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"Error allocating BN_GENCB object\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
BN_GENCB_set(cb, dsa_cb, bio_err);
|
||||||
assert(need_rand);
|
assert(need_rand);
|
||||||
dsa = DSA_new();
|
dsa = DSA_new();
|
||||||
if(!dsa)
|
if(!dsa)
|
||||||
@@ -320,7 +322,7 @@ bad:
|
|||||||
alarm(timebomb);
|
alarm(timebomb);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if(!DSA_generate_parameters_ex(dsa,num,NULL,0,NULL,NULL, &cb))
|
if(!DSA_generate_parameters_ex(dsa,num,NULL,0,NULL,NULL, cb))
|
||||||
{
|
{
|
||||||
#ifdef GENCB_TEST
|
#ifdef GENCB_TEST
|
||||||
if(stop_keygen_flag)
|
if(stop_keygen_flag)
|
||||||
@@ -458,6 +460,7 @@ bad:
|
|||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
ret=0;
|
ret=0;
|
||||||
end:
|
end:
|
||||||
|
if (cb != NULL) BN_GENCB_free(cb);
|
||||||
if (in != NULL) BIO_free(in);
|
if (in != NULL) BIO_free(in);
|
||||||
if (out != NULL) BIO_free_all(out);
|
if (out != NULL) BIO_free_all(out);
|
||||||
if (dsa != NULL) DSA_free(dsa);
|
if (dsa != NULL) DSA_free(dsa);
|
||||||
@@ -465,7 +468,7 @@ end:
|
|||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK dsa_cb(int p, int n, BN_GENCB *cb)
|
static int dsa_cb(int p, int n, BN_GENCB *cb)
|
||||||
{
|
{
|
||||||
char c='*';
|
char c='*';
|
||||||
|
|
||||||
@@ -473,11 +476,8 @@ static int MS_CALLBACK dsa_cb(int p, int n, BN_GENCB *cb)
|
|||||||
if (p == 1) c='+';
|
if (p == 1) c='+';
|
||||||
if (p == 2) c='*';
|
if (p == 2) c='*';
|
||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(cb->arg,&c,1);
|
BIO_write(BN_GENCB_get_arg(cb),&c,1);
|
||||||
(void)BIO_flush(cb->arg);
|
(void)BIO_flush(BN_GENCB_get_arg(cb));
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
#ifdef GENCB_TEST
|
#ifdef GENCB_TEST
|
||||||
if(stop_keygen_flag)
|
if(stop_keygen_flag)
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -70,7 +70,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG ec_main
|
#define PROG ec_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
|
|||||||
@@ -87,7 +87,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG ecparam_main
|
#define PROG ecparam_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
@@ -105,7 +106,7 @@
|
|||||||
* in the asn1 der encoding
|
* in the asn1 der encoding
|
||||||
* possible values: named_curve (default)
|
* possible values: named_curve (default)
|
||||||
* explicit
|
* explicit
|
||||||
* -no_seed - if 'explicit' parameters are choosen do not use the seed
|
* -no_seed - if 'explicit' parameters are chosen do not use the seed
|
||||||
* -genkey - generate ec key
|
* -genkey - generate ec key
|
||||||
* -rand file - files to use for random number input
|
* -rand file - files to use for random number input
|
||||||
* -engine e - use engine e, possibly a hardware device
|
* -engine e - use engine e, possibly a hardware device
|
||||||
@@ -286,7 +287,7 @@ bad:
|
|||||||
BIO_printf(bio_err, " "
|
BIO_printf(bio_err, " "
|
||||||
" explicit\n");
|
" explicit\n");
|
||||||
BIO_printf(bio_err, " -no_seed if 'explicit'"
|
BIO_printf(bio_err, " -no_seed if 'explicit'"
|
||||||
" parameters are choosen do not"
|
" parameters are chosen do not"
|
||||||
" use the seed\n");
|
" use the seed\n");
|
||||||
BIO_printf(bio_err, " -genkey generate ec"
|
BIO_printf(bio_err, " -genkey generate ec"
|
||||||
" key\n");
|
" key\n");
|
||||||
@@ -403,6 +404,9 @@ bad:
|
|||||||
else
|
else
|
||||||
nid = OBJ_sn2nid(curve_name);
|
nid = OBJ_sn2nid(curve_name);
|
||||||
|
|
||||||
|
if (nid == 0)
|
||||||
|
nid = EC_curve_nist2nid(curve_name);
|
||||||
|
|
||||||
if (nid == 0)
|
if (nid == 0)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "unknown curve name (%s)\n",
|
BIO_printf(bio_err, "unknown curve name (%s)\n",
|
||||||
|
|||||||
32
apps/enc.c
32
apps/enc.c
@@ -67,7 +67,9 @@
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
#ifndef OPENSSL_NO_COMP
|
||||||
#include <openssl/comp.h>
|
#include <openssl/comp.h>
|
||||||
|
#endif
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
int set_hex(char *in,unsigned char *out,int size);
|
int set_hex(char *in,unsigned char *out,int size);
|
||||||
@@ -129,6 +131,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char *engine = NULL;
|
char *engine = NULL;
|
||||||
#endif
|
#endif
|
||||||
const EVP_MD *dgst=NULL;
|
const EVP_MD *dgst=NULL;
|
||||||
|
int non_fips_allow = 0;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
|
||||||
@@ -281,6 +284,8 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
md= *(++argv);
|
md= *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||||
|
non_fips_allow = 1;
|
||||||
else if ((argv[0][0] == '-') &&
|
else if ((argv[0][0] == '-') &&
|
||||||
((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL))
|
((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL))
|
||||||
{
|
{
|
||||||
@@ -328,6 +333,18 @@ bad:
|
|||||||
setup_engine(bio_err, engine, 0);
|
setup_engine(bio_err, engine, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (cipher && EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "AEAD ciphers not supported by the enc utility\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cipher && (EVP_CIPHER_mode(cipher) == EVP_CIPH_XTS_MODE))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Ciphers in XTS mode are not supported by the enc utility\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
if (md && (dgst=EVP_get_digestbyname(md)) == NULL)
|
if (md && (dgst=EVP_get_digestbyname(md)) == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
|
BIO_printf(bio_err,"%s is an unsupported message digest type\n",md);
|
||||||
@@ -549,9 +566,13 @@ bad:
|
|||||||
sptr = salt;
|
sptr = salt;
|
||||||
}
|
}
|
||||||
|
|
||||||
EVP_BytesToKey(cipher,dgst,sptr,
|
if (!EVP_BytesToKey(cipher,dgst,sptr,
|
||||||
(unsigned char *)str,
|
(unsigned char *)str,
|
||||||
strlen(str),1,key,iv);
|
strlen(str),1,key,iv))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "EVP_BytesToKey failed\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
/* zero the complete buffer or the string
|
/* zero the complete buffer or the string
|
||||||
* passed from the command line
|
* passed from the command line
|
||||||
* bug picked up by
|
* bug picked up by
|
||||||
@@ -589,6 +610,11 @@ bad:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
BIO_get_cipher_ctx(benc, &ctx);
|
BIO_get_cipher_ctx(benc, &ctx);
|
||||||
|
|
||||||
|
if (non_fips_allow)
|
||||||
|
EVP_CIPHER_CTX_set_flags(ctx,
|
||||||
|
EVP_CIPH_FLAG_NON_FIPS_ALLOW);
|
||||||
|
|
||||||
if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc))
|
if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Error setting cipher %s\n",
|
BIO_printf(bio_err, "Error setting cipher %s\n",
|
||||||
|
|||||||
@@ -60,9 +60,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
|||||||
32
apps/gendh.c
32
apps/gendh.c
@@ -58,11 +58,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/opensslconf.h>
|
#include <openssl/opensslconf.h>
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
|
||||||
* deprecated functions for openssl-internal code */
|
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
|
||||||
#undef OPENSSL_NO_DEPRECATED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -78,17 +73,17 @@
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
|
||||||
#define DEFBITS 512
|
#define DEFBITS 2048
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG gendh_main
|
#define PROG gendh_main
|
||||||
|
|
||||||
static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb);
|
static int dh_cb(int p, int n, BN_GENCB *cb);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
BN_GENCB cb;
|
BN_GENCB *cb=NULL;
|
||||||
DH *dh=NULL;
|
DH *dh=NULL;
|
||||||
int ret=1,num=DEFBITS;
|
int ret=1,num=DEFBITS;
|
||||||
int g=2;
|
int g=2;
|
||||||
@@ -101,11 +96,16 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
|
||||||
BN_GENCB_set(&cb, dh_cb, bio_err);
|
|
||||||
if (bio_err == NULL)
|
if (bio_err == NULL)
|
||||||
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
||||||
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
|
BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
|
||||||
|
|
||||||
|
cb = BN_GENCB_new();
|
||||||
|
if(!cb)
|
||||||
|
goto end;
|
||||||
|
|
||||||
|
BN_GENCB_set(cb, dh_cb, bio_err);
|
||||||
|
|
||||||
if (!load_config(bio_err, NULL))
|
if (!load_config(bio_err, NULL))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-2") == 0)
|
else if (strcmp(*argv,"-2") == 0)
|
||||||
g=2;
|
g=2;
|
||||||
/* else if (strcmp(*argv,"-3") == 0)
|
/*- else if (strcmp(*argv,"-3") == 0)
|
||||||
g=3; */
|
g=3; */
|
||||||
else if (strcmp(*argv,"-5") == 0)
|
else if (strcmp(*argv,"-5") == 0)
|
||||||
g=5;
|
g=5;
|
||||||
@@ -200,7 +200,7 @@ bad:
|
|||||||
BIO_printf(bio_err,"Generating DH parameters, %d bit long safe prime, generator %d\n",num,g);
|
BIO_printf(bio_err,"Generating DH parameters, %d bit long safe prime, generator %d\n",num,g);
|
||||||
BIO_printf(bio_err,"This is going to take a long time\n");
|
BIO_printf(bio_err,"This is going to take a long time\n");
|
||||||
|
|
||||||
if(((dh = DH_new()) == NULL) || !DH_generate_parameters_ex(dh, num, g, &cb))
|
if(((dh = DH_new()) == NULL) || !DH_generate_parameters_ex(dh, num, g, cb))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
@@ -213,11 +213,12 @@ end:
|
|||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
if (out != NULL) BIO_free_all(out);
|
if (out != NULL) BIO_free_all(out);
|
||||||
if (dh != NULL) DH_free(dh);
|
if (dh != NULL) DH_free(dh);
|
||||||
|
if (cb != NULL) BN_GENCB_free(cb);
|
||||||
apps_shutdown();
|
apps_shutdown();
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
|
static int dh_cb(int p, int n, BN_GENCB *cb)
|
||||||
{
|
{
|
||||||
char c='*';
|
char c='*';
|
||||||
|
|
||||||
@@ -225,11 +226,8 @@ static int MS_CALLBACK dh_cb(int p, int n, BN_GENCB *cb)
|
|||||||
if (p == 1) c='+';
|
if (p == 1) c='+';
|
||||||
if (p == 2) c='*';
|
if (p == 2) c='*';
|
||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(cb->arg,&c,1);
|
BIO_write(BN_GENCB_get_arg(cb),&c,1);
|
||||||
(void)BIO_flush(cb->arg);
|
(void)BIO_flush(BN_GENCB_get_arg(cb));
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#else /* !OPENSSL_NO_DH */
|
#else /* !OPENSSL_NO_DH */
|
||||||
|
|||||||
@@ -433,8 +433,5 @@ static int genpkey_cb(EVP_PKEY_CTX *ctx)
|
|||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(b,&c,1);
|
BIO_write(b,&c,1);
|
||||||
(void)BIO_flush(b);
|
(void)BIO_flush(b);
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,11 +57,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/opensslconf.h>
|
#include <openssl/opensslconf.h>
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
|
||||||
* deprecated functions for openssl-internal code */
|
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
|
||||||
#undef OPENSSL_NO_DEPRECATED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -78,28 +73,28 @@
|
|||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
|
||||||
#define DEFBITS 512
|
#define DEFBITS 2048
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG genrsa_main
|
#define PROG genrsa_main
|
||||||
|
|
||||||
static int MS_CALLBACK genrsa_cb(int p, int n, BN_GENCB *cb);
|
static int genrsa_cb(int p, int n, BN_GENCB *cb);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
BN_GENCB cb;
|
BN_GENCB *cb = NULL;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
#endif
|
#endif
|
||||||
int ret=1;
|
int ret=1;
|
||||||
int non_fips_allow = 0;
|
int non_fips_allow = 0;
|
||||||
int i,num=DEFBITS;
|
int num=DEFBITS;
|
||||||
long l;
|
|
||||||
const EVP_CIPHER *enc=NULL;
|
const EVP_CIPHER *enc=NULL;
|
||||||
unsigned long f4=RSA_F4;
|
unsigned long f4=RSA_F4;
|
||||||
char *outfile=NULL;
|
char *outfile=NULL;
|
||||||
char *passargout = NULL, *passout = NULL;
|
char *passargout = NULL, *passout = NULL;
|
||||||
|
char *hexe, *dece;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -107,11 +102,14 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO *out=NULL;
|
BIO *out=NULL;
|
||||||
BIGNUM *bn = BN_new();
|
BIGNUM *bn = BN_new();
|
||||||
RSA *rsa = NULL;
|
RSA *rsa = NULL;
|
||||||
|
|
||||||
if(!bn) goto err;
|
if(!bn) goto err;
|
||||||
|
|
||||||
|
cb = BN_GENCB_new();
|
||||||
|
if(!cb) goto err;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
BN_GENCB_set(&cb, genrsa_cb, bio_err);
|
|
||||||
|
BN_GENCB_set(cb, genrsa_cb, bio_err);
|
||||||
|
|
||||||
if (bio_err == NULL)
|
if (bio_err == NULL)
|
||||||
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
if ((bio_err=BIO_new(BIO_s_file())) != NULL)
|
||||||
@@ -279,23 +277,19 @@ bad:
|
|||||||
if (non_fips_allow)
|
if (non_fips_allow)
|
||||||
rsa->flags |= RSA_FLAG_NON_FIPS_ALLOW;
|
rsa->flags |= RSA_FLAG_NON_FIPS_ALLOW;
|
||||||
|
|
||||||
if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
|
if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, cb))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
|
|
||||||
/* We need to do the following for when the base number size is <
|
hexe = BN_bn2hex(rsa->e);
|
||||||
* long, esp windows 3.1 :-(. */
|
dece = BN_bn2dec(rsa->e);
|
||||||
l=0L;
|
if(hexe && dece)
|
||||||
for (i=0; i<rsa->e->top; i++)
|
|
||||||
{
|
{
|
||||||
#ifndef SIXTY_FOUR_BIT
|
BIO_printf(bio_err,"e is %s (0x%s)\n",dece, hexe);
|
||||||
l<<=BN_BITS4;
|
|
||||||
l<<=BN_BITS4;
|
|
||||||
#endif
|
|
||||||
l+=rsa->e->d[i];
|
|
||||||
}
|
}
|
||||||
BIO_printf(bio_err,"e is %ld (0x%lX)\n",l,l);
|
if(hexe) OPENSSL_free(hexe);
|
||||||
|
if(dece) OPENSSL_free(dece);
|
||||||
{
|
{
|
||||||
PW_CB_DATA cb_data;
|
PW_CB_DATA cb_data;
|
||||||
cb_data.password = passout;
|
cb_data.password = passout;
|
||||||
@@ -308,6 +302,7 @@ bad:
|
|||||||
ret=0;
|
ret=0;
|
||||||
err:
|
err:
|
||||||
if (bn) BN_free(bn);
|
if (bn) BN_free(bn);
|
||||||
|
if (cb) BN_GENCB_free(cb);
|
||||||
if (rsa) RSA_free(rsa);
|
if (rsa) RSA_free(rsa);
|
||||||
if (out) BIO_free_all(out);
|
if (out) BIO_free_all(out);
|
||||||
if(passout) OPENSSL_free(passout);
|
if(passout) OPENSSL_free(passout);
|
||||||
@@ -317,7 +312,7 @@ err:
|
|||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK genrsa_cb(int p, int n, BN_GENCB *cb)
|
static int genrsa_cb(int p, int n, BN_GENCB *cb)
|
||||||
{
|
{
|
||||||
char c='*';
|
char c='*';
|
||||||
|
|
||||||
@@ -325,11 +320,8 @@ static int MS_CALLBACK genrsa_cb(int p, int n, BN_GENCB *cb)
|
|||||||
if (p == 1) c='+';
|
if (p == 1) c='+';
|
||||||
if (p == 2) c='*';
|
if (p == 2) c='*';
|
||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(cb->arg,&c,1);
|
BIO_write(BN_GENCB_get_arg(cb),&c,1);
|
||||||
(void)BIO_flush(cb->arg);
|
(void)BIO_flush(BN_GENCB_get_arg(cb));
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#else /* !OPENSSL_NO_RSA */
|
#else /* !OPENSSL_NO_RSA */
|
||||||
|
|||||||
230
apps/ocsp.c
230
apps/ocsp.c
@@ -105,17 +105,17 @@ static int print_ocsp_summary(BIO *out, OCSP_BASICRESP *bs, OCSP_REQUEST *req,
|
|||||||
long maxage);
|
long maxage);
|
||||||
|
|
||||||
static int make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req, CA_DB *db,
|
static int make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req, CA_DB *db,
|
||||||
X509 *ca, X509 *rcert, EVP_PKEY *rkey,
|
X509 *ca, X509 *rcert, EVP_PKEY *rkey, const EVP_MD *md,
|
||||||
STACK_OF(X509) *rother, unsigned long flags,
|
STACK_OF(X509) *rother, unsigned long flags,
|
||||||
int nmin, int ndays);
|
int nmin, int ndays, int badsig);
|
||||||
|
|
||||||
static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser);
|
static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser);
|
||||||
static BIO *init_responder(char *port);
|
static BIO *init_responder(const char *port);
|
||||||
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, char *port);
|
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, const char *port);
|
||||||
static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp);
|
static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp);
|
||||||
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, const char *path,
|
||||||
STACK_OF(CONF_VALUE) *headers,
|
const STACK_OF(CONF_VALUE) *headers,
|
||||||
OCSP_REQUEST *req, int req_timeout);
|
OCSP_REQUEST *req, int req_timeout);
|
||||||
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG ocsp_main
|
#define PROG ocsp_main
|
||||||
@@ -127,6 +127,7 @@ int MAIN(int argc, char **argv)
|
|||||||
ENGINE *e = NULL;
|
ENGINE *e = NULL;
|
||||||
char **args;
|
char **args;
|
||||||
char *host = NULL, *port = NULL, *path = "/";
|
char *host = NULL, *port = NULL, *path = "/";
|
||||||
|
char *thost = NULL, *tport = NULL, *tpath = NULL;
|
||||||
char *reqin = NULL, *respin = NULL;
|
char *reqin = NULL, *respin = NULL;
|
||||||
char *reqout = NULL, *respout = NULL;
|
char *reqout = NULL, *respout = NULL;
|
||||||
char *signfile = NULL, *keyfile = NULL;
|
char *signfile = NULL, *keyfile = NULL;
|
||||||
@@ -148,12 +149,14 @@ int MAIN(int argc, char **argv)
|
|||||||
long nsec = MAX_VALIDITY_PERIOD, maxage = -1;
|
long nsec = MAX_VALIDITY_PERIOD, maxage = -1;
|
||||||
char *CAfile = NULL, *CApath = NULL;
|
char *CAfile = NULL, *CApath = NULL;
|
||||||
X509_STORE *store = NULL;
|
X509_STORE *store = NULL;
|
||||||
|
X509_VERIFY_PARAM *vpm = NULL;
|
||||||
STACK_OF(X509) *sign_other = NULL, *verify_other = NULL, *rother = NULL;
|
STACK_OF(X509) *sign_other = NULL, *verify_other = NULL, *rother = NULL;
|
||||||
char *sign_certfile = NULL, *verify_certfile = NULL, *rcertfile = NULL;
|
char *sign_certfile = NULL, *verify_certfile = NULL, *rcertfile = NULL;
|
||||||
unsigned long sign_flags = 0, verify_flags = 0, rflags = 0;
|
unsigned long sign_flags = 0, verify_flags = 0, rflags = 0;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
int accept_count = -1;
|
int accept_count = -1;
|
||||||
int badarg = 0;
|
int badarg = 0;
|
||||||
|
int badsig = 0;
|
||||||
int i;
|
int i;
|
||||||
int ignore_err = 0;
|
int ignore_err = 0;
|
||||||
STACK_OF(OPENSSL_STRING) *reqnames = NULL;
|
STACK_OF(OPENSSL_STRING) *reqnames = NULL;
|
||||||
@@ -164,7 +167,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char *rca_filename = NULL;
|
char *rca_filename = NULL;
|
||||||
CA_DB *rdb = NULL;
|
CA_DB *rdb = NULL;
|
||||||
int nmin = 0, ndays = -1;
|
int nmin = 0, ndays = -1;
|
||||||
const EVP_MD *cert_id_md = NULL;
|
const EVP_MD *cert_id_md = NULL, *rsign_md = NULL;
|
||||||
|
|
||||||
if (bio_err == NULL) bio_err = BIO_new_fp(stderr, BIO_NOCLOSE);
|
if (bio_err == NULL) bio_err = BIO_new_fp(stderr, BIO_NOCLOSE);
|
||||||
|
|
||||||
@@ -204,6 +207,12 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (!strcmp(*args, "-url"))
|
else if (!strcmp(*args, "-url"))
|
||||||
{
|
{
|
||||||
|
if (thost)
|
||||||
|
OPENSSL_free(thost);
|
||||||
|
if (tport)
|
||||||
|
OPENSSL_free(tport);
|
||||||
|
if (tpath)
|
||||||
|
OPENSSL_free(tpath);
|
||||||
if (args[1])
|
if (args[1])
|
||||||
{
|
{
|
||||||
args++;
|
args++;
|
||||||
@@ -212,6 +221,9 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err, "Error parsing URL\n");
|
BIO_printf(bio_err, "Error parsing URL\n");
|
||||||
badarg = 1;
|
badarg = 1;
|
||||||
}
|
}
|
||||||
|
thost = host;
|
||||||
|
tport = port;
|
||||||
|
tpath = path;
|
||||||
}
|
}
|
||||||
else badarg = 1;
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
@@ -271,6 +283,8 @@ int MAIN(int argc, char **argv)
|
|||||||
verify_flags |= OCSP_TRUSTOTHER;
|
verify_flags |= OCSP_TRUSTOTHER;
|
||||||
else if (!strcmp(*args, "-no_intern"))
|
else if (!strcmp(*args, "-no_intern"))
|
||||||
verify_flags |= OCSP_NOINTERN;
|
verify_flags |= OCSP_NOINTERN;
|
||||||
|
else if (!strcmp(*args, "-badsig"))
|
||||||
|
badsig = 1;
|
||||||
else if (!strcmp(*args, "-text"))
|
else if (!strcmp(*args, "-text"))
|
||||||
{
|
{
|
||||||
req_text = 1;
|
req_text = 1;
|
||||||
@@ -353,6 +367,12 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else badarg = 1;
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
|
else if (args_verify(&args, NULL, &badarg, bio_err, &vpm))
|
||||||
|
{
|
||||||
|
if (badarg)
|
||||||
|
goto end;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
else if (!strcmp (*args, "-validity_period"))
|
else if (!strcmp (*args, "-validity_period"))
|
||||||
{
|
{
|
||||||
if (args[1])
|
if (args[1])
|
||||||
@@ -558,6 +578,17 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else badarg = 1;
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(*args, "-rmd"))
|
||||||
|
{
|
||||||
|
if (args[1])
|
||||||
|
{
|
||||||
|
args++;
|
||||||
|
rsign_md = EVP_get_digestbyname(*args);
|
||||||
|
if (!rsign_md)
|
||||||
|
badarg = 1;
|
||||||
|
}
|
||||||
|
else badarg = 1;
|
||||||
|
}
|
||||||
else if ((cert_id_md = EVP_get_digestbyname((*args)+1))==NULL)
|
else if ((cert_id_md = EVP_get_digestbyname((*args)+1))==NULL)
|
||||||
{
|
{
|
||||||
badarg = 1;
|
badarg = 1;
|
||||||
@@ -573,51 +604,53 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "OCSP utility\n");
|
BIO_printf (bio_err, "OCSP utility\n");
|
||||||
BIO_printf (bio_err, "Usage ocsp [options]\n");
|
BIO_printf (bio_err, "Usage ocsp [options]\n");
|
||||||
BIO_printf (bio_err, "where options are\n");
|
BIO_printf (bio_err, "where options are\n");
|
||||||
BIO_printf (bio_err, "-out file output filename\n");
|
BIO_printf (bio_err, "-out file output filename\n");
|
||||||
BIO_printf (bio_err, "-issuer file issuer certificate\n");
|
BIO_printf (bio_err, "-issuer file issuer certificate\n");
|
||||||
BIO_printf (bio_err, "-cert file certificate to check\n");
|
BIO_printf (bio_err, "-cert file certificate to check\n");
|
||||||
BIO_printf (bio_err, "-serial n serial number to check\n");
|
BIO_printf (bio_err, "-serial n serial number to check\n");
|
||||||
BIO_printf (bio_err, "-signer file certificate to sign OCSP request with\n");
|
BIO_printf (bio_err, "-signer file certificate to sign OCSP request with\n");
|
||||||
BIO_printf (bio_err, "-signkey file private key to sign OCSP request with\n");
|
BIO_printf (bio_err, "-signkey file private key to sign OCSP request with\n");
|
||||||
BIO_printf (bio_err, "-sign_other file additional certificates to include in signed request\n");
|
BIO_printf (bio_err, "-sign_other file additional certificates to include in signed request\n");
|
||||||
BIO_printf (bio_err, "-no_certs don't include any certificates in signed request\n");
|
BIO_printf (bio_err, "-no_certs don't include any certificates in signed request\n");
|
||||||
BIO_printf (bio_err, "-req_text print text form of request\n");
|
BIO_printf (bio_err, "-req_text print text form of request\n");
|
||||||
BIO_printf (bio_err, "-resp_text print text form of response\n");
|
BIO_printf (bio_err, "-resp_text print text form of response\n");
|
||||||
BIO_printf (bio_err, "-text print text form of request and response\n");
|
BIO_printf (bio_err, "-text print text form of request and response\n");
|
||||||
BIO_printf (bio_err, "-reqout file write DER encoded OCSP request to \"file\"\n");
|
BIO_printf (bio_err, "-reqout file write DER encoded OCSP request to \"file\"\n");
|
||||||
BIO_printf (bio_err, "-respout file write DER encoded OCSP reponse to \"file\"\n");
|
BIO_printf (bio_err, "-respout file write DER encoded OCSP reponse to \"file\"\n");
|
||||||
BIO_printf (bio_err, "-reqin file read DER encoded OCSP request from \"file\"\n");
|
BIO_printf (bio_err, "-reqin file read DER encoded OCSP request from \"file\"\n");
|
||||||
BIO_printf (bio_err, "-respin file read DER encoded OCSP reponse from \"file\"\n");
|
BIO_printf (bio_err, "-respin file read DER encoded OCSP reponse from \"file\"\n");
|
||||||
BIO_printf (bio_err, "-nonce add OCSP nonce to request\n");
|
BIO_printf (bio_err, "-nonce add OCSP nonce to request\n");
|
||||||
BIO_printf (bio_err, "-no_nonce don't add OCSP nonce to request\n");
|
BIO_printf (bio_err, "-no_nonce don't add OCSP nonce to request\n");
|
||||||
BIO_printf (bio_err, "-url URL OCSP responder URL\n");
|
BIO_printf (bio_err, "-url URL OCSP responder URL\n");
|
||||||
BIO_printf (bio_err, "-host host:n send OCSP request to host on port n\n");
|
BIO_printf (bio_err, "-host host:n send OCSP request to host on port n\n");
|
||||||
BIO_printf (bio_err, "-path path to use in OCSP request\n");
|
BIO_printf (bio_err, "-path path to use in OCSP request\n");
|
||||||
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
||||||
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
||||||
BIO_printf (bio_err, "-VAfile file validator certificates file\n");
|
BIO_printf (bio_err, "-trusted_first use locally trusted CA's first when building trust chain\n");
|
||||||
BIO_printf (bio_err, "-validity_period n maximum validity discrepancy in seconds\n");
|
BIO_printf (bio_err, "-VAfile file validator certificates file\n");
|
||||||
BIO_printf (bio_err, "-status_age n maximum status age in seconds\n");
|
BIO_printf (bio_err, "-validity_period n maximum validity discrepancy in seconds\n");
|
||||||
BIO_printf (bio_err, "-noverify don't verify response at all\n");
|
BIO_printf (bio_err, "-status_age n maximum status age in seconds\n");
|
||||||
BIO_printf (bio_err, "-verify_other file additional certificates to search for signer\n");
|
BIO_printf (bio_err, "-noverify don't verify response at all\n");
|
||||||
BIO_printf (bio_err, "-trust_other don't verify additional certificates\n");
|
BIO_printf (bio_err, "-verify_other file additional certificates to search for signer\n");
|
||||||
BIO_printf (bio_err, "-no_intern don't search certificates contained in response for signer\n");
|
BIO_printf (bio_err, "-trust_other don't verify additional certificates\n");
|
||||||
|
BIO_printf (bio_err, "-no_intern don't search certificates contained in response for signer\n");
|
||||||
BIO_printf (bio_err, "-no_signature_verify don't check signature on response\n");
|
BIO_printf (bio_err, "-no_signature_verify don't check signature on response\n");
|
||||||
BIO_printf (bio_err, "-no_cert_verify don't check signing certificate\n");
|
BIO_printf (bio_err, "-no_cert_verify don't check signing certificate\n");
|
||||||
BIO_printf (bio_err, "-no_chain don't chain verify response\n");
|
BIO_printf (bio_err, "-no_chain don't chain verify response\n");
|
||||||
BIO_printf (bio_err, "-no_cert_checks don't do additional checks on signing certificate\n");
|
BIO_printf (bio_err, "-no_cert_checks don't do additional checks on signing certificate\n");
|
||||||
BIO_printf (bio_err, "-port num port to run responder on\n");
|
BIO_printf (bio_err, "-port num port to run responder on\n");
|
||||||
BIO_printf (bio_err, "-index file certificate status index file\n");
|
BIO_printf (bio_err, "-index file certificate status index file\n");
|
||||||
BIO_printf (bio_err, "-CA file CA certificate\n");
|
BIO_printf (bio_err, "-CA file CA certificate\n");
|
||||||
BIO_printf (bio_err, "-rsigner file responder certificate to sign responses with\n");
|
BIO_printf (bio_err, "-rsigner file responder certificate to sign responses with\n");
|
||||||
BIO_printf (bio_err, "-rkey file responder key to sign responses with\n");
|
BIO_printf (bio_err, "-rkey file responder key to sign responses with\n");
|
||||||
BIO_printf (bio_err, "-rother file other certificates to include in response\n");
|
BIO_printf (bio_err, "-rother file other certificates to include in response\n");
|
||||||
BIO_printf (bio_err, "-resp_no_certs don't include any certificates in response\n");
|
BIO_printf (bio_err, "-resp_no_certs don't include any certificates in response\n");
|
||||||
BIO_printf (bio_err, "-nmin n number of minutes before next update\n");
|
BIO_printf (bio_err, "-nmin n number of minutes before next update\n");
|
||||||
BIO_printf (bio_err, "-ndays n number of days before next update\n");
|
BIO_printf (bio_err, "-ndays n number of days before next update\n");
|
||||||
BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n");
|
BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n");
|
||||||
BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n");
|
BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n");
|
||||||
BIO_printf (bio_err, "-<dgst alg> use specified digest in the request");
|
BIO_printf (bio_err, "-<dgst alg> use specified digest in the request\n");
|
||||||
|
BIO_printf (bio_err, "-timeout n timeout connection to OCSP responder after n seconds\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -634,7 +667,10 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (!req && reqin)
|
if (!req && reqin)
|
||||||
{
|
{
|
||||||
derbio = BIO_new_file(reqin, "rb");
|
if (!strcmp(reqin, "-"))
|
||||||
|
derbio = BIO_new_fp(stdin, BIO_NOCLOSE);
|
||||||
|
else
|
||||||
|
derbio = BIO_new_file(reqin, "rb");
|
||||||
if (!derbio)
|
if (!derbio)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Error Opening OCSP request file\n");
|
BIO_printf(bio_err, "Error Opening OCSP request file\n");
|
||||||
@@ -736,7 +772,10 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (reqout)
|
if (reqout)
|
||||||
{
|
{
|
||||||
derbio = BIO_new_file(reqout, "wb");
|
if (!strcmp(reqout, "-"))
|
||||||
|
derbio = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||||
|
else
|
||||||
|
derbio = BIO_new_file(reqout, "wb");
|
||||||
if(!derbio)
|
if(!derbio)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Error opening file %s\n", reqout);
|
BIO_printf(bio_err, "Error opening file %s\n", reqout);
|
||||||
@@ -761,7 +800,7 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (rdb)
|
if (rdb)
|
||||||
{
|
{
|
||||||
i = make_ocsp_response(&resp, req, rdb, rca_cert, rsigner, rkey, rother, rflags, nmin, ndays);
|
i = make_ocsp_response(&resp, req, rdb, rca_cert, rsigner, rkey,rsign_md, rother, rflags, nmin, ndays, badsig);
|
||||||
if (cbio)
|
if (cbio)
|
||||||
send_ocsp_response(cbio, resp);
|
send_ocsp_response(cbio, resp);
|
||||||
}
|
}
|
||||||
@@ -779,7 +818,10 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (respin)
|
else if (respin)
|
||||||
{
|
{
|
||||||
derbio = BIO_new_file(respin, "rb");
|
if (!strcmp(respin, "-"))
|
||||||
|
derbio = BIO_new_fp(stdin, BIO_NOCLOSE);
|
||||||
|
else
|
||||||
|
derbio = BIO_new_file(respin, "rb");
|
||||||
if (!derbio)
|
if (!derbio)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Error Opening OCSP response file\n");
|
BIO_printf(bio_err, "Error Opening OCSP response file\n");
|
||||||
@@ -804,7 +846,10 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (respout)
|
if (respout)
|
||||||
{
|
{
|
||||||
derbio = BIO_new_file(respout, "wb");
|
if (!strcmp(respout, "-"))
|
||||||
|
derbio = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||||
|
else
|
||||||
|
derbio = BIO_new_file(respout, "wb");
|
||||||
if(!derbio)
|
if(!derbio)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Error opening file %s\n", respout);
|
BIO_printf(bio_err, "Error opening file %s\n", respout);
|
||||||
@@ -844,6 +889,12 @@ int MAIN(int argc, char **argv)
|
|||||||
resp = NULL;
|
resp = NULL;
|
||||||
goto redo_accept;
|
goto redo_accept;
|
||||||
}
|
}
|
||||||
|
ret = 0;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
else if (ridx_filename)
|
||||||
|
{
|
||||||
|
ret = 0;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -851,6 +902,8 @@ int MAIN(int argc, char **argv)
|
|||||||
store = setup_verify(bio_err, CAfile, CApath);
|
store = setup_verify(bio_err, CAfile, CApath);
|
||||||
if (!store)
|
if (!store)
|
||||||
goto end;
|
goto end;
|
||||||
|
if (vpm)
|
||||||
|
X509_STORE_set1_param(store, vpm);
|
||||||
if (verify_certfile)
|
if (verify_certfile)
|
||||||
{
|
{
|
||||||
verify_other = load_certs(bio_err, verify_certfile, FORMAT_PEM,
|
verify_other = load_certs(bio_err, verify_certfile, FORMAT_PEM,
|
||||||
@@ -866,6 +919,8 @@ int MAIN(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
if (!noverify)
|
if (!noverify)
|
||||||
{
|
{
|
||||||
if (req && ((i = OCSP_check_nonce(req, bs)) <= 0))
|
if (req && ((i = OCSP_check_nonce(req, bs)) <= 0))
|
||||||
@@ -875,17 +930,17 @@ int MAIN(int argc, char **argv)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Nonce Verify error\n");
|
BIO_printf(bio_err, "Nonce Verify error\n");
|
||||||
|
ret = 1;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
i = OCSP_basic_verify(bs, verify_other, store, verify_flags);
|
i = OCSP_basic_verify(bs, verify_other, store, verify_flags);
|
||||||
if (i < 0) i = OCSP_basic_verify(bs, NULL, store, 0);
|
|
||||||
|
|
||||||
if(i <= 0)
|
if(i <= 0)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Response Verify Failure\n");
|
BIO_printf(bio_err, "Response Verify Failure\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
|
ret = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
BIO_printf(bio_err, "Response verify OK\n");
|
BIO_printf(bio_err, "Response verify OK\n");
|
||||||
@@ -893,14 +948,14 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!print_ocsp_summary(out, bs, req, reqnames, ids, nsec, maxage))
|
if (!print_ocsp_summary(out, bs, req, reqnames, ids, nsec, maxage))
|
||||||
goto end;
|
ret = 1;
|
||||||
|
|
||||||
ret = 0;
|
|
||||||
|
|
||||||
end:
|
end:
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
X509_free(signer);
|
X509_free(signer);
|
||||||
X509_STORE_free(store);
|
X509_STORE_free(store);
|
||||||
|
if (vpm)
|
||||||
|
X509_VERIFY_PARAM_free(vpm);
|
||||||
EVP_PKEY_free(key);
|
EVP_PKEY_free(key);
|
||||||
EVP_PKEY_free(rkey);
|
EVP_PKEY_free(rkey);
|
||||||
X509_free(issuer);
|
X509_free(issuer);
|
||||||
@@ -920,12 +975,12 @@ end:
|
|||||||
sk_X509_pop_free(verify_other, X509_free);
|
sk_X509_pop_free(verify_other, X509_free);
|
||||||
sk_CONF_VALUE_pop_free(headers, X509V3_conf_free);
|
sk_CONF_VALUE_pop_free(headers, X509V3_conf_free);
|
||||||
|
|
||||||
if (use_ssl != -1)
|
if (thost)
|
||||||
{
|
OPENSSL_free(thost);
|
||||||
OPENSSL_free(host);
|
if (tport)
|
||||||
OPENSSL_free(port);
|
OPENSSL_free(tport);
|
||||||
OPENSSL_free(path);
|
if (tpath)
|
||||||
}
|
OPENSSL_free(tpath);
|
||||||
|
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
@@ -1051,9 +1106,10 @@ static int print_ocsp_summary(BIO *out, OCSP_BASICRESP *bs, OCSP_REQUEST *req,
|
|||||||
|
|
||||||
|
|
||||||
static int make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req, CA_DB *db,
|
static int make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req, CA_DB *db,
|
||||||
X509 *ca, X509 *rcert, EVP_PKEY *rkey,
|
X509 *ca, X509 *rcert,
|
||||||
|
EVP_PKEY *rkey, const EVP_MD *rmd,
|
||||||
STACK_OF(X509) *rother, unsigned long flags,
|
STACK_OF(X509) *rother, unsigned long flags,
|
||||||
int nmin, int ndays)
|
int nmin, int ndays, int badsig)
|
||||||
{
|
{
|
||||||
ASN1_TIME *thisupd = NULL, *nextupd = NULL;
|
ASN1_TIME *thisupd = NULL, *nextupd = NULL;
|
||||||
OCSP_CERTID *cid, *ca_id = NULL;
|
OCSP_CERTID *cid, *ca_id = NULL;
|
||||||
@@ -1142,7 +1198,10 @@ static int make_ocsp_response(OCSP_RESPONSE **resp, OCSP_REQUEST *req, CA_DB *db
|
|||||||
|
|
||||||
OCSP_copy_nonce(bs, req);
|
OCSP_copy_nonce(bs, req);
|
||||||
|
|
||||||
OCSP_basic_sign(bs, rcert, rkey, NULL, rother, flags);
|
OCSP_basic_sign(bs, rcert, rkey, rmd, rother, flags);
|
||||||
|
|
||||||
|
if (badsig)
|
||||||
|
bs->signature->data[bs->signature->length -1] ^= 0x1;
|
||||||
|
|
||||||
*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_SUCCESSFUL, bs);
|
*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_SUCCESSFUL, bs);
|
||||||
|
|
||||||
@@ -1176,7 +1235,7 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser)
|
|||||||
|
|
||||||
/* Quick and dirty OCSP server: read in and parse input request */
|
/* Quick and dirty OCSP server: read in and parse input request */
|
||||||
|
|
||||||
static BIO *init_responder(char *port)
|
static BIO *init_responder(const char *port)
|
||||||
{
|
{
|
||||||
BIO *acbio = NULL, *bufbio = NULL;
|
BIO *acbio = NULL, *bufbio = NULL;
|
||||||
bufbio = BIO_new(BIO_f_buffer());
|
bufbio = BIO_new(BIO_f_buffer());
|
||||||
@@ -1207,7 +1266,8 @@ static BIO *init_responder(char *port)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, char *port)
|
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
|
||||||
|
const char *port)
|
||||||
{
|
{
|
||||||
int have_post = 0, len;
|
int have_post = 0, len;
|
||||||
OCSP_REQUEST *req = NULL;
|
OCSP_REQUEST *req = NULL;
|
||||||
@@ -1273,9 +1333,9 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, const char *path,
|
||||||
STACK_OF(CONF_VALUE) *headers,
|
const STACK_OF(CONF_VALUE) *headers,
|
||||||
OCSP_REQUEST *req, int req_timeout)
|
OCSP_REQUEST *req, int req_timeout)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
int rv;
|
int rv;
|
||||||
@@ -1371,9 +1431,10 @@ static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
|||||||
}
|
}
|
||||||
|
|
||||||
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
||||||
char *host, char *path, char *port, int use_ssl,
|
const char *host, const char *path,
|
||||||
STACK_OF(CONF_VALUE) *headers,
|
const char *port, int use_ssl,
|
||||||
int req_timeout)
|
const STACK_OF(CONF_VALUE) *headers,
|
||||||
|
int req_timeout)
|
||||||
{
|
{
|
||||||
BIO *cbio = NULL;
|
BIO *cbio = NULL;
|
||||||
SSL_CTX *ctx = NULL;
|
SSL_CTX *ctx = NULL;
|
||||||
@@ -1388,16 +1449,7 @@ OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
|||||||
if (use_ssl == 1)
|
if (use_ssl == 1)
|
||||||
{
|
{
|
||||||
BIO *sbio;
|
BIO *sbio;
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
|
||||||
ctx = SSL_CTX_new(SSLv23_client_method());
|
ctx = SSL_CTX_new(SSLv23_client_method());
|
||||||
#elif !defined(OPENSSL_NO_SSL3)
|
|
||||||
ctx = SSL_CTX_new(SSLv3_client_method());
|
|
||||||
#elif !defined(OPENSSL_NO_SSL2)
|
|
||||||
ctx = SSL_CTX_new(SSLv2_client_method());
|
|
||||||
#else
|
|
||||||
BIO_printf(err, "SSL is disabled\n");
|
|
||||||
goto end;
|
|
||||||
#endif
|
|
||||||
if (ctx == NULL)
|
if (ctx == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(err, "Error creating SSL context.\n");
|
BIO_printf(err, "Error creating SSL context.\n");
|
||||||
@@ -1409,7 +1461,7 @@ OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
|||||||
}
|
}
|
||||||
resp = query_responder(err, cbio, path, headers, req, req_timeout);
|
resp = query_responder(err, cbio, path, headers, req, req_timeout);
|
||||||
if (!resp)
|
if (!resp)
|
||||||
BIO_printf(bio_err, "Error querying OCSP responsder\n");
|
BIO_printf(bio_err, "Error querying OCSP responder\n");
|
||||||
end:
|
end:
|
||||||
if (cbio)
|
if (cbio)
|
||||||
BIO_free_all(cbio);
|
BIO_free_all(cbio);
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ certs = $dir.certs] # Where the issued certs are kept
|
|||||||
crl_dir = $dir.crl] # Where the issued crl are kept
|
crl_dir = $dir.crl] # Where the issued crl are kept
|
||||||
database = $dir]index.txt # database index file.
|
database = $dir]index.txt # database index file.
|
||||||
#unique_subject = no # Set to 'no' to allow creation of
|
#unique_subject = no # Set to 'no' to allow creation of
|
||||||
# several ctificates with same subject.
|
# several certs with same subject.
|
||||||
new_certs_dir = $dir.newcerts] # default place for new certs.
|
new_certs_dir = $dir.newcerts] # default place for new certs.
|
||||||
|
|
||||||
certificate = $dir]cacert.pem # The CA certificate
|
certificate = $dir]cacert.pem # The CA certificate
|
||||||
@@ -55,7 +55,7 @@ crl = $dir]crl.pem # The current CRL
|
|||||||
private_key = $dir.private]cakey.pem# The private key
|
private_key = $dir.private]cakey.pem# The private key
|
||||||
RANDFILE = $dir.private].rand # private random number file
|
RANDFILE = $dir.private].rand # private random number file
|
||||||
|
|
||||||
x509_extensions = usr_cert # The extentions to add to the cert
|
x509_extensions = usr_cert # The extensions to add to the cert
|
||||||
|
|
||||||
# Comment out the following two lines for the "traditional"
|
# Comment out the following two lines for the "traditional"
|
||||||
# (and highly broken) format.
|
# (and highly broken) format.
|
||||||
@@ -103,11 +103,11 @@ emailAddress = optional
|
|||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ req ]
|
[ req ]
|
||||||
default_bits = 1024
|
default_bits = 2048
|
||||||
default_keyfile = privkey.pem
|
default_keyfile = privkey.pem
|
||||||
distinguished_name = req_distinguished_name
|
distinguished_name = req_distinguished_name
|
||||||
attributes = req_attributes
|
attributes = req_attributes
|
||||||
x509_extensions = v3_ca # The extentions to add to the self signed cert
|
x509_extensions = v3_ca # The extensions to add to the self signed cert
|
||||||
|
|
||||||
# Passwords for private keys if not present they will be prompted for
|
# Passwords for private keys if not present they will be prompted for
|
||||||
# input_password = secret
|
# input_password = secret
|
||||||
@@ -145,7 +145,7 @@ localityName = Locality Name (eg, city)
|
|||||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
#organizationalUnitName_default =
|
#organizationalUnitName_default =
|
||||||
|
|
||||||
commonName = Common Name (eg, YOUR name)
|
commonName = Common Name (e.g. server FQDN or YOUR name)
|
||||||
commonName_max = 64
|
commonName_max = 64
|
||||||
|
|
||||||
emailAddress = Email Address
|
emailAddress = Email Address
|
||||||
|
|||||||
@@ -117,6 +117,7 @@
|
|||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
#include <openssl/lhash.h>
|
#include <openssl/lhash.h>
|
||||||
#include <openssl/conf.h>
|
#include <openssl/conf.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
@@ -237,7 +238,8 @@ int main(int Argc, char *ARGV[])
|
|||||||
long errline;
|
long errline;
|
||||||
|
|
||||||
#if defined( OPENSSL_SYS_VMS) && (__INITIAL_POINTER_SIZE == 64)
|
#if defined( OPENSSL_SYS_VMS) && (__INITIAL_POINTER_SIZE == 64)
|
||||||
/* 2011-03-22 SMS.
|
/*-
|
||||||
|
* 2011-03-22 SMS.
|
||||||
* If we have 32-bit pointers everywhere, then we're safe, and
|
* If we have 32-bit pointers everywhere, then we're safe, and
|
||||||
* we bypass this mess, as on non-VMS systems. (See ARGV,
|
* we bypass this mess, as on non-VMS systems. (See ARGV,
|
||||||
* above.)
|
* above.)
|
||||||
@@ -434,9 +436,7 @@ end:
|
|||||||
if (prog != NULL) lh_FUNCTION_free(prog);
|
if (prog != NULL) lh_FUNCTION_free(prog);
|
||||||
if (arg.data != NULL) OPENSSL_free(arg.data);
|
if (arg.data != NULL) OPENSSL_free(arg.data);
|
||||||
|
|
||||||
apps_shutdown();
|
|
||||||
|
|
||||||
CRYPTO_mem_leaks(bio_err);
|
|
||||||
if (bio_err != NULL)
|
if (bio_err != NULL)
|
||||||
{
|
{
|
||||||
BIO_free(bio_err);
|
BIO_free(bio_err);
|
||||||
@@ -449,6 +449,9 @@ end:
|
|||||||
OPENSSL_free(Argv);
|
OPENSSL_free(Argv);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
apps_shutdown();
|
||||||
|
CRYPTO_mem_leaks(bio_err);
|
||||||
|
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -695,13 +698,13 @@ static void list_md(BIO *out)
|
|||||||
EVP_MD_do_all_sorted(list_md_fn, out);
|
EVP_MD_do_all_sorted(list_md_fn, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK function_cmp(const FUNCTION *a, const FUNCTION *b)
|
static int function_cmp(const FUNCTION *a, const FUNCTION *b)
|
||||||
{
|
{
|
||||||
return strncmp(a->name,b->name,8);
|
return strncmp(a->name,b->name,8);
|
||||||
}
|
}
|
||||||
static IMPLEMENT_LHASH_COMP_FN(function, FUNCTION)
|
static IMPLEMENT_LHASH_COMP_FN(function, FUNCTION)
|
||||||
|
|
||||||
static unsigned long MS_CALLBACK function_hash(const FUNCTION *a)
|
static unsigned long function_hash(const FUNCTION *a)
|
||||||
{
|
{
|
||||||
return lh_strhash(a->name);
|
return lh_strhash(a->name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ certs = $dir/certs # Where the issued certs are kept
|
|||||||
crl_dir = $dir/crl # Where the issued crl are kept
|
crl_dir = $dir/crl # Where the issued crl are kept
|
||||||
database = $dir/index.txt # database index file.
|
database = $dir/index.txt # database index file.
|
||||||
#unique_subject = no # Set to 'no' to allow creation of
|
#unique_subject = no # Set to 'no' to allow creation of
|
||||||
# several ctificates with same subject.
|
# several certs with same subject.
|
||||||
new_certs_dir = $dir/newcerts # default place for new certs.
|
new_certs_dir = $dir/newcerts # default place for new certs.
|
||||||
|
|
||||||
certificate = $dir/cacert.pem # The CA certificate
|
certificate = $dir/cacert.pem # The CA certificate
|
||||||
@@ -55,7 +55,7 @@ crl = $dir/crl.pem # The current CRL
|
|||||||
private_key = $dir/private/cakey.pem# The private key
|
private_key = $dir/private/cakey.pem# The private key
|
||||||
RANDFILE = $dir/private/.rand # private random number file
|
RANDFILE = $dir/private/.rand # private random number file
|
||||||
|
|
||||||
x509_extensions = usr_cert # The extentions to add to the cert
|
x509_extensions = usr_cert # The extensions to add to the cert
|
||||||
|
|
||||||
# Comment out the following two lines for the "traditional"
|
# Comment out the following two lines for the "traditional"
|
||||||
# (and highly broken) format.
|
# (and highly broken) format.
|
||||||
@@ -103,11 +103,11 @@ emailAddress = optional
|
|||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ req ]
|
[ req ]
|
||||||
default_bits = 1024
|
default_bits = 2048
|
||||||
default_keyfile = privkey.pem
|
default_keyfile = privkey.pem
|
||||||
distinguished_name = req_distinguished_name
|
distinguished_name = req_distinguished_name
|
||||||
attributes = req_attributes
|
attributes = req_attributes
|
||||||
x509_extensions = v3_ca # The extentions to add to the self signed cert
|
x509_extensions = v3_ca # The extensions to add to the self signed cert
|
||||||
|
|
||||||
# Passwords for private keys if not present they will be prompted for
|
# Passwords for private keys if not present they will be prompted for
|
||||||
# input_password = secret
|
# input_password = secret
|
||||||
@@ -145,7 +145,7 @@ localityName = Locality Name (eg, city)
|
|||||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||||
#organizationalUnitName_default =
|
#organizationalUnitName_default =
|
||||||
|
|
||||||
commonName = Common Name (eg, YOUR name)
|
commonName = Common Name (e.g. server FQDN or YOUR name)
|
||||||
commonName_max = 64
|
commonName_max = 64
|
||||||
|
|
||||||
emailAddress = Email Address
|
emailAddress = Email Address
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
|
|||||||
char *passwd, BIO *out, int quiet, int table, int reverse,
|
char *passwd, BIO *out, int quiet, int table, int reverse,
|
||||||
size_t pw_maxlen, int usecrypt, int use1, int useapr1);
|
size_t pw_maxlen, int usecrypt, int use1, int useapr1);
|
||||||
|
|
||||||
/* -crypt - standard Unix password algorithm (default)
|
/*-
|
||||||
|
* -crypt - standard Unix password algorithm (default)
|
||||||
* -1 - MD5-based password algorithm
|
* -1 - MD5-based password algorithm
|
||||||
* -apr1 - MD5-based password algorithm, Apache variant
|
* -apr1 - MD5-based password algorithm, Apache variant
|
||||||
* -salt string - salt
|
* -salt string - salt
|
||||||
@@ -309,7 +310,8 @@ err:
|
|||||||
*/
|
*/
|
||||||
static char *md5crypt(const char *passwd, const char *magic, const char *salt)
|
static char *md5crypt(const char *passwd, const char *magic, const char *salt)
|
||||||
{
|
{
|
||||||
static char out_buf[6 + 9 + 24 + 2]; /* "$apr1$..salt..$.......md5hash..........\0" */
|
/* "$apr1$..salt..$.......md5hash..........\0" */
|
||||||
|
static char out_buf[6 + 9 + 24 + 2];
|
||||||
unsigned char buf[MD5_DIGEST_LENGTH];
|
unsigned char buf[MD5_DIGEST_LENGTH];
|
||||||
char *salt_out;
|
char *salt_out;
|
||||||
int n;
|
int n;
|
||||||
|
|||||||
@@ -71,7 +71,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG pkcs7_main
|
#define PROG pkcs7_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
|
|||||||
43
apps/pkcs8.c
43
apps/pkcs8.c
@@ -56,6 +56,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
@@ -135,6 +136,22 @@ int MAIN(int argc, char **argv)
|
|||||||
else
|
else
|
||||||
badarg = 1;
|
badarg = 1;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(*args,"-v2prf"))
|
||||||
|
{
|
||||||
|
if (args[1])
|
||||||
|
{
|
||||||
|
args++;
|
||||||
|
pbe_nid=OBJ_txt2nid(*args);
|
||||||
|
if (!EVP_PBE_find(EVP_PBE_TYPE_PRF, pbe_nid, NULL, NULL, 0))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"Unknown PRF algorithm %s\n", *args);
|
||||||
|
badarg = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
badarg = 1;
|
||||||
|
}
|
||||||
else if (!strcmp(*args,"-inform"))
|
else if (!strcmp(*args,"-inform"))
|
||||||
{
|
{
|
||||||
if (args[1])
|
if (args[1])
|
||||||
@@ -157,6 +174,15 @@ int MAIN(int argc, char **argv)
|
|||||||
topk8 = 1;
|
topk8 = 1;
|
||||||
else if (!strcmp (*args, "-noiter"))
|
else if (!strcmp (*args, "-noiter"))
|
||||||
iter = 1;
|
iter = 1;
|
||||||
|
else if (!strcmp (*args, "-iter"))
|
||||||
|
{
|
||||||
|
if (args[1])
|
||||||
|
{
|
||||||
|
iter = atoi(*(++args));
|
||||||
|
if (iter <= 0) badarg = 1;
|
||||||
|
}
|
||||||
|
else badarg = 1;
|
||||||
|
}
|
||||||
else if (!strcmp (*args, "-nocrypt"))
|
else if (!strcmp (*args, "-nocrypt"))
|
||||||
nocrypt = 1;
|
nocrypt = 1;
|
||||||
else if (!strcmp (*args, "-nooct"))
|
else if (!strcmp (*args, "-nooct"))
|
||||||
@@ -167,19 +193,22 @@ int MAIN(int argc, char **argv)
|
|||||||
p8_broken = PKCS8_EMBEDDED_PARAM;
|
p8_broken = PKCS8_EMBEDDED_PARAM;
|
||||||
else if (!strcmp(*args,"-passin"))
|
else if (!strcmp(*args,"-passin"))
|
||||||
{
|
{
|
||||||
if (!args[1]) goto bad;
|
if (args[1])
|
||||||
passargin= *(++args);
|
passargin= *(++args);
|
||||||
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
else if (!strcmp(*args,"-passout"))
|
else if (!strcmp(*args,"-passout"))
|
||||||
{
|
{
|
||||||
if (!args[1]) goto bad;
|
if (args[1])
|
||||||
passargout= *(++args);
|
passargout= *(++args);
|
||||||
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
else if (strcmp(*args,"-engine") == 0)
|
else if (strcmp(*args,"-engine") == 0)
|
||||||
{
|
{
|
||||||
if (!args[1]) goto bad;
|
if (args[1])
|
||||||
engine= *(++args);
|
engine= *(++args);
|
||||||
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp (*args, "-in"))
|
else if (!strcmp (*args, "-in"))
|
||||||
@@ -206,7 +235,6 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (badarg)
|
if (badarg)
|
||||||
{
|
{
|
||||||
bad:
|
|
||||||
BIO_printf(bio_err, "Usage pkcs8 [options]\n");
|
BIO_printf(bio_err, "Usage pkcs8 [options]\n");
|
||||||
BIO_printf(bio_err, "where options are\n");
|
BIO_printf(bio_err, "where options are\n");
|
||||||
BIO_printf(bio_err, "-in file input file\n");
|
BIO_printf(bio_err, "-in file input file\n");
|
||||||
@@ -219,6 +247,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err, "-nooct use (nonstandard) no octet format\n");
|
BIO_printf(bio_err, "-nooct use (nonstandard) no octet format\n");
|
||||||
BIO_printf(bio_err, "-embed use (nonstandard) embedded DSA parameters format\n");
|
BIO_printf(bio_err, "-embed use (nonstandard) embedded DSA parameters format\n");
|
||||||
BIO_printf(bio_err, "-nsdb use (nonstandard) DSA Netscape DB format\n");
|
BIO_printf(bio_err, "-nsdb use (nonstandard) DSA Netscape DB format\n");
|
||||||
|
BIO_printf(bio_err, "-iter count use count as iteration count\n");
|
||||||
BIO_printf(bio_err, "-noiter use 1 as iteration count\n");
|
BIO_printf(bio_err, "-noiter use 1 as iteration count\n");
|
||||||
BIO_printf(bio_err, "-nocrypt use or expect unencrypted private key\n");
|
BIO_printf(bio_err, "-nocrypt use or expect unencrypted private key\n");
|
||||||
BIO_printf(bio_err, "-v2 alg use PKCS#5 v2.0 and cipher \"alg\"\n");
|
BIO_printf(bio_err, "-v2 alg use PKCS#5 v2.0 and cipher \"alg\"\n");
|
||||||
|
|||||||
26
apps/progs.h
26
apps/progs.h
@@ -44,9 +44,9 @@ extern int smime_main(int argc,char *argv[]);
|
|||||||
extern int rand_main(int argc,char *argv[]);
|
extern int rand_main(int argc,char *argv[]);
|
||||||
extern int engine_main(int argc,char *argv[]);
|
extern int engine_main(int argc,char *argv[]);
|
||||||
extern int ocsp_main(int argc,char *argv[]);
|
extern int ocsp_main(int argc,char *argv[]);
|
||||||
extern int srp_main(int argc,char *argv[]);
|
|
||||||
extern int prime_main(int argc,char *argv[]);
|
extern int prime_main(int argc,char *argv[]);
|
||||||
extern int ts_main(int argc,char *argv[]);
|
extern int ts_main(int argc,char *argv[]);
|
||||||
|
extern int srp_main(int argc,char *argv[]);
|
||||||
|
|
||||||
#define FUNC_TYPE_GENERAL 1
|
#define FUNC_TYPE_GENERAL 1
|
||||||
#define FUNC_TYPE_MD 2
|
#define FUNC_TYPE_MD 2
|
||||||
@@ -107,16 +107,16 @@ FUNCTION functions[] = {
|
|||||||
{FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
|
{FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
|
||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"genpkey",genpkey_main},
|
{FUNC_TYPE_GENERAL,"genpkey",genpkey_main},
|
||||||
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
#if !defined(OPENSSL_NO_SOCK)
|
||||||
{FUNC_TYPE_GENERAL,"s_server",s_server_main},
|
{FUNC_TYPE_GENERAL,"s_server",s_server_main},
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
#if !defined(OPENSSL_NO_SOCK)
|
||||||
{FUNC_TYPE_GENERAL,"s_client",s_client_main},
|
{FUNC_TYPE_GENERAL,"s_client",s_client_main},
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_SPEED
|
#ifndef OPENSSL_NO_SPEED
|
||||||
{FUNC_TYPE_GENERAL,"speed",speed_main},
|
{FUNC_TYPE_GENERAL,"speed",speed_main},
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
#if !defined(OPENSSL_NO_SOCK)
|
||||||
{FUNC_TYPE_GENERAL,"s_time",s_time_main},
|
{FUNC_TYPE_GENERAL,"s_time",s_time_main},
|
||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"version",version_main},
|
{FUNC_TYPE_GENERAL,"version",version_main},
|
||||||
@@ -126,7 +126,7 @@ FUNCTION functions[] = {
|
|||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"crl2pkcs7",crl2pkcs7_main},
|
{FUNC_TYPE_GENERAL,"crl2pkcs7",crl2pkcs7_main},
|
||||||
{FUNC_TYPE_GENERAL,"sess_id",sess_id_main},
|
{FUNC_TYPE_GENERAL,"sess_id",sess_id_main},
|
||||||
#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
#if !defined(OPENSSL_NO_SOCK)
|
||||||
{FUNC_TYPE_GENERAL,"ciphers",ciphers_main},
|
{FUNC_TYPE_GENERAL,"ciphers",ciphers_main},
|
||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"nseq",nseq_main},
|
{FUNC_TYPE_GENERAL,"nseq",nseq_main},
|
||||||
@@ -146,11 +146,11 @@ FUNCTION functions[] = {
|
|||||||
#ifndef OPENSSL_NO_OCSP
|
#ifndef OPENSSL_NO_OCSP
|
||||||
{FUNC_TYPE_GENERAL,"ocsp",ocsp_main},
|
{FUNC_TYPE_GENERAL,"ocsp",ocsp_main},
|
||||||
#endif
|
#endif
|
||||||
|
{FUNC_TYPE_GENERAL,"prime",prime_main},
|
||||||
|
{FUNC_TYPE_GENERAL,"ts",ts_main},
|
||||||
#ifndef OPENSSL_NO_SRP
|
#ifndef OPENSSL_NO_SRP
|
||||||
{FUNC_TYPE_GENERAL,"srp",srp_main},
|
{FUNC_TYPE_GENERAL,"srp",srp_main},
|
||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"prime",prime_main},
|
|
||||||
{FUNC_TYPE_GENERAL,"ts",ts_main},
|
|
||||||
#ifndef OPENSSL_NO_MD2
|
#ifndef OPENSSL_NO_MD2
|
||||||
{FUNC_TYPE_MD,"md2",dgst_main},
|
{FUNC_TYPE_MD,"md2",dgst_main},
|
||||||
#endif
|
#endif
|
||||||
@@ -172,6 +172,18 @@ FUNCTION functions[] = {
|
|||||||
#ifndef OPENSSL_NO_RMD160
|
#ifndef OPENSSL_NO_RMD160
|
||||||
{FUNC_TYPE_MD,"rmd160",dgst_main},
|
{FUNC_TYPE_MD,"rmd160",dgst_main},
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SHA224
|
||||||
|
{FUNC_TYPE_MD,"sha224",dgst_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SHA256
|
||||||
|
{FUNC_TYPE_MD,"sha256",dgst_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SHA384
|
||||||
|
{FUNC_TYPE_MD,"sha384",dgst_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SHA512
|
||||||
|
{FUNC_TYPE_MD,"sha512",dgst_main},
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
{FUNC_TYPE_CIPHER,"aes-128-cbc",enc_main},
|
{FUNC_TYPE_CIPHER,"aes-128-cbc",enc_main},
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ foreach (@ARGV)
|
|||||||
push(@files,$_);
|
push(@files,$_);
|
||||||
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
|
$str="\t{FUNC_TYPE_GENERAL,\"$_\",${_}_main},\n";
|
||||||
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
|
if (($_ =~ /^s_/) || ($_ =~ /^ciphers$/))
|
||||||
{ print "#if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))\n${str}#endif\n"; }
|
{ print "#if !defined(OPENSSL_NO_SOCK)\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^speed$/))
|
elsif ( ($_ =~ /^speed$/))
|
||||||
{ print "#ifndef OPENSSL_NO_SPEED\n${str}#endif\n"; }
|
{ print "#ifndef OPENSSL_NO_SPEED\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^engine$/))
|
elsif ( ($_ =~ /^engine$/))
|
||||||
@@ -51,11 +51,13 @@ foreach (@ARGV)
|
|||||||
{ print "#ifndef OPENSSL_NO_CMS\n${str}#endif\n"; }
|
{ print "#ifndef OPENSSL_NO_CMS\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^ocsp$/))
|
elsif ( ($_ =~ /^ocsp$/))
|
||||||
{ print "#ifndef OPENSSL_NO_OCSP\n${str}#endif\n"; }
|
{ print "#ifndef OPENSSL_NO_OCSP\n${str}#endif\n"; }
|
||||||
|
elsif ( ($_ =~ /^srp$/))
|
||||||
|
{ print "#ifndef OPENSSL_NO_SRP\n${str}#endif\n"; }
|
||||||
else
|
else
|
||||||
{ print $str; }
|
{ print $str; }
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ("md2","md4","md5","sha","sha1","mdc2","rmd160")
|
foreach ("md2","md4","md5","sha","sha1","mdc2","rmd160","sha224","sha256","sha384","sha512")
|
||||||
{
|
{
|
||||||
push(@files,$_);
|
push(@files,$_);
|
||||||
printf "#ifndef OPENSSL_NO_".uc($_)."\n\t{FUNC_TYPE_MD,\"".$_."\",dgst_main},\n#endif\n";
|
printf "#ifndef OPENSSL_NO_".uc($_)."\n\t{FUNC_TYPE_MD,\"".$_."\",dgst_main},\n#endif\n";
|
||||||
|
|||||||
@@ -66,7 +66,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG rand_main
|
#define PROG rand_main
|
||||||
|
|
||||||
/* -out file - write to file
|
/*-
|
||||||
|
* -out file - write to file
|
||||||
* -rand file:file - PRNG seed files
|
* -rand file:file - PRNG seed files
|
||||||
* -base64 - base64 encode output
|
* -base64 - base64 encode output
|
||||||
* -hex - hex encode output
|
* -hex - hex encode output
|
||||||
|
|||||||
58
apps/req.c
58
apps/req.c
@@ -56,19 +56,10 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
|
||||||
* deprecated functions for openssl-internal code */
|
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
|
||||||
#undef OPENSSL_NO_DEPRECATED
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
@@ -105,7 +96,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG req_main
|
#define PROG req_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (DER or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (DER or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
@@ -511,7 +503,7 @@ bad:
|
|||||||
oid_bio=BIO_new_file(p,"r");
|
oid_bio=BIO_new_file(p,"r");
|
||||||
if (oid_bio == NULL)
|
if (oid_bio == NULL)
|
||||||
{
|
{
|
||||||
/*
|
/*-
|
||||||
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
|
BIO_printf(bio_err,"problems opening %s for extra oid's\n",p);
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
*/
|
*/
|
||||||
@@ -644,6 +636,11 @@ bad:
|
|||||||
if (inrand)
|
if (inrand)
|
||||||
app_RAND_load_files(inrand);
|
app_RAND_load_files(inrand);
|
||||||
|
|
||||||
|
if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey))
|
||||||
|
{
|
||||||
|
newkey=DEFAULT_KEY_LENGTH;
|
||||||
|
}
|
||||||
|
|
||||||
if (keyalg)
|
if (keyalg)
|
||||||
{
|
{
|
||||||
genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey,
|
genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey,
|
||||||
@@ -652,12 +649,6 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newkey <= 0)
|
|
||||||
{
|
|
||||||
if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey))
|
|
||||||
newkey=DEFAULT_KEY_LENGTH;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newkey < MIN_KEY_LENGTH && (pkey_type == EVP_PKEY_RSA || pkey_type == EVP_PKEY_DSA))
|
if (newkey < MIN_KEY_LENGTH && (pkey_type == EVP_PKEY_RSA || pkey_type == EVP_PKEY_DSA))
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"private key length is too short,\n");
|
BIO_printf(bio_err,"private key length is too short,\n");
|
||||||
@@ -904,7 +895,7 @@ loop:
|
|||||||
|
|
||||||
if (subj && x509)
|
if (subj && x509)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "Cannot modifiy certificate subject\n");
|
BIO_printf(bio_err, "Cannot modify certificate subject\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1159,15 +1150,12 @@ static int make_REQ(X509_REQ *req, EVP_PKEY *pkey, char *subj, int multirdn,
|
|||||||
/* setup version number */
|
/* setup version number */
|
||||||
if (!X509_REQ_set_version(req,0L)) goto err; /* version 1 */
|
if (!X509_REQ_set_version(req,0L)) goto err; /* version 1 */
|
||||||
|
|
||||||
if (no_prompt)
|
if (subj)
|
||||||
|
i = build_subject(req, subj, chtype, multirdn);
|
||||||
|
else if (no_prompt)
|
||||||
i = auto_info(req, dn_sk, attr_sk, attribs, chtype);
|
i = auto_info(req, dn_sk, attr_sk, attribs, chtype);
|
||||||
else
|
else
|
||||||
{
|
i = prompt_info(req, dn_sk, dn_sect, attr_sk, attr_sect, attribs, chtype);
|
||||||
if (subj)
|
|
||||||
i = build_subject(req, subj, chtype, multirdn);
|
|
||||||
else
|
|
||||||
i = prompt_info(req, dn_sk, dn_sect, attr_sk, attr_sect, attribs, chtype);
|
|
||||||
}
|
|
||||||
if(!i) goto err;
|
if(!i) goto err;
|
||||||
|
|
||||||
if (!X509_REQ_set_pubkey(req,pkey)) goto err;
|
if (!X509_REQ_set_pubkey(req,pkey)) goto err;
|
||||||
@@ -1490,7 +1478,13 @@ start:
|
|||||||
#ifdef CHARSET_EBCDIC
|
#ifdef CHARSET_EBCDIC
|
||||||
ebcdic2ascii(buf, buf, i);
|
ebcdic2ascii(buf, buf, i);
|
||||||
#endif
|
#endif
|
||||||
if(!req_check_len(i, n_min, n_max)) goto start;
|
if(!req_check_len(i, n_min, n_max))
|
||||||
|
{
|
||||||
|
if (batch || value)
|
||||||
|
return 0;
|
||||||
|
goto start;
|
||||||
|
}
|
||||||
|
|
||||||
if (!X509_NAME_add_entry_by_NID(n,nid, chtype,
|
if (!X509_NAME_add_entry_by_NID(n,nid, chtype,
|
||||||
(unsigned char *) buf, -1,-1,mval)) goto err;
|
(unsigned char *) buf, -1,-1,mval)) goto err;
|
||||||
ret=1;
|
ret=1;
|
||||||
@@ -1549,7 +1543,12 @@ start:
|
|||||||
#ifdef CHARSET_EBCDIC
|
#ifdef CHARSET_EBCDIC
|
||||||
ebcdic2ascii(buf, buf, i);
|
ebcdic2ascii(buf, buf, i);
|
||||||
#endif
|
#endif
|
||||||
if(!req_check_len(i, n_min, n_max)) goto start;
|
if(!req_check_len(i, n_min, n_max))
|
||||||
|
{
|
||||||
|
if (batch || value)
|
||||||
|
return 0;
|
||||||
|
goto start;
|
||||||
|
}
|
||||||
|
|
||||||
if(!X509_REQ_add1_attr_by_NID(req, nid, chtype,
|
if(!X509_REQ_add1_attr_by_NID(req, nid, chtype,
|
||||||
(unsigned char *)buf, -1)) {
|
(unsigned char *)buf, -1)) {
|
||||||
@@ -1649,6 +1648,8 @@ static EVP_PKEY_CTX *set_keygen_ctx(BIO *err, const char *gstr, int *pkey_type,
|
|||||||
keylen = atol(p + 1);
|
keylen = atol(p + 1);
|
||||||
*pkeylen = keylen;
|
*pkeylen = keylen;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
keylen = *pkeylen;
|
||||||
}
|
}
|
||||||
else if (p)
|
else if (p)
|
||||||
paramfile = p + 1;
|
paramfile = p + 1;
|
||||||
@@ -1764,9 +1765,6 @@ static int genpkey_cb(EVP_PKEY_CTX *ctx)
|
|||||||
if (p == 3) c='\n';
|
if (p == 3) c='\n';
|
||||||
BIO_write(b,&c,1);
|
BIO_write(b,&c,1);
|
||||||
(void)BIO_flush(b);
|
(void)BIO_flush(b);
|
||||||
#ifdef LINT
|
|
||||||
p=n;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG rsa_main
|
#define PROG rsa_main
|
||||||
|
|
||||||
/* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
/*-
|
||||||
|
* -inform arg - input format - default PEM (one of DER, NET or PEM)
|
||||||
* -outform arg - output format - default PEM
|
* -outform arg - output format - default PEM
|
||||||
* -in arg - input file - default stdin
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
|
|||||||
@@ -108,7 +108,8 @@
|
|||||||
* Hudson (tjh@cryptsoft.com).
|
* Hudson (tjh@cryptsoft.com).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#if !defined(OPENSSL_SYS_NETWARE) /* conflicts with winsock2 stuff on netware */
|
/* conflicts with winsock2 stuff on netware */
|
||||||
|
#if !defined(OPENSSL_SYS_NETWARE)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
#include <openssl/opensslconf.h>
|
#include <openssl/opensslconf.h>
|
||||||
@@ -148,29 +149,65 @@ typedef fd_mask fd_set;
|
|||||||
#define PORT_STR "4433"
|
#define PORT_STR "4433"
|
||||||
#define PROTOCOL "tcp"
|
#define PROTOCOL "tcp"
|
||||||
|
|
||||||
int do_server(int port, int type, int *ret, int (*cb) (char *hostname, int s, unsigned char *context), unsigned char *context);
|
int do_server(int port, int type, int *ret,
|
||||||
|
int (*cb)(char *hostname, int s, int stype, unsigned char *context),
|
||||||
|
unsigned char *context, int naccept);
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
|
int do_server_unix(const char *path, int *ret,
|
||||||
|
int (*cb)(char *hostname, int s, int stype, unsigned char *context),
|
||||||
|
unsigned char *context, int naccept);
|
||||||
|
#endif
|
||||||
#ifdef HEADER_X509_H
|
#ifdef HEADER_X509_H
|
||||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
|
int verify_callback(int ok, X509_STORE_CTX *ctx);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HEADER_SSL_H
|
#ifdef HEADER_SSL_H
|
||||||
int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file);
|
int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file);
|
||||||
int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key);
|
int set_cert_key_stuff(SSL_CTX *ctx, X509 *cert, EVP_PKEY *key,
|
||||||
|
STACK_OF(X509) *chain, int build_chain);
|
||||||
|
int ssl_print_sigalgs(BIO *out, SSL *s);
|
||||||
|
int ssl_print_point_formats(BIO *out, SSL *s);
|
||||||
|
int ssl_print_curves(BIO *out, SSL *s, int noshared);
|
||||||
|
#endif
|
||||||
|
int ssl_print_tmp_key(BIO *out, SSL *s);
|
||||||
|
int init_client(int *sock, const char *server, int port, int type);
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
|
int init_client_unix(int *sock, const char *server);
|
||||||
#endif
|
#endif
|
||||||
int init_client(int *sock, char *server, int port, int type);
|
|
||||||
int should_retry(int i);
|
int should_retry(int i);
|
||||||
int extract_port(char *str, short *port_ptr);
|
int extract_port(const char *str, short *port_ptr);
|
||||||
int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p);
|
int extract_host_port(char *str,char **host_ptr,unsigned char *ip,short *p);
|
||||||
|
|
||||||
long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
|
long bio_dump_callback(BIO *bio, int cmd, const char *argp,
|
||||||
int argi, long argl, long ret);
|
int argi, long argl, long ret);
|
||||||
|
|
||||||
#ifdef HEADER_SSL_H
|
#ifdef HEADER_SSL_H
|
||||||
void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret);
|
void apps_ssl_info_callback(const SSL *s, int where, int ret);
|
||||||
void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
|
void msg_cb(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
|
||||||
void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
|
void tlsext_cb(SSL *s, int client_server, int type,
|
||||||
unsigned char *data, int len,
|
unsigned char *data, int len,
|
||||||
void *arg);
|
void *arg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len);
|
int generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len);
|
||||||
int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int cookie_len);
|
int verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned int cookie_len);
|
||||||
|
|
||||||
|
typedef struct ssl_excert_st SSL_EXCERT;
|
||||||
|
|
||||||
|
void ssl_ctx_set_excert(SSL_CTX *ctx, SSL_EXCERT *exc);
|
||||||
|
void ssl_excert_free(SSL_EXCERT *exc);
|
||||||
|
int args_excert(char ***pargs, int *pargc,
|
||||||
|
int *badarg, BIO *err, SSL_EXCERT **pexc);
|
||||||
|
int load_excert(SSL_EXCERT **pexc, BIO *err);
|
||||||
|
void print_ssl_summary(BIO *bio, SSL *s);
|
||||||
|
#ifdef HEADER_SSL_H
|
||||||
|
int args_ssl(char ***pargs, int *pargc, SSL_CONF_CTX *cctx,
|
||||||
|
int *badarg, BIO *err, STACK_OF(OPENSSL_STRING) **pstr);
|
||||||
|
int args_ssl_call(SSL_CTX *ctx, BIO *err, SSL_CONF_CTX *cctx,
|
||||||
|
STACK_OF(OPENSSL_STRING) *str, int no_ecdhe, int no_jpake);
|
||||||
|
int ssl_ctx_add_crls(SSL_CTX *ctx, STACK_OF(X509_CRL) *crls, int crl_download);
|
||||||
|
int ssl_load_stores(SSL_CTX *ctx,
|
||||||
|
const char *vfyCApath, const char *vfyCAfile,
|
||||||
|
const char *chCApath, const char *chCAfile,
|
||||||
|
STACK_OF(X509_CRL) *crls, int crl_download);
|
||||||
|
void ssl_ctx_security_debug(SSL_CTX *ctx, BIO *out, int verbose);
|
||||||
|
#endif
|
||||||
|
|||||||
1273
apps/s_cb.c
1273
apps/s_cb.c
File diff suppressed because it is too large
Load Diff
686
apps/s_client.c
686
apps/s_client.c
File diff suppressed because it is too large
Load Diff
1126
apps/s_server.c
1126
apps/s_server.c
File diff suppressed because it is too large
Load Diff
224
apps/s_socket.c
224
apps/s_socket.c
@@ -91,7 +91,7 @@ typedef unsigned int u_int;
|
|||||||
#include "netdb.h"
|
#include "netdb.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static struct hostent *GetHostByName(char *name);
|
static struct hostent *GetHostByName(const char *name);
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
||||||
static void ssl_sock_cleanup(void);
|
static void ssl_sock_cleanup(void);
|
||||||
#endif
|
#endif
|
||||||
@@ -101,12 +101,10 @@ static int init_client_ip(int *sock, const unsigned char ip[4], int port,
|
|||||||
static int init_server(int *sock, int port, int type);
|
static int init_server(int *sock, int port, int type);
|
||||||
static int init_server_long(int *sock, int port,char *ip, int type);
|
static int init_server_long(int *sock, int port,char *ip, int type);
|
||||||
static int do_accept(int acc_sock, int *sock, char **host);
|
static int do_accept(int acc_sock, int *sock, char **host);
|
||||||
static int host_ip(char *str, unsigned char ip[4]);
|
static int host_ip(const char *str, unsigned char ip[4]);
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
#ifdef OPENSSL_SYS_WIN16
|
static int init_server_unix(int *sock, const char *path);
|
||||||
#define SOCKET_PROTOCOL 0 /* more microsoft stupidity */
|
static int do_accept_unix(int acc_sock, int *sock);
|
||||||
#else
|
|
||||||
#define SOCKET_PROTOCOL IPPROTO_TCP
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
#if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||||
@@ -117,36 +115,6 @@ static int wsa_init_done=0;
|
|||||||
static struct WSAData wsa_state;
|
static struct WSAData wsa_state;
|
||||||
static int wsa_init_done=0;
|
static int wsa_init_done=0;
|
||||||
|
|
||||||
#ifdef OPENSSL_SYS_WIN16
|
|
||||||
static HWND topWnd=0;
|
|
||||||
static FARPROC lpTopWndProc=NULL;
|
|
||||||
static FARPROC lpTopHookProc=NULL;
|
|
||||||
extern HINSTANCE _hInstance; /* nice global CRT provides */
|
|
||||||
|
|
||||||
static LONG FAR PASCAL topHookProc(HWND hwnd, UINT message, WPARAM wParam,
|
|
||||||
LPARAM lParam)
|
|
||||||
{
|
|
||||||
if (hwnd == topWnd)
|
|
||||||
{
|
|
||||||
switch(message)
|
|
||||||
{
|
|
||||||
case WM_DESTROY:
|
|
||||||
case WM_CLOSE:
|
|
||||||
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopWndProc);
|
|
||||||
ssl_sock_cleanup();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return CallWindowProc(lpTopWndProc,hwnd,message,wParam,lParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
static BOOL CALLBACK enumproc(HWND hwnd,LPARAM lParam)
|
|
||||||
{
|
|
||||||
topWnd=hwnd;
|
|
||||||
return(FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* OPENSSL_SYS_WIN32 */
|
|
||||||
#endif /* OPENSSL_SYS_WINDOWS */
|
#endif /* OPENSSL_SYS_WINDOWS */
|
||||||
|
|
||||||
#ifdef OPENSSL_SYS_WINDOWS
|
#ifdef OPENSSL_SYS_WINDOWS
|
||||||
@@ -195,14 +163,6 @@ static int ssl_sock_init(void)
|
|||||||
BIO_printf(bio_err,"unable to start WINSOCK, error code=%d\n",err);
|
BIO_printf(bio_err,"unable to start WINSOCK, error code=%d\n",err);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OPENSSL_SYS_WIN16
|
|
||||||
EnumTaskWindows(GetCurrentTask(),enumproc,0L);
|
|
||||||
lpTopWndProc=(FARPROC)GetWindowLong(topWnd,GWL_WNDPROC);
|
|
||||||
lpTopHookProc=MakeProcInstance((FARPROC)topHookProc,_hInstance);
|
|
||||||
|
|
||||||
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopHookProc);
|
|
||||||
#endif /* OPENSSL_SYS_WIN16 */
|
|
||||||
}
|
}
|
||||||
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||||
WORD wVerReq;
|
WORD wVerReq;
|
||||||
@@ -229,16 +189,14 @@ static int ssl_sock_init(void)
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int init_client(int *sock, char *host, int port, int type)
|
int init_client(int *sock, const char *host, int port, int type)
|
||||||
{
|
{
|
||||||
unsigned char ip[4];
|
unsigned char ip[4];
|
||||||
|
|
||||||
ip[0] = ip[1] = ip[2] = ip[3] = 0;
|
ip[0] = ip[1] = ip[2] = ip[3] = 0;
|
||||||
if (!host_ip(host,&(ip[0])))
|
if (!host_ip(host,&(ip[0])))
|
||||||
{
|
return 0;
|
||||||
return(0);
|
return init_client_ip(sock,ip,port,type);
|
||||||
}
|
|
||||||
return(init_client_ip(sock,ip,port,type));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int init_client_ip(int *sock, const unsigned char ip[4], int port,
|
static int init_client_ip(int *sock, const unsigned char ip[4], int port,
|
||||||
@@ -261,18 +219,18 @@ static int init_client_ip(int *sock, const unsigned char ip[4], int port,
|
|||||||
them.sin_addr.s_addr=htonl(addr);
|
them.sin_addr.s_addr=htonl(addr);
|
||||||
|
|
||||||
if (type == SOCK_STREAM)
|
if (type == SOCK_STREAM)
|
||||||
s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
|
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
|
||||||
else /* ( type == SOCK_DGRAM) */
|
else /* ( type == SOCK_DGRAM) */
|
||||||
s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
|
s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
|
||||||
|
|
||||||
if (s == INVALID_SOCKET) { perror("socket"); return(0); }
|
if (s == INVALID_SOCKET) { perror("socket"); return(0); }
|
||||||
|
|
||||||
#if defined(SO_KEEPALIVE) && !defined(OPENSSL_SYS_MPE)
|
#if defined(SO_KEEPALIVE)
|
||||||
if (type == SOCK_STREAM)
|
if (type == SOCK_STREAM)
|
||||||
{
|
{
|
||||||
i=0;
|
i=0;
|
||||||
i=setsockopt(s,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
|
i=setsockopt(s,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
|
||||||
if (i < 0) { perror("keepalive"); return(0); }
|
if (i < 0) { closesocket(s); perror("keepalive"); return(0); }
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -282,7 +240,32 @@ static int init_client_ip(int *sock, const unsigned char ip[4], int port,
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, unsigned char *context), unsigned char *context)
|
#ifndef NO_SYS_UN_H
|
||||||
|
int init_client_unix(int *sock, const char *server)
|
||||||
|
{
|
||||||
|
struct sockaddr_un them;
|
||||||
|
int s;
|
||||||
|
|
||||||
|
if (strlen(server) > (UNIX_PATH_MAX + 1)) return(0);
|
||||||
|
if (!ssl_sock_init()) return(0);
|
||||||
|
|
||||||
|
s=socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
if (s == INVALID_SOCKET) { perror("socket"); return(0); }
|
||||||
|
|
||||||
|
memset((char *)&them,0,sizeof(them));
|
||||||
|
them.sun_family=AF_UNIX;
|
||||||
|
strcpy(them.sun_path, server);
|
||||||
|
|
||||||
|
if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1)
|
||||||
|
{ closesocket(s); perror("connect"); return(0); }
|
||||||
|
*sock=s;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int do_server(int port, int type, int *ret,
|
||||||
|
int (*cb)(char *hostname, int s, int stype, unsigned char *context),
|
||||||
|
unsigned char *context, int naccept)
|
||||||
{
|
{
|
||||||
int sock;
|
int sock;
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
@@ -300,7 +283,11 @@ int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, uns
|
|||||||
{
|
{
|
||||||
if (type==SOCK_STREAM)
|
if (type==SOCK_STREAM)
|
||||||
{
|
{
|
||||||
|
#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL
|
||||||
|
if (do_accept(accept_socket,&sock,NULL) == 0)
|
||||||
|
#else
|
||||||
if (do_accept(accept_socket,&sock,&name) == 0)
|
if (do_accept(accept_socket,&sock,&name) == 0)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
SHUTDOWN(accept_socket);
|
SHUTDOWN(accept_socket);
|
||||||
return(0);
|
return(0);
|
||||||
@@ -308,11 +295,13 @@ int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, uns
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
sock = accept_socket;
|
sock = accept_socket;
|
||||||
i=(*cb)(name,sock, context);
|
i=(*cb)(name,sock, type, context);
|
||||||
if (name != NULL) OPENSSL_free(name);
|
if (name != NULL) OPENSSL_free(name);
|
||||||
if (type==SOCK_STREAM)
|
if (type==SOCK_STREAM)
|
||||||
SHUTDOWN2(sock);
|
SHUTDOWN2(sock);
|
||||||
if (i < 0)
|
if (naccept != -1)
|
||||||
|
naccept--;
|
||||||
|
if (i < 0 || naccept == 0)
|
||||||
{
|
{
|
||||||
SHUTDOWN2(accept_socket);
|
SHUTDOWN2(accept_socket);
|
||||||
return(i);
|
return(i);
|
||||||
@@ -320,6 +309,43 @@ int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, uns
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
|
int do_server_unix(const char *path, int *ret,
|
||||||
|
int (*cb)(char *hostname, int s, int stype, unsigned char *context),
|
||||||
|
unsigned char *context, int naccept)
|
||||||
|
{
|
||||||
|
int sock;
|
||||||
|
int accept_socket = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!init_server_unix(&accept_socket, path)) return(0);
|
||||||
|
|
||||||
|
if (ret != NULL)
|
||||||
|
*ret=accept_socket;
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
if (do_accept_unix(accept_socket, &sock) == 0)
|
||||||
|
{
|
||||||
|
SHUTDOWN(accept_socket);
|
||||||
|
i = 0;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
i=(*cb)(NULL, sock, 0, context);
|
||||||
|
SHUTDOWN2(sock);
|
||||||
|
if (naccept != -1)
|
||||||
|
naccept--;
|
||||||
|
if (i < 0 || naccept == 0)
|
||||||
|
{
|
||||||
|
SHUTDOWN2(accept_socket);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
unlink(path);
|
||||||
|
return(i);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int init_server_long(int *sock, int port, char *ip, int type)
|
static int init_server_long(int *sock, int port, char *ip, int type)
|
||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
@@ -342,7 +368,7 @@ static int init_server_long(int *sock, int port, char *ip, int type)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (type == SOCK_STREAM)
|
if (type == SOCK_STREAM)
|
||||||
s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
|
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
|
||||||
else /* type == SOCK_DGRAM */
|
else /* type == SOCK_DGRAM */
|
||||||
s=socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP);
|
s=socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP);
|
||||||
|
|
||||||
@@ -378,6 +404,50 @@ static int init_server(int *sock, int port, int type)
|
|||||||
return(init_server_long(sock, port, NULL, type));
|
return(init_server_long(sock, port, NULL, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
|
static int init_server_unix(int *sock, const char *path)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
struct sockaddr_un server;
|
||||||
|
int s = -1;
|
||||||
|
|
||||||
|
if (strlen(path) > (UNIX_PATH_MAX + 1)) return(0);
|
||||||
|
if (!ssl_sock_init()) return(0);
|
||||||
|
|
||||||
|
s=socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
|
if (s == INVALID_SOCKET) goto err;
|
||||||
|
|
||||||
|
memset((char *)&server,0,sizeof(server));
|
||||||
|
server.sun_family=AF_UNIX;
|
||||||
|
strcpy(server.sun_path, path);
|
||||||
|
|
||||||
|
if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1)
|
||||||
|
{
|
||||||
|
#ifndef OPENSSL_SYS_WINDOWS
|
||||||
|
perror("bind");
|
||||||
|
#endif
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
/* Make it 128 for linux */
|
||||||
|
if (listen(s,128) == -1)
|
||||||
|
{
|
||||||
|
#ifndef OPENSSL_SYS_WINDOWS
|
||||||
|
perror("listen");
|
||||||
|
#endif
|
||||||
|
unlink(path);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
*sock=s;
|
||||||
|
ret=1;
|
||||||
|
err:
|
||||||
|
if ((ret == 0) && (s != -1))
|
||||||
|
{
|
||||||
|
SHUTDOWN(s);
|
||||||
|
}
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int do_accept(int acc_sock, int *sock, char **host)
|
static int do_accept(int acc_sock, int *sock, char **host)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@@ -418,7 +488,7 @@ redoit:
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*-
|
||||||
ling.l_onoff=1;
|
ling.l_onoff=1;
|
||||||
ling.l_linger=0;
|
ling.l_linger=0;
|
||||||
i=setsockopt(ret,SOL_SOCKET,SO_LINGER,(char *)&ling,sizeof(ling));
|
i=setsockopt(ret,SOL_SOCKET,SO_LINGER,(char *)&ling,sizeof(ling));
|
||||||
@@ -448,6 +518,7 @@ redoit:
|
|||||||
if ((*host=(char *)OPENSSL_malloc(strlen(h1->h_name)+1)) == NULL)
|
if ((*host=(char *)OPENSSL_malloc(strlen(h1->h_name)+1)) == NULL)
|
||||||
{
|
{
|
||||||
perror("OPENSSL_malloc");
|
perror("OPENSSL_malloc");
|
||||||
|
closesocket(ret);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
BUF_strlcpy(*host,h1->h_name,strlen(h1->h_name)+1);
|
BUF_strlcpy(*host,h1->h_name,strlen(h1->h_name)+1);
|
||||||
@@ -456,11 +527,13 @@ redoit:
|
|||||||
if (h2 == NULL)
|
if (h2 == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"gethostbyname failure\n");
|
BIO_printf(bio_err,"gethostbyname failure\n");
|
||||||
|
closesocket(ret);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
if (h2->h_addrtype != AF_INET)
|
if (h2->h_addrtype != AF_INET)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
||||||
|
closesocket(ret);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -469,6 +542,32 @@ end:
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_SYS_UN_H
|
||||||
|
static int do_accept_unix(int acc_sock, int *sock)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!ssl_sock_init()) return(0);
|
||||||
|
|
||||||
|
redoit:
|
||||||
|
ret=accept(acc_sock, NULL, NULL);
|
||||||
|
if (ret == INVALID_SOCKET)
|
||||||
|
{
|
||||||
|
if (errno == EINTR)
|
||||||
|
{
|
||||||
|
/*check_timeout(); */
|
||||||
|
goto redoit;
|
||||||
|
}
|
||||||
|
fprintf(stderr,"errno=%d ",errno);
|
||||||
|
perror("accept");
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
*sock=ret;
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
|
int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
|
||||||
short *port_ptr)
|
short *port_ptr)
|
||||||
{
|
{
|
||||||
@@ -494,7 +593,7 @@ err:
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int host_ip(char *str, unsigned char ip[4])
|
static int host_ip(const char *str, unsigned char ip[4])
|
||||||
{
|
{
|
||||||
unsigned int in[4];
|
unsigned int in[4];
|
||||||
int i;
|
int i;
|
||||||
@@ -524,8 +623,7 @@ static int host_ip(char *str, unsigned char ip[4])
|
|||||||
BIO_printf(bio_err,"gethostbyname failure\n");
|
BIO_printf(bio_err,"gethostbyname failure\n");
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
/* cast to short because of win16 winsock definition */
|
if (he->h_addrtype != AF_INET)
|
||||||
if ((short)he->h_addrtype != AF_INET)
|
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
|
||||||
return(0);
|
return(0);
|
||||||
@@ -540,7 +638,7 @@ err:
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int extract_port(char *str, short *port_ptr)
|
int extract_port(const char *str, short *port_ptr)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct servent *s;
|
struct servent *s;
|
||||||
@@ -572,7 +670,7 @@ static struct ghbn_cache_st
|
|||||||
static unsigned long ghbn_hits=0L;
|
static unsigned long ghbn_hits=0L;
|
||||||
static unsigned long ghbn_miss=0L;
|
static unsigned long ghbn_miss=0L;
|
||||||
|
|
||||||
static struct hostent *GetHostByName(char *name)
|
static struct hostent *GetHostByName(const char *name)
|
||||||
{
|
{
|
||||||
struct hostent *ret;
|
struct hostent *ret;
|
||||||
int i,lowi=0;
|
int i,lowi=0;
|
||||||
|
|||||||
@@ -69,9 +69,6 @@
|
|||||||
|
|
||||||
#define USE_SOCKETS
|
#define USE_SOCKETS
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
@@ -93,7 +90,8 @@
|
|||||||
|
|
||||||
#define SSL_CONNECT_NAME "localhost:4433"
|
#define SSL_CONNECT_NAME "localhost:4433"
|
||||||
|
|
||||||
/*#define TEST_CERT "client.pem" */ /* no default cert. */
|
/* no default cert. */
|
||||||
|
/*#define TEST_CERT "client.pem" */
|
||||||
|
|
||||||
#undef BUFSIZZ
|
#undef BUFSIZZ
|
||||||
#define BUFSIZZ 1024*10
|
#define BUFSIZZ 1024*10
|
||||||
@@ -186,7 +184,6 @@ static void s_time_usage(void)
|
|||||||
printf("-connect host:port - host:port to connect to (default is %s)\n",SSL_CONNECT_NAME);
|
printf("-connect host:port - host:port to connect to (default is %s)\n",SSL_CONNECT_NAME);
|
||||||
#ifdef FIONBIO
|
#ifdef FIONBIO
|
||||||
printf("-nbio - Run with non-blocking IO\n");
|
printf("-nbio - Run with non-blocking IO\n");
|
||||||
printf("-ssl2 - Just use SSLv2\n");
|
|
||||||
printf("-ssl3 - Just use SSLv3\n");
|
printf("-ssl3 - Just use SSLv3\n");
|
||||||
printf("-bugs - Turn on SSL bug compatibility\n");
|
printf("-bugs - Turn on SSL bug compatibility\n");
|
||||||
printf("-new - Just time new connections\n");
|
printf("-new - Just time new connections\n");
|
||||||
@@ -282,10 +279,6 @@ static int parseArgs(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if(strcmp(*argv,"-bugs") == 0)
|
else if(strcmp(*argv,"-bugs") == 0)
|
||||||
st_bugs=1;
|
st_bugs=1;
|
||||||
#ifndef OPENSSL_NO_SSL2
|
|
||||||
else if(strcmp(*argv,"-ssl2") == 0)
|
|
||||||
s_time_meth=SSLv2_client_method();
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_SSL3
|
#ifndef OPENSSL_NO_SSL3
|
||||||
else if(strcmp(*argv,"-ssl3") == 0)
|
else if(strcmp(*argv,"-ssl3") == 0)
|
||||||
s_time_meth=SSLv3_client_method();
|
s_time_meth=SSLv3_client_method();
|
||||||
@@ -349,13 +342,7 @@ int MAIN(int argc, char **argv)
|
|||||||
if (bio_err == NULL)
|
if (bio_err == NULL)
|
||||||
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
|
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
|
||||||
s_time_meth=SSLv23_client_method();
|
s_time_meth=SSLv23_client_method();
|
||||||
#elif !defined(OPENSSL_NO_SSL3)
|
|
||||||
s_time_meth=SSLv3_client_method();
|
|
||||||
#elif !defined(OPENSSL_NO_SSL2)
|
|
||||||
s_time_meth=SSLv2_client_method();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* parse the command line arguments */
|
/* parse the command line arguments */
|
||||||
if( parseArgs( argc, argv ) < 0 )
|
if( parseArgs( argc, argv ) < 0 )
|
||||||
@@ -436,8 +423,6 @@ int MAIN(int argc, char **argv)
|
|||||||
ver='t';
|
ver='t';
|
||||||
else if (ver == SSL3_VERSION)
|
else if (ver == SSL3_VERSION)
|
||||||
ver='3';
|
ver='3';
|
||||||
else if (ver == SSL2_VERSION)
|
|
||||||
ver='2';
|
|
||||||
else
|
else
|
||||||
ver='*';
|
ver='*';
|
||||||
}
|
}
|
||||||
@@ -529,8 +514,6 @@ next:
|
|||||||
ver='t';
|
ver='t';
|
||||||
else if (ver == SSL3_VERSION)
|
else if (ver == SSL3_VERSION)
|
||||||
ver='3';
|
ver='3';
|
||||||
else if (ver == SSL2_VERSION)
|
|
||||||
ver='2';
|
|
||||||
else
|
else
|
||||||
ver='*';
|
ver='*';
|
||||||
}
|
}
|
||||||
@@ -556,7 +539,7 @@ end:
|
|||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/*-
|
||||||
* doConnection - make a connection
|
* doConnection - make a connection
|
||||||
* Args:
|
* Args:
|
||||||
* scon = earlier ssl connection for session id, or NULL
|
* scon = earlier ssl connection for session id, or NULL
|
||||||
|
|||||||
413
apps/server.pem
413
apps/server.pem
@@ -1,369 +1,52 @@
|
|||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
subject= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = Test Server Cert
|
||||||
subject= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit)
|
issuer= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = OpenSSL Test Intermediate CA
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB6TCCAVICAQYwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
|
MIID5zCCAs+gAwIBAgIJALnu1NlVpZ6zMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
|
BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVT
|
||||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNMDAxMDE2MjIzMTAzWhcNMDMwMTE0
|
VElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQDDBxPcGVuU1NMIFRlc3QgSW50ZXJt
|
||||||
MjIzMTAzWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
|
ZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoXDTIxMTAxNjE0MDE0OFowZDELMAkG
|
||||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl
|
A1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBU
|
||||||
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP
|
RVNUSU5HIFBVUlBPU0VTIE9OTFkxGTAXBgNVBAMMEFRlc3QgU2VydmVyIENlcnQw
|
||||||
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2//
|
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDzhPOSNtyyRspmeuUpxfNJ
|
||||||
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCT0grFQeZaqYb5EYfk20XixZV4
|
KCLTuf7g3uQ4zu4iHOmRO5TQci+HhVlLZrHF9XqFXcIP0y4pWDbMSGuiorUmzmfi
|
||||||
GmyAbXMftG1Eo7qGiMhYzRwGNWxEYojf5PZkYZXvSqZ/ZXHXa4g59jK/rJNnaVGM
|
R7bfSdI/+qIQt8KXRH6HNG1t8ou0VSvWId5TS5Dq/er5ODUr9OaaDva7EquHIcMv
|
||||||
k+xIX8mxQvlV0n5O9PIha5BX5teZnkHKgL8aKKLKW1BK7YTngsfSzzaeame5iKfz
|
vPQGuI+OEAcnleVCy9HVEIySrO4P3CNIicnGkwwiAud05yUAq/gPXBC1hTtmlPD7
|
||||||
itAE+OjGF+PFKbwX8Q==
|
TVcGVSEiJdvzqqlgv02qedGrkki6GY4S7GjZxrrf7Foc2EP+51LJzwLQx3/JfrCU
|
||||||
|
41NEWAsu/Sl0tQabXESN+zJ1pDqoZ3uHMgpQjeGiE0olr+YcsSW/tJmiU9OiAr8R
|
||||||
|
AgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwLAYJYIZI
|
||||||
|
AYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQW
|
||||||
|
BBSCvM8AABPR9zklmifnr9LvIBturDAfBgNVHSMEGDAWgBQ2w2yI55X+sL3szj49
|
||||||
|
hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEAqb1NV0B0/pbpK9Z4/bNjzPQLTRLK
|
||||||
|
WnSNm/Jh5v0GEUOE/Beg7GNjNrmeNmqxAlpqWz9qoeoFZax+QBpIZYjROU3TS3fp
|
||||||
|
yLsrnlr0CDQ5R7kCCDGa8dkXxemmpZZLbUCpW2Uoy8sAA4JjN9OtsZY7dvUXFgJ7
|
||||||
|
vVNTRnI01ghknbtD+2SxSQd3CWF6QhcRMAzZJ1z1cbbwGDDzfvGFPzJ+Sq+zEPds
|
||||||
|
xoVLLSetCiBc+40ZcDS5dV98h9XD7JMTQfxzA7mNGv73JoZJA6nFgj+ADSlJsY/t
|
||||||
|
JBv+z1iQRueoh9Qeee+ZbRifPouCB8FDx+AltvHTANdAq0t/K3o+pplMVA==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD
|
MIIEpAIBAAKCAQEA84TzkjbcskbKZnrlKcXzSSgi07n+4N7kOM7uIhzpkTuU0HIv
|
||||||
TGiXav6ooKXfX3j/7tdkuD8Ey2//Kv7+ue0CAwEAAQJAN6W31vDEP2DjdqhzCDDu
|
h4VZS2axxfV6hV3CD9MuKVg2zEhroqK1Js5n4ke230nSP/qiELfCl0R+hzRtbfKL
|
||||||
OA4NACqoiFqyblo7yc2tM4h4xMbC3Yx5UKMN9ZkCtX0gzrz6DyF47bdKcWBzNWCj
|
tFUr1iHeU0uQ6v3q+Tg1K/Tmmg72uxKrhyHDL7z0BriPjhAHJ5XlQsvR1RCMkqzu
|
||||||
gQIhANEoojVt7hq+SQ6MCN6FTAysGgQf56Q3TYoJMoWvdiXVAiEAw3e3rc+VJpOz
|
D9wjSInJxpMMIgLndOclAKv4D1wQtYU7ZpTw+01XBlUhIiXb86qpYL9NqnnRq5JI
|
||||||
rHuDo6bgpjUAAXM+v3fcpsfZSNO6V7kCIQCtbVjanpUwvZkMI9by02oUk9taki3b
|
uhmOEuxo2ca63+xaHNhD/udSyc8C0Md/yX6wlONTRFgLLv0pdLUGm1xEjfsydaQ6
|
||||||
PzPfAfNPYAbCJQIhAJXNQDWyqwn/lGmR11cqY2y9nZ1+5w3yHGatLrcDnQHxAiEA
|
qGd7hzIKUI3hohNKJa/mHLElv7SZolPTogK/EQIDAQABAoIBAADq9FwNtuE5IRQn
|
||||||
vnlEGo8K85u+KwIOimM48ZG8oTk7iFdkqLJR1utT3aU=
|
zGtO4q7Y5uCzZ8GDNYr9RKp+P2cbuWDbvVAecYq2NV9QoIiWJOAYZKklOvekIju3
|
||||||
|
r0UZLA0PRiIrTg6NrESx3JrjWDK8QNlUO7CPTZ39/K+FrmMkV9lem9yxjJjyC34D
|
||||||
|
AQB+YRTx+l14HppjdxNwHjAVQpIx/uO2F5xAMuk32+3K+pq9CZUtrofe1q4Agj9R
|
||||||
|
5s8mSy9pbRo9kW9wl5xdEotz1LivFOEiqPUJTUq5J5PeMKao3vdK726XI4Z455Nm
|
||||||
|
W2/MA0YV0ug2FYinHcZdvKM6dimH8GLfa3X8xKRfzjGjTiMSwsdjgMa4awY3tEHH
|
||||||
|
674jhAECgYEA/zqMrc0zsbNk83sjgaYIug5kzEpN4ic020rSZsmQxSCerJTgNhmg
|
||||||
|
utKSCt0Re09Jt3LqG48msahX8ycqDsHNvlEGPQSbMu9IYeO3Wr3fAm75GEtFWePY
|
||||||
|
BhM73I7gkRt4s8bUiUepMG/wY45c5tRF23xi8foReHFFe9MDzh8fJFECgYEA9EFX
|
||||||
|
4qAik1pOJGNei9BMwmx0I0gfVEIgu0tzeVqT45vcxbxr7RkTEaDoAG6PlbWP6D9a
|
||||||
|
WQNLp4gsgRM90ZXOJ4up5DsAWDluvaF4/omabMA+MJJ5kGZ0gCj5rbZbKqUws7x8
|
||||||
|
bp+6iBfUPJUbcqNqFmi/08Yt7vrDnMnyMw2A/sECgYEAiiuRMxnuzVm34hQcsbhH
|
||||||
|
6ymVqf7j0PW2qK0F4H1ocT9qhzWFd+RB3kHWrCjnqODQoI6GbGr/4JepHUpre1ex
|
||||||
|
4UEN5oSS3G0ru0rC3U4C59dZ5KwDHFm7ffZ1pr52ljfQDUsrjjIMRtuiwNK2OoRa
|
||||||
|
WSsqiaL+SDzSB+nBmpnAizECgYBdt/y6rerWUx4MhDwwtTnel7JwHyo2MDFS6/5g
|
||||||
|
n8qC2Lj6/fMDRE22w+CA2esp7EJNQJGv+b27iFpbJEDh+/Lf5YzIT4MwVskQ5bYB
|
||||||
|
JFcmRxUVmf4e09D7o705U/DjCgMH09iCsbLmqQ38ONIRSHZaJtMDtNTHD1yi+jF+
|
||||||
|
OT43gQKBgQC/2OHZoko6iRlNOAQ/tMVFNq7fL81GivoQ9F1U0Qr+DH3ZfaH8eIkX
|
||||||
|
xT0ToMPJUzWAn8pZv0snA0um6SIgvkCuxO84OkANCVbttzXImIsL7pFzfcwV/ERK
|
||||||
|
UM6j0ZuSMFOCr/lGPAoOQU0fskidGEHi1/kW+suSr28TqsyYZpwBDQ==
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
subject=/C=US/O=AT&T Bell Laboratories/OU=Prototype Research CA
|
|
||||||
issuer= /C=US/O=AT&T Bell Laboratories/OU=Prototype Research CA
|
|
||||||
notBefore=950413210656Z
|
|
||||||
notAfter =970412210656Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICCDCCAXECAQAwDQYJKoZIhvcNAQEEBQAwTjELMAkGA1UEBhMCVVMxHzAdBgNV
|
|
||||||
BAoUFkFUJlQgQmVsbCBMYWJvcmF0b3JpZXMxHjAcBgNVBAsUFVByb3RvdHlwZSBS
|
|
||||||
ZXNlYXJjaCBDQTAeFw05NTA0MTMyMTA2NTZaFw05NzA0MTIyMTA2NTZaME4xCzAJ
|
|
||||||
BgNVBAYTAlVTMR8wHQYDVQQKFBZBVCZUIEJlbGwgTGFib3JhdG9yaWVzMR4wHAYD
|
|
||||||
VQQLFBVQcm90b3R5cGUgUmVzZWFyY2ggQ0EwgZwwDQYJKoZIhvcNAQEBBQADgYoA
|
|
||||||
MIGGAoGAebOmgtSCl+wCYZc86UGYeTLY8cjmW2P0FN8ToT/u2pECCoFdrlycX0OR
|
|
||||||
3wt0ZhpFXLVNeDnHwEE9veNUih7pCL2ZBFqoIoQkB1lZmXRiVtjGonz8BLm/qrFM
|
|
||||||
YHb0lme/Ol+s118mwKVxnn6bSAeI/OXKhLaVdYZWk+aEaxEDkVkCAQ8wDQYJKoZI
|
|
||||||
hvcNAQEEBQADgYEAAZMG14lZmZ8bahkaHaTV9dQf4p2FZiQTFwHP9ZyGsXPC+LT5
|
|
||||||
dG5iTaRmyjNIJdPWohZDl97kAci79aBndvuEvRKOjLHs3WRGBIwERnAcnY9Mz8u/
|
|
||||||
zIHK23PjYVxGGaZd669OJwD0CYyqH22HH9nFUGaoJdsv39ChW0NRdLE9+y8=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICJjCCAY8CAQAwDQYJKoZIhvcNAQEEBQAwXDELMAkGA1UEBhMCQVUxEzARBgNV
|
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYD
|
|
||||||
VQQDExNUZXN0IFBDQSAoMTAyNCBiaXQpMB4XDTk3MDYwOTEzNTc0M1oXDTAxMDYw
|
|
||||||
OTEzNTc0M1owWzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
|
|
||||||
BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYDVQQDExJUZXN0IENBICgxMDI0
|
|
||||||
IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKO7o8t116VP6cgybTsZ
|
|
||||||
DCZhr95nYlZuya3aCi1IKoztqwWnjbmDFIriOqGFPrZQ+moMETC9D59iRW/dFXSv
|
|
||||||
1F65ka/XY2hLh9exCCo7XuUcDs53Qp3bI3AmMqHjgzE8oO3ajyJAzJkTTOUecQU2
|
|
||||||
mw/gI4tMM0LqWMQS7luTy4+xAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAM7achv3v
|
|
||||||
hLQJcv/65eGEpBXM40ZDVoFQFFJWaY5p883HTqLB1x4FdzsXHH0QKBTcKpWwqyu4
|
|
||||||
YDm3fb8oDugw72bCzfyZK/zVZPR/hVlqI/fvU109Qoc+7oPvIXWky71HfcK6ZBCA
|
|
||||||
q30KIqGM/uoM60INq97qjDmCJapagcNBGQs=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICXQIBAAKBgQCju6PLddelT+nIMm07GQwmYa/eZ2JWbsmt2gotSCqM7asFp425
|
|
||||||
gxSK4jqhhT62UPpqDBEwvQ+fYkVv3RV0r9ReuZGv12NoS4fXsQgqO17lHA7Od0Kd
|
|
||||||
2yNwJjKh44MxPKDt2o8iQMyZE0zlHnEFNpsP4COLTDNC6ljEEu5bk8uPsQIDAQAB
|
|
||||||
AoGAVZmpFZsDZfr0l2S9tLLwpjRWNOlKATQkno6q2WesT0eGLQufTciY+c8ypfU6
|
|
||||||
hyio8r5iUl/VhhdjhAtKx1mRpiotftHo/eYf8rtsrnprOnWG0bWjLjtIoMbcxGn2
|
|
||||||
J3bN6LJmbJMjDs0eJ3KnTu646F3nDUw2oGAwmpzKXA1KAP0CQQDRvQhxk2D3Pehs
|
|
||||||
HvG665u2pB5ipYQngEFlZO7RHJZzJOZEWSLuuMqaF/7pTfA5jiBvWqCgJeCRRInL
|
|
||||||
21ru4dlPAkEAx9jj7BgKn5TYnMoBSSe0afjsV9oApVpN1Nacb1YDtCwy+scp3++s
|
|
||||||
nFxlv98wxIlSdpwMUn+AUWfjiWR7Tu/G/wJBAJ/KjwZIrFVxewP0x2ILYsTRYLzz
|
|
||||||
MS4PDsO7FB+I0i7DbBOifXS2oNSpd3I0CNMwrxFnUHzynpbOStVfN3ZL5w0CQQCa
|
|
||||||
pwFahxBRhkJKsxhjoFJBX9yl75JoY4Wvm5Tbo9ih6UJaRx3kqfkN14L2BKYcsZgb
|
|
||||||
KY9vmDOYy6iNfjDeWTfJAkBkfPUb8oTJ/nSP5zN6sqGxSY4krc4xLxpRmxoJ8HL2
|
|
||||||
XfhqXkTzbU13RX9JJ/NZ8vQN9Vm2NhxRGJocQkmcdVtJ
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
MIICYDCCAiACAgEoMAkGBSsOAwINBQAwfDELMAkGA1UEBhMCVVMxNjA0BgNVBAoT
|
|
||||||
LU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEZ
|
|
||||||
MBcGA1UECxMQVGVzdCBFbnZpcm9ubWVudDEaMBgGA1UECxMRRFNTLU5BU0EtUGls
|
|
||||||
b3QtQ0EwHhcNOTYwMjI2MTYzMjQ1WhcNOTcwMjI1MTYzMjQ1WjB8MQswCQYDVQQG
|
|
||||||
EwJVUzE2MDQGA1UEChMtTmF0aW9uYWwgQWVyb25hdXRpY3MgYW5kIFNwYWNlIEFk
|
|
||||||
bWluaXN0cmF0aW9uMRkwFwYDVQQLExBUZXN0IEVudmlyb25tZW50MRowGAYDVQQL
|
|
||||||
ExFEU1MtTkFTQS1QaWxvdC1DQTCB8jAJBgUrDgMCDAUAA4HkADCB4AJBAMA/ssKb
|
|
||||||
hPNUG7ZlASfVwEJU21O5OyF/iyBzgHI1O8eOhJGUYO8cc8wDMjR508Mr9cp6Uhl/
|
|
||||||
ZB7FV5GkLNEnRHYCQQDUEaSg45P2qrDwixTRhFhmWz5Nvc4lRFQ/42XPcchiJBLb
|
|
||||||
bn3QK74T2IxY1yY+kCNq8XrIqf5fJJzIH0J/xUP3AhUAsg2wsQHfDGYk/BOSulX3
|
|
||||||
fVd0geUCQQCzCFUQAh+ZkEmp5804cs6ZWBhrUAfnra8lJItYo9xPcXgdIfLfibcX
|
|
||||||
R71UsyO77MRD7B0+Ag2tq794IleCVcEEMAkGBSsOAwINBQADLwAwLAIUUayDfreR
|
|
||||||
Yh2WeU86/pHNdkUC1IgCFEfxe1f0oMpxJyrJ5XIxTi7vGdoK
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICGTCCAdgCAwCqTDAJBgUrDgMCDQUAMHwxCzAJBgNVBAYTAlVTMTYwNAYDVQQK
|
|
||||||
Ey1OYXRpb25hbCBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x
|
|
||||||
GTAXBgNVBAsTEFRlc3QgRW52aXJvbm1lbnQxGjAYBgNVBAsTEURTUy1OQVNBLVBp
|
|
||||||
bG90LUNBMB4XDTk2MDUxNDE3MDE0MVoXDTk3MDUxNDE3MDE0MVowMzELMAkGA1UE
|
|
||||||
BhMCQVUxDzANBgNVBAoTBk1pbmNvbTETMBEGA1UEAxMKRXJpYyBZb3VuZzCB8jAJ
|
|
||||||
BgUrDgMCDAUAA4HkADCB4AJBAKbfHz6vE6pXXMTpswtGUec2tvnfLJUsoxE9qs4+
|
|
||||||
ObZX7LmLvragNPUeiTJx7UOWZ5DfBj6bXLc8eYne0lP1g3ACQQDUEaSg45P2qrDw
|
|
||||||
ixTRhFhmWz5Nvc4lRFQ/42XPcchiJBLbbn3QK74T2IxY1yY+kCNq8XrIqf5fJJzI
|
|
||||||
H0J/xUP3AhUAsg2wsQHfDGYk/BOSulX3fVd0geUCQQCzCFUQAh+ZkEmp5804cs6Z
|
|
||||||
WBhrUAfnra8lJItYo9xPcXgdIfLfibcXR71UsyO77MRD7B0+Ag2tq794IleCVcEE
|
|
||||||
MAkGBSsOAwINBQADMAAwLQIUWsuuJRE3VT4ueWkWMAJMJaZjj1ECFQCYY0zX4bzM
|
|
||||||
LC7obsrHD8XAHG+ZRG==
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjEM
|
|
||||||
MAoGA1UEChMDVUNMMRgwFgYDVQQLEw9JQ0UtVEVMIFByb2plY3QxFTATBgNVBAMT
|
|
||||||
DFRydXN0RmFjdG9yeTAeFw05NzA0MjIxNDM5MTRaFw05ODA0MjIxNDM5MTRaMEwx
|
|
||||||
CzAJBgNVBAYTAkdCMQwwCgYDVQQKEwNVQ0wxGDAWBgNVBAsTD0lDRS1URUwgUHJv
|
|
||||||
amVjdDEVMBMGA1UEAxMMVHJ1c3RGYWN0b3J5MIGcMAoGBFUIAQECAgQAA4GNADCB
|
|
||||||
iQKBgQCEieR8NcXkUW1f0G6aC6u0i8q/98JqS6RxK5YmHIGKCkuTWAUjzLfUa4dt
|
|
||||||
U9igGCjTuxaDqlzEim+t/02pmiBZT9HaX++35MjQPUWmsChcYU5WyzGErXi+rQaw
|
|
||||||
zlwS73zM8qiPj/97lXYycWhgL0VaiDSPxRXEUdWoaGruom4mNQIDAQABo0IwQDAd
|
|
||||||
BgNVHQ4EFgQUHal1LZr7oVg5z6lYzrhTgZRCmcUwDgYDVR0PAQH/BAQDAgH2MA8G
|
|
||||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAfaggfl6FZoioecjv0dq8
|
|
||||||
/DXo/u11iMZvXn08gjX/zl2b4wtPbShOSY5FhkSm8GeySasz+/Nwb/uzfnIhokWi
|
|
||||||
lfPZHtlCWtXbIy/TN51eJyq04ceDCQDWvLC2enVg9KB+GJ34b5c5VaPRzq8MBxsA
|
|
||||||
S7ELuYGtmYgYm9NZOIr7yU0=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB6jCCAZQCAgEtMA0GCSqGSIb3DQEBBAUAMIGAMQswCQYDVQQGEwJVUzE2MDQG
|
|
||||||
A1UEChMtTmF0aW9uYWwgQWVyb25hdXRpY3MgYW5kIFNwYWNlIEFkbWluaXN0cmF0
|
|
||||||
aW9uMRkwFwYDVQQLExBUZXN0IEVudmlyb25tZW50MR4wHAYDVQQLExVNRDUtUlNB
|
|
||||||
LU5BU0EtUGlsb3QtQ0EwHhcNOTYwNDMwMjIwNTAwWhcNOTcwNDMwMjIwNTAwWjCB
|
|
||||||
gDELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu
|
|
||||||
ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEZMBcGA1UECxMQVGVzdCBFbnZpcm9ubWVu
|
|
||||||
dDEeMBwGA1UECxMVTUQ1LVJTQS1OQVNBLVBpbG90LUNBMFkwCgYEVQgBAQICAgAD
|
|
||||||
SwAwSAJBALmmX5+GqAvcrWK13rfDrNX9UfeA7f+ijyBgeFQjYUoDpFqapw4nzQBL
|
|
||||||
bAXug8pKkRwa2Zh8YODhXsRWu2F/UckCAwEAATANBgkqhkiG9w0BAQQFAANBAH9a
|
|
||||||
OBA+QCsjxXgnSqHx04gcU8S49DVUb1f2XVoLnHlIb8RnX0k5O6mpHT5eti9bLkiW
|
|
||||||
GJNMJ4L0AJ/ac+SmHZc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
|
|
||||||
BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
|
|
||||||
HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
|
|
||||||
IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
|
|
||||||
MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
|
|
||||||
aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
|
|
||||||
GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
|
|
||||||
ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
|
|
||||||
zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
|
|
||||||
YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
|
|
||||||
hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
|
|
||||||
cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
|
|
||||||
YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICJzCCAZACAQAwDQYJKoZIhvcNAQEEBQAwXDELMAkGA1UEBhMCQVUxEzARBgNV
|
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYD
|
|
||||||
VQQDExNUZXN0IFBDQSAoMTAyNCBiaXQpMB4XDTk3MDYwOTEzNTczN1oXDTAxMDYw
|
|
||||||
OTEzNTczN1owXDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
|
|
||||||
BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDExNUZXN0IFBDQSAoMTAy
|
|
||||||
NCBiaXQpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdoWk/3+WcMlfjIrkg
|
|
||||||
40ketmnQaEogQe1LLcuOJV6rKfUSAsPgwgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp
|
|
||||||
22Jp85PmemiDzyUIStwk72qhp1imbANZvlmlCFKiQrjUyuDfu4TABmn+kkt3vR1Y
|
|
||||||
BEOGt+IFye1UBVSATVdRJ2UVhwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABNA1u/S
|
|
||||||
Cg/LJZWb7GliiKJsvuhxlE4E5JxQF2zMub/CSNbF97//tYSyj96sxeFQxZXbcjm9
|
|
||||||
xt6mr/xNLA4szNQMJ4P+L7b5e/jC5DSqlwS+CUYJgaFs/SP+qJoCSu1bR3IM9XWO
|
|
||||||
cRBpDmcBbYLkSyB92WURvsZ1LtjEcn+cdQVI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICXAIBAAKBgQCdoWk/3+WcMlfjIrkg40ketmnQaEogQe1LLcuOJV6rKfUSAsPg
|
|
||||||
wgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp22Jp85PmemiDzyUIStwk72qhp1imbANZ
|
|
||||||
vlmlCFKiQrjUyuDfu4TABmn+kkt3vR1YBEOGt+IFye1UBVSATVdRJ2UVhwIDAQAB
|
|
||||||
AoGAba4fTtuap5l7/8ZsbE7Z1O32KJY4ZcOZukLOLUUhXxXduT+FTgGWujc0/rgc
|
|
||||||
z9qYCLlNZHOouMYTgtSfYvuMuLZ11VIt0GYH+nRioLShE59Yy+zCRyC+gPigS1kz
|
|
||||||
xvo14AsOIPYV14Tk/SsHyq6E0eTk7VzaIE197giiINUERPECQQDSKmtPTh/lRKw7
|
|
||||||
HSZSM0I1mFWn/1zqrAbontRQY5w98QWIOe5qmzYyFbPXYT3d9BzlsMyhgiRNoBbD
|
|
||||||
yvohSHXJAkEAwAHx6ezAZeWWzD5yXD36nyjpkVCw7Tk7TSmOceLJMWt1QcrCfqlS
|
|
||||||
xA5jjpQ6Z8suU5DdtWAryM2sAir1WisYzwJAd6Zcx56jvAQ3xcPXsE6scBTVFzrj
|
|
||||||
7FqZ6E+cclPzfLQ+QQsyOBE7bpI6e/FJppY26XGZXo3YGzV8IGXrt40oOQJALETG
|
|
||||||
h86EFXo3qGOFbmsDy4pdP5nBERCu8X1xUCSfintiD4c2DInxgS5oGclnJeMcjTvL
|
|
||||||
QjQoJCX3UJCi/OUO1QJBAKgcDHWjMvt+l1pjJBsSEZ0HX9AAIIVx0RQmbFGS+F2Q
|
|
||||||
hhu5l77WnnZOQ9vvhV5u7NPCUF9nhU3jh60qWWO8mkc=
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
subject=/C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
|
||||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
|
||||||
notBefore=941104185834Z
|
|
||||||
notAfter =991103185834Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICIzCCAZACBQJBAAAWMA0GCSqGSIb3DQEBAgUAMFwxCzAJBgNVBAYTAlVTMSAw
|
|
||||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVy
|
|
||||||
Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDQxODU4MzRaFw05
|
|
||||||
OTExMDMxODU4MzRaMFwxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBT
|
|
||||||
ZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVyY2lhbCBDZXJ0aWZpY2F0aW9u
|
|
||||||
IEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCk+4Fie84QJ93o
|
|
||||||
975sbsZwmdu41QUDaSiCnHJ/lj+O7Kwpkj+KFPhCdr69XQO5kNTQvAayUTNfxMK/
|
|
||||||
touPmbZiImDd298ggrTKoi8tUO2UMt7gVY3UaOLgTNLNBRYulWZcYVI4HlGogqHE
|
|
||||||
7yXpCuaLK44xZtn42f29O2nZ6wIDAQABMA0GCSqGSIb3DQEBAgUAA34AdrW2EP4j
|
|
||||||
9/dZYkuwX5zBaLxJu7NJbyFHXSudVMQAKD+YufKKg5tgf+tQx6sFEC097TgCwaVI
|
|
||||||
0v5loMC86qYjFmZsGySp8+x5NRhPJsjjr1BKx6cxa9B8GJ1Qv6km+iYrRpwUqbtb
|
|
||||||
MJhCKLVLU7tDCZJAuqiqWqTGtotXTcU=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
|
||||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
|
||||||
notBefore=941109235417Z
|
|
||||||
notAfter =991231235417Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICKTCCAZYCBQJBAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw
|
|
||||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl
|
|
||||||
IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDkyMzU0MTda
|
|
||||||
Fw05OTEyMzEyMzU0MTdaMF8xCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
|
|
||||||
YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJlIFNlcnZlciBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCSznrB
|
|
||||||
roM+WqqJg1esJQF2DK2ujiw3zus1eGRUA+WEQFHJv48I4oqCCNIWhjdV6bEhAq12
|
|
||||||
aIGaBaJLyUslZiJWbIgHj/eBWW2EB2VwE3F2Ppt3TONQiVaYSLkdpykaEy5KEVmc
|
|
||||||
HhXVSVQsczppgrGXOZxtcGdI5d0t1sgeewIDAQABMA0GCSqGSIb3DQEBAgUAA34A
|
|
||||||
iNHReSHO4ovo+MF9NFM/YYPZtgs4F7boviGNjwC4i1N+RGceIr2XJ+CchcxK9oU7
|
|
||||||
suK+ktPlDemvXA4MRpX/oRxePug2WHpzpgr4IhFrwwk4fia7c+8AvQKk8xQNMD9h
|
|
||||||
cHsg/jKjn7P0Z1LctO6EjJY2IN6BCINxIYoPnqk=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
subject=/C=ZA/SP=Western Cape/L=Cape Town/O=Thawte Consulting cc
|
|
||||||
/OU=Certification Services Division/CN=Thawte Server CA
|
|
||||||
/Email=server-certs@thawte.com
|
|
||||||
issuer= /C=ZA/SP=Western Cape/L=Cape Town/O=Thawte Consulting cc
|
|
||||||
/OU=Certification Services Division/CN=Thawte Server CA
|
|
||||||
/Email=server-certs@thawte.com
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC+TCCAmICAQAwDQYJKoZIhvcNAQEEBQAwgcQxCzAJBgNVBAYTAlpBMRUwEwYD
|
|
||||||
VQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
|
|
||||||
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
|
||||||
dmljZXMgRGl2aXNpb24xGTAXBgNVBAMTEFRoYXd0ZSBTZXJ2ZXIgQ0ExJjAkBgkq
|
|
||||||
hkiG9w0BCQEWF3NlcnZlci1jZXJ0c0B0aGF3dGUuY29tMB4XDTk2MDcyNzE4MDc1
|
|
||||||
N1oXDTk4MDcyNzE4MDc1N1owgcQxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0
|
|
||||||
ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENv
|
|
||||||
bnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
|
|
||||||
aXNpb24xGTAXBgNVBAMTEFRoYXd0ZSBTZXJ2ZXIgQ0ExJjAkBgkqhkiG9w0BCQEW
|
|
||||||
F3NlcnZlci1jZXJ0c0B0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
|
|
||||||
iQKBgQDTpFBuyP9Wa+bPXbbqDGh1R6KqwtqEJfyo9EdR2oW1IHSUhh4PdcnpCGH1
|
|
||||||
Bm0wbhUZAulSwGLbTZme4moMRDjN/r7jZAlwxf6xaym2L0nIO9QnBCUQly/nkG3A
|
|
||||||
KEKZ10xD3sP1IW1Un13DWOHA5NlbsLjctHvfNjrCtWYiEtaHDQIDAQABMA0GCSqG
|
|
||||||
SIb3DQEBBAUAA4GBAIsvn7ifX3RUIrvYXtpI4DOfARkTogwm6o7OwVdl93yFhDcX
|
|
||||||
7h5t0XZ11MUAMziKdde3rmTvzUYIUCYoY5b032IwGMTvdiclK+STN6NP2m5nvFAM
|
|
||||||
qJT5gC5O+j/jBuZRQ4i0AMYQr5F4lT8oBJnhgafw6PL8aDY2vMHGSPl9+7uf
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDDTCCAnYCAQAwDQYJKoZIhvcNAQEEBQAwgc4xCzAJBgNVBAYTAlpBMRUwEwYD
|
|
||||||
VQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
|
|
||||||
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
|
||||||
dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBD
|
|
||||||
QTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTAeFw05
|
|
||||||
NjA3MjcxODA3MTRaFw05ODA3MjcxODA3MTRaMIHOMQswCQYDVQQGEwJaQTEVMBMG
|
|
||||||
A1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xHTAbBgNVBAoT
|
|
||||||
FFRoYXd0ZSBDb25zdWx0aW5nIGNjMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNl
|
|
||||||
cnZpY2VzIERpdmlzaW9uMSEwHwYDVQQDExhUaGF3dGUgUHJlbWl1bSBTZXJ2ZXIg
|
|
||||||
Q0ExKDAmBgkqhkiG9w0BCQEWGXByZW1pdW0tc2VydmVyQHRoYXd0ZS5jb20wgZ8w
|
|
||||||
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANI2NmqL18JbntqBQWKPOO5JBFXW0O8c
|
|
||||||
G5UWR+8YSDU6UvQragaPOy/qVuOvho2eF/eetGV1Ak3vywmiIVHYm9Bn0LoNkgYU
|
|
||||||
c9STy5cqAJxcTgy8+hVS/PJEbtoRSm4Iny8t4/mqOoZztkZTWMiJBb2DEbhzP6oH
|
|
||||||
jfRCTedAnRw3AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAutFIgTRZVYerIZfL9lvR
|
|
||||||
w9Eifvvo5KTZ3h+Bj+VzNnyw4Qc/IyXkPOu6SIiH9LQ3sCmWBdxpe+qr4l77rLj2
|
|
||||||
GYuMtESFfn1XVALzkYgC7JcPuTOjMfIiMByt+uFf8AV8x0IW/Qkuv+hEQcyM9vxK
|
|
||||||
3VZdLbCVIhNoEsysrxCpxcI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
Tims test GCI CA
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
|
|
||||||
cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
|
|
||||||
gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
|
|
||||||
cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
|
|
||||||
dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
|
|
||||||
AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
|
|
||||||
OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
|
|
||||||
AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
|
|
||||||
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
|
|
||||||
IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
|
|
||||||
VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
|
|
||||||
NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
|
|
||||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
|
|
||||||
I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
|
|
||||||
RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
|
|
||||||
KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
|
|
||||||
Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
|
|
||||||
9w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
|
|
||||||
WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIAwgKADAgECAgEAMA0GCSqGSIb3DQEBBAUAMGIxETAPBgNVBAcTCEludGVybmV0
|
|
||||||
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xh
|
|
||||||
c3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NjA0MDgxMDIwMjda
|
|
||||||
Fw05NzA0MDgxMDIwMjdaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5W
|
|
||||||
ZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIElu
|
|
||||||
ZGl2aWR1YWwgU3Vic2NyaWJlcjCAMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2
|
|
||||||
FKbPTdAFDdjKI9BvqrQpkmOOLPhvltcunXZLEbE2jVfJw/0cxrr+Hgi6M8qV6r7j
|
|
||||||
W80GqLd5HUQq7XPysVKDaBBwZJHXPmv5912dFEObbpdFmIFH0S3L3bty10w/cari
|
|
||||||
QPJUObwW7s987LrbP2wqsxaxhhKdrpM01bjV0Pc+qQIDAQABAAAAADANBgkqhkiG
|
|
||||||
9w0BAQQFAAOBgQA+1nJryNt8VBRjRr07ArDAV/3jAH7GjDc9jsrxZS68ost9v06C
|
|
||||||
TvTNKGL+LISNmFLXl+JXhgGB0JZ9fvyYzNgHQ46HBUng1H6voalfJgS2KdEo50wW
|
|
||||||
8EFZYMDkT1k4uynwJqkVN2QJK/2q4/A/VCov5h6SlM8Affg2W+1TLqvqkwAA
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
subject=/L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
|
|
||||||
issuer= /L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEkzCCA/ygAwIBAgIRANDTUpSRL3nTFeMrMayFSPAwDQYJKoZIhvcNAQECBQAw
|
|
||||||
YjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQw
|
|
||||||
MgYDVQQLEytWZXJpU2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3Jp
|
|
||||||
YmVyMB4XDTk2MDYwNDAwMDAwMFoXDTk4MDYwNDIzNTk1OVowYjERMA8GA1UEBxMI
|
|
||||||
SW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJp
|
|
||||||
U2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVyMIGfMA0GCSqG
|
|
||||||
SIb3DQEBAQUAA4GNADCBiQKBgQC6A+2czKGRcYMfm8gdnk+0de99TDDzsqo0v5nb
|
|
||||||
RsbUmMcdRQ7nsMbRWe0SAb/9QoLTZ/cJ0iOBqdrkz7UpqqKarVoTSdlSMVM92tWp
|
|
||||||
3bJncZHQD1t4xd6lQVdI1/T6R+5J0T1ukOdsI9Jmf+F28S6g3R3L1SFwiHKeZKZv
|
|
||||||
z+793wIDAQABo4ICRzCCAkMwggIpBgNVHQMBAf8EggIdMIICGTCCAhUwggIRBgtg
|
|
||||||
hkgBhvhFAQcBATCCAgAWggGrVGhpcyBjZXJ0aWZpY2F0ZSBpbmNvcnBvcmF0ZXMg
|
|
||||||
YnkgcmVmZXJlbmNlLCBhbmQgaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRv
|
|
||||||
LCB0aGUgVmVyaVNpZ24gQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQg
|
|
||||||
KENQUyksIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQ
|
|
||||||
Uy0xLjA7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBv
|
|
||||||
ciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1v
|
|
||||||
dW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04ODMw
|
|
||||||
IENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0cyBS
|
|
||||||
ZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJ
|
|
||||||
TElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMC8w
|
|
||||||
LRYraHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTLTEuMDAU
|
|
||||||
BglghkgBhvhCAQEBAf8EBAMCAgQwDQYJKoZIhvcNAQECBQADgYEApRJRkNBqLLgs
|
|
||||||
53IR/d18ODdLOWMTZ+QOOxBrq460iBEdUwgF8vmPRX1ku7UiDeNzaLlurE6eFqHq
|
|
||||||
2zPyK5j60zfTLVJMWKcQWwTJLjHtXrW8pxhNtFc6Fdvy5ZkHnC/9NIl7/t4U6WqB
|
|
||||||
p4y+p7SdMIkEwIZfds0VbnQyX5MRUJY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICMTCCAZoCBQKhAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
|
|
||||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMg
|
|
||||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
|
|
||||||
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
|
|
||||||
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyVxZ
|
|
||||||
nvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqoRAWq7AMfeH+ek7ma
|
|
||||||
AKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4rCNfcCk2pMmG57Ga
|
|
||||||
IMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATANBgkqhkiG9w0BAQIF
|
|
||||||
AAOBgQB1Zmw+0c2B27X4LzZRtvdCvM1Cr9wO+hVs+GeTVzrrtpLotgHKjLeOQ7RJ
|
|
||||||
Zfk+7r11Ri7J/CVdqMcvi5uPaM+0nJcYwE3vH9mvgrPmZLiEXIqaB1JDYft0nls6
|
|
||||||
NvxMsvwaPxUupVs8G5DsiCnkWRb5zget7Ond2tIxik/W2O8XjQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
|
||||||
issuer= /C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICMTCCAZoCBQKmAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
|
|
||||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMg
|
|
||||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
|
|
||||||
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
|
|
||||||
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0LJ1
|
|
||||||
9njQrlpQ9OlQqZ+M1++RlHDo0iSQdomF1t+s5gEXMoDwnZNHvJplnR+Xrr/phnVj
|
|
||||||
IIm9gFidBAydqMEk6QvlMXi9/C0MN2qeeIDpRnX57aP7E3vIwUzSo+/1PLBij0pd
|
|
||||||
O92VZ48TucE81qcmm+zDO3rZTbxtm+gVAePwR6kCAwEAATANBgkqhkiG9w0BAQIF
|
|
||||||
AAOBgQBT3dPwnCR+QKri/AAa19oM/DJhuBUNlvP6Vxt/M3yv6ZiaYch6s7f/sdyZ
|
|
||||||
g9ysEvxwyR84Qu1E9oAuW2szaayc01znX1oYx7EteQSWQZGZQbE8DbqEOcY7l/Am
|
|
||||||
yY7uvcxClf8exwI/VAx49byqYHwCaejcrOICdmHEPgPq0ook0Q==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|||||||
420
apps/server2.pem
420
apps/server2.pem
@@ -1,376 +1,52 @@
|
|||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
subject= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = Test Server Cert #2
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (1024 bit)
|
issuer= C = UK, O = OpenSSL Group, OU = FOR TESTING PURPOSES ONLY, CN = OpenSSL Test Intermediate CA
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIICLjCCAZcCAQEwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
|
MIID6jCCAtKgAwIBAgIJALnu1NlVpZ60MA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
|
BAYTAlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVT
|
||||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTcwNjA5MTM1NzU0WhcNOTgwNjA5
|
VElORyBQVVJQT1NFUyBPTkxZMSUwIwYDVQQDDBxPcGVuU1NMIFRlc3QgSW50ZXJt
|
||||||
MTM1NzU0WjBkMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
|
ZWRpYXRlIENBMB4XDTExMTIwODE0MDE0OFoXDTIxMTAxNjE0MDE0OFowZzELMAkG
|
||||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxJDAiBgNVBAMTG1NlcnZlciB0ZXN0IGNl
|
A1UEBhMCVUsxFjAUBgNVBAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBU
|
||||||
cnQgKDEwMjQgYml0KTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsxH1PBPm
|
RVNUSU5HIFBVUlBPU0VTIE9OTFkxHDAaBgNVBAMME1Rlc3QgU2VydmVyIENlcnQg
|
||||||
RkxrR11eV4bzNi4N9n11CI8nV29+ARlT1+qDe/mjVUvXlmsr1v/vf71G9GgqopSa
|
IzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrdi7j9yctG+L4EjBy
|
||||||
6RXrICLVdk/FYYYzhPvl1M+OrjaXDFO8BzBAF1Lnz6c7aRZvGRJNrRSr2nZEkqDf
|
gjPmEqZzOJEQba26MoQGzglU7e5Xf59Rb/hgVQuKAoiZe7/R8rK4zJ4W7iXdXw0L
|
||||||
JW9dY7r2VZEpD5QeuaRYUnuECkqeieB65GMCAwEAATANBgkqhkiG9w0BAQQFAAOB
|
qBpyG8B5aGKeI32w+A9TcBApoXXL2CrYQEQjZwUIpLlYBIi2NkJj3nVkq5dgl1gO
|
||||||
gQCWsOta6C0wiVzXz8wPmJKyTrurMlgUss2iSuW9366iwofZddsNg7FXniMzkIf6
|
ALiQ+W8jg3kzg5Ec9rimp9r93N8wsSL3awsafurmYCvOf7leHaMP1WJ/zDRGUNHG
|
||||||
dp7jnmWZwKZ9cXsNUS2o4OL07qOk2HOywC0YsNZQsOBu1CBTYYkIefDiKFL1zQHh
|
/WtDjXc8ZUG1+6EXU9Jc2Fs+2Omf7fcN0l00AK/wPg8OaNS0rKyGq9JdIT9FRGV1
|
||||||
8lwwNd4NP+OE3NzUNkCfh4DnFfg9WHkXUlD5UpxNRJ4gJA==
|
bXe/rx58FaE5CItdwCSYhJvF/O95LWQoxJXye5bCFLmvDTEyVq9FMSCptfsmbXjE
|
||||||
|
ZGsXAgMBAAGjgY8wgYwwDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwLAYJ
|
||||||
|
YIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud
|
||||||
|
DgQWBBR52UaWWTKzZGDH/X4mWNcuqeQVazAfBgNVHSMEGDAWgBQ2w2yI55X+sL3s
|
||||||
|
zj49hqshgYfa2jANBgkqhkiG9w0BAQUFAAOCAQEANBW+XYLlHBqVY/31ie+3gRlS
|
||||||
|
LPfy4SIqn0t3RJjagT29MXprblBO2cbMO8VGjkQdKGpmMXjxbht2arOOUXRHX4n/
|
||||||
|
XTyn/QHEf0bcwIITMReO3DZUPAEw8hSjn9xEOM0IRVOCP+mH5fi74QzzQaZVCyYg
|
||||||
|
5VtLKdww/+sc0nCbKl2KWgDluriH0nfVx95qgW3mg9dhXRr0zmf1w2zkBHYpARYL
|
||||||
|
Dew6Z8EE4tS3HJu8/qM6meWzNtrfonQ3eiiMxjZBxzV46jchBwa2z9XYhP6AmpPb
|
||||||
|
oeTSzcQNbWsxaGYzWo46oLDUZmJOwSBawbS31bZNMCoPIY6ukoesCzFSsUKZww==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
MIICXgIBAAKBgQCzEfU8E+ZGTGtHXV5XhvM2Lg32fXUIjydXb34BGVPX6oN7+aNV
|
MIIEowIBAAKCAQEA63Yu4/cnLRvi+BIwcoIz5hKmcziREG2tujKEBs4JVO3uV3+f
|
||||||
S9eWayvW/+9/vUb0aCqilJrpFesgItV2T8VhhjOE++XUz46uNpcMU7wHMEAXUufP
|
UW/4YFULigKImXu/0fKyuMyeFu4l3V8NC6gachvAeWhiniN9sPgPU3AQKaF1y9gq
|
||||||
pztpFm8ZEk2tFKvadkSSoN8lb11juvZVkSkPlB65pFhSe4QKSp6J4HrkYwIDAQAB
|
2EBEI2cFCKS5WASItjZCY951ZKuXYJdYDgC4kPlvI4N5M4ORHPa4pqfa/dzfMLEi
|
||||||
AoGBAKy8jvb0Lzby8q11yNLf7+78wCVdYi7ugMHcYA1JVFK8+zb1WfSm44FLQo/0
|
92sLGn7q5mArzn+5Xh2jD9Vif8w0RlDRxv1rQ413PGVBtfuhF1PSXNhbPtjpn+33
|
||||||
dSChAjgz36TTexeLODPYxleJndjVcOMVzsLJjSM8dLpXsTS4FCeMbhw2s2u+xqKY
|
DdJdNACv8D4PDmjUtKyshqvSXSE/RURldW13v68efBWhOQiLXcAkmISbxfzveS1k
|
||||||
bbPWfk+HOTyJjfnkcC5Nbg44eOmruq0gSmBeUXVM5UntlTnxAkEA7TGCA3h7kx5E
|
KMSV8nuWwhS5rw0xMlavRTEgqbX7Jm14xGRrFwIDAQABAoIBAHLsTPihIfLnYIE5
|
||||||
Bl4zl2pc3gPAGt+dyfk5Po9mGJUUXhF5p2zueGmYWW74TmOWB1kzt4QRdYMzFePq
|
x4GsQQ5zXeBw5ITDM37ktwHnQDC+rIzyUl1aLD1AZRBoKinXd4lOTqLZ4/NHKx4A
|
||||||
zfDNXEa1CwJBAMFErdY0xp0UJ13WwBbUTk8rujqQdHtjw0klhpbuKkjxu2hN0wwM
|
DYr58mZtWyUmqLOMmQVuHXTZBlp7XtYuXMMNovQwjQlp9LicBeoBU6gQ5PVMtubD
|
||||||
6p0D9qxF7JHaghqVRI0fAW/EE0OzdHMR9QkCQQDNR26dMFXKsoPu+vItljj/UEGf
|
F4xGF89Sn0cTHW3iMkqTtQ5KcR1j57OcJO0FEb1vPvk2MXI5ZyAatUYE7YacbEzd
|
||||||
QG7gERiQ4yxaFBPHgdpGo0kT31eh9x9hQGDkxTe0GNG/YSgCRvm8+C3TMcKXAkBD
|
rg02uIwx3FqNSkuSI79uz4hMdV5TPtuhxx9nTwj9aLUhXFeZ0mn2PVgVzEnnMoJb
|
||||||
dhGn36wkUFCddMSAM4NSJ1VN8/Z0y5HzCmI8dM3VwGtGMUQlxKxwOl30LEQzdS5M
|
+znlsZDgzDlJqdaD744YGWh8Z3OEssB35KfzFcdOeO6yH8lmv2Zfznk7pNPT7LTb
|
||||||
0SWojNYXiT2gOBfBwtbhAkEAhafl5QEOIgUz+XazS/IlZ8goNKdDVfYgK3mHHjvv
|
Lae9VgkCgYEA92p1qnAB3NtJtNcaW53i0S5WJgS1hxWKvUDx3lTB9s8X9fHpqL1a
|
||||||
nY5G+AuGebdNkXJr4KSWxDcN+C2i47zuj4QXA16MAOandA==
|
E94fDfWzp/hax6FefUKIvBOukPLQ6bYjTMiFoOHzVirghAIuIUoMI5VtLhwD1hKs
|
||||||
|
Lr7l/dptMgKb1nZHyXoKHRBthsy3K4+udsPi8TzMvYElgEqyQIe/Rk0CgYEA86GL
|
||||||
|
8HC6zLszzKERDPBxrboRmoFvVUCTQDhsfj1M8aR3nQ8V5LkdIJc7Wqm/Ggfk9QRf
|
||||||
|
rJ8M2WUMlU5CNnCn/KCrKzCNZIReze3fV+HnKdbcXGLvgbHPrhnz8yYehUFG+RGq
|
||||||
|
bVyDWRU94T38izy2s5qMYrMJWZEYyXncSPbfcPMCgYAtaXfxcZ+V5xYPQFARMtiX
|
||||||
|
5nZfggvDoJuXgx0h3tK/N2HBfcaSdzbaYLG4gTmZggc/jwnl2dl5E++9oSPhUdIG
|
||||||
|
3ONSFUbxsOsGr9PBvnKd8WZZyUCXAVRjPBzAzF+whzQNWCZy/5htnz9LN7YDI9s0
|
||||||
|
5113Q96cheDZPFydZY0hHQKBgQDVbEhNukM5xCiNcu+f2SaMnLp9EjQ4h5g3IvaP
|
||||||
|
5B16daw/Dw8LzcohWboqIxeAsze0GD/D1ZUJAEd0qBjC3g+a9BjefervCjKOzXng
|
||||||
|
38mEUm+6EwVjJSQcjSmycEs+Sr/kwr/8i5WYvU32+jk4tFgMoC+o6tQe/Uesf68k
|
||||||
|
z/dPVwKBgGbF7Vv1/3SmhlOy+zYyvJ0CrWtKxH9QP6tLIEgEpd8x7YTSuCH94yok
|
||||||
|
kToMXYA3sWNPt22GbRDZ+rcp4c7HkDx6I6vpdP9aQEwJTp0EPy0sgWr2XwYmreIQ
|
||||||
|
NFmkk8Itn9EY2R9VBaP7GLv5kvwxDdLAnmwGmzVtbmaVdxCaBwUk
|
||||||
-----END RSA PRIVATE KEY-----
|
-----END RSA PRIVATE KEY-----
|
||||||
subject=/C=US/O=AT&T Bell Laboratories/OU=Prototype Research CA
|
|
||||||
issuer= /C=US/O=AT&T Bell Laboratories/OU=Prototype Research CA
|
|
||||||
notBefore=950413210656Z
|
|
||||||
notAfter =970412210656Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICCDCCAXECAQAwDQYJKoZIhvcNAQEEBQAwTjELMAkGA1UEBhMCVVMxHzAdBgNV
|
|
||||||
BAoUFkFUJlQgQmVsbCBMYWJvcmF0b3JpZXMxHjAcBgNVBAsUFVByb3RvdHlwZSBS
|
|
||||||
ZXNlYXJjaCBDQTAeFw05NTA0MTMyMTA2NTZaFw05NzA0MTIyMTA2NTZaME4xCzAJ
|
|
||||||
BgNVBAYTAlVTMR8wHQYDVQQKFBZBVCZUIEJlbGwgTGFib3JhdG9yaWVzMR4wHAYD
|
|
||||||
VQQLFBVQcm90b3R5cGUgUmVzZWFyY2ggQ0EwgZwwDQYJKoZIhvcNAQEBBQADgYoA
|
|
||||||
MIGGAoGAebOmgtSCl+wCYZc86UGYeTLY8cjmW2P0FN8ToT/u2pECCoFdrlycX0OR
|
|
||||||
3wt0ZhpFXLVNeDnHwEE9veNUih7pCL2ZBFqoIoQkB1lZmXRiVtjGonz8BLm/qrFM
|
|
||||||
YHb0lme/Ol+s118mwKVxnn6bSAeI/OXKhLaVdYZWk+aEaxEDkVkCAQ8wDQYJKoZI
|
|
||||||
hvcNAQEEBQADgYEAAZMG14lZmZ8bahkaHaTV9dQf4p2FZiQTFwHP9ZyGsXPC+LT5
|
|
||||||
dG5iTaRmyjNIJdPWohZDl97kAci79aBndvuEvRKOjLHs3WRGBIwERnAcnY9Mz8u/
|
|
||||||
zIHK23PjYVxGGaZd669OJwD0CYyqH22HH9nFUGaoJdsv39ChW0NRdLE9+y8=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICJjCCAY8CAQAwDQYJKoZIhvcNAQEEBQAwXDELMAkGA1UEBhMCQVUxEzARBgNV
|
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYD
|
|
||||||
VQQDExNUZXN0IFBDQSAoMTAyNCBiaXQpMB4XDTk3MDYwOTEzNTc0M1oXDTAxMDYw
|
|
||||||
OTEzNTc0M1owWzELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
|
|
||||||
BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYDVQQDExJUZXN0IENBICgxMDI0
|
|
||||||
IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKO7o8t116VP6cgybTsZ
|
|
||||||
DCZhr95nYlZuya3aCi1IKoztqwWnjbmDFIriOqGFPrZQ+moMETC9D59iRW/dFXSv
|
|
||||||
1F65ka/XY2hLh9exCCo7XuUcDs53Qp3bI3AmMqHjgzE8oO3ajyJAzJkTTOUecQU2
|
|
||||||
mw/gI4tMM0LqWMQS7luTy4+xAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAM7achv3v
|
|
||||||
hLQJcv/65eGEpBXM40ZDVoFQFFJWaY5p883HTqLB1x4FdzsXHH0QKBTcKpWwqyu4
|
|
||||||
YDm3fb8oDugw72bCzfyZK/zVZPR/hVlqI/fvU109Qoc+7oPvIXWky71HfcK6ZBCA
|
|
||||||
q30KIqGM/uoM60INq97qjDmCJapagcNBGQs=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICXQIBAAKBgQCju6PLddelT+nIMm07GQwmYa/eZ2JWbsmt2gotSCqM7asFp425
|
|
||||||
gxSK4jqhhT62UPpqDBEwvQ+fYkVv3RV0r9ReuZGv12NoS4fXsQgqO17lHA7Od0Kd
|
|
||||||
2yNwJjKh44MxPKDt2o8iQMyZE0zlHnEFNpsP4COLTDNC6ljEEu5bk8uPsQIDAQAB
|
|
||||||
AoGAVZmpFZsDZfr0l2S9tLLwpjRWNOlKATQkno6q2WesT0eGLQufTciY+c8ypfU6
|
|
||||||
hyio8r5iUl/VhhdjhAtKx1mRpiotftHo/eYf8rtsrnprOnWG0bWjLjtIoMbcxGn2
|
|
||||||
J3bN6LJmbJMjDs0eJ3KnTu646F3nDUw2oGAwmpzKXA1KAP0CQQDRvQhxk2D3Pehs
|
|
||||||
HvG665u2pB5ipYQngEFlZO7RHJZzJOZEWSLuuMqaF/7pTfA5jiBvWqCgJeCRRInL
|
|
||||||
21ru4dlPAkEAx9jj7BgKn5TYnMoBSSe0afjsV9oApVpN1Nacb1YDtCwy+scp3++s
|
|
||||||
nFxlv98wxIlSdpwMUn+AUWfjiWR7Tu/G/wJBAJ/KjwZIrFVxewP0x2ILYsTRYLzz
|
|
||||||
MS4PDsO7FB+I0i7DbBOifXS2oNSpd3I0CNMwrxFnUHzynpbOStVfN3ZL5w0CQQCa
|
|
||||||
pwFahxBRhkJKsxhjoFJBX9yl75JoY4Wvm5Tbo9ih6UJaRx3kqfkN14L2BKYcsZgb
|
|
||||||
KY9vmDOYy6iNfjDeWTfJAkBkfPUb8oTJ/nSP5zN6sqGxSY4krc4xLxpRmxoJ8HL2
|
|
||||||
XfhqXkTzbU13RX9JJ/NZ8vQN9Vm2NhxRGJocQkmcdVtJ
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
MIICYDCCAiACAgEoMAkGBSsOAwINBQAwfDELMAkGA1UEBhMCVVMxNjA0BgNVBAoT
|
|
||||||
LU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFuZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEZ
|
|
||||||
MBcGA1UECxMQVGVzdCBFbnZpcm9ubWVudDEaMBgGA1UECxMRRFNTLU5BU0EtUGls
|
|
||||||
b3QtQ0EwHhcNOTYwMjI2MTYzMjQ1WhcNOTcwMjI1MTYzMjQ1WjB8MQswCQYDVQQG
|
|
||||||
EwJVUzE2MDQGA1UEChMtTmF0aW9uYWwgQWVyb25hdXRpY3MgYW5kIFNwYWNlIEFk
|
|
||||||
bWluaXN0cmF0aW9uMRkwFwYDVQQLExBUZXN0IEVudmlyb25tZW50MRowGAYDVQQL
|
|
||||||
ExFEU1MtTkFTQS1QaWxvdC1DQTCB8jAJBgUrDgMCDAUAA4HkADCB4AJBAMA/ssKb
|
|
||||||
hPNUG7ZlASfVwEJU21O5OyF/iyBzgHI1O8eOhJGUYO8cc8wDMjR508Mr9cp6Uhl/
|
|
||||||
ZB7FV5GkLNEnRHYCQQDUEaSg45P2qrDwixTRhFhmWz5Nvc4lRFQ/42XPcchiJBLb
|
|
||||||
bn3QK74T2IxY1yY+kCNq8XrIqf5fJJzIH0J/xUP3AhUAsg2wsQHfDGYk/BOSulX3
|
|
||||||
fVd0geUCQQCzCFUQAh+ZkEmp5804cs6ZWBhrUAfnra8lJItYo9xPcXgdIfLfibcX
|
|
||||||
R71UsyO77MRD7B0+Ag2tq794IleCVcEEMAkGBSsOAwINBQADLwAwLAIUUayDfreR
|
|
||||||
Yh2WeU86/pHNdkUC1IgCFEfxe1f0oMpxJyrJ5XIxTi7vGdoK
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICGTCCAdgCAwCqTDAJBgUrDgMCDQUAMHwxCzAJBgNVBAYTAlVTMTYwNAYDVQQK
|
|
||||||
Ey1OYXRpb25hbCBBZXJvbmF1dGljcyBhbmQgU3BhY2UgQWRtaW5pc3RyYXRpb24x
|
|
||||||
GTAXBgNVBAsTEFRlc3QgRW52aXJvbm1lbnQxGjAYBgNVBAsTEURTUy1OQVNBLVBp
|
|
||||||
bG90LUNBMB4XDTk2MDUxNDE3MDE0MVoXDTk3MDUxNDE3MDE0MVowMzELMAkGA1UE
|
|
||||||
BhMCQVUxDzANBgNVBAoTBk1pbmNvbTETMBEGA1UEAxMKRXJpYyBZb3VuZzCB8jAJ
|
|
||||||
BgUrDgMCDAUAA4HkADCB4AJBAKbfHz6vE6pXXMTpswtGUec2tvnfLJUsoxE9qs4+
|
|
||||||
ObZX7LmLvragNPUeiTJx7UOWZ5DfBj6bXLc8eYne0lP1g3ACQQDUEaSg45P2qrDw
|
|
||||||
ixTRhFhmWz5Nvc4lRFQ/42XPcchiJBLbbn3QK74T2IxY1yY+kCNq8XrIqf5fJJzI
|
|
||||||
H0J/xUP3AhUAsg2wsQHfDGYk/BOSulX3fVd0geUCQQCzCFUQAh+ZkEmp5804cs6Z
|
|
||||||
WBhrUAfnra8lJItYo9xPcXgdIfLfibcXR71UsyO77MRD7B0+Ag2tq794IleCVcEE
|
|
||||||
MAkGBSsOAwINBQADMAAwLQIUWsuuJRE3VT4ueWkWMAJMJaZjj1ECFQCYY0zX4bzM
|
|
||||||
LC7obsrHD8XAHG+ZRG==
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICTTCCAbagAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjEM
|
|
||||||
MAoGA1UEChMDVUNMMRgwFgYDVQQLEw9JQ0UtVEVMIFByb2plY3QxFTATBgNVBAMT
|
|
||||||
DFRydXN0RmFjdG9yeTAeFw05NzA0MjIxNDM5MTRaFw05ODA0MjIxNDM5MTRaMEwx
|
|
||||||
CzAJBgNVBAYTAkdCMQwwCgYDVQQKEwNVQ0wxGDAWBgNVBAsTD0lDRS1URUwgUHJv
|
|
||||||
amVjdDEVMBMGA1UEAxMMVHJ1c3RGYWN0b3J5MIGcMAoGBFUIAQECAgQAA4GNADCB
|
|
||||||
iQKBgQCEieR8NcXkUW1f0G6aC6u0i8q/98JqS6RxK5YmHIGKCkuTWAUjzLfUa4dt
|
|
||||||
U9igGCjTuxaDqlzEim+t/02pmiBZT9HaX++35MjQPUWmsChcYU5WyzGErXi+rQaw
|
|
||||||
zlwS73zM8qiPj/97lXYycWhgL0VaiDSPxRXEUdWoaGruom4mNQIDAQABo0IwQDAd
|
|
||||||
BgNVHQ4EFgQUHal1LZr7oVg5z6lYzrhTgZRCmcUwDgYDVR0PAQH/BAQDAgH2MA8G
|
|
||||||
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAfaggfl6FZoioecjv0dq8
|
|
||||||
/DXo/u11iMZvXn08gjX/zl2b4wtPbShOSY5FhkSm8GeySasz+/Nwb/uzfnIhokWi
|
|
||||||
lfPZHtlCWtXbIy/TN51eJyq04ceDCQDWvLC2enVg9KB+GJ34b5c5VaPRzq8MBxsA
|
|
||||||
S7ELuYGtmYgYm9NZOIr7yU0=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB6jCCAZQCAgEtMA0GCSqGSIb3DQEBBAUAMIGAMQswCQYDVQQGEwJVUzE2MDQG
|
|
||||||
A1UEChMtTmF0aW9uYWwgQWVyb25hdXRpY3MgYW5kIFNwYWNlIEFkbWluaXN0cmF0
|
|
||||||
aW9uMRkwFwYDVQQLExBUZXN0IEVudmlyb25tZW50MR4wHAYDVQQLExVNRDUtUlNB
|
|
||||||
LU5BU0EtUGlsb3QtQ0EwHhcNOTYwNDMwMjIwNTAwWhcNOTcwNDMwMjIwNTAwWjCB
|
|
||||||
gDELMAkGA1UEBhMCVVMxNjA0BgNVBAoTLU5hdGlvbmFsIEFlcm9uYXV0aWNzIGFu
|
|
||||||
ZCBTcGFjZSBBZG1pbmlzdHJhdGlvbjEZMBcGA1UECxMQVGVzdCBFbnZpcm9ubWVu
|
|
||||||
dDEeMBwGA1UECxMVTUQ1LVJTQS1OQVNBLVBpbG90LUNBMFkwCgYEVQgBAQICAgAD
|
|
||||||
SwAwSAJBALmmX5+GqAvcrWK13rfDrNX9UfeA7f+ijyBgeFQjYUoDpFqapw4nzQBL
|
|
||||||
bAXug8pKkRwa2Zh8YODhXsRWu2F/UckCAwEAATANBgkqhkiG9w0BAQQFAANBAH9a
|
|
||||||
OBA+QCsjxXgnSqHx04gcU8S49DVUb1f2XVoLnHlIb8RnX0k5O6mpHT5eti9bLkiW
|
|
||||||
GJNMJ4L0AJ/ac+SmHZc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
|
|
||||||
BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
|
|
||||||
HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
|
|
||||||
IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
|
|
||||||
MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
|
|
||||||
aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
|
|
||||||
GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
|
|
||||||
ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
|
|
||||||
zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
|
|
||||||
YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
|
|
||||||
hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
|
|
||||||
cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
|
|
||||||
YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit)
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICJzCCAZACAQAwDQYJKoZIhvcNAQEEBQAwXDELMAkGA1UEBhMCQVUxEzARBgNV
|
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYD
|
|
||||||
VQQDExNUZXN0IFBDQSAoMTAyNCBiaXQpMB4XDTk3MDYwOTEzNTczN1oXDTAxMDYw
|
|
||||||
OTEzNTczN1owXDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY
|
|
||||||
BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDExNUZXN0IFBDQSAoMTAy
|
|
||||||
NCBiaXQpMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdoWk/3+WcMlfjIrkg
|
|
||||||
40ketmnQaEogQe1LLcuOJV6rKfUSAsPgwgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp
|
|
||||||
22Jp85PmemiDzyUIStwk72qhp1imbANZvlmlCFKiQrjUyuDfu4TABmn+kkt3vR1Y
|
|
||||||
BEOGt+IFye1UBVSATVdRJ2UVhwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABNA1u/S
|
|
||||||
Cg/LJZWb7GliiKJsvuhxlE4E5JxQF2zMub/CSNbF97//tYSyj96sxeFQxZXbcjm9
|
|
||||||
xt6mr/xNLA4szNQMJ4P+L7b5e/jC5DSqlwS+CUYJgaFs/SP+qJoCSu1bR3IM9XWO
|
|
||||||
cRBpDmcBbYLkSyB92WURvsZ1LtjEcn+cdQVI
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
|
||||||
MIICXAIBAAKBgQCdoWk/3+WcMlfjIrkg40ketmnQaEogQe1LLcuOJV6rKfUSAsPg
|
|
||||||
wgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp22Jp85PmemiDzyUIStwk72qhp1imbANZ
|
|
||||||
vlmlCFKiQrjUyuDfu4TABmn+kkt3vR1YBEOGt+IFye1UBVSATVdRJ2UVhwIDAQAB
|
|
||||||
AoGAba4fTtuap5l7/8ZsbE7Z1O32KJY4ZcOZukLOLUUhXxXduT+FTgGWujc0/rgc
|
|
||||||
z9qYCLlNZHOouMYTgtSfYvuMuLZ11VIt0GYH+nRioLShE59Yy+zCRyC+gPigS1kz
|
|
||||||
xvo14AsOIPYV14Tk/SsHyq6E0eTk7VzaIE197giiINUERPECQQDSKmtPTh/lRKw7
|
|
||||||
HSZSM0I1mFWn/1zqrAbontRQY5w98QWIOe5qmzYyFbPXYT3d9BzlsMyhgiRNoBbD
|
|
||||||
yvohSHXJAkEAwAHx6ezAZeWWzD5yXD36nyjpkVCw7Tk7TSmOceLJMWt1QcrCfqlS
|
|
||||||
xA5jjpQ6Z8suU5DdtWAryM2sAir1WisYzwJAd6Zcx56jvAQ3xcPXsE6scBTVFzrj
|
|
||||||
7FqZ6E+cclPzfLQ+QQsyOBE7bpI6e/FJppY26XGZXo3YGzV8IGXrt40oOQJALETG
|
|
||||||
h86EFXo3qGOFbmsDy4pdP5nBERCu8X1xUCSfintiD4c2DInxgS5oGclnJeMcjTvL
|
|
||||||
QjQoJCX3UJCi/OUO1QJBAKgcDHWjMvt+l1pjJBsSEZ0HX9AAIIVx0RQmbFGS+F2Q
|
|
||||||
hhu5l77WnnZOQ9vvhV5u7NPCUF9nhU3jh60qWWO8mkc=
|
|
||||||
-----END RSA PRIVATE KEY-----
|
|
||||||
subject=/C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
|
||||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Commercial Certification Authority
|
|
||||||
notBefore=941104185834Z
|
|
||||||
notAfter =991103185834Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICIzCCAZACBQJBAAAWMA0GCSqGSIb3DQEBAgUAMFwxCzAJBgNVBAYTAlVTMSAw
|
|
||||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVy
|
|
||||||
Y2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDQxODU4MzRaFw05
|
|
||||||
OTExMDMxODU4MzRaMFwxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBT
|
|
||||||
ZWN1cml0eSwgSW5jLjErMCkGA1UECxMiQ29tbWVyY2lhbCBDZXJ0aWZpY2F0aW9u
|
|
||||||
IEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCk+4Fie84QJ93o
|
|
||||||
975sbsZwmdu41QUDaSiCnHJ/lj+O7Kwpkj+KFPhCdr69XQO5kNTQvAayUTNfxMK/
|
|
||||||
touPmbZiImDd298ggrTKoi8tUO2UMt7gVY3UaOLgTNLNBRYulWZcYVI4HlGogqHE
|
|
||||||
7yXpCuaLK44xZtn42f29O2nZ6wIDAQABMA0GCSqGSIb3DQEBAgUAA34AdrW2EP4j
|
|
||||||
9/dZYkuwX5zBaLxJu7NJbyFHXSudVMQAKD+YufKKg5tgf+tQx6sFEC097TgCwaVI
|
|
||||||
0v5loMC86qYjFmZsGySp8+x5NRhPJsjjr1BKx6cxa9B8GJ1Qv6km+iYrRpwUqbtb
|
|
||||||
MJhCKLVLU7tDCZJAuqiqWqTGtotXTcU=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
|
||||||
issuer= /C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
|
||||||
notBefore=941109235417Z
|
|
||||||
notAfter =991231235417Z
|
|
||||||
-----BEGIN X509 CERTIFICATE-----
|
|
||||||
|
|
||||||
MIICKTCCAZYCBQJBAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMSAw
|
|
||||||
HgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJl
|
|
||||||
IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NDExMDkyMzU0MTda
|
|
||||||
Fw05OTEyMzEyMzU0MTdaMF8xCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0
|
|
||||||
YSBTZWN1cml0eSwgSW5jLjEuMCwGA1UECxMlU2VjdXJlIFNlcnZlciBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBmzANBgkqhkiG9w0BAQEFAAOBiQAwgYUCfgCSznrB
|
|
||||||
roM+WqqJg1esJQF2DK2ujiw3zus1eGRUA+WEQFHJv48I4oqCCNIWhjdV6bEhAq12
|
|
||||||
aIGaBaJLyUslZiJWbIgHj/eBWW2EB2VwE3F2Ppt3TONQiVaYSLkdpykaEy5KEVmc
|
|
||||||
HhXVSVQsczppgrGXOZxtcGdI5d0t1sgeewIDAQABMA0GCSqGSIb3DQEBAgUAA34A
|
|
||||||
iNHReSHO4ovo+MF9NFM/YYPZtgs4F7boviGNjwC4i1N+RGceIr2XJ+CchcxK9oU7
|
|
||||||
suK+ktPlDemvXA4MRpX/oRxePug2WHpzpgr4IhFrwwk4fia7c+8AvQKk8xQNMD9h
|
|
||||||
cHsg/jKjn7P0Z1LctO6EjJY2IN6BCINxIYoPnqk=
|
|
||||||
-----END X509 CERTIFICATE-----
|
|
||||||
subject=/C=ZA/SP=Western Cape/L=Cape Town/O=Thawte Consulting cc
|
|
||||||
/OU=Certification Services Division/CN=Thawte Server CA
|
|
||||||
/Email=server-certs@thawte.com
|
|
||||||
issuer= /C=ZA/SP=Western Cape/L=Cape Town/O=Thawte Consulting cc
|
|
||||||
/OU=Certification Services Division/CN=Thawte Server CA
|
|
||||||
/Email=server-certs@thawte.com
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC+TCCAmICAQAwDQYJKoZIhvcNAQEEBQAwgcQxCzAJBgNVBAYTAlpBMRUwEwYD
|
|
||||||
VQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
|
|
||||||
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
|
||||||
dmljZXMgRGl2aXNpb24xGTAXBgNVBAMTEFRoYXd0ZSBTZXJ2ZXIgQ0ExJjAkBgkq
|
|
||||||
hkiG9w0BCQEWF3NlcnZlci1jZXJ0c0B0aGF3dGUuY29tMB4XDTk2MDcyNzE4MDc1
|
|
||||||
N1oXDTk4MDcyNzE4MDc1N1owgcQxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0
|
|
||||||
ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENv
|
|
||||||
bnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
|
|
||||||
aXNpb24xGTAXBgNVBAMTEFRoYXd0ZSBTZXJ2ZXIgQ0ExJjAkBgkqhkiG9w0BCQEW
|
|
||||||
F3NlcnZlci1jZXJ0c0B0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
|
|
||||||
iQKBgQDTpFBuyP9Wa+bPXbbqDGh1R6KqwtqEJfyo9EdR2oW1IHSUhh4PdcnpCGH1
|
|
||||||
Bm0wbhUZAulSwGLbTZme4moMRDjN/r7jZAlwxf6xaym2L0nIO9QnBCUQly/nkG3A
|
|
||||||
KEKZ10xD3sP1IW1Un13DWOHA5NlbsLjctHvfNjrCtWYiEtaHDQIDAQABMA0GCSqG
|
|
||||||
SIb3DQEBBAUAA4GBAIsvn7ifX3RUIrvYXtpI4DOfARkTogwm6o7OwVdl93yFhDcX
|
|
||||||
7h5t0XZ11MUAMziKdde3rmTvzUYIUCYoY5b032IwGMTvdiclK+STN6NP2m5nvFAM
|
|
||||||
qJT5gC5O+j/jBuZRQ4i0AMYQr5F4lT8oBJnhgafw6PL8aDY2vMHGSPl9+7uf
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDDTCCAnYCAQAwDQYJKoZIhvcNAQEEBQAwgc4xCzAJBgNVBAYTAlpBMRUwEwYD
|
|
||||||
VQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
|
|
||||||
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
|
|
||||||
dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBD
|
|
||||||
QTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTAeFw05
|
|
||||||
NjA3MjcxODA3MTRaFw05ODA3MjcxODA3MTRaMIHOMQswCQYDVQQGEwJaQTEVMBMG
|
|
||||||
A1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xHTAbBgNVBAoT
|
|
||||||
FFRoYXd0ZSBDb25zdWx0aW5nIGNjMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNl
|
|
||||||
cnZpY2VzIERpdmlzaW9uMSEwHwYDVQQDExhUaGF3dGUgUHJlbWl1bSBTZXJ2ZXIg
|
|
||||||
Q0ExKDAmBgkqhkiG9w0BCQEWGXByZW1pdW0tc2VydmVyQHRoYXd0ZS5jb20wgZ8w
|
|
||||||
DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANI2NmqL18JbntqBQWKPOO5JBFXW0O8c
|
|
||||||
G5UWR+8YSDU6UvQragaPOy/qVuOvho2eF/eetGV1Ak3vywmiIVHYm9Bn0LoNkgYU
|
|
||||||
c9STy5cqAJxcTgy8+hVS/PJEbtoRSm4Iny8t4/mqOoZztkZTWMiJBb2DEbhzP6oH
|
|
||||||
jfRCTedAnRw3AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAutFIgTRZVYerIZfL9lvR
|
|
||||||
w9Eifvvo5KTZ3h+Bj+VzNnyw4Qc/IyXkPOu6SIiH9LQ3sCmWBdxpe+qr4l77rLj2
|
|
||||||
GYuMtESFfn1XVALzkYgC7JcPuTOjMfIiMByt+uFf8AV8x0IW/Qkuv+hEQcyM9vxK
|
|
||||||
3VZdLbCVIhNoEsysrxCpxcI=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
Tims test GCI CA
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
|
|
||||||
cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
|
|
||||||
gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
|
|
||||||
cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
|
|
||||||
dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
|
|
||||||
AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
|
|
||||||
OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
|
|
||||||
AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
|
|
||||||
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
|
|
||||||
IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
|
|
||||||
VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
|
|
||||||
NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
|
|
||||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
|
|
||||||
I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
|
|
||||||
RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
|
|
||||||
KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
|
|
||||||
Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
|
|
||||||
9w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
|
|
||||||
WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIAwgKADAgECAgEAMA0GCSqGSIb3DQEBBAUAMGIxETAPBgNVBAcTCEludGVybmV0
|
|
||||||
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xh
|
|
||||||
c3MgMSBDQSAtIEluZGl2aWR1YWwgU3Vic2NyaWJlcjAeFw05NjA0MDgxMDIwMjda
|
|
||||||
Fw05NzA0MDgxMDIwMjdaMGIxETAPBgNVBAcTCEludGVybmV0MRcwFQYDVQQKEw5W
|
|
||||||
ZXJpU2lnbiwgSW5jLjE0MDIGA1UECxMrVmVyaVNpZ24gQ2xhc3MgMSBDQSAtIElu
|
|
||||||
ZGl2aWR1YWwgU3Vic2NyaWJlcjCAMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2
|
|
||||||
FKbPTdAFDdjKI9BvqrQpkmOOLPhvltcunXZLEbE2jVfJw/0cxrr+Hgi6M8qV6r7j
|
|
||||||
W80GqLd5HUQq7XPysVKDaBBwZJHXPmv5912dFEObbpdFmIFH0S3L3bty10w/cari
|
|
||||||
QPJUObwW7s987LrbP2wqsxaxhhKdrpM01bjV0Pc+qQIDAQABAAAAADANBgkqhkiG
|
|
||||||
9w0BAQQFAAOBgQA+1nJryNt8VBRjRr07ArDAV/3jAH7GjDc9jsrxZS68ost9v06C
|
|
||||||
TvTNKGL+LISNmFLXl+JXhgGB0JZ9fvyYzNgHQ46HBUng1H6voalfJgS2KdEo50wW
|
|
||||||
8EFZYMDkT1k4uynwJqkVN2QJK/2q4/A/VCov5h6SlM8Affg2W+1TLqvqkwAA
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
subject=/L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
|
|
||||||
issuer= /L=Internet/O=VeriSign, Inc./OU=VeriSign Class 2 CA - Individual Subscriber
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEkzCCA/ygAwIBAgIRANDTUpSRL3nTFeMrMayFSPAwDQYJKoZIhvcNAQECBQAw
|
|
||||||
YjERMA8GA1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQw
|
|
||||||
MgYDVQQLEytWZXJpU2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3Jp
|
|
||||||
YmVyMB4XDTk2MDYwNDAwMDAwMFoXDTk4MDYwNDIzNTk1OVowYjERMA8GA1UEBxMI
|
|
||||||
SW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJp
|
|
||||||
U2lnbiBDbGFzcyAyIENBIC0gSW5kaXZpZHVhbCBTdWJzY3JpYmVyMIGfMA0GCSqG
|
|
||||||
SIb3DQEBAQUAA4GNADCBiQKBgQC6A+2czKGRcYMfm8gdnk+0de99TDDzsqo0v5nb
|
|
||||||
RsbUmMcdRQ7nsMbRWe0SAb/9QoLTZ/cJ0iOBqdrkz7UpqqKarVoTSdlSMVM92tWp
|
|
||||||
3bJncZHQD1t4xd6lQVdI1/T6R+5J0T1ukOdsI9Jmf+F28S6g3R3L1SFwiHKeZKZv
|
|
||||||
z+793wIDAQABo4ICRzCCAkMwggIpBgNVHQMBAf8EggIdMIICGTCCAhUwggIRBgtg
|
|
||||||
hkgBhvhFAQcBATCCAgAWggGrVGhpcyBjZXJ0aWZpY2F0ZSBpbmNvcnBvcmF0ZXMg
|
|
||||||
YnkgcmVmZXJlbmNlLCBhbmQgaXRzIHVzZSBpcyBzdHJpY3RseSBzdWJqZWN0IHRv
|
|
||||||
LCB0aGUgVmVyaVNpZ24gQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQg
|
|
||||||
KENQUyksIGF2YWlsYWJsZSBhdDogaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQ
|
|
||||||
Uy0xLjA7IGJ5IEUtbWFpbCBhdCBDUFMtcmVxdWVzdHNAdmVyaXNpZ24uY29tOyBv
|
|
||||||
ciBieSBtYWlsIGF0IFZlcmlTaWduLCBJbmMuLCAyNTkzIENvYXN0IEF2ZS4sIE1v
|
|
||||||
dW50YWluIFZpZXcsIENBIDk0MDQzIFVTQSBUZWwuICsxICg0MTUpIDk2MS04ODMw
|
|
||||||
IENvcHlyaWdodCAoYykgMTk5NiBWZXJpU2lnbiwgSW5jLiAgQWxsIFJpZ2h0cyBS
|
|
||||||
ZXNlcnZlZC4gQ0VSVEFJTiBXQVJSQU5USUVTIERJU0NMQUlNRUQgYW5kIExJQUJJ
|
|
||||||
TElUWSBMSU1JVEVELqAOBgxghkgBhvhFAQcBAQGhDgYMYIZIAYb4RQEHAQECMC8w
|
|
||||||
LRYraHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JlcG9zaXRvcnkvQ1BTLTEuMDAU
|
|
||||||
BglghkgBhvhCAQEBAf8EBAMCAgQwDQYJKoZIhvcNAQECBQADgYEApRJRkNBqLLgs
|
|
||||||
53IR/d18ODdLOWMTZ+QOOxBrq460iBEdUwgF8vmPRX1ku7UiDeNzaLlurE6eFqHq
|
|
||||||
2zPyK5j60zfTLVJMWKcQWwTJLjHtXrW8pxhNtFc6Fdvy5ZkHnC/9NIl7/t4U6WqB
|
|
||||||
p4y+p7SdMIkEwIZfds0VbnQyX5MRUJY=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
issuer= /C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICMTCCAZoCBQKhAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
|
|
||||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMg
|
|
||||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
|
|
||||||
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
|
|
||||||
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyVxZ
|
|
||||||
nvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqoRAWq7AMfeH+ek7ma
|
|
||||||
AKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4rCNfcCk2pMmG57Ga
|
|
||||||
IMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATANBgkqhkiG9w0BAQIF
|
|
||||||
AAOBgQB1Zmw+0c2B27X4LzZRtvdCvM1Cr9wO+hVs+GeTVzrrtpLotgHKjLeOQ7RJ
|
|
||||||
Zfk+7r11Ri7J/CVdqMcvi5uPaM+0nJcYwE3vH9mvgrPmZLiEXIqaB1JDYft0nls6
|
|
||||||
NvxMsvwaPxUupVs8G5DsiCnkWRb5zget7Ond2tIxik/W2O8XjQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
|
||||||
issuer= /C=US/O=VeriSign, Inc./OU=Class 4 Public Primary Certification Authority
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICMTCCAZoCBQKmAAABMA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVTMRcw
|
|
||||||
FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMg
|
|
||||||
UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05NjAxMjkwMDAwMDBa
|
|
||||||
Fw05OTEyMzEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln
|
|
||||||
biwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
|
|
||||||
Y2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0LJ1
|
|
||||||
9njQrlpQ9OlQqZ+M1++RlHDo0iSQdomF1t+s5gEXMoDwnZNHvJplnR+Xrr/phnVj
|
|
||||||
IIm9gFidBAydqMEk6QvlMXi9/C0MN2qeeIDpRnX57aP7E3vIwUzSo+/1PLBij0pd
|
|
||||||
O92VZ48TucE81qcmm+zDO3rZTbxtm+gVAePwR6kCAwEAATANBgkqhkiG9w0BAQIF
|
|
||||||
AAOBgQBT3dPwnCR+QKri/AAa19oM/DJhuBUNlvP6Vxt/M3yv6ZiaYch6s7f/sdyZ
|
|
||||||
g9ysEvxwyR84Qu1E9oAuW2szaayc01znX1oYx7EteQSWQZGZQbE8DbqEOcY7l/Am
|
|
||||||
yY7uvcxClf8exwI/VAx49byqYHwCaejcrOICdmHEPgPq0ook0Q==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|||||||
@@ -73,12 +73,12 @@ static const char *sess_id_usage[]={
|
|||||||
"usage: sess_id args\n",
|
"usage: sess_id args\n",
|
||||||
"\n",
|
"\n",
|
||||||
" -inform arg - input format - default PEM (DER or PEM)\n",
|
" -inform arg - input format - default PEM (DER or PEM)\n",
|
||||||
" -outform arg - output format - default PEM\n",
|
" -outform arg - output format - default PEM (PEM, DER or NSS)\n",
|
||||||
" -in arg - input file - default stdin\n",
|
" -in arg - input file - default stdin\n",
|
||||||
" -out arg - output file - default stdout\n",
|
" -out arg - output file - default stdout\n",
|
||||||
" -text - print ssl session id details\n",
|
" -text - print ssl session id details\n",
|
||||||
" -cert - output certificate \n",
|
" -cert - output certificate \n",
|
||||||
" -noout - no CRL output\n",
|
" -noout - no output of encoded session info\n",
|
||||||
" -context arg - set the session ID context\n",
|
" -context arg - set the session ID context\n",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
@@ -246,6 +246,8 @@ bad:
|
|||||||
i=i2d_SSL_SESSION_bio(out,x);
|
i=i2d_SSL_SESSION_bio(out,x);
|
||||||
else if (outformat == FORMAT_PEM)
|
else if (outformat == FORMAT_PEM)
|
||||||
i=PEM_write_bio_SSL_SESSION(out,x);
|
i=PEM_write_bio_SSL_SESSION(out,x);
|
||||||
|
else if (outformat == FORMAT_NSS)
|
||||||
|
i=SSL_SESSION_print_keylog(out,x);
|
||||||
else {
|
else {
|
||||||
BIO_printf(bio_err,"bad output format specified for outfile\n");
|
BIO_printf(bio_err,"bad output format specified for outfile\n");
|
||||||
goto end;
|
goto end;
|
||||||
|
|||||||
13
apps/smime.c
13
apps/smime.c
@@ -479,6 +479,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "-text include or delete text MIME headers\n");
|
BIO_printf (bio_err, "-text include or delete text MIME headers\n");
|
||||||
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
|
||||||
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
|
||||||
|
BIO_printf (bio_err, "-trusted_first use locally trusted CA's first when building trust chain\n");
|
||||||
BIO_printf (bio_err, "-crl_check check revocation status of signer's certificate using CRLs\n");
|
BIO_printf (bio_err, "-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||||
BIO_printf (bio_err, "-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
BIO_printf (bio_err, "-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
@@ -541,8 +542,8 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
if (!cipher)
|
if (!cipher)
|
||||||
{
|
{
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_DES
|
||||||
cipher = EVP_rc2_40_cbc();
|
cipher = EVP_des_ede3_cbc();
|
||||||
#else
|
#else
|
||||||
BIO_printf(bio_err, "No cipher selected\n");
|
BIO_printf(bio_err, "No cipher selected\n");
|
||||||
goto end;
|
goto end;
|
||||||
@@ -704,6 +705,14 @@ int MAIN(int argc, char **argv)
|
|||||||
p7 = PKCS7_sign(NULL, NULL, other, in, flags);
|
p7 = PKCS7_sign(NULL, NULL, other, in, flags);
|
||||||
if (!p7)
|
if (!p7)
|
||||||
goto end;
|
goto end;
|
||||||
|
if (flags & PKCS7_NOCERTS)
|
||||||
|
{
|
||||||
|
for (i = 0; i < sk_X509_num(other); i++)
|
||||||
|
{
|
||||||
|
X509 *x = sk_X509_value(other, i);
|
||||||
|
PKCS7_add_certificate(p7, x);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
flags |= PKCS7_REUSE_DIGEST;
|
flags |= PKCS7_REUSE_DIGEST;
|
||||||
|
|||||||
412
apps/speed.c
412
apps/speed.c
@@ -74,9 +74,10 @@
|
|||||||
#ifndef OPENSSL_NO_SPEED
|
#ifndef OPENSSL_NO_SPEED
|
||||||
|
|
||||||
#undef SECONDS
|
#undef SECONDS
|
||||||
#define SECONDS 3
|
#define SECONDS 3
|
||||||
#define RSA_SECONDS 10
|
#define PRIME_SECONDS 10
|
||||||
#define DSA_SECONDS 10
|
#define RSA_SECONDS 10
|
||||||
|
#define DSA_SECONDS 10
|
||||||
#define ECDSA_SECONDS 10
|
#define ECDSA_SECONDS 10
|
||||||
#define ECDH_SECONDS 10
|
#define ECDH_SECONDS 10
|
||||||
|
|
||||||
@@ -92,9 +93,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
@@ -108,8 +106,14 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
# if defined(__CYGWIN__) && !defined(_WIN32)
|
||||||
|
/* <windows.h> should define _WIN32, which normally is mutually
|
||||||
|
* exclusive with __CYGWIN__, but if it didn't... */
|
||||||
|
# define _WIN32
|
||||||
|
/* this is done because Cygwin alarm() fails sometimes. */
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
@@ -141,7 +145,7 @@
|
|||||||
#ifndef OPENSSL_NO_SHA
|
#ifndef OPENSSL_NO_SHA
|
||||||
#include <openssl/sha.h>
|
#include <openssl/sha.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RIPEMD
|
#ifndef OPENSSL_NO_RMD160
|
||||||
#include <openssl/ripemd.h>
|
#include <openssl/ripemd.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_WHIRLPOOL
|
#ifndef OPENSSL_NO_WHIRLPOOL
|
||||||
@@ -185,8 +189,10 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <openssl/modes.h>
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
#ifndef HAVE_FORK
|
#ifndef HAVE_FORK
|
||||||
# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE)
|
# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_NETWARE)
|
||||||
# define HAVE_FORK 0
|
# define HAVE_FORK 0
|
||||||
# else
|
# else
|
||||||
# define HAVE_FORK 1
|
# define HAVE_FORK 1
|
||||||
@@ -200,8 +206,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef BUFSIZE
|
#undef BUFSIZE
|
||||||
#define BUFSIZE ((long)1024*8+1)
|
#define BUFSIZE (1024*8+1)
|
||||||
int run=0;
|
#define MAX_MISALIGNMENT 63
|
||||||
|
|
||||||
|
static volatile int run=0;
|
||||||
|
|
||||||
static int mr=0;
|
static int mr=0;
|
||||||
static int usertime=1;
|
static int usertime=1;
|
||||||
@@ -217,7 +225,8 @@ static int do_multi(int multi);
|
|||||||
|
|
||||||
#define ALGOR_NUM 30
|
#define ALGOR_NUM 30
|
||||||
#define SIZE_NUM 5
|
#define SIZE_NUM 5
|
||||||
#define RSA_NUM 4
|
#define PRIME_NUM 3
|
||||||
|
#define RSA_NUM 7
|
||||||
#define DSA_NUM 3
|
#define DSA_NUM 3
|
||||||
|
|
||||||
#define EC_NUM 16
|
#define EC_NUM 16
|
||||||
@@ -263,9 +272,6 @@ static SIGRETTYPE sig_done(int sig)
|
|||||||
{
|
{
|
||||||
signal(SIGALRM,sig_done);
|
signal(SIGALRM,sig_done);
|
||||||
run=0;
|
run=0;
|
||||||
#ifdef LINT
|
|
||||||
sig=sig;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -274,9 +280,12 @@ static SIGRETTYPE sig_done(int sig)
|
|||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
|
|
||||||
#define SIGALRM
|
#if !defined(SIGALRM)
|
||||||
|
# define SIGALRM
|
||||||
|
#endif
|
||||||
static unsigned int lapse,schlock;
|
static unsigned int lapse,schlock;
|
||||||
static void alarm(unsigned int secs) { lapse = secs*1000; }
|
static void alarm_win32(unsigned int secs) { lapse = secs*1000; }
|
||||||
|
#define alarm alarm_win32
|
||||||
|
|
||||||
static DWORD WINAPI sleepy(VOID *arg)
|
static DWORD WINAPI sleepy(VOID *arg)
|
||||||
{
|
{
|
||||||
@@ -340,11 +349,13 @@ static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
|
|||||||
}
|
}
|
||||||
#endif /* OPENSSL_NO_ECDH */
|
#endif /* OPENSSL_NO_ECDH */
|
||||||
|
|
||||||
|
static void multiblock_speed(const EVP_CIPHER *evp_cipher);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
unsigned char *buf_malloc=NULL, *buf2_malloc=NULL;
|
||||||
unsigned char *buf=NULL,*buf2=NULL;
|
unsigned char *buf=NULL,*buf2=NULL;
|
||||||
int mret=1;
|
int mret=1;
|
||||||
long count=0,save_count=0;
|
long count=0,save_count=0;
|
||||||
@@ -381,7 +392,7 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_WHIRLPOOL
|
#ifndef OPENSSL_NO_WHIRLPOOL
|
||||||
unsigned char whirlpool[WHIRLPOOL_DIGEST_LENGTH];
|
unsigned char whirlpool[WHIRLPOOL_DIGEST_LENGTH];
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RIPEMD
|
#ifndef OPENSSL_NO_RMD160
|
||||||
unsigned char rmd160[RIPEMD160_DIGEST_LENGTH];
|
unsigned char rmd160[RIPEMD160_DIGEST_LENGTH];
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC4
|
#ifndef OPENSSL_NO_RC4
|
||||||
@@ -405,27 +416,27 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_CAST
|
#ifndef OPENSSL_NO_CAST
|
||||||
CAST_KEY cast_ks;
|
CAST_KEY cast_ks;
|
||||||
#endif
|
#endif
|
||||||
static const unsigned char key16[16]=
|
static const unsigned char key16[16]= {
|
||||||
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
static const unsigned char key24[24]=
|
static const unsigned char key24[24]= {
|
||||||
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
||||||
static const unsigned char key32[32]=
|
static const unsigned char key32[32]= {
|
||||||
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
|
||||||
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
|
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_CAMELLIA
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
static const unsigned char ckey24[24]=
|
static const unsigned char ckey24[24]= {
|
||||||
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
||||||
static const unsigned char ckey32[32]=
|
static const unsigned char ckey32[32]= {
|
||||||
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
|
||||||
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
|
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
|
||||||
@@ -438,9 +449,9 @@ int MAIN(int argc, char **argv)
|
|||||||
unsigned char DES_iv[8];
|
unsigned char DES_iv[8];
|
||||||
unsigned char iv[2*MAX_BLOCK_SIZE/8];
|
unsigned char iv[2*MAX_BLOCK_SIZE/8];
|
||||||
#ifndef OPENSSL_NO_DES
|
#ifndef OPENSSL_NO_DES
|
||||||
static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0};
|
static DES_cblock key = { 0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0 };
|
||||||
static DES_cblock key2={0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
|
static DES_cblock key2= { 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12 };
|
||||||
static DES_cblock key3={0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
static DES_cblock key3= { 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34 };
|
||||||
DES_key_schedule sch;
|
DES_key_schedule sch;
|
||||||
DES_key_schedule sch2;
|
DES_key_schedule sch2;
|
||||||
DES_key_schedule sch3;
|
DES_key_schedule sch3;
|
||||||
@@ -480,16 +491,22 @@ int MAIN(int argc, char **argv)
|
|||||||
#define D_IGE_128_AES 26
|
#define D_IGE_128_AES 26
|
||||||
#define D_IGE_192_AES 27
|
#define D_IGE_192_AES 27
|
||||||
#define D_IGE_256_AES 28
|
#define D_IGE_256_AES 28
|
||||||
#define D_GHASH 29
|
#define D_GHASH 29
|
||||||
double d=0.0;
|
double d=0.0;
|
||||||
long c[ALGOR_NUM][SIZE_NUM];
|
long c[ALGOR_NUM][SIZE_NUM];
|
||||||
|
|
||||||
|
#ifndef OPENSSL_SYS_WIN32
|
||||||
|
#endif
|
||||||
#define R_DSA_512 0
|
#define R_DSA_512 0
|
||||||
#define R_DSA_1024 1
|
#define R_DSA_1024 1
|
||||||
#define R_DSA_2048 2
|
#define R_DSA_2048 2
|
||||||
#define R_RSA_512 0
|
#define R_RSA_512 0
|
||||||
#define R_RSA_1024 1
|
#define R_RSA_1024 1
|
||||||
#define R_RSA_2048 2
|
#define R_RSA_2048 2
|
||||||
#define R_RSA_4096 3
|
#define R_RSA_3072 3
|
||||||
|
#define R_RSA_4096 4
|
||||||
|
#define R_RSA_7680 5
|
||||||
|
#define R_RSA_15360 6
|
||||||
|
|
||||||
#define R_EC_P160 0
|
#define R_EC_P160 0
|
||||||
#define R_EC_P192 1
|
#define R_EC_P192 1
|
||||||
@@ -511,12 +528,15 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
RSA *rsa_key[RSA_NUM];
|
RSA *rsa_key[RSA_NUM];
|
||||||
long rsa_c[RSA_NUM][2];
|
long rsa_c[RSA_NUM][2];
|
||||||
static unsigned int rsa_bits[RSA_NUM]={512,1024,2048,4096};
|
static unsigned int rsa_bits[RSA_NUM]={
|
||||||
static unsigned char *rsa_data[RSA_NUM]=
|
512,1024,2048,3072,4096,7680,15360};
|
||||||
{test512,test1024,test2048,test4096};
|
static unsigned char *rsa_data[RSA_NUM]= {
|
||||||
|
test512,test1024,test2048,test3072,test4096,test7680,test15360};
|
||||||
static int rsa_data_length[RSA_NUM]={
|
static int rsa_data_length[RSA_NUM]={
|
||||||
sizeof(test512),sizeof(test1024),
|
sizeof(test512),sizeof(test1024),
|
||||||
sizeof(test2048),sizeof(test4096)};
|
sizeof(test2048),sizeof(test3072),
|
||||||
|
sizeof(test4096),sizeof(test7680),
|
||||||
|
sizeof(test15360)};
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
DSA *dsa_key[DSA_NUM];
|
DSA *dsa_key[DSA_NUM];
|
||||||
@@ -612,6 +632,8 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef NO_FORK
|
#ifndef NO_FORK
|
||||||
int multi=0;
|
int multi=0;
|
||||||
#endif
|
#endif
|
||||||
|
int multiblock=0;
|
||||||
|
int misalign=MAX_MISALIGNMENT+1;
|
||||||
|
|
||||||
#ifndef TIMES
|
#ifndef TIMES
|
||||||
usertime=-1;
|
usertime=-1;
|
||||||
@@ -647,17 +669,21 @@ int MAIN(int argc, char **argv)
|
|||||||
rsa_key[i]=NULL;
|
rsa_key[i]=NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((buf=(unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL)
|
if ((buf_malloc=(unsigned char *)OPENSSL_malloc(BUFSIZE+misalign)) == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
BIO_printf(bio_err,"out of memory\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if ((buf2=(unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL)
|
if ((buf2_malloc=(unsigned char *)OPENSSL_malloc(BUFSIZE+misalign)) == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
BIO_printf(bio_err,"out of memory\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
misalign = 0; /* set later and buf/buf2 are adjusted accordingly */
|
||||||
|
buf=buf_malloc;
|
||||||
|
buf2=buf2_malloc;
|
||||||
|
|
||||||
memset(c,0,sizeof(c));
|
memset(c,0,sizeof(c));
|
||||||
memset(DES_iv,0,sizeof(DES_iv));
|
memset(DES_iv,0,sizeof(DES_iv));
|
||||||
memset(iv,0,sizeof(iv));
|
memset(iv,0,sizeof(iv));
|
||||||
@@ -677,7 +703,6 @@ int MAIN(int argc, char **argv)
|
|||||||
ecdh_doit[i]=0;
|
ecdh_doit[i]=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
j=0;
|
j=0;
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
@@ -760,6 +785,30 @@ int MAIN(int argc, char **argv)
|
|||||||
j--; /* Otherwise, -mr gets confused with
|
j--; /* Otherwise, -mr gets confused with
|
||||||
an algorithm. */
|
an algorithm. */
|
||||||
}
|
}
|
||||||
|
else if (argc > 0 && !strcmp(*argv,"-mb"))
|
||||||
|
{
|
||||||
|
multiblock=1;
|
||||||
|
j--;
|
||||||
|
}
|
||||||
|
else if (argc > 0 && !strcmp(*argv,"-misalign"))
|
||||||
|
{
|
||||||
|
argc--;
|
||||||
|
argv++;
|
||||||
|
if (argc == 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"no misalignment given\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
misalign=atoi(argv[0]);
|
||||||
|
if (misalign<0 || misalign>MAX_MISALIGNMENT)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"misalignment is outsize permitted range 0-%d\n",MAX_MISALIGNMENT);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
buf=buf_malloc+misalign;
|
||||||
|
buf2=buf2_malloc+misalign;
|
||||||
|
j--;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
#ifndef OPENSSL_NO_MD2
|
#ifndef OPENSSL_NO_MD2
|
||||||
if (strcmp(*argv,"md2") == 0) doit[D_MD2]=1;
|
if (strcmp(*argv,"md2") == 0) doit[D_MD2]=1;
|
||||||
@@ -801,7 +850,7 @@ int MAIN(int argc, char **argv)
|
|||||||
if (strcmp(*argv,"whirlpool") == 0) doit[D_WHIRLPOOL]=1;
|
if (strcmp(*argv,"whirlpool") == 0) doit[D_WHIRLPOOL]=1;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RIPEMD
|
#ifndef OPENSSL_NO_RMD160
|
||||||
if (strcmp(*argv,"ripemd") == 0) doit[D_RMD160]=1;
|
if (strcmp(*argv,"ripemd") == 0) doit[D_RMD160]=1;
|
||||||
else
|
else
|
||||||
if (strcmp(*argv,"rmd160") == 0) doit[D_RMD160]=1;
|
if (strcmp(*argv,"rmd160") == 0) doit[D_RMD160]=1;
|
||||||
@@ -857,7 +906,10 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"rsa512") == 0) rsa_doit[R_RSA_512]=2;
|
else if (strcmp(*argv,"rsa512") == 0) rsa_doit[R_RSA_512]=2;
|
||||||
else if (strcmp(*argv,"rsa1024") == 0) rsa_doit[R_RSA_1024]=2;
|
else if (strcmp(*argv,"rsa1024") == 0) rsa_doit[R_RSA_1024]=2;
|
||||||
else if (strcmp(*argv,"rsa2048") == 0) rsa_doit[R_RSA_2048]=2;
|
else if (strcmp(*argv,"rsa2048") == 0) rsa_doit[R_RSA_2048]=2;
|
||||||
|
else if (strcmp(*argv,"rsa3072") == 0) rsa_doit[R_RSA_3072]=2;
|
||||||
else if (strcmp(*argv,"rsa4096") == 0) rsa_doit[R_RSA_4096]=2;
|
else if (strcmp(*argv,"rsa4096") == 0) rsa_doit[R_RSA_4096]=2;
|
||||||
|
else if (strcmp(*argv,"rsa7680") == 0) rsa_doit[R_RSA_7680]=2;
|
||||||
|
else if (strcmp(*argv,"rsa15360") == 0) rsa_doit[R_RSA_15360]=2;
|
||||||
else
|
else
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
if (strcmp(*argv,"rc2-cbc") == 0) doit[D_CBC_RC2]=1;
|
if (strcmp(*argv,"rc2-cbc") == 0) doit[D_CBC_RC2]=1;
|
||||||
@@ -927,7 +979,10 @@ int MAIN(int argc, char **argv)
|
|||||||
rsa_doit[R_RSA_512]=1;
|
rsa_doit[R_RSA_512]=1;
|
||||||
rsa_doit[R_RSA_1024]=1;
|
rsa_doit[R_RSA_1024]=1;
|
||||||
rsa_doit[R_RSA_2048]=1;
|
rsa_doit[R_RSA_2048]=1;
|
||||||
|
rsa_doit[R_RSA_3072]=1;
|
||||||
rsa_doit[R_RSA_4096]=1;
|
rsa_doit[R_RSA_4096]=1;
|
||||||
|
rsa_doit[R_RSA_7680]=1;
|
||||||
|
rsa_doit[R_RSA_15360]=1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@@ -965,7 +1020,7 @@ int MAIN(int argc, char **argv)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ECDH
|
#ifndef OPENSSL_NO_ECDH
|
||||||
if (strcmp(*argv,"ecdhp160") == 0) ecdh_doit[R_EC_P160]=2;
|
if (strcmp(*argv,"ecdhp160") == 0) ecdh_doit[R_EC_P160]=2;
|
||||||
else if (strcmp(*argv,"ecdhp192") == 0) ecdh_doit[R_EC_P192]=2;
|
else if (strcmp(*argv,"ecdhp192") == 0) ecdh_doit[R_EC_P192]=2;
|
||||||
else if (strcmp(*argv,"ecdhp224") == 0) ecdh_doit[R_EC_P224]=2;
|
else if (strcmp(*argv,"ecdhp224") == 0) ecdh_doit[R_EC_P224]=2;
|
||||||
else if (strcmp(*argv,"ecdhp256") == 0) ecdh_doit[R_EC_P256]=2;
|
else if (strcmp(*argv,"ecdhp256") == 0) ecdh_doit[R_EC_P256]=2;
|
||||||
@@ -1019,12 +1074,12 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_WHIRLPOOL
|
#ifndef OPENSSL_NO_WHIRLPOOL
|
||||||
BIO_printf(bio_err,"whirlpool");
|
BIO_printf(bio_err,"whirlpool");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RIPEMD160
|
#ifndef OPENSSL_NO_RMD160
|
||||||
BIO_printf(bio_err,"rmd160");
|
BIO_printf(bio_err,"rmd160");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OPENSSL_NO_MD2) || !defined(OPENSSL_NO_MDC2) || \
|
#if !defined(OPENSSL_NO_MD2) || !defined(OPENSSL_NO_MDC2) || \
|
||||||
!defined(OPENSSL_NO_MD4) || !defined(OPENSSL_NO_MD5) || \
|
!defined(OPENSSL_NO_MD4) || !defined(OPENSSL_NO_MD5) || \
|
||||||
!defined(OPENSSL_NO_SHA1) || !defined(OPENSSL_NO_RIPEMD160) || \
|
!defined(OPENSSL_NO_SHA1) || !defined(OPENSSL_NO_RMD160) || \
|
||||||
!defined(OPENSSL_NO_WHIRLPOOL)
|
!defined(OPENSSL_NO_WHIRLPOOL)
|
||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
#endif
|
#endif
|
||||||
@@ -1065,20 +1120,23 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
BIO_printf(bio_err,"rsa512 rsa1024 rsa2048 rsa4096\n");
|
BIO_printf(bio_err,"rsa512 rsa1024 rsa2048 rsa3072 rsa4096\n");
|
||||||
|
BIO_printf(bio_err,"rsa7680 rsa15360\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
BIO_printf(bio_err,"dsa512 dsa1024 dsa2048\n");
|
BIO_printf(bio_err,"dsa512 dsa1024 dsa2048\n");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ECDSA
|
#ifndef OPENSSL_NO_ECDSA
|
||||||
BIO_printf(bio_err,"ecdsap160 ecdsap192 ecdsap224 ecdsap256 ecdsap384 ecdsap521\n");
|
BIO_printf(bio_err,"ecdsap160 ecdsap192 ecdsap224 "
|
||||||
|
"ecdsap256 ecdsap384 ecdsap521\n");
|
||||||
BIO_printf(bio_err,"ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n");
|
BIO_printf(bio_err,"ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n");
|
||||||
BIO_printf(bio_err,"ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571\n");
|
BIO_printf(bio_err,"ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571\n");
|
||||||
BIO_printf(bio_err,"ecdsa\n");
|
BIO_printf(bio_err,"ecdsa\n");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ECDH
|
#ifndef OPENSSL_NO_ECDH
|
||||||
BIO_printf(bio_err,"ecdhp160 ecdhp192 ecdhp224 ecdhp256 ecdhp384 ecdhp521\n");
|
BIO_printf(bio_err,"ecdhp160 ecdhp192 ecdhp224 "
|
||||||
|
"ecdhp256 ecdhp384 ecdhp521\n");
|
||||||
BIO_printf(bio_err,"ecdhk163 ecdhk233 ecdhk283 ecdhk409 ecdhk571\n");
|
BIO_printf(bio_err,"ecdhk163 ecdhk233 ecdhk283 ecdhk409 ecdhk571\n");
|
||||||
BIO_printf(bio_err,"ecdhb163 ecdhb233 ecdhb283 ecdhb409 ecdhb571\n");
|
BIO_printf(bio_err,"ecdhb163 ecdhb233 ecdhb283 ecdhb409 ecdhb571\n");
|
||||||
BIO_printf(bio_err,"ecdh\n");
|
BIO_printf(bio_err,"ecdh\n");
|
||||||
@@ -1118,16 +1176,33 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
BIO_printf(bio_err,"Available options:\n");
|
BIO_printf(bio_err,"Available options:\n");
|
||||||
#if defined(TIMES) || defined(USE_TOD)
|
#if defined(TIMES) || defined(USE_TOD)
|
||||||
BIO_printf(bio_err,"-elapsed measure time in real time instead of CPU user time.\n");
|
BIO_printf(bio_err,"-elapsed "
|
||||||
|
"measure time in real time instead of CPU user time.\n");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err,"-engine e use engine e, possibly a hardware device.\n");
|
BIO_printf(bio_err,
|
||||||
|
"-engine e "
|
||||||
|
"use engine e, possibly a hardware device.\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err,"-evp e use EVP e.\n");
|
BIO_printf(bio_err,
|
||||||
BIO_printf(bio_err,"-decrypt time decryption instead of encryption (only EVP).\n");
|
"-evp e "
|
||||||
BIO_printf(bio_err,"-mr produce machine readable output.\n");
|
"use EVP e.\n");
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"-decrypt "
|
||||||
|
"time decryption instead of encryption (only EVP).\n");
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"-mr "
|
||||||
|
"produce machine readable output.\n");
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"-mb "
|
||||||
|
"perform multi-block benchmark (for specific ciphers)\n");
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"-misalign n "
|
||||||
|
"perform benchmark with misaligned data\n");
|
||||||
#ifndef NO_FORK
|
#ifndef NO_FORK
|
||||||
BIO_printf(bio_err,"-multi n run n benchmarks in parallel.\n");
|
BIO_printf(bio_err,
|
||||||
|
"-multi n "
|
||||||
|
"run n benchmarks in parallel.\n");
|
||||||
#endif
|
#endif
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
@@ -1165,7 +1240,9 @@ int MAIN(int argc, char **argv)
|
|||||||
if (doit[i]) pr_header++;
|
if (doit[i]) pr_header++;
|
||||||
|
|
||||||
if (usertime == 0 && !mr)
|
if (usertime == 0 && !mr)
|
||||||
BIO_printf(bio_err,"You have chosen to measure elapsed time instead of user CPU time.\n");
|
BIO_printf(bio_err,
|
||||||
|
"You have chosen to measure elapsed time "
|
||||||
|
"instead of user CPU time.\n");
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
for (i=0; i<RSA_NUM; i++)
|
for (i=0; i<RSA_NUM; i++)
|
||||||
@@ -1182,7 +1259,8 @@ int MAIN(int argc, char **argv)
|
|||||||
#if 0
|
#if 0
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,mr ? "+RK:%d:"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+RK:%d:"
|
||||||
: "Loaded RSA key, %d bit modulus and e= 0x",
|
: "Loaded RSA key, %d bit modulus and e= 0x",
|
||||||
BN_num_bits(rsa_key[i]->n));
|
BN_num_bits(rsa_key[i]->n));
|
||||||
BN_print(bio_err,rsa_key[i]->e);
|
BN_print(bio_err,rsa_key[i]->e);
|
||||||
@@ -1282,25 +1360,26 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_IGE_256_AES][0]=count;
|
c[D_IGE_256_AES][0]=count;
|
||||||
c[D_GHASH][0]=count;
|
c[D_GHASH][0]=count;
|
||||||
|
|
||||||
for (i=1; i<SIZE_NUM; i++)
|
|
||||||
{
|
|
||||||
c[D_MD2][i]=c[D_MD2][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_MDC2][i]=c[D_MDC2][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_MD4][i]=c[D_MD4][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_MD5][i]=c[D_MD5][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_HMAC][i]=c[D_HMAC][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_SHA1][i]=c[D_SHA1][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_RMD160][i]=c[D_RMD160][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_SHA256][i]=c[D_SHA256][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_SHA512][i]=c[D_SHA512][0]*4*lengths[0]/lengths[i];
|
|
||||||
c[D_WHIRLPOOL][i]=c[D_WHIRLPOOL][0]*4*lengths[0]/lengths[i];
|
|
||||||
}
|
|
||||||
for (i=1; i<SIZE_NUM; i++)
|
for (i=1; i<SIZE_NUM; i++)
|
||||||
{
|
{
|
||||||
long l0,l1;
|
long l0,l1;
|
||||||
|
|
||||||
l0=(long)lengths[i-1];
|
l0=(long)lengths[0];
|
||||||
l1=(long)lengths[i];
|
l1=(long)lengths[i];
|
||||||
|
|
||||||
|
c[D_MD2][i]=c[D_MD2][0]*4*l0/l1;
|
||||||
|
c[D_MDC2][i]=c[D_MDC2][0]*4*l0/l1;
|
||||||
|
c[D_MD4][i]=c[D_MD4][0]*4*l0/l1;
|
||||||
|
c[D_MD5][i]=c[D_MD5][0]*4*l0/l1;
|
||||||
|
c[D_HMAC][i]=c[D_HMAC][0]*4*l0/l1;
|
||||||
|
c[D_SHA1][i]=c[D_SHA1][0]*4*l0/l1;
|
||||||
|
c[D_RMD160][i]=c[D_RMD160][0]*4*l0/l1;
|
||||||
|
c[D_SHA256][i]=c[D_SHA256][0]*4*l0/l1;
|
||||||
|
c[D_SHA512][i]=c[D_SHA512][0]*4*l0/l1;
|
||||||
|
c[D_WHIRLPOOL][i]=c[D_WHIRLPOOL][0]*4*l0/l1;
|
||||||
|
|
||||||
|
l0=(long)lengths[i-1];
|
||||||
|
|
||||||
c[D_RC4][i]=c[D_RC4][i-1]*l0/l1;
|
c[D_RC4][i]=c[D_RC4][i-1]*l0/l1;
|
||||||
c[D_CBC_DES][i]=c[D_CBC_DES][i-1]*l0/l1;
|
c[D_CBC_DES][i]=c[D_CBC_DES][i-1]*l0/l1;
|
||||||
c[D_EDE3_DES][i]=c[D_EDE3_DES][i-1]*l0/l1;
|
c[D_EDE3_DES][i]=c[D_EDE3_DES][i-1]*l0/l1;
|
||||||
@@ -1320,6 +1399,8 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]*l0/l1;
|
c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]*l0/l1;
|
||||||
c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]*l0/l1;
|
c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]*l0/l1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
rsa_c[R_RSA_512][0]=count/2000;
|
rsa_c[R_RSA_512][0]=count/2000;
|
||||||
rsa_c[R_RSA_512][1]=count/400;
|
rsa_c[R_RSA_512][1]=count/400;
|
||||||
@@ -1534,7 +1615,7 @@ int MAIN(int argc, char **argv)
|
|||||||
print_message(names[D_MD5],c[D_MD5][j],lengths[j]);
|
print_message(names[D_MD5],c[D_MD5][j],lengths[j]);
|
||||||
Time_F(START);
|
Time_F(START);
|
||||||
for (count=0,run=1; COND(c[D_MD5][j]); count++)
|
for (count=0,run=1; COND(c[D_MD5][j]); count++)
|
||||||
EVP_Digest(&(buf[0]),(unsigned long)lengths[j],&(md5[0]),NULL,EVP_get_digestbyname("md5"),NULL);
|
MD5(buf,lengths[j],md5);
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
print_result(D_MD5,j,count,d);
|
print_result(D_MD5,j,count,d);
|
||||||
}
|
}
|
||||||
@@ -1630,7 +1711,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_RIPEMD
|
#ifndef OPENSSL_NO_RMD160
|
||||||
if (doit[D_RMD160])
|
if (doit[D_RMD160])
|
||||||
{
|
{
|
||||||
for (j=0; j<SIZE_NUM; j++)
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
@@ -1936,6 +2017,19 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
if (doit[D_EVP])
|
if (doit[D_EVP])
|
||||||
{
|
{
|
||||||
|
#ifdef EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK
|
||||||
|
if (multiblock && evp_cipher)
|
||||||
|
{
|
||||||
|
if (!(EVP_CIPHER_flags(evp_cipher)&EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK))
|
||||||
|
{
|
||||||
|
fprintf(stderr,"%s is not multi-block capable\n",OBJ_nid2ln(evp_cipher->nid));
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
multiblock_speed(evp_cipher);
|
||||||
|
mret=0;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
for (j=0; j<SIZE_NUM; j++)
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
{
|
{
|
||||||
if (evp_cipher)
|
if (evp_cipher)
|
||||||
@@ -1986,7 +2080,8 @@ int MAIN(int argc, char **argv)
|
|||||||
print_result(D_EVP,j,count,d);
|
print_result(D_EVP,j,count,d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_SYS_WIN32
|
||||||
|
#endif
|
||||||
RAND_pseudo_bytes(buf,36);
|
RAND_pseudo_bytes(buf,36);
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
for (j=0; j<RSA_NUM; j++)
|
for (j=0; j<RSA_NUM; j++)
|
||||||
@@ -2005,7 +2100,7 @@ int MAIN(int argc, char **argv)
|
|||||||
pkey_print_message("private","rsa",
|
pkey_print_message("private","rsa",
|
||||||
rsa_c[j][0],rsa_bits[j],
|
rsa_c[j][0],rsa_bits[j],
|
||||||
RSA_SECONDS);
|
RSA_SECONDS);
|
||||||
/* RSA_blinding_on(rsa_key[j],NULL); */
|
/* RSA_blinding_on(rsa_key[j],NULL); */
|
||||||
Time_F(START);
|
Time_F(START);
|
||||||
for (count=0,run=1; COND(rsa_c[j][0]); count++)
|
for (count=0,run=1; COND(rsa_c[j][0]); count++)
|
||||||
{
|
{
|
||||||
@@ -2021,7 +2116,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err,mr ? "+R1:%ld:%d:%.2f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R1:%ld:%d:%.2f\n"
|
||||||
: "%ld %d bit private RSA's in %.2fs\n",
|
: "%ld %d bit private RSA's in %.2fs\n",
|
||||||
count,rsa_bits[j],d);
|
count,rsa_bits[j],d);
|
||||||
rsa_results[j][0]=d/(double)count;
|
rsa_results[j][0]=d/(double)count;
|
||||||
@@ -2056,7 +2152,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err,mr ? "+R2:%ld:%d:%.2f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R2:%ld:%d:%.2f\n"
|
||||||
: "%ld %d bit public RSA's in %.2fs\n",
|
: "%ld %d bit public RSA's in %.2fs\n",
|
||||||
count,rsa_bits[j],d);
|
count,rsa_bits[j],d);
|
||||||
rsa_results[j][1]=d/(double)count;
|
rsa_results[j][1]=d/(double)count;
|
||||||
@@ -2085,8 +2182,9 @@ int MAIN(int argc, char **argv)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!dsa_doit[j]) continue;
|
if (!dsa_doit[j]) continue;
|
||||||
/* DSA_generate_key(dsa_key[j]); */
|
|
||||||
/* DSA_sign_setup(dsa_key[j],NULL); */
|
/* DSA_generate_key(dsa_key[j]); */
|
||||||
|
/* DSA_sign_setup(dsa_key[j],NULL); */
|
||||||
ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,
|
ret=DSA_sign(EVP_PKEY_DSA,buf,20,buf2,
|
||||||
&kk,dsa_key[j]);
|
&kk,dsa_key[j]);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
@@ -2115,7 +2213,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err,mr ? "+R3:%ld:%d:%.2f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R3:%ld:%d:%.2f\n"
|
||||||
: "%ld %d bit DSA signs in %.2fs\n",
|
: "%ld %d bit DSA signs in %.2fs\n",
|
||||||
count,dsa_bits[j],d);
|
count,dsa_bits[j],d);
|
||||||
dsa_results[j][0]=d/(double)count;
|
dsa_results[j][0]=d/(double)count;
|
||||||
@@ -2150,7 +2249,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err,mr ? "+R4:%ld:%d:%.2f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R4:%ld:%d:%.2f\n"
|
||||||
: "%ld %d bit DSA verify in %.2fs\n",
|
: "%ld %d bit DSA verify in %.2fs\n",
|
||||||
count,dsa_bits[j],d);
|
count,dsa_bits[j],d);
|
||||||
dsa_results[j][1]=d/(double)count;
|
dsa_results[j][1]=d/(double)count;
|
||||||
@@ -2223,7 +2323,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
|
|
||||||
BIO_printf(bio_err, mr ? "+R5:%ld:%d:%.2f\n" :
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R5:%ld:%d:%.2f\n" :
|
||||||
"%ld %d bit ECDSA signs in %.2fs \n",
|
"%ld %d bit ECDSA signs in %.2fs \n",
|
||||||
count, test_curves_bits[j], d);
|
count, test_curves_bits[j], d);
|
||||||
ecdsa_results[j][0]=d/(double)count;
|
ecdsa_results[j][0]=d/(double)count;
|
||||||
@@ -2258,7 +2359,8 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err, mr? "+R6:%ld:%d:%.2f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R6:%ld:%d:%.2f\n"
|
||||||
: "%ld %d bit ECDSA verify in %.2fs\n",
|
: "%ld %d bit ECDSA verify in %.2fs\n",
|
||||||
count, test_curves_bits[j], d);
|
count, test_curves_bits[j], d);
|
||||||
ecdsa_results[j][1]=d/(double)count;
|
ecdsa_results[j][1]=d/(double)count;
|
||||||
@@ -2304,8 +2406,10 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* If field size is not more than 24 octets, then use SHA-1 hash of result;
|
/* If field size is not more than 24 octets,
|
||||||
* otherwise, use result (see section 4.8 of draft-ietf-tls-ecc-03.txt).
|
* then use SHA-1 hash of result; otherwise,
|
||||||
|
* use result (see section 4.8 of
|
||||||
|
* draft-ietf-tls-ecc-03.txt).
|
||||||
*/
|
*/
|
||||||
int field_size, outlen;
|
int field_size, outlen;
|
||||||
void *(*kdf)(const void *in, size_t inlen, void *out, size_t *xoutlen);
|
void *(*kdf)(const void *in, size_t inlen, void *out, size_t *xoutlen);
|
||||||
@@ -2320,10 +2424,12 @@ int MAIN(int argc, char **argv)
|
|||||||
outlen = (field_size+7)/8;
|
outlen = (field_size+7)/8;
|
||||||
kdf = NULL;
|
kdf = NULL;
|
||||||
}
|
}
|
||||||
secret_size_a = ECDH_compute_key(secret_a, outlen,
|
secret_size_a =
|
||||||
|
ECDH_compute_key(secret_a, outlen,
|
||||||
EC_KEY_get0_public_key(ecdh_b[j]),
|
EC_KEY_get0_public_key(ecdh_b[j]),
|
||||||
ecdh_a[j], kdf);
|
ecdh_a[j], kdf);
|
||||||
secret_size_b = ECDH_compute_key(secret_b, outlen,
|
secret_size_b =
|
||||||
|
ECDH_compute_key(secret_b, outlen,
|
||||||
EC_KEY_get0_public_key(ecdh_a[j]),
|
EC_KEY_get0_public_key(ecdh_a[j]),
|
||||||
ecdh_b[j], kdf);
|
ecdh_b[j], kdf);
|
||||||
if (secret_size_a != secret_size_b)
|
if (secret_size_a != secret_size_b)
|
||||||
@@ -2359,7 +2465,8 @@ int MAIN(int argc, char **argv)
|
|||||||
ecdh_a[j], kdf);
|
ecdh_a[j], kdf);
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
BIO_printf(bio_err, mr ? "+R7:%ld:%d:%.2f\n" :"%ld %d-bit ECDH ops in %.2fs\n",
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R7:%ld:%d:%.2f\n" :"%ld %d-bit ECDH ops in %.2fs\n",
|
||||||
count, test_curves_bits[j], d);
|
count, test_curves_bits[j], d);
|
||||||
ecdh_results[j][0]=d/(double)count;
|
ecdh_results[j][0]=d/(double)count;
|
||||||
rsa_count=count;
|
rsa_count=count;
|
||||||
@@ -2528,8 +2635,8 @@ show_res:
|
|||||||
|
|
||||||
end:
|
end:
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
if (buf != NULL) OPENSSL_free(buf);
|
if (buf_malloc != NULL) OPENSSL_free(buf_malloc);
|
||||||
if (buf2 != NULL) OPENSSL_free(buf2);
|
if (buf2_malloc != NULL) OPENSSL_free(buf2_malloc);
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
for (i=0; i<RSA_NUM; i++)
|
for (i=0; i<RSA_NUM; i++)
|
||||||
if (rsa_key[i] != NULL)
|
if (rsa_key[i] != NULL)
|
||||||
@@ -2563,17 +2670,16 @@ end:
|
|||||||
static void print_message(const char *s, long num, int length)
|
static void print_message(const char *s, long num, int length)
|
||||||
{
|
{
|
||||||
#ifdef SIGALRM
|
#ifdef SIGALRM
|
||||||
BIO_printf(bio_err,mr ? "+DT:%s:%d:%d\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+DT:%s:%d:%d\n"
|
||||||
: "Doing %s for %ds on %d size blocks: ",s,SECONDS,length);
|
: "Doing %s for %ds on %d size blocks: ",s,SECONDS,length);
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
alarm(SECONDS);
|
alarm(SECONDS);
|
||||||
#else
|
#else
|
||||||
BIO_printf(bio_err,mr ? "+DN:%s:%ld:%d\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+DN:%s:%ld:%d\n"
|
||||||
: "Doing %s %ld times on %d size blocks: ",s,num,length);
|
: "Doing %s %ld times on %d size blocks: ",s,num,length);
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
#endif
|
|
||||||
#ifdef LINT
|
|
||||||
num=num;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2581,23 +2687,23 @@ static void pkey_print_message(const char *str, const char *str2, long num,
|
|||||||
int bits, int tm)
|
int bits, int tm)
|
||||||
{
|
{
|
||||||
#ifdef SIGALRM
|
#ifdef SIGALRM
|
||||||
BIO_printf(bio_err,mr ? "+DTP:%d:%s:%s:%d\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+DTP:%d:%s:%s:%d\n"
|
||||||
: "Doing %d bit %s %s's for %ds: ",bits,str,str2,tm);
|
: "Doing %d bit %s %s's for %ds: ",bits,str,str2,tm);
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
alarm(RSA_SECONDS);
|
alarm(tm);
|
||||||
#else
|
#else
|
||||||
BIO_printf(bio_err,mr ? "+DNP:%ld:%d:%s:%s\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+DNP:%ld:%d:%s:%s\n"
|
||||||
: "Doing %ld %d bit %s %s's: ",num,bits,str,str2);
|
: "Doing %ld %d bit %s %s's: ",num,bits,str,str2);
|
||||||
(void)BIO_flush(bio_err);
|
(void)BIO_flush(bio_err);
|
||||||
#endif
|
|
||||||
#ifdef LINT
|
|
||||||
num=num;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void print_result(int alg,int run_no,int count,double time_used)
|
static void print_result(int alg,int run_no,int count,double time_used)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,mr ? "+R:%d:%s:%f\n"
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R:%d:%s:%f\n"
|
||||||
: "%d %s's in %.2fs\n",count,names[alg],time_used);
|
: "%d %s's in %.2fs\n",count,names[alg],time_used);
|
||||||
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
||||||
}
|
}
|
||||||
@@ -2826,4 +2932,110 @@ static int do_multi(int multi)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void multiblock_speed(const EVP_CIPHER *evp_cipher)
|
||||||
|
{
|
||||||
|
static int mblengths[]={8*1024,2*8*1024,4*8*1024,8*8*1024,8*16*1024};
|
||||||
|
int j,count,num=sizeof(lengths)/sizeof(lengths[0]);
|
||||||
|
const char *alg_name;
|
||||||
|
unsigned char *inp,*out,no_key[32],no_iv[16];
|
||||||
|
EVP_CIPHER_CTX ctx;
|
||||||
|
double d=0.0;
|
||||||
|
|
||||||
|
inp = OPENSSL_malloc(mblengths[num-1]);
|
||||||
|
out = OPENSSL_malloc(mblengths[num-1]+1024);
|
||||||
|
|
||||||
|
EVP_CIPHER_CTX_init(&ctx);
|
||||||
|
EVP_EncryptInit_ex(&ctx,evp_cipher,NULL,no_key,no_iv);
|
||||||
|
EVP_CIPHER_CTX_ctrl(&ctx,EVP_CTRL_AEAD_SET_MAC_KEY,sizeof(no_key),no_key);
|
||||||
|
alg_name=OBJ_nid2ln(evp_cipher->nid);
|
||||||
|
|
||||||
|
for (j=0; j<num; j++)
|
||||||
|
{
|
||||||
|
print_message(alg_name,0,mblengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; run && count<0x7fffffff; count++)
|
||||||
|
{
|
||||||
|
unsigned char aad[13];
|
||||||
|
EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM mb_param;
|
||||||
|
size_t len = mblengths[j];
|
||||||
|
int packlen;
|
||||||
|
|
||||||
|
memset(aad,0,8);/* avoid uninitialized values */
|
||||||
|
aad[8] = 23; /* SSL3_RT_APPLICATION_DATA */
|
||||||
|
aad[9] = 3; /* version */
|
||||||
|
aad[10] = 2;
|
||||||
|
aad[11] = 0; /* length */
|
||||||
|
aad[12] = 0;
|
||||||
|
mb_param.out = NULL;
|
||||||
|
mb_param.inp = aad;
|
||||||
|
mb_param.len = len;
|
||||||
|
mb_param.interleave = 8;
|
||||||
|
|
||||||
|
packlen=EVP_CIPHER_CTX_ctrl(&ctx,
|
||||||
|
EVP_CTRL_TLS1_1_MULTIBLOCK_AAD,
|
||||||
|
sizeof(mb_param),&mb_param);
|
||||||
|
|
||||||
|
if (packlen>0)
|
||||||
|
{
|
||||||
|
mb_param.out = out;
|
||||||
|
mb_param.inp = inp;
|
||||||
|
mb_param.len = len;
|
||||||
|
EVP_CIPHER_CTX_ctrl(&ctx,
|
||||||
|
EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT,
|
||||||
|
sizeof(mb_param),&mb_param);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int pad;
|
||||||
|
|
||||||
|
RAND_bytes(out,16);
|
||||||
|
len+=16;
|
||||||
|
aad[11] = len>>8;
|
||||||
|
aad[12] = len;
|
||||||
|
pad=EVP_CIPHER_CTX_ctrl(&ctx,
|
||||||
|
EVP_CTRL_AEAD_TLS1_AAD,13,aad);
|
||||||
|
EVP_Cipher(&ctx,out,inp,len+pad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
d=Time_F(STOP);
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
mr ? "+R:%d:%s:%f\n"
|
||||||
|
: "%d %s's in %.2fs\n",count,"evp",d);
|
||||||
|
results[D_EVP][j]=((double)count)/d*mblengths[j];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mr)
|
||||||
|
{
|
||||||
|
fprintf(stdout,"+H");
|
||||||
|
for (j=0; j<num; j++)
|
||||||
|
fprintf(stdout,":%d",mblengths[j]);
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
fprintf(stdout,"+F:%d:%s",D_EVP,alg_name);
|
||||||
|
for (j=0; j<num; j++)
|
||||||
|
fprintf(stdout,":%.2f",results[D_EVP][j]);
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stdout,"The 'numbers' are in 1000s of bytes per second processed.\n");
|
||||||
|
fprintf(stdout,"type ");
|
||||||
|
for (j=0; j<num; j++)
|
||||||
|
fprintf(stdout,"%7d bytes",mblengths[j]);
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
fprintf(stdout,"%-24s",alg_name);
|
||||||
|
|
||||||
|
for (j=0; j<num; j++)
|
||||||
|
{
|
||||||
|
if (results[D_EVP][j] > 10000)
|
||||||
|
fprintf(stdout," %11.2fk",results[D_EVP][j]/1e3);
|
||||||
|
else
|
||||||
|
fprintf(stdout," %11.2f ",results[D_EVP][j]);
|
||||||
|
}
|
||||||
|
fprintf(stdout,"\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
OPENSSL_free(inp);
|
||||||
|
OPENSSL_free(out);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -73,7 +73,8 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG spkac_main
|
#define PROG spkac_main
|
||||||
|
|
||||||
/* -in arg - input file - default stdin
|
/*-
|
||||||
|
* -in arg - input file - default stdin
|
||||||
* -out arg - output file - default stdout
|
* -out arg - output file - default stdout
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
1316
apps/srp.c
1316
apps/srp.c
File diff suppressed because it is too large
Load Diff
1492
apps/testrsa.h
1492
apps/testrsa.h
File diff suppressed because it is too large
Load Diff
13
apps/ts.c
13
apps/ts.c
@@ -103,7 +103,7 @@ static TS_RESP *read_PKCS7(BIO *in_bio);
|
|||||||
static TS_RESP *create_response(CONF *conf, const char *section, char *engine,
|
static TS_RESP *create_response(CONF *conf, const char *section, char *engine,
|
||||||
char *queryfile, char *passin, char *inkey,
|
char *queryfile, char *passin, char *inkey,
|
||||||
char *signer, char *chain, const char *policy);
|
char *signer, char *chain, const char *policy);
|
||||||
static ASN1_INTEGER * MS_CALLBACK serial_cb(TS_RESP_CTX *ctx, void *data);
|
static ASN1_INTEGER * serial_cb(TS_RESP_CTX *ctx, void *data);
|
||||||
static ASN1_INTEGER *next_serial(const char *serialfile);
|
static ASN1_INTEGER *next_serial(const char *serialfile);
|
||||||
static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial);
|
static int save_ts_serial(const char *serialfile, ASN1_INTEGER *serial);
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ static TS_VERIFY_CTX *create_verify_ctx(char *data, char *digest,
|
|||||||
char *ca_path, char *ca_file,
|
char *ca_path, char *ca_file,
|
||||||
char *untrusted);
|
char *untrusted);
|
||||||
static X509_STORE *create_cert_store(char *ca_path, char *ca_file);
|
static X509_STORE *create_cert_store(char *ca_path, char *ca_file);
|
||||||
static int MS_CALLBACK verify_cb(int ok, X509_STORE_CTX *ctx);
|
static int verify_cb(int ok, X509_STORE_CTX *ctx);
|
||||||
|
|
||||||
/* Main function definition. */
|
/* Main function definition. */
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
@@ -618,7 +618,8 @@ static int create_digest(BIO *input, char *digest, const EVP_MD *md,
|
|||||||
{
|
{
|
||||||
EVP_DigestUpdate(&md_ctx, buffer, length);
|
EVP_DigestUpdate(&md_ctx, buffer, length);
|
||||||
}
|
}
|
||||||
EVP_DigestFinal(&md_ctx, *md_value, NULL);
|
if (!EVP_DigestFinal(&md_ctx, *md_value, NULL))
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -875,7 +876,7 @@ static TS_RESP *create_response(CONF *conf, const char *section, char *engine,
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ASN1_INTEGER * MS_CALLBACK serial_cb(TS_RESP_CTX *ctx, void *data)
|
static ASN1_INTEGER * serial_cb(TS_RESP_CTX *ctx, void *data)
|
||||||
{
|
{
|
||||||
const char *serial_file = (const char *) data;
|
const char *serial_file = (const char *) data;
|
||||||
ASN1_INTEGER *serial = next_serial(serial_file);
|
ASN1_INTEGER *serial = next_serial(serial_file);
|
||||||
@@ -1127,9 +1128,9 @@ static X509_STORE *create_cert_store(char *ca_path, char *ca_file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK verify_cb(int ok, X509_STORE_CTX *ctx)
|
static int verify_cb(int ok, X509_STORE_CTX *ctx)
|
||||||
{
|
{
|
||||||
/*
|
/*-
|
||||||
char buf[256];
|
char buf[256];
|
||||||
|
|
||||||
if (!ok)
|
if (!ok)
|
||||||
|
|||||||
@@ -69,10 +69,10 @@
|
|||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG verify_main
|
#define PROG verify_main
|
||||||
|
|
||||||
static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx);
|
static int cb(int ok, X509_STORE_CTX *ctx);
|
||||||
static int check(X509_STORE *ctx, char *file,
|
static int check(X509_STORE *ctx, char *file,
|
||||||
STACK_OF(X509) *uchain, STACK_OF(X509) *tchain,
|
STACK_OF(X509) *uchain, STACK_OF(X509) *tchain,
|
||||||
STACK_OF(X509_CRL) *crls, ENGINE *e);
|
STACK_OF(X509_CRL) *crls, ENGINE *e, int show_chain);
|
||||||
static int v_verbose=0, vflags = 0;
|
static int v_verbose=0, vflags = 0;
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
@@ -88,6 +88,7 @@ int MAIN(int argc, char **argv)
|
|||||||
X509_STORE *cert_ctx=NULL;
|
X509_STORE *cert_ctx=NULL;
|
||||||
X509_LOOKUP *lookup=NULL;
|
X509_LOOKUP *lookup=NULL;
|
||||||
X509_VERIFY_PARAM *vpm = NULL;
|
X509_VERIFY_PARAM *vpm = NULL;
|
||||||
|
int crl_download = 0, show_chain = 0;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -145,6 +146,10 @@ int MAIN(int argc, char **argv)
|
|||||||
if (argc-- < 1) goto end;
|
if (argc-- < 1) goto end;
|
||||||
crlfile= *(++argv);
|
crlfile= *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-crl_download") == 0)
|
||||||
|
crl_download = 1;
|
||||||
|
else if (strcmp(*argv,"-show_chain") == 0)
|
||||||
|
show_chain = 1;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
else if (strcmp(*argv,"-engine") == 0)
|
else if (strcmp(*argv,"-engine") == 0)
|
||||||
{
|
{
|
||||||
@@ -222,14 +227,25 @@ int MAIN(int argc, char **argv)
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc < 1) check(cert_ctx, NULL, untrusted, trusted, crls, e);
|
if (crl_download)
|
||||||
else
|
store_setup_crl_download(cert_ctx);
|
||||||
for (i=0; i<argc; i++)
|
|
||||||
check(cert_ctx,argv[i], untrusted, trusted, crls, e);
|
|
||||||
ret=0;
|
ret=0;
|
||||||
|
if (argc < 1)
|
||||||
|
{
|
||||||
|
if (1 != check(cert_ctx, NULL, untrusted, trusted, crls, e, show_chain))
|
||||||
|
ret=-1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i=0; i<argc; i++)
|
||||||
|
if (1 != check(cert_ctx,argv[i], untrusted, trusted, crls, e, show_chain))
|
||||||
|
ret=-1;
|
||||||
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (ret == 1) {
|
if (ret == 1) {
|
||||||
BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]");
|
BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-trusted_first] [-purpose purpose] [-crl_check]");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err," [-engine e]");
|
BIO_printf(bio_err," [-engine e]");
|
||||||
#endif
|
#endif
|
||||||
@@ -241,8 +257,8 @@ end:
|
|||||||
X509_PURPOSE *ptmp;
|
X509_PURPOSE *ptmp;
|
||||||
ptmp = X509_PURPOSE_get0(i);
|
ptmp = X509_PURPOSE_get0(i);
|
||||||
BIO_printf(bio_err, "\t%-10s\t%s\n",
|
BIO_printf(bio_err, "\t%-10s\t%s\n",
|
||||||
X509_PURPOSE_get0_sname(ptmp),
|
X509_PURPOSE_get0_sname(ptmp),
|
||||||
X509_PURPOSE_get0_name(ptmp));
|
X509_PURPOSE_get0_name(ptmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
BIO_printf(bio_err,"recognized verify names:\n");
|
BIO_printf(bio_err,"recognized verify names:\n");
|
||||||
@@ -261,16 +277,17 @@ end:
|
|||||||
sk_X509_pop_free(trusted, X509_free);
|
sk_X509_pop_free(trusted, X509_free);
|
||||||
sk_X509_CRL_pop_free(crls, X509_CRL_free);
|
sk_X509_CRL_pop_free(crls, X509_CRL_free);
|
||||||
apps_shutdown();
|
apps_shutdown();
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret < 0 ? 2 : ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int check(X509_STORE *ctx, char *file,
|
static int check(X509_STORE *ctx, char *file,
|
||||||
STACK_OF(X509) *uchain, STACK_OF(X509) *tchain,
|
STACK_OF(X509) *uchain, STACK_OF(X509) *tchain,
|
||||||
STACK_OF(X509_CRL) *crls, ENGINE *e)
|
STACK_OF(X509_CRL) *crls, ENGINE *e, int show_chain)
|
||||||
{
|
{
|
||||||
X509 *x=NULL;
|
X509 *x=NULL;
|
||||||
int i=0,ret=0;
|
int i=0,ret=0;
|
||||||
X509_STORE_CTX *csc;
|
X509_STORE_CTX *csc;
|
||||||
|
STACK_OF(X509) *chain = NULL;
|
||||||
|
|
||||||
x = load_cert(bio_err, file, FORMAT_PEM, NULL, e, "certificate file");
|
x = load_cert(bio_err, file, FORMAT_PEM, NULL, e, "certificate file");
|
||||||
if (x == NULL)
|
if (x == NULL)
|
||||||
@@ -293,6 +310,8 @@ static int check(X509_STORE *ctx, char *file,
|
|||||||
if (crls)
|
if (crls)
|
||||||
X509_STORE_CTX_set0_crls(csc, crls);
|
X509_STORE_CTX_set0_crls(csc, crls);
|
||||||
i=X509_verify_cert(csc);
|
i=X509_verify_cert(csc);
|
||||||
|
if (i > 0 && show_chain)
|
||||||
|
chain = X509_STORE_CTX_get1_chain(csc);
|
||||||
X509_STORE_CTX_free(csc);
|
X509_STORE_CTX_free(csc);
|
||||||
|
|
||||||
ret=0;
|
ret=0;
|
||||||
@@ -304,12 +323,26 @@ end:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
|
if (chain)
|
||||||
|
{
|
||||||
|
printf("Chain:\n");
|
||||||
|
for (i = 0; i < sk_X509_num(chain); i++)
|
||||||
|
{
|
||||||
|
X509 *cert = sk_X509_value(chain, i);
|
||||||
|
printf("depth=%d: ", i);
|
||||||
|
X509_NAME_print_ex_fp(stdout,
|
||||||
|
X509_get_subject_name(cert),
|
||||||
|
0, XN_FLAG_ONELINE);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
sk_X509_pop_free(chain, X509_free);
|
||||||
|
}
|
||||||
if (x != NULL) X509_free(x);
|
if (x != NULL) X509_free(x);
|
||||||
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK cb(int ok, X509_STORE_CTX *ctx)
|
static int cb(int ok, X509_STORE_CTX *ctx)
|
||||||
{
|
{
|
||||||
int cert_error = X509_STORE_CTX_get_error(ctx);
|
int cert_error = X509_STORE_CTX_get_error(ctx);
|
||||||
X509 *current_cert = X509_STORE_CTX_get_current_cert(ctx);
|
X509 *current_cert = X509_STORE_CTX_get_current_cert(ctx);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#ifdef USE_DECC_INIT
|
#ifdef USE_DECC_INIT
|
||||||
|
|
||||||
/*
|
/*-
|
||||||
* 2010-04-26 SMS.
|
* 2010-04-26 SMS.
|
||||||
*
|
*
|
||||||
*----------------------------------------------------------------------
|
*----------------------------------------------------------------------
|
||||||
|
|||||||
@@ -53,7 +53,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Usage: winrand [filename]
|
/*-
|
||||||
|
* Usage: winrand [filename]
|
||||||
*
|
*
|
||||||
* Collects entropy from mouse movements and other events and writes
|
* Collects entropy from mouse movements and other events and writes
|
||||||
* random data to filename or .rnd
|
* random data to filename or .rnd
|
||||||
|
|||||||
55
apps/x509.c
55
apps/x509.c
@@ -60,9 +60,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef OPENSSL_NO_STDIO
|
|
||||||
#define APPS_WIN16
|
|
||||||
#endif
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
@@ -150,10 +147,13 @@ static const char *x509_usage[]={
|
|||||||
" -engine e - use engine e, possibly a hardware device.\n",
|
" -engine e - use engine e, possibly a hardware device.\n",
|
||||||
#endif
|
#endif
|
||||||
" -certopt arg - various certificate text options\n",
|
" -certopt arg - various certificate text options\n",
|
||||||
|
" -checkhost host - check certificate matches \"host\"\n",
|
||||||
|
" -checkemail email - check certificate matches \"email\"\n",
|
||||||
|
" -checkip ipaddr - check certificate matches \"ipaddr\"\n",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static int MS_CALLBACK callb(int ok, X509_STORE_CTX *ctx);
|
static int callb(int ok, X509_STORE_CTX *ctx);
|
||||||
static int sign (X509 *x, EVP_PKEY *pkey,int days,int clrext, const EVP_MD *digest,
|
static int sign (X509 *x, EVP_PKEY *pkey,int days,int clrext, const EVP_MD *digest,
|
||||||
CONF *conf, char *section);
|
CONF *conf, char *section);
|
||||||
static int x509_certify (X509_STORE *ctx,char *CAfile,const EVP_MD *digest,
|
static int x509_certify (X509_STORE *ctx,char *CAfile,const EVP_MD *digest,
|
||||||
@@ -163,6 +163,9 @@ static int x509_certify (X509_STORE *ctx,char *CAfile,const EVP_MD *digest,
|
|||||||
CONF *conf, char *section, ASN1_INTEGER *sno);
|
CONF *conf, char *section, ASN1_INTEGER *sno);
|
||||||
static int purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt);
|
static int purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt);
|
||||||
static int reqfile=0;
|
static int reqfile=0;
|
||||||
|
#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL
|
||||||
|
static int force_version=2;
|
||||||
|
#endif
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
@@ -176,7 +179,7 @@ int MAIN(int argc, char **argv)
|
|||||||
STACK_OF(OPENSSL_STRING) *sigopts = NULL;
|
STACK_OF(OPENSSL_STRING) *sigopts = NULL;
|
||||||
EVP_PKEY *Upkey=NULL,*CApkey=NULL, *fkey = NULL;
|
EVP_PKEY *Upkey=NULL,*CApkey=NULL, *fkey = NULL;
|
||||||
ASN1_INTEGER *sno = NULL;
|
ASN1_INTEGER *sno = NULL;
|
||||||
int i,num,badops=0;
|
int i,num,badops=0, badsig=0;
|
||||||
BIO *out=NULL;
|
BIO *out=NULL;
|
||||||
BIO *STDout=NULL;
|
BIO *STDout=NULL;
|
||||||
STACK_OF(ASN1_OBJECT) *trust = NULL, *reject = NULL;
|
STACK_OF(ASN1_OBJECT) *trust = NULL, *reject = NULL;
|
||||||
@@ -208,6 +211,9 @@ int MAIN(int argc, char **argv)
|
|||||||
int need_rand = 0;
|
int need_rand = 0;
|
||||||
int checkend=0,checkoffset=0;
|
int checkend=0,checkoffset=0;
|
||||||
unsigned long nmflag = 0, certflag = 0;
|
unsigned long nmflag = 0, certflag = 0;
|
||||||
|
char *checkhost = NULL;
|
||||||
|
char *checkemail = NULL;
|
||||||
|
char *checkip = NULL;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
@@ -283,6 +289,13 @@ int MAIN(int argc, char **argv)
|
|||||||
if (!sigopts || !sk_OPENSSL_STRING_push(sigopts, *(++argv)))
|
if (!sigopts || !sk_OPENSSL_STRING_push(sigopts, *(++argv)))
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
|
#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL
|
||||||
|
else if (strcmp(*argv,"-force_version") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
force_version=atoi(*(++argv)) - 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else if (strcmp(*argv,"-days") == 0)
|
else if (strcmp(*argv,"-days") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -456,6 +469,21 @@ int MAIN(int argc, char **argv)
|
|||||||
checkoffset=atoi(*(++argv));
|
checkoffset=atoi(*(++argv));
|
||||||
checkend=1;
|
checkend=1;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-checkhost") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
checkhost=*(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-checkemail") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
checkemail=*(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-checkip") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
checkip=*(++argv);
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-noout") == 0)
|
else if (strcmp(*argv,"-noout") == 0)
|
||||||
noout= ++num;
|
noout= ++num;
|
||||||
else if (strcmp(*argv,"-trustout") == 0)
|
else if (strcmp(*argv,"-trustout") == 0)
|
||||||
@@ -479,6 +507,8 @@ int MAIN(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
else if (strcmp(*argv,"-ocspid") == 0)
|
else if (strcmp(*argv,"-ocspid") == 0)
|
||||||
ocspid= ++num;
|
ocspid= ++num;
|
||||||
|
else if (strcmp(*argv,"-badsig") == 0)
|
||||||
|
badsig = 1;
|
||||||
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
else if ((md_alg=EVP_get_digestbyname(*argv + 1)))
|
||||||
{
|
{
|
||||||
/* ok */
|
/* ok */
|
||||||
@@ -1061,12 +1091,17 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print_cert_checks(STDout, x, checkhost, checkemail, checkip);
|
||||||
|
|
||||||
if (noout)
|
if (noout)
|
||||||
{
|
{
|
||||||
ret=0;
|
ret=0;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (badsig)
|
||||||
|
x->signature->data[x->signature->length - 1] ^= 0x1;
|
||||||
|
|
||||||
if (outformat == FORMAT_ASN1)
|
if (outformat == FORMAT_ASN1)
|
||||||
i=i2d_X509_bio(out,x);
|
i=i2d_X509_bio(out,x);
|
||||||
else if (outformat == FORMAT_PEM)
|
else if (outformat == FORMAT_PEM)
|
||||||
@@ -1220,7 +1255,11 @@ static int x509_certify(X509_STORE *ctx, char *CAfile, const EVP_MD *digest,
|
|||||||
if (conf)
|
if (conf)
|
||||||
{
|
{
|
||||||
X509V3_CTX ctx2;
|
X509V3_CTX ctx2;
|
||||||
|
#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL
|
||||||
|
X509_set_version(x, force_version);
|
||||||
|
#else
|
||||||
X509_set_version(x,2); /* version 3 certificate */
|
X509_set_version(x,2); /* version 3 certificate */
|
||||||
|
#endif
|
||||||
X509V3_set_ctx(&ctx2, xca, x, NULL, NULL, 0);
|
X509V3_set_ctx(&ctx2, xca, x, NULL, NULL, 0);
|
||||||
X509V3_set_nconf(&ctx2, conf);
|
X509V3_set_nconf(&ctx2, conf);
|
||||||
if (!X509V3_EXT_add_nconf(conf, &ctx2, section, x)) goto end;
|
if (!X509V3_EXT_add_nconf(conf, &ctx2, section, x)) goto end;
|
||||||
@@ -1237,7 +1276,7 @@ end:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int MS_CALLBACK callb(int ok, X509_STORE_CTX *ctx)
|
static int callb(int ok, X509_STORE_CTX *ctx)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
X509 *err_cert;
|
X509 *err_cert;
|
||||||
@@ -1298,7 +1337,11 @@ static int sign(X509 *x, EVP_PKEY *pkey, int days, int clrext, const EVP_MD *dig
|
|||||||
if (conf)
|
if (conf)
|
||||||
{
|
{
|
||||||
X509V3_CTX ctx;
|
X509V3_CTX ctx;
|
||||||
|
#ifdef OPENSSL_SSL_DEBUG_BROKEN_PROTOCOL
|
||||||
|
X509_set_version(x, force_version);
|
||||||
|
#else
|
||||||
X509_set_version(x,2); /* version 3 certificate */
|
X509_set_version(x,2); /* version 3 certificate */
|
||||||
|
#endif
|
||||||
X509V3_set_ctx(&ctx, x, x, NULL, NULL, 0);
|
X509V3_set_ctx(&ctx, x, x, NULL, NULL, 0);
|
||||||
X509V3_set_nconf(&ctx, conf);
|
X509V3_set_nconf(&ctx, conf);
|
||||||
if (!X509V3_EXT_add_nconf(conf, &ctx, section, x)) goto err;
|
if (!X509V3_EXT_add_nconf(conf, &ctx, section, x)) goto err;
|
||||||
|
|||||||
@@ -60,7 +60,8 @@
|
|||||||
* something to watch out for. This was fine on linux/NT/Solaris but not
|
* something to watch out for. This was fine on linux/NT/Solaris but not
|
||||||
* Alpha */
|
* Alpha */
|
||||||
|
|
||||||
/* it is basically an example of
|
/*-
|
||||||
|
* it is basically an example of
|
||||||
* func(*(a++),*(a++))
|
* func(*(a++),*(a++))
|
||||||
* which parameter is evaluated first? It is not defined in ASN1 C.
|
* which parameter is evaluated first? It is not defined in ASN1 C.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,45 +0,0 @@
|
|||||||
/* NOCW */
|
|
||||||
/* dggccbug.c */
|
|
||||||
/* bug found by Eric Young (eay@cryptsoft.com) - May 1995 */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
/* There is a bug in
|
|
||||||
* gcc version 2.5.8 (88open OCS/BCS, DG-2.5.8.3, Oct 14 1994)
|
|
||||||
* as shipped with DGUX 5.4R3.10 that can be bypassed by defining
|
|
||||||
* DG_GCC_BUG in my code.
|
|
||||||
* The bug manifests itself by the vaule of a pointer that is
|
|
||||||
* used only by reference, not having it's value change when it is used
|
|
||||||
* to check for exiting the loop. Probably caused by there being 2
|
|
||||||
* copies of the valiable, one in a register and one being an address
|
|
||||||
* that is passed. */
|
|
||||||
|
|
||||||
/* compare the out put from
|
|
||||||
* gcc dggccbug.c; ./a.out
|
|
||||||
* and
|
|
||||||
* gcc -O dggccbug.c; ./a.out
|
|
||||||
* compile with -DFIXBUG to remove the bug when optimising.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void inc(a)
|
|
||||||
int *a;
|
|
||||||
{
|
|
||||||
(*a)++;
|
|
||||||
}
|
|
||||||
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
int p=0;
|
|
||||||
#ifdef FIXBUG
|
|
||||||
int dummy;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (p<3)
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%08X\n",p);
|
|
||||||
inc(&p);
|
|
||||||
#ifdef FIXBUG
|
|
||||||
dummy+=p;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
* Gage <agage@forgetmenot.Mines.EDU>
|
* Gage <agage@forgetmenot.Mines.EDU>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Compare the output from
|
/*-
|
||||||
|
* Compare the output from
|
||||||
* cc sgiccbug.c; ./a.out
|
* cc sgiccbug.c; ./a.out
|
||||||
* and
|
* and
|
||||||
* cc -O sgiccbug.c; ./a.out
|
* cc -O sgiccbug.c; ./a.out
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ is returned as 1.
|
|||||||
=====
|
=====
|
||||||
I have not tested the following but it is reported by holtzman@mit.edu.
|
I have not tested the following but it is reported by holtzman@mit.edu.
|
||||||
|
|
||||||
SSLref clients wait to recieve a server-verify before they send a
|
SSLref clients wait to receive a server-verify before they send a
|
||||||
client-finished. Besides this not being evident from the examples in
|
client-finished. Besides this not being evident from the examples in
|
||||||
2.2.1, it makes more sense to always send all packets you can before
|
2.2.1, it makes more sense to always send all packets you can before
|
||||||
reading. SSLeay was waiting in the server to recieve a client-finish
|
reading. SSLeay was waiting in the server to receive a client-finish
|
||||||
before sending the server-verify :-). I have changed SSLeay to send a
|
before sending the server-verify :-). I have changed SSLeay to send a
|
||||||
server-verify before trying to read the client-finished.
|
server-verify before trying to read the client-finished.
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
/* This is a cc optimiser bug for ultrix 4.3, mips CPU.
|
/*-
|
||||||
|
* This is a cc optimiser bug for ultrix 4.3, mips CPU.
|
||||||
* What happens is that the compiler, due to the (a)&7,
|
* What happens is that the compiler, due to the (a)&7,
|
||||||
* does
|
* does
|
||||||
* i=a&7;
|
* i=a&7;
|
||||||
|
|||||||
77
config
77
config
@@ -102,10 +102,6 @@ fi
|
|||||||
# Now we simply scan though... In most cases, the SYSTEM info is enough
|
# Now we simply scan though... In most cases, the SYSTEM info is enough
|
||||||
#
|
#
|
||||||
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
||||||
MPE/iX:*)
|
|
||||||
MACHINE=`echo "$MACHINE" | sed -e 's/-/_/g'`
|
|
||||||
echo "parisc-hp-MPE/iX"; exit 0
|
|
||||||
;;
|
|
||||||
A/UX:*)
|
A/UX:*)
|
||||||
echo "m68k-apple-aux3"; exit 0
|
echo "m68k-apple-aux3"; exit 0
|
||||||
;;
|
;;
|
||||||
@@ -122,18 +118,6 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
echo "${MACHINE}-ibm-aix3"; exit 0
|
echo "${MACHINE}-ibm-aix3"; exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
BeOS:*:BePC)
|
|
||||||
if [ -e /boot/develop/headers/be/bone ]; then
|
|
||||||
echo "beos-x86-bone"; exit 0
|
|
||||||
else
|
|
||||||
echo "beos-x86-r5"; exit 0
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
dgux:*)
|
|
||||||
echo "${MACHINE}-dg-dgux"; exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
HI-UX:*)
|
HI-UX:*)
|
||||||
echo "${MACHINE}-hi-hiux"; exit 0
|
echo "${MACHINE}-hi-hiux"; exit 0
|
||||||
;;
|
;;
|
||||||
@@ -320,10 +304,6 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
echo "${MACHINE}-unknown-ultrix"; exit 0
|
echo "${MACHINE}-unknown-ultrix"; exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
SINIX*|ReliantUNIX*)
|
|
||||||
echo "${MACHINE}-siemens-sysv4"; exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
POSIX-BC*)
|
POSIX-BC*)
|
||||||
echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000"
|
echo "${MACHINE}-siemens-sysv4"; exit 0 # Here, $MACHINE == "BS2000"
|
||||||
;;
|
;;
|
||||||
@@ -340,10 +320,6 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
|
echo "${MACHINE}-v11-${SYSTEM}"; exit 0;
|
||||||
;;
|
;;
|
||||||
|
|
||||||
NEWS-OS:4.*)
|
|
||||||
echo "mips-sony-newsos4"; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
MINGW*)
|
MINGW*)
|
||||||
echo "${MACHINE}-whatever-mingw"; exit 0;
|
echo "${MACHINE}-whatever-mingw"; exit 0;
|
||||||
;;
|
;;
|
||||||
@@ -359,18 +335,6 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*"CRAY T3E")
|
|
||||||
echo "t3e-cray-unicosmk"; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
*CRAY*)
|
|
||||||
echo "j90-cray-unicos"; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
NONSTOP_KERNEL*)
|
|
||||||
echo "nsr-tandem-nsk"; exit 0;
|
|
||||||
;;
|
|
||||||
|
|
||||||
vxworks*)
|
vxworks*)
|
||||||
echo "${MACHINE}-whatever-vxworks"; exit 0;
|
echo "${MACHINE}-whatever-vxworks"; exit 0;
|
||||||
;;
|
;;
|
||||||
@@ -382,7 +346,7 @@ esac
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Do the Apollo stuff first. Here, we just simply assume
|
# Do the Apollo stuff first. Here, we just simply assume
|
||||||
# that the existance of the /usr/apollo directory is proof
|
# that the existence of the /usr/apollo directory is proof
|
||||||
# enough
|
# enough
|
||||||
if [ -d /usr/apollo ]; then
|
if [ -d /usr/apollo ]; then
|
||||||
echo "whatever-apollo-whatever"
|
echo "whatever-apollo-whatever"
|
||||||
@@ -572,6 +536,8 @@ case "$GUESSOS" in
|
|||||||
*-*-iphoneos)
|
*-*-iphoneos)
|
||||||
options="$options -arch%20${MACHINE}"
|
options="$options -arch%20${MACHINE}"
|
||||||
OUT="iphoneos-cross" ;;
|
OUT="iphoneos-cross" ;;
|
||||||
|
arm64-*-iphoneos|*-*-ios64)
|
||||||
|
OUT="ios64-cross" ;;
|
||||||
alpha-*-linux2)
|
alpha-*-linux2)
|
||||||
ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
|
ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo`
|
||||||
case ${ISA:-generic} in
|
case ${ISA:-generic} in
|
||||||
@@ -587,15 +553,33 @@ case "$GUESSOS" in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
ppc64-*-linux2)
|
ppc64-*-linux2)
|
||||||
|
if [ -z "$KERNEL_BITS" ]; then
|
||||||
|
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||||
|
echo " invoke './Configure linux-ppc64' *manually*."
|
||||||
|
if [ "$TEST" = "false" -a -t 1 ]; then
|
||||||
|
echo " You have about 5 seconds to press Ctrl-C to abort."
|
||||||
|
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$KERNEL_BITS" = "64" ]; then
|
||||||
|
OUT="linux-ppc64"
|
||||||
|
else
|
||||||
|
OUT="linux-ppc"
|
||||||
|
(echo "__LP64__" | gcc -E -x c - 2>/dev/null | grep "^__LP64__" 2>&1 > /dev/null) || options="$options -m32"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
ppc64le-*-linux2) OUT="linux-ppc64le" ;;
|
||||||
|
ppc-*-linux2) OUT="linux-ppc" ;;
|
||||||
|
mips64*-*-linux2)
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||||
echo " invoke './Configure linux-ppc64' *manually*."
|
echo " invoke './Configure linux64-mips64' *manually*."
|
||||||
if [ "$TEST" = "false" -a -t 1 ]; then
|
if [ "$TEST" = "false" -a -t 1 ]; then
|
||||||
echo " You have about 5 seconds to press Ctrl-C to abort."
|
echo " You have about 5 seconds to press Ctrl-C to abort."
|
||||||
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
(trap "stty `stty -g`" 2 0; stty -icanon min 0 time 50; read waste) <&1
|
||||||
fi
|
fi
|
||||||
OUT="linux-ppc"
|
OUT="linux-mips64"
|
||||||
;;
|
;;
|
||||||
ppc-*-linux2) OUT="linux-ppc" ;;
|
mips*-*-linux2) OUT="linux-mips32" ;;
|
||||||
ppc60x-*-vxworks*) OUT="vxworks-ppc60x" ;;
|
ppc60x-*-vxworks*) OUT="vxworks-ppc60x" ;;
|
||||||
ppcgen-*-vxworks*) OUT="vxworks-ppcgen" ;;
|
ppcgen-*-vxworks*) OUT="vxworks-ppcgen" ;;
|
||||||
pentium-*-vxworks*) OUT="vxworks-pentium" ;;
|
pentium-*-vxworks*) OUT="vxworks-pentium" ;;
|
||||||
@@ -644,6 +628,7 @@ case "$GUESSOS" in
|
|||||||
armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
|
armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
|
||||||
armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
|
armv[7-9]*-*-linux2) OUT="linux-armv4"; options="$options -march=armv7-a" ;;
|
||||||
arm*-*-linux2) OUT="linux-armv4" ;;
|
arm*-*-linux2) OUT="linux-armv4" ;;
|
||||||
|
aarch64-*-linux2) OUT="linux-aarch64" ;;
|
||||||
sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||||
sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
||||||
m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||||
@@ -739,7 +724,7 @@ case "$GUESSOS" in
|
|||||||
libc=/usr/lib/libc.so
|
libc=/usr/lib/libc.so
|
||||||
else # OpenBSD
|
else # OpenBSD
|
||||||
# ld searches for highest libc.so.* and so do we
|
# ld searches for highest libc.so.* and so do we
|
||||||
libc=`(ls /usr/lib/libc.so.* | tail -1) 2>/dev/null`
|
libc=`(ls /usr/lib/libc.so.* /lib/libc.so.* | tail -1) 2>/dev/null`
|
||||||
fi
|
fi
|
||||||
case "`(file -L $libc) 2>/dev/null`" in
|
case "`(file -L $libc) 2>/dev/null`" in
|
||||||
*ELF*) OUT="BSD-x86-elf" ;;
|
*ELF*) OUT="BSD-x86-elf" ;;
|
||||||
@@ -763,8 +748,6 @@ case "$GUESSOS" in
|
|||||||
EXE=".pm"
|
EXE=".pm"
|
||||||
OUT="vos-$CC" ;;
|
OUT="vos-$CC" ;;
|
||||||
BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
|
BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
|
||||||
RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
|
|
||||||
*-siemens-sysv4) OUT="SINIX" ;;
|
|
||||||
*-hpux1*)
|
*-hpux1*)
|
||||||
if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then
|
if [ $CC = "gcc" -a $GCC_BITS = "64" ]; then
|
||||||
OUT="hpux64-parisc2-gcc"
|
OUT="hpux64-parisc2-gcc"
|
||||||
@@ -830,14 +813,8 @@ case "$GUESSOS" in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
# these are all covered by the catchall below
|
# these are all covered by the catchall below
|
||||||
# *-dgux) OUT="dgux" ;;
|
|
||||||
mips-sony-newsos4) OUT="newsos4-gcc" ;;
|
|
||||||
*-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
|
*-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
|
||||||
*-*-cygwin) OUT="Cygwin" ;;
|
*-*-cygwin) OUT="Cygwin" ;;
|
||||||
t3e-cray-unicosmk) OUT="cray-t3e" ;;
|
|
||||||
j90-cray-unicos) OUT="cray-j90" ;;
|
|
||||||
nsr-tandem-nsk) OUT="tandem-c89" ;;
|
|
||||||
beos-*) OUT="$GUESSOS" ;;
|
|
||||||
x86pc-*-qnx6) OUT="QNX6-i386" ;;
|
x86pc-*-qnx6) OUT="QNX6-i386" ;;
|
||||||
*-*-qnx6) OUT="QNX6" ;;
|
*-*-qnx6) OUT="QNX6" ;;
|
||||||
x86-*-android|i?86-*-android) OUT="android-x86" ;;
|
x86-*-android|i?86-*-android) OUT="android-x86" ;;
|
||||||
@@ -845,7 +822,7 @@ case "$GUESSOS" in
|
|||||||
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
|
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# NB: This atalla support has been superceded by the ENGINE support
|
# NB: This atalla support has been superseded by the ENGINE support
|
||||||
# That contains its own header and definitions anyway. Support can
|
# That contains its own header and definitions anyway. Support can
|
||||||
# be enabled or disabled on any supported platform without external
|
# be enabled or disabled on any supported platform without external
|
||||||
# headers, eg. by adding the "hw-atalla" switch to ./config or
|
# headers, eg. by adding the "hw-atalla" switch to ./config or
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
lib
|
|
||||||
buildinf.h
|
|
||||||
opensslconf.h
|
|
||||||
Makefile.save
|
|
||||||
*.flc
|
|
||||||
semantic.cache
|
|
||||||
*cpuid.s
|
|
||||||
uplink-cof.s
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
/* $LP: LPlib/source/LPdir_vms.c,v 1.20 2004/08/26 13:36:05 _cvs_levitte Exp $ */
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
|
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@@ -88,6 +87,12 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
|
|||||||
size_t filespeclen = strlen(directory);
|
size_t filespeclen = strlen(directory);
|
||||||
char *filespec = NULL;
|
char *filespec = NULL;
|
||||||
|
|
||||||
|
if (filespeclen == 0)
|
||||||
|
{
|
||||||
|
errno = ENOENT;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* MUST be a VMS directory specification! Let's estimate if it is. */
|
/* MUST be a VMS directory specification! Let's estimate if it is. */
|
||||||
if (directory[filespeclen-1] != ']'
|
if (directory[filespeclen-1] != ']'
|
||||||
&& directory[filespeclen-1] != '>'
|
&& directory[filespeclen-1] != '>'
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
/* $LP: LPlib/source/LPdir_win.c,v 1.10 2004/08/26 13:36:05 _cvs_levitte Exp $ */
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
|
* Copyright (c) 2004, Richard Levitte <richard@levitte.org>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@@ -37,7 +36,7 @@
|
|||||||
#if defined(LP_SYS_WINCE) && !defined(FindFirstFile)
|
#if defined(LP_SYS_WINCE) && !defined(FindFirstFile)
|
||||||
# define FindFirstFile FindFirstFileW
|
# define FindFirstFile FindFirstFileW
|
||||||
#endif
|
#endif
|
||||||
#if defined(LP_SYS_WINCE) && !defined(FindFirstFile)
|
#if defined(LP_SYS_WINCE) && !defined(FindNextFile)
|
||||||
# define FindNextFile FindNextFileW
|
# define FindNextFile FindNextFileW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -63,6 +62,16 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
|
|||||||
errno = 0;
|
errno = 0;
|
||||||
if (*ctx == NULL)
|
if (*ctx == NULL)
|
||||||
{
|
{
|
||||||
|
const char *extdir = directory;
|
||||||
|
char *extdirbuf = NULL;
|
||||||
|
size_t dirlen = strlen (directory);
|
||||||
|
|
||||||
|
if (dirlen == 0)
|
||||||
|
{
|
||||||
|
errno = ENOENT;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
*ctx = (LP_DIR_CTX *)malloc(sizeof(LP_DIR_CTX));
|
*ctx = (LP_DIR_CTX *)malloc(sizeof(LP_DIR_CTX));
|
||||||
if (*ctx == NULL)
|
if (*ctx == NULL)
|
||||||
{
|
{
|
||||||
@@ -71,15 +80,35 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
|
|||||||
}
|
}
|
||||||
memset(*ctx, '\0', sizeof(LP_DIR_CTX));
|
memset(*ctx, '\0', sizeof(LP_DIR_CTX));
|
||||||
|
|
||||||
|
if (directory[dirlen-1] != '*')
|
||||||
|
{
|
||||||
|
extdirbuf = (char *)malloc(dirlen + 3);
|
||||||
|
if (extdirbuf == NULL)
|
||||||
|
{
|
||||||
|
free(*ctx);
|
||||||
|
*ctx = NULL;
|
||||||
|
errno = ENOMEM;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (directory[dirlen-1] != '/' && directory[dirlen-1] != '\\')
|
||||||
|
extdir = strcat(strcpy (extdirbuf,directory),"/*");
|
||||||
|
else
|
||||||
|
extdir = strcat(strcpy (extdirbuf,directory),"*");
|
||||||
|
}
|
||||||
|
|
||||||
if (sizeof(TCHAR) != sizeof(char))
|
if (sizeof(TCHAR) != sizeof(char))
|
||||||
{
|
{
|
||||||
TCHAR *wdir = NULL;
|
TCHAR *wdir = NULL;
|
||||||
/* len_0 denotes string length *with* trailing 0 */
|
/* len_0 denotes string length *with* trailing 0 */
|
||||||
size_t index = 0,len_0 = strlen(directory) + 1;
|
size_t index = 0,len_0 = strlen(extdir) + 1;
|
||||||
|
|
||||||
wdir = (TCHAR *)malloc(len_0 * sizeof(TCHAR));
|
wdir = (TCHAR *)calloc(len_0, sizeof(TCHAR));
|
||||||
if (wdir == NULL)
|
if (wdir == NULL)
|
||||||
{
|
{
|
||||||
|
if (extdirbuf != NULL)
|
||||||
|
{
|
||||||
|
free (extdirbuf);
|
||||||
|
}
|
||||||
free(*ctx);
|
free(*ctx);
|
||||||
*ctx = NULL;
|
*ctx = NULL;
|
||||||
errno = ENOMEM;
|
errno = ENOMEM;
|
||||||
@@ -87,17 +116,23 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LP_MULTIBYTE_AVAILABLE
|
#ifdef LP_MULTIBYTE_AVAILABLE
|
||||||
if (!MultiByteToWideChar(CP_ACP, 0, directory, len_0, (WCHAR *)wdir, len_0))
|
if (!MultiByteToWideChar(CP_ACP, 0, extdir, len_0, (WCHAR *)wdir, len_0))
|
||||||
#endif
|
#endif
|
||||||
for (index = 0; index < len_0; index++)
|
for (index = 0; index < len_0; index++)
|
||||||
wdir[index] = (TCHAR)directory[index];
|
wdir[index] = (TCHAR)extdir[index];
|
||||||
|
|
||||||
(*ctx)->handle = FindFirstFile(wdir, &(*ctx)->ctx);
|
(*ctx)->handle = FindFirstFile(wdir, &(*ctx)->ctx);
|
||||||
|
|
||||||
free(wdir);
|
free(wdir);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(*ctx)->handle = FindFirstFile((TCHAR *)directory, &(*ctx)->ctx);
|
{
|
||||||
|
(*ctx)->handle = FindFirstFile((TCHAR *)extdir, &(*ctx)->ctx);
|
||||||
|
}
|
||||||
|
if (extdirbuf != NULL)
|
||||||
|
{
|
||||||
|
free (extdirbuf);
|
||||||
|
}
|
||||||
|
|
||||||
if ((*ctx)->handle == INVALID_HANDLE_VALUE)
|
if ((*ctx)->handle == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
@@ -114,7 +149,6 @@ const char *LP_find_file(LP_DIR_CTX **ctx, const char *directory)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sizeof(TCHAR) != sizeof(char))
|
if (sizeof(TCHAR) != sizeof(char))
|
||||||
{
|
{
|
||||||
TCHAR *wdir = (*ctx)->ctx.cFileName;
|
TCHAR *wdir = (*ctx)->ctx.cFileName;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ TOP= ..
|
|||||||
CC= cc
|
CC= cc
|
||||||
INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
|
INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
|
||||||
# INCLUDES targets sudbirs!
|
# INCLUDES targets sudbirs!
|
||||||
INCLUDES= -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include $(ZLIB_INCLUDE)
|
INCLUDES= -I.. -I../.. -I../modes -I../asn1 -I../evp -I../include -I../../include $(ZLIB_INCLUDE)
|
||||||
CFLAG= -g
|
CFLAG= -g
|
||||||
MAKEDEPPROG= makedepend
|
MAKEDEPPROG= makedepend
|
||||||
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
||||||
@@ -31,6 +31,7 @@ CPUID_OBJ=mem_clr.o
|
|||||||
LIBS=
|
LIBS=
|
||||||
|
|
||||||
GENERAL=Makefile README crypto-lib.com install.com
|
GENERAL=Makefile README crypto-lib.com install.com
|
||||||
|
TEST=constant_time_test.c
|
||||||
|
|
||||||
LIB= $(TOP)/libcrypto.a
|
LIB= $(TOP)/libcrypto.a
|
||||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
||||||
@@ -45,7 +46,8 @@ SRC= $(LIBSRC)
|
|||||||
|
|
||||||
EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
|
EXHEADER= crypto.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
|
||||||
ossl_typ.h
|
ossl_typ.h
|
||||||
HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER)
|
HEADER= cryptlib.h buildinf.h md32_common.h o_str.h o_dir.h \
|
||||||
|
constant_time_locl.h $(EXHEADER)
|
||||||
|
|
||||||
ALL= $(GENERAL) $(SRC) $(HEADER)
|
ALL= $(GENERAL) $(SRC) $(HEADER)
|
||||||
|
|
||||||
@@ -62,12 +64,7 @@ fips: cryptlib.o thr_id.o uid.o $(CPUID_OBJ)
|
|||||||
done;
|
done;
|
||||||
|
|
||||||
buildinf.h: ../Makefile
|
buildinf.h: ../Makefile
|
||||||
( echo "#ifndef MK1MF_BUILD"; \
|
$(PERL) $(TOP)/util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" >buildinf.h
|
||||||
echo ' /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
|
|
||||||
echo ' #define CFLAGS "$(CC) $(CFLAG)"'; \
|
|
||||||
echo ' #define PLATFORM "$(PLATFORM)"'; \
|
|
||||||
echo " #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
|
|
||||||
echo '#endif' ) >buildinf.h
|
|
||||||
|
|
||||||
x86cpuid.s: x86cpuid.pl perlasm/x86asm.pl
|
x86cpuid.s: x86cpuid.pl perlasm/x86asm.pl
|
||||||
$(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
$(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
|
||||||
@@ -86,13 +83,15 @@ ia64cpuid.s: ia64cpuid.S; $(CC) $(CFLAGS) -E ia64cpuid.S > $@
|
|||||||
ppccpuid.s: ppccpuid.pl; $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@
|
ppccpuid.s: ppccpuid.pl; $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@
|
||||||
pariscid.s: pariscid.pl; $(PERL) pariscid.pl $(PERLASM_SCHEME) $@
|
pariscid.s: pariscid.pl; $(PERL) pariscid.pl $(PERLASM_SCHEME) $@
|
||||||
alphacpuid.s: alphacpuid.pl
|
alphacpuid.s: alphacpuid.pl
|
||||||
$(PERL) $< | $(CC) -E - | tee $@ > /dev/null
|
(preproc=$$$$.$@.S; trap "rm $$preproc" INT; \
|
||||||
|
$(PERL) alphacpuid.pl > $$preproc && \
|
||||||
|
$(CC) -E -P $$preproc > $@ && rm $$preproc)
|
||||||
|
|
||||||
subdirs:
|
subdirs:
|
||||||
@target=all; $(RECURSIVE_MAKE)
|
@target=all; $(RECURSIVE_MAKE)
|
||||||
|
|
||||||
files:
|
files:
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
|
||||||
@target=files; $(RECURSIVE_MAKE)
|
@target=files; $(RECURSIVE_MAKE)
|
||||||
|
|
||||||
links:
|
links:
|
||||||
@@ -105,7 +104,7 @@ links:
|
|||||||
lib: $(LIB)
|
lib: $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
$(LIB): $(LIBOBJ)
|
$(LIB): $(LIBOBJ)
|
||||||
$(ARX) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB) || echo Never mind.
|
$(RANLIB) $(LIB) || echo Never mind.
|
||||||
|
|
||||||
shared: buildinf.h lib subdirs
|
shared: buildinf.h lib subdirs
|
||||||
@@ -125,6 +124,8 @@ install:
|
|||||||
done;
|
done;
|
||||||
@target=install; $(RECURSIVE_MAKE)
|
@target=install; $(RECURSIVE_MAKE)
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
@target=lint; $(RECURSIVE_MAKE)
|
@target=lint; $(RECURSIVE_MAKE)
|
||||||
|
|
||||||
@@ -142,7 +143,6 @@ clean:
|
|||||||
dclean:
|
dclean:
|
||||||
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
|
||||||
mv -f Makefile.new $(MAKEFILE)
|
mv -f Makefile.new $(MAKEFILE)
|
||||||
rm -f opensslconf.h
|
|
||||||
@target=dclean; $(RECURSIVE_MAKE)
|
@target=dclean; $(RECURSIVE_MAKE)
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
@@ -218,8 +218,10 @@ o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
|||||||
o_init.o: ../include/openssl/symhacks.h o_init.c
|
o_init.o: ../include/openssl/symhacks.h o_init.c
|
||||||
o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||||
o_str.o: o_str.c o_str.h
|
o_str.o: o_str.c o_str.h
|
||||||
o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
|
o_time.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
o_time.o: o_time.h
|
o_time.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
|
o_time.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||||
|
o_time.o: ../include/openssl/stack.h ../include/openssl/symhacks.h o_time.c
|
||||||
thr_id.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
thr_id.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||||
thr_id.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
thr_id.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
thr_id.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
thr_id.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
lib
|
|
||||||
Makefile.save
|
|
||||||
*.flc
|
|
||||||
semantic.cache
|
|
||||||
aes-*.s
|
|
||||||
@@ -41,7 +41,7 @@ top:
|
|||||||
all: lib
|
all: lib
|
||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(ARX) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB) || echo Never mind.
|
$(RANLIB) $(LIB) || echo Never mind.
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
@@ -65,12 +65,22 @@ aesni-x86_64.s: asm/aesni-x86_64.pl
|
|||||||
$(PERL) asm/aesni-x86_64.pl $(PERLASM_SCHEME) > $@
|
$(PERL) asm/aesni-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||||
aesni-sha1-x86_64.s: asm/aesni-sha1-x86_64.pl
|
aesni-sha1-x86_64.s: asm/aesni-sha1-x86_64.pl
|
||||||
$(PERL) asm/aesni-sha1-x86_64.pl $(PERLASM_SCHEME) > $@
|
$(PERL) asm/aesni-sha1-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||||
|
aesni-sha256-x86_64.s: asm/aesni-sha256-x86_64.pl
|
||||||
|
$(PERL) asm/aesni-sha256-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||||
|
aesni-mb-x86_64.s: asm/aesni-mb-x86_64.pl
|
||||||
|
$(PERL) asm/aesni-mb-x86_64.pl $(PERLASM_SCHEME) > $@
|
||||||
|
|
||||||
aes-sparcv9.s: asm/aes-sparcv9.pl
|
aes-sparcv9.s: asm/aes-sparcv9.pl
|
||||||
$(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@
|
$(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@
|
||||||
|
aest4-sparcv9.s: asm/aest4-sparcv9.pl
|
||||||
|
$(PERL) asm/aest4-sparcv9.pl $(CFLAGS) > $@
|
||||||
|
|
||||||
aes-ppc.s: asm/aes-ppc.pl
|
aes-ppc.s: asm/aes-ppc.pl
|
||||||
$(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@
|
$(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@
|
||||||
|
vpaes-ppc.s: asm/vpaes-ppc.pl
|
||||||
|
$(PERL) asm/vpaes-ppc.pl $(PERLASM_SCHEME) $@
|
||||||
|
aesp8-ppc.s: asm/aesp8-ppc.pl
|
||||||
|
$(PERL) asm/aesp8-ppc.pl $(PERLASM_SCHEME) $@
|
||||||
|
|
||||||
aes-parisc.s: asm/aes-parisc.pl
|
aes-parisc.s: asm/aes-parisc.pl
|
||||||
$(PERL) asm/aes-parisc.pl $(PERLASM_SCHEME) $@
|
$(PERL) asm/aes-parisc.pl $(PERLASM_SCHEME) $@
|
||||||
@@ -78,12 +88,18 @@ aes-parisc.s: asm/aes-parisc.pl
|
|||||||
aes-mips.S: asm/aes-mips.pl
|
aes-mips.S: asm/aes-mips.pl
|
||||||
$(PERL) asm/aes-mips.pl $(PERLASM_SCHEME) $@
|
$(PERL) asm/aes-mips.pl $(PERLASM_SCHEME) $@
|
||||||
|
|
||||||
|
aesv8-armx.S: asm/aesv8-armx.pl
|
||||||
|
$(PERL) asm/aesv8-armx.pl $(PERLASM_SCHEME) $@
|
||||||
|
aesv8-armx.o: aesv8-armx.S
|
||||||
|
|
||||||
# GNU make "catch all"
|
# GNU make "catch all"
|
||||||
aes-%.S: asm/aes-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
|
aes-%.S: asm/aes-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
|
||||||
aes-armv4.o: aes-armv4.S
|
aes-armv4.o: aes-armv4.S
|
||||||
|
bsaes-%.S: asm/bsaes-%.pl; $(PERL) $< $(PERLASM_SCHEME) $@
|
||||||
|
bsaes-armv7.o: bsaes-armv7.S
|
||||||
|
|
||||||
files:
|
files:
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl "AES_ENC=$(AES_ENC)" Makefile >> $(TOP)/MINFO
|
||||||
|
|
||||||
links:
|
links:
|
||||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||||
@@ -119,28 +135,17 @@ clean:
|
|||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
|
|
||||||
aes_cbc.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
aes_cbc.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
|
||||||
aes_cbc.o: ../../include/openssl/e_os2.h ../../include/openssl/modes.h
|
aes_cbc.o: ../../include/openssl/opensslconf.h aes_cbc.c
|
||||||
aes_cbc.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
aes_cfb.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
|
||||||
aes_cbc.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
aes_cfb.o: ../../include/openssl/opensslconf.h aes_cfb.c
|
||||||
aes_cbc.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
|
||||||
aes_cbc.o: aes_cbc.c
|
|
||||||
aes_cfb.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
|
||||||
aes_cfb.o: ../../include/openssl/e_os2.h ../../include/openssl/modes.h
|
|
||||||
aes_cfb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
|
||||||
aes_cfb.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
|
||||||
aes_cfb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
|
||||||
aes_cfb.o: aes_cfb.c
|
|
||||||
aes_core.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
aes_core.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
||||||
aes_core.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
aes_core.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
||||||
aes_core.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
aes_core.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||||
aes_core.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
aes_core.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||||
aes_core.o: ../../include/openssl/symhacks.h aes_core.c aes_locl.h
|
aes_core.o: ../../include/openssl/symhacks.h aes_core.c aes_locl.h
|
||||||
aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
||||||
aes_ecb.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h
|
aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
|
||||||
aes_ecb.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
|
||||||
aes_ecb.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
|
||||||
aes_ecb.o: ../../include/openssl/symhacks.h aes_ecb.c aes_locl.h
|
|
||||||
aes_ige.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/bio.h
|
aes_ige.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/bio.h
|
||||||
aes_ige.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
aes_ige.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||||
aes_ige.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
aes_ige.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||||
@@ -151,17 +156,13 @@ aes_ige.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_ige.c aes_locl.h
|
|||||||
aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
||||||
aes_misc.o: ../../include/openssl/opensslconf.h
|
aes_misc.o: ../../include/openssl/opensslconf.h
|
||||||
aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
|
aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
|
||||||
aes_ofb.o: ../../include/openssl/aes.h ../../include/openssl/crypto.h
|
aes_ofb.o: ../../include/openssl/aes.h ../../include/openssl/modes.h
|
||||||
aes_ofb.o: ../../include/openssl/e_os2.h ../../include/openssl/modes.h
|
aes_ofb.o: ../../include/openssl/opensslconf.h aes_ofb.c
|
||||||
aes_ofb.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
|
||||||
aes_ofb.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
|
||||||
aes_ofb.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
|
||||||
aes_ofb.o: aes_ofb.c
|
|
||||||
aes_wrap.o: ../../e_os.h ../../include/openssl/aes.h
|
aes_wrap.o: ../../e_os.h ../../include/openssl/aes.h
|
||||||
aes_wrap.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
aes_wrap.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||||
aes_wrap.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
aes_wrap.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
|
||||||
aes_wrap.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
aes_wrap.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||||
aes_wrap.o: ../../include/openssl/opensslconf.h
|
aes_wrap.o: ../../include/openssl/modes.h ../../include/openssl/opensslconf.h
|
||||||
aes_wrap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
aes_wrap.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||||
aes_wrap.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
aes_wrap.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||||
aes_wrap.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_wrap.c
|
aes_wrap.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_wrap.c
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
This is an OpenSSL-compatible version of AES (also called Rijndael).
|
|
||||||
aes_core.c is basically the same as rijndael-alg-fst.c but with an
|
|
||||||
API that looks like the rest of the OpenSSL symmetric cipher suite.
|
|
||||||
@@ -49,7 +49,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/crypto.h>
|
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/modes.h>
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/crypto.h>
|
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/modes.h>
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
#include "aes_locl.h"
|
#include "aes_locl.h"
|
||||||
|
|
||||||
#ifndef AES_ASM
|
#ifndef AES_ASM
|
||||||
/*
|
/*-
|
||||||
Te0[x] = S [x].[02, 01, 01, 03];
|
Te0[x] = S [x].[02, 01, 01, 03];
|
||||||
Te1[x] = S [x].[03, 02, 01, 01];
|
Te1[x] = S [x].[03, 02, 01, 01];
|
||||||
Te2[x] = S [x].[01, 03, 02, 01];
|
Te2[x] = S [x].[01, 03, 02, 01];
|
||||||
@@ -54,7 +54,6 @@ Td3[x] = Si[x].[09, 0d, 0b, 0e];
|
|||||||
Td4[x] = Si[x].[01];
|
Td4[x] = Si[x].[01];
|
||||||
*/
|
*/
|
||||||
|
|
||||||
__fips_constseg
|
|
||||||
static const u32 Te0[256] = {
|
static const u32 Te0[256] = {
|
||||||
0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
|
0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
|
||||||
0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
|
0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
|
||||||
@@ -121,7 +120,6 @@ static const u32 Te0[256] = {
|
|||||||
0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
|
0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
|
||||||
0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
|
0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Te1[256] = {
|
static const u32 Te1[256] = {
|
||||||
0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
|
0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
|
||||||
0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
|
0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
|
||||||
@@ -188,7 +186,6 @@ static const u32 Te1[256] = {
|
|||||||
0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
|
0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
|
||||||
0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
|
0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Te2[256] = {
|
static const u32 Te2[256] = {
|
||||||
0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
|
0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
|
||||||
0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
|
0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
|
||||||
@@ -255,7 +252,6 @@ static const u32 Te2[256] = {
|
|||||||
0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
|
0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
|
||||||
0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
|
0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Te3[256] = {
|
static const u32 Te3[256] = {
|
||||||
0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
|
0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
|
||||||
0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
|
0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
|
||||||
@@ -323,7 +319,6 @@ static const u32 Te3[256] = {
|
|||||||
0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
|
0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
|
||||||
};
|
};
|
||||||
|
|
||||||
__fips_constseg
|
|
||||||
static const u32 Td0[256] = {
|
static const u32 Td0[256] = {
|
||||||
0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
|
0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
|
||||||
0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
|
0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
|
||||||
@@ -390,7 +385,6 @@ static const u32 Td0[256] = {
|
|||||||
0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
|
0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
|
||||||
0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
|
0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Td1[256] = {
|
static const u32 Td1[256] = {
|
||||||
0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
|
0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
|
||||||
0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
|
0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
|
||||||
@@ -457,7 +451,6 @@ static const u32 Td1[256] = {
|
|||||||
0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
|
0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
|
||||||
0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
|
0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Td2[256] = {
|
static const u32 Td2[256] = {
|
||||||
0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
|
0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
|
||||||
0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
|
0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
|
||||||
@@ -524,7 +517,6 @@ static const u32 Td2[256] = {
|
|||||||
0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
|
0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
|
||||||
0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
|
0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 Td3[256] = {
|
static const u32 Td3[256] = {
|
||||||
0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
|
0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
|
||||||
0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
|
0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
|
||||||
@@ -591,7 +583,6 @@ static const u32 Td3[256] = {
|
|||||||
0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
|
0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
|
||||||
0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
|
0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u8 Td4[256] = {
|
static const u8 Td4[256] = {
|
||||||
0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
|
0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
|
||||||
0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
|
0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
|
||||||
@@ -626,163 +617,164 @@ static const u8 Td4[256] = {
|
|||||||
0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
|
0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
|
||||||
0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
|
0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
|
||||||
};
|
};
|
||||||
__fips_constseg
|
|
||||||
static const u32 rcon[] = {
|
static const u32 rcon[] = {
|
||||||
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
||||||
0x10000000, 0x20000000, 0x40000000, 0x80000000,
|
0x10000000, 0x20000000, 0x40000000, 0x80000000,
|
||||||
0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
|
0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expand the cipher key into the encryption key schedule.
|
* Expand the cipher key into the encryption key schedule.
|
||||||
*/
|
*/
|
||||||
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||||
AES_KEY *key) {
|
AES_KEY *key)
|
||||||
|
{
|
||||||
|
|
||||||
u32 *rk;
|
u32 *rk;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
if (!userKey || !key)
|
if (!userKey || !key)
|
||||||
return -1;
|
return -1;
|
||||||
if (bits != 128 && bits != 192 && bits != 256)
|
if (bits != 128 && bits != 192 && bits != 256)
|
||||||
return -2;
|
return -2;
|
||||||
|
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
if (bits==128)
|
if (bits==128)
|
||||||
key->rounds = 10;
|
key->rounds = 10;
|
||||||
else if (bits==192)
|
else if (bits==192)
|
||||||
key->rounds = 12;
|
key->rounds = 12;
|
||||||
else
|
else
|
||||||
key->rounds = 14;
|
key->rounds = 14;
|
||||||
|
|
||||||
rk[0] = GETU32(userKey );
|
rk[0] = GETU32(userKey );
|
||||||
rk[1] = GETU32(userKey + 4);
|
rk[1] = GETU32(userKey + 4);
|
||||||
rk[2] = GETU32(userKey + 8);
|
rk[2] = GETU32(userKey + 8);
|
||||||
rk[3] = GETU32(userKey + 12);
|
rk[3] = GETU32(userKey + 12);
|
||||||
if (bits == 128) {
|
if (bits == 128) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[3];
|
temp = rk[3];
|
||||||
rk[4] = rk[0] ^
|
rk[4] = rk[0] ^
|
||||||
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[5] = rk[1] ^ rk[4];
|
rk[5] = rk[1] ^ rk[4];
|
||||||
rk[6] = rk[2] ^ rk[5];
|
rk[6] = rk[2] ^ rk[5];
|
||||||
rk[7] = rk[3] ^ rk[6];
|
rk[7] = rk[3] ^ rk[6];
|
||||||
if (++i == 10) {
|
if (++i == 10) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rk += 4;
|
rk += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rk[4] = GETU32(userKey + 16);
|
rk[4] = GETU32(userKey + 16);
|
||||||
rk[5] = GETU32(userKey + 20);
|
rk[5] = GETU32(userKey + 20);
|
||||||
if (bits == 192) {
|
if (bits == 192) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 5];
|
temp = rk[ 5];
|
||||||
rk[ 6] = rk[ 0] ^
|
rk[ 6] = rk[ 0] ^
|
||||||
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[ 7] = rk[ 1] ^ rk[ 6];
|
rk[ 7] = rk[ 1] ^ rk[ 6];
|
||||||
rk[ 8] = rk[ 2] ^ rk[ 7];
|
rk[ 8] = rk[ 2] ^ rk[ 7];
|
||||||
rk[ 9] = rk[ 3] ^ rk[ 8];
|
rk[ 9] = rk[ 3] ^ rk[ 8];
|
||||||
if (++i == 8) {
|
if (++i == 8) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rk[10] = rk[ 4] ^ rk[ 9];
|
rk[10] = rk[ 4] ^ rk[ 9];
|
||||||
rk[11] = rk[ 5] ^ rk[10];
|
rk[11] = rk[ 5] ^ rk[10];
|
||||||
rk += 6;
|
rk += 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rk[6] = GETU32(userKey + 24);
|
rk[6] = GETU32(userKey + 24);
|
||||||
rk[7] = GETU32(userKey + 28);
|
rk[7] = GETU32(userKey + 28);
|
||||||
if (bits == 256) {
|
if (bits == 256) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 7];
|
temp = rk[ 7];
|
||||||
rk[ 8] = rk[ 0] ^
|
rk[ 8] = rk[ 0] ^
|
||||||
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
(Te1[(temp >> 24) ] & 0x000000ff) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[ 9] = rk[ 1] ^ rk[ 8];
|
rk[ 9] = rk[ 1] ^ rk[ 8];
|
||||||
rk[10] = rk[ 2] ^ rk[ 9];
|
rk[10] = rk[ 2] ^ rk[ 9];
|
||||||
rk[11] = rk[ 3] ^ rk[10];
|
rk[11] = rk[ 3] ^ rk[10];
|
||||||
if (++i == 7) {
|
if (++i == 7) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
temp = rk[11];
|
temp = rk[11];
|
||||||
rk[12] = rk[ 4] ^
|
rk[12] = rk[ 4] ^
|
||||||
(Te2[(temp >> 24) ] & 0xff000000) ^
|
(Te2[(temp >> 24) ] & 0xff000000) ^
|
||||||
(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(temp >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(temp ) & 0xff] & 0x000000ff);
|
(Te1[(temp ) & 0xff] & 0x000000ff);
|
||||||
rk[13] = rk[ 5] ^ rk[12];
|
rk[13] = rk[ 5] ^ rk[12];
|
||||||
rk[14] = rk[ 6] ^ rk[13];
|
rk[14] = rk[ 6] ^ rk[13];
|
||||||
rk[15] = rk[ 7] ^ rk[14];
|
rk[15] = rk[ 7] ^ rk[14];
|
||||||
|
|
||||||
rk += 8;
|
rk += 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expand the cipher key into the decryption key schedule.
|
* Expand the cipher key into the decryption key schedule.
|
||||||
*/
|
*/
|
||||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||||
AES_KEY *key) {
|
AES_KEY *key)
|
||||||
|
{
|
||||||
|
|
||||||
u32 *rk;
|
u32 *rk;
|
||||||
int i, j, status;
|
int i, j, status;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
/* first, start with an encryption schedule */
|
/* first, start with an encryption schedule */
|
||||||
status = AES_set_encrypt_key(userKey, bits, key);
|
status = AES_set_encrypt_key(userKey, bits, key);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
/* invert the order of the round keys: */
|
/* invert the order of the round keys: */
|
||||||
for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
|
for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
|
||||||
temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
|
temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
|
||||||
temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
|
temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
|
||||||
temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
|
temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
|
||||||
temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
|
temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
|
||||||
}
|
}
|
||||||
/* apply the inverse MixColumn transform to all round keys but the first and the last: */
|
/* apply the inverse MixColumn transform to all round keys but the first and the last: */
|
||||||
for (i = 1; i < (key->rounds); i++) {
|
for (i = 1; i < (key->rounds); i++) {
|
||||||
rk += 4;
|
rk += 4;
|
||||||
rk[0] =
|
rk[0] =
|
||||||
Td0[Te1[(rk[0] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[0] >> 24) ] & 0xff] ^
|
||||||
Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te1[(rk[0] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[0] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te1[(rk[0] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[0] ) & 0xff] & 0xff];
|
||||||
rk[1] =
|
rk[1] =
|
||||||
Td0[Te1[(rk[1] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[1] >> 24) ] & 0xff] ^
|
||||||
Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te1[(rk[1] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[1] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te1[(rk[1] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[1] ) & 0xff] & 0xff];
|
||||||
rk[2] =
|
rk[2] =
|
||||||
Td0[Te1[(rk[2] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[2] >> 24) ] & 0xff] ^
|
||||||
Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te1[(rk[2] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[2] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te1[(rk[2] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[2] ) & 0xff] & 0xff];
|
||||||
rk[3] =
|
rk[3] =
|
||||||
Td0[Te1[(rk[3] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[3] >> 24) ] & 0xff] ^
|
||||||
Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te1[(rk[3] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[3] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te1[(rk[3] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[3] ) & 0xff] & 0xff];
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -790,71 +782,71 @@ int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
* in and out can overlap
|
* in and out can overlap
|
||||||
*/
|
*/
|
||||||
void AES_encrypt(const unsigned char *in, unsigned char *out,
|
void AES_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
const AES_KEY *key) {
|
const AES_KEY *key) {
|
||||||
|
|
||||||
const u32 *rk;
|
const u32 *rk;
|
||||||
u32 s0, s1, s2, s3, t0, t1, t2, t3;
|
u32 s0, s1, s2, s3, t0, t1, t2, t3;
|
||||||
#ifndef FULL_UNROLL
|
#ifndef FULL_UNROLL
|
||||||
int r;
|
int r;
|
||||||
#endif /* ?FULL_UNROLL */
|
#endif /* ?FULL_UNROLL */
|
||||||
|
|
||||||
assert(in && out && key);
|
assert(in && out && key);
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* map byte array block to cipher state
|
* map byte array block to cipher state
|
||||||
* and add initial round key:
|
* and add initial round key:
|
||||||
*/
|
*/
|
||||||
s0 = GETU32(in ) ^ rk[0];
|
s0 = GETU32(in ) ^ rk[0];
|
||||||
s1 = GETU32(in + 4) ^ rk[1];
|
s1 = GETU32(in + 4) ^ rk[1];
|
||||||
s2 = GETU32(in + 8) ^ rk[2];
|
s2 = GETU32(in + 8) ^ rk[2];
|
||||||
s3 = GETU32(in + 12) ^ rk[3];
|
s3 = GETU32(in + 12) ^ rk[3];
|
||||||
#ifdef FULL_UNROLL
|
#ifdef FULL_UNROLL
|
||||||
/* round 1: */
|
/* round 1: */
|
||||||
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4];
|
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4];
|
||||||
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5];
|
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5];
|
||||||
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6];
|
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6];
|
||||||
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7];
|
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7];
|
||||||
/* round 2: */
|
/* round 2: */
|
||||||
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8];
|
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8];
|
||||||
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9];
|
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9];
|
||||||
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10];
|
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10];
|
||||||
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11];
|
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11];
|
||||||
/* round 3: */
|
/* round 3: */
|
||||||
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12];
|
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12];
|
||||||
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13];
|
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13];
|
||||||
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14];
|
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14];
|
||||||
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15];
|
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15];
|
||||||
/* round 4: */
|
/* round 4: */
|
||||||
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16];
|
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16];
|
||||||
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17];
|
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17];
|
||||||
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18];
|
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18];
|
||||||
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19];
|
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19];
|
||||||
/* round 5: */
|
/* round 5: */
|
||||||
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20];
|
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20];
|
||||||
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21];
|
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21];
|
||||||
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22];
|
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22];
|
||||||
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23];
|
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23];
|
||||||
/* round 6: */
|
/* round 6: */
|
||||||
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24];
|
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24];
|
||||||
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25];
|
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25];
|
||||||
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26];
|
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26];
|
||||||
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27];
|
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27];
|
||||||
/* round 7: */
|
/* round 7: */
|
||||||
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28];
|
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28];
|
||||||
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29];
|
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29];
|
||||||
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30];
|
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30];
|
||||||
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31];
|
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31];
|
||||||
/* round 8: */
|
/* round 8: */
|
||||||
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32];
|
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32];
|
||||||
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33];
|
s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33];
|
||||||
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34];
|
s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34];
|
||||||
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35];
|
s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35];
|
||||||
/* round 9: */
|
/* round 9: */
|
||||||
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36];
|
t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36];
|
||||||
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37];
|
t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37];
|
||||||
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38];
|
t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38];
|
||||||
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39];
|
t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39];
|
||||||
if (key->rounds > 10) {
|
if (key->rounds > 10) {
|
||||||
/* round 10: */
|
/* round 10: */
|
||||||
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40];
|
s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40];
|
||||||
@@ -943,37 +935,37 @@ void AES_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
}
|
}
|
||||||
#endif /* ?FULL_UNROLL */
|
#endif /* ?FULL_UNROLL */
|
||||||
/*
|
/*
|
||||||
* apply last round and
|
* apply last round and
|
||||||
* map cipher state to byte array block:
|
* map cipher state to byte array block:
|
||||||
*/
|
*/
|
||||||
s0 =
|
s0 =
|
||||||
(Te2[(t0 >> 24) ] & 0xff000000) ^
|
(Te2[(t0 >> 24) ] & 0xff000000) ^
|
||||||
(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(t2 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t2 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(t3 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t3 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[0];
|
rk[0];
|
||||||
PUTU32(out , s0);
|
PUTU32(out , s0);
|
||||||
s1 =
|
s1 =
|
||||||
(Te2[(t1 >> 24) ] & 0xff000000) ^
|
(Te2[(t1 >> 24) ] & 0xff000000) ^
|
||||||
(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(t3 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t3 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(t0 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t0 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[1];
|
rk[1];
|
||||||
PUTU32(out + 4, s1);
|
PUTU32(out + 4, s1);
|
||||||
s2 =
|
s2 =
|
||||||
(Te2[(t2 >> 24) ] & 0xff000000) ^
|
(Te2[(t2 >> 24) ] & 0xff000000) ^
|
||||||
(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(t0 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t0 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(t1 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t1 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[2];
|
rk[2];
|
||||||
PUTU32(out + 8, s2);
|
PUTU32(out + 8, s2);
|
||||||
s3 =
|
s3 =
|
||||||
(Te2[(t3 >> 24) ] & 0xff000000) ^
|
(Te2[(t3 >> 24) ] & 0xff000000) ^
|
||||||
(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te0[(t1 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t1 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te1[(t2 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t2 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[3];
|
rk[3];
|
||||||
PUTU32(out + 12, s3);
|
PUTU32(out + 12, s3);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -981,21 +973,22 @@ void AES_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
* in and out can overlap
|
* in and out can overlap
|
||||||
*/
|
*/
|
||||||
void AES_decrypt(const unsigned char *in, unsigned char *out,
|
void AES_decrypt(const unsigned char *in, unsigned char *out,
|
||||||
const AES_KEY *key) {
|
const AES_KEY *key)
|
||||||
|
{
|
||||||
|
|
||||||
const u32 *rk;
|
const u32 *rk;
|
||||||
u32 s0, s1, s2, s3, t0, t1, t2, t3;
|
u32 s0, s1, s2, s3, t0, t1, t2, t3;
|
||||||
#ifndef FULL_UNROLL
|
#ifndef FULL_UNROLL
|
||||||
int r;
|
int r;
|
||||||
#endif /* ?FULL_UNROLL */
|
#endif /* ?FULL_UNROLL */
|
||||||
|
|
||||||
assert(in && out && key);
|
assert(in && out && key);
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* map byte array block to cipher state
|
* map byte array block to cipher state
|
||||||
* and add initial round key:
|
* and add initial round key:
|
||||||
*/
|
*/
|
||||||
s0 = GETU32(in ) ^ rk[0];
|
s0 = GETU32(in ) ^ rk[0];
|
||||||
s1 = GETU32(in + 4) ^ rk[1];
|
s1 = GETU32(in + 4) ^ rk[1];
|
||||||
s2 = GETU32(in + 8) ^ rk[2];
|
s2 = GETU32(in + 8) ^ rk[2];
|
||||||
@@ -1070,7 +1063,7 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
|
|||||||
t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
|
t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rk += key->rounds << 2;
|
rk += key->rounds << 2;
|
||||||
#else /* !FULL_UNROLL */
|
#else /* !FULL_UNROLL */
|
||||||
/*
|
/*
|
||||||
* Nr - 1 full rounds:
|
* Nr - 1 full rounds:
|
||||||
@@ -1134,37 +1127,37 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
|
|||||||
}
|
}
|
||||||
#endif /* ?FULL_UNROLL */
|
#endif /* ?FULL_UNROLL */
|
||||||
/*
|
/*
|
||||||
* apply last round and
|
* apply last round and
|
||||||
* map cipher state to byte array block:
|
* map cipher state to byte array block:
|
||||||
*/
|
*/
|
||||||
s0 =
|
s0 =
|
||||||
(Td4[(t0 >> 24) ] << 24) ^
|
(Td4[(t0 >> 24) ] << 24) ^
|
||||||
(Td4[(t3 >> 16) & 0xff] << 16) ^
|
(Td4[(t3 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t2 >> 8) & 0xff] << 8) ^
|
(Td4[(t2 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t1 ) & 0xff]) ^
|
(Td4[(t1 ) & 0xff]) ^
|
||||||
rk[0];
|
rk[0];
|
||||||
PUTU32(out , s0);
|
PUTU32(out , s0);
|
||||||
s1 =
|
s1 =
|
||||||
(Td4[(t1 >> 24) ] << 24) ^
|
(Td4[(t1 >> 24) ] << 24) ^
|
||||||
(Td4[(t0 >> 16) & 0xff] << 16) ^
|
(Td4[(t0 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t3 >> 8) & 0xff] << 8) ^
|
(Td4[(t3 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t2 ) & 0xff]) ^
|
(Td4[(t2 ) & 0xff]) ^
|
||||||
rk[1];
|
rk[1];
|
||||||
PUTU32(out + 4, s1);
|
PUTU32(out + 4, s1);
|
||||||
s2 =
|
s2 =
|
||||||
(Td4[(t2 >> 24) ] << 24) ^
|
(Td4[(t2 >> 24) ] << 24) ^
|
||||||
(Td4[(t1 >> 16) & 0xff] << 16) ^
|
(Td4[(t1 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t0 >> 8) & 0xff] << 8) ^
|
(Td4[(t0 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t3 ) & 0xff]) ^
|
(Td4[(t3 ) & 0xff]) ^
|
||||||
rk[2];
|
rk[2];
|
||||||
PUTU32(out + 8, s2);
|
PUTU32(out + 8, s2);
|
||||||
s3 =
|
s3 =
|
||||||
(Td4[(t3 >> 24) ] << 24) ^
|
(Td4[(t3 >> 24) ] << 24) ^
|
||||||
(Td4[(t2 >> 16) & 0xff] << 16) ^
|
(Td4[(t2 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t1 >> 8) & 0xff] << 8) ^
|
(Td4[(t1 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t0 ) & 0xff]) ^
|
(Td4[(t0 ) & 0xff]) ^
|
||||||
rk[3];
|
rk[3];
|
||||||
PUTU32(out + 12, s3);
|
PUTU32(out + 12, s3);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* AES_ASM */
|
#else /* AES_ASM */
|
||||||
@@ -1204,166 +1197,168 @@ static const u8 Te4[256] = {
|
|||||||
0x41U, 0x99U, 0x2dU, 0x0fU, 0xb0U, 0x54U, 0xbbU, 0x16U
|
0x41U, 0x99U, 0x2dU, 0x0fU, 0xb0U, 0x54U, 0xbbU, 0x16U
|
||||||
};
|
};
|
||||||
static const u32 rcon[] = {
|
static const u32 rcon[] = {
|
||||||
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
||||||
0x10000000, 0x20000000, 0x40000000, 0x80000000,
|
0x10000000, 0x20000000, 0x40000000, 0x80000000,
|
||||||
0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
|
0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expand the cipher key into the encryption key schedule.
|
* Expand the cipher key into the encryption key schedule.
|
||||||
*/
|
*/
|
||||||
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
||||||
AES_KEY *key) {
|
AES_KEY *key)
|
||||||
u32 *rk;
|
{
|
||||||
int i = 0;
|
u32 *rk;
|
||||||
u32 temp;
|
int i = 0;
|
||||||
|
u32 temp;
|
||||||
|
|
||||||
if (!userKey || !key)
|
if (!userKey || !key)
|
||||||
return -1;
|
return -1;
|
||||||
if (bits != 128 && bits != 192 && bits != 256)
|
if (bits != 128 && bits != 192 && bits != 256)
|
||||||
return -2;
|
return -2;
|
||||||
|
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
if (bits==128)
|
if (bits==128)
|
||||||
key->rounds = 10;
|
key->rounds = 10;
|
||||||
else if (bits==192)
|
else if (bits==192)
|
||||||
key->rounds = 12;
|
key->rounds = 12;
|
||||||
else
|
else
|
||||||
key->rounds = 14;
|
key->rounds = 14;
|
||||||
|
|
||||||
rk[0] = GETU32(userKey );
|
rk[0] = GETU32(userKey );
|
||||||
rk[1] = GETU32(userKey + 4);
|
rk[1] = GETU32(userKey + 4);
|
||||||
rk[2] = GETU32(userKey + 8);
|
rk[2] = GETU32(userKey + 8);
|
||||||
rk[3] = GETU32(userKey + 12);
|
rk[3] = GETU32(userKey + 12);
|
||||||
if (bits == 128) {
|
if (bits == 128) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[3];
|
temp = rk[3];
|
||||||
rk[4] = rk[0] ^
|
rk[4] = rk[0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] << 24) ^
|
(Te4[(temp >> 16) & 0xff] << 24) ^
|
||||||
(Te4[(temp >> 8) & 0xff] << 16) ^
|
(Te4[(temp >> 8) & 0xff] << 16) ^
|
||||||
(Te4[(temp ) & 0xff] << 8) ^
|
(Te4[(temp ) & 0xff] << 8) ^
|
||||||
(Te4[(temp >> 24) ]) ^
|
(Te4[(temp >> 24) ]) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[5] = rk[1] ^ rk[4];
|
rk[5] = rk[1] ^ rk[4];
|
||||||
rk[6] = rk[2] ^ rk[5];
|
rk[6] = rk[2] ^ rk[5];
|
||||||
rk[7] = rk[3] ^ rk[6];
|
rk[7] = rk[3] ^ rk[6];
|
||||||
if (++i == 10) {
|
if (++i == 10) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rk += 4;
|
rk += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rk[4] = GETU32(userKey + 16);
|
rk[4] = GETU32(userKey + 16);
|
||||||
rk[5] = GETU32(userKey + 20);
|
rk[5] = GETU32(userKey + 20);
|
||||||
if (bits == 192) {
|
if (bits == 192) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 5];
|
temp = rk[ 5];
|
||||||
rk[ 6] = rk[ 0] ^
|
rk[ 6] = rk[ 0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] << 24) ^
|
(Te4[(temp >> 16) & 0xff] << 24) ^
|
||||||
(Te4[(temp >> 8) & 0xff] << 16) ^
|
(Te4[(temp >> 8) & 0xff] << 16) ^
|
||||||
(Te4[(temp ) & 0xff] << 8) ^
|
(Te4[(temp ) & 0xff] << 8) ^
|
||||||
(Te4[(temp >> 24) ]) ^
|
(Te4[(temp >> 24) ]) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[ 7] = rk[ 1] ^ rk[ 6];
|
rk[ 7] = rk[ 1] ^ rk[ 6];
|
||||||
rk[ 8] = rk[ 2] ^ rk[ 7];
|
rk[ 8] = rk[ 2] ^ rk[ 7];
|
||||||
rk[ 9] = rk[ 3] ^ rk[ 8];
|
rk[ 9] = rk[ 3] ^ rk[ 8];
|
||||||
if (++i == 8) {
|
if (++i == 8) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
rk[10] = rk[ 4] ^ rk[ 9];
|
rk[10] = rk[ 4] ^ rk[ 9];
|
||||||
rk[11] = rk[ 5] ^ rk[10];
|
rk[11] = rk[ 5] ^ rk[10];
|
||||||
rk += 6;
|
rk += 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rk[6] = GETU32(userKey + 24);
|
rk[6] = GETU32(userKey + 24);
|
||||||
rk[7] = GETU32(userKey + 28);
|
rk[7] = GETU32(userKey + 28);
|
||||||
if (bits == 256) {
|
if (bits == 256) {
|
||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 7];
|
temp = rk[ 7];
|
||||||
rk[ 8] = rk[ 0] ^
|
rk[ 8] = rk[ 0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] << 24) ^
|
(Te4[(temp >> 16) & 0xff] << 24) ^
|
||||||
(Te4[(temp >> 8) & 0xff] << 16) ^
|
(Te4[(temp >> 8) & 0xff] << 16) ^
|
||||||
(Te4[(temp ) & 0xff] << 8) ^
|
(Te4[(temp ) & 0xff] << 8) ^
|
||||||
(Te4[(temp >> 24) ]) ^
|
(Te4[(temp >> 24) ]) ^
|
||||||
rcon[i];
|
rcon[i];
|
||||||
rk[ 9] = rk[ 1] ^ rk[ 8];
|
rk[ 9] = rk[ 1] ^ rk[ 8];
|
||||||
rk[10] = rk[ 2] ^ rk[ 9];
|
rk[10] = rk[ 2] ^ rk[ 9];
|
||||||
rk[11] = rk[ 3] ^ rk[10];
|
rk[11] = rk[ 3] ^ rk[10];
|
||||||
if (++i == 7) {
|
if (++i == 7) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
temp = rk[11];
|
temp = rk[11];
|
||||||
rk[12] = rk[ 4] ^
|
rk[12] = rk[ 4] ^
|
||||||
(Te4[(temp >> 24) ] << 24) ^
|
(Te4[(temp >> 24) ] << 24) ^
|
||||||
(Te4[(temp >> 16) & 0xff] << 16) ^
|
(Te4[(temp >> 16) & 0xff] << 16) ^
|
||||||
(Te4[(temp >> 8) & 0xff] << 8) ^
|
(Te4[(temp >> 8) & 0xff] << 8) ^
|
||||||
(Te4[(temp ) & 0xff]);
|
(Te4[(temp ) & 0xff]);
|
||||||
rk[13] = rk[ 5] ^ rk[12];
|
rk[13] = rk[ 5] ^ rk[12];
|
||||||
rk[14] = rk[ 6] ^ rk[13];
|
rk[14] = rk[ 6] ^ rk[13];
|
||||||
rk[15] = rk[ 7] ^ rk[14];
|
rk[15] = rk[ 7] ^ rk[14];
|
||||||
|
|
||||||
rk += 8;
|
rk += 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expand the cipher key into the decryption key schedule.
|
* Expand the cipher key into the decryption key schedule.
|
||||||
*/
|
*/
|
||||||
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
||||||
AES_KEY *key) {
|
AES_KEY *key)
|
||||||
|
{
|
||||||
|
|
||||||
u32 *rk;
|
u32 *rk;
|
||||||
int i, j, status;
|
int i, j, status;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
/* first, start with an encryption schedule */
|
/* first, start with an encryption schedule */
|
||||||
status = AES_set_encrypt_key(userKey, bits, key);
|
status = AES_set_encrypt_key(userKey, bits, key);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
rk = key->rd_key;
|
rk = key->rd_key;
|
||||||
|
|
||||||
/* invert the order of the round keys: */
|
/* invert the order of the round keys: */
|
||||||
for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
|
for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
|
||||||
temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
|
temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
|
||||||
temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
|
temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
|
||||||
temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
|
temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
|
||||||
temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
|
temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
|
||||||
}
|
}
|
||||||
/* apply the inverse MixColumn transform to all round keys but the first and the last: */
|
/* apply the inverse MixColumn transform to all round keys but the first and the last: */
|
||||||
for (i = 1; i < (key->rounds); i++) {
|
for (i = 1; i < (key->rounds); i++) {
|
||||||
rk += 4;
|
rk += 4;
|
||||||
for (j = 0; j < 4; j++) {
|
for (j = 0; j < 4; j++) {
|
||||||
u32 tp1, tp2, tp4, tp8, tp9, tpb, tpd, tpe, m;
|
u32 tp1, tp2, tp4, tp8, tp9, tpb, tpd, tpe, m;
|
||||||
|
|
||||||
tp1 = rk[j];
|
tp1 = rk[j];
|
||||||
m = tp1 & 0x80808080;
|
m = tp1 & 0x80808080;
|
||||||
tp2 = ((tp1 & 0x7f7f7f7f) << 1) ^
|
tp2 = ((tp1 & 0x7f7f7f7f) << 1) ^
|
||||||
((m - (m >> 7)) & 0x1b1b1b1b);
|
((m - (m >> 7)) & 0x1b1b1b1b);
|
||||||
m = tp2 & 0x80808080;
|
m = tp2 & 0x80808080;
|
||||||
tp4 = ((tp2 & 0x7f7f7f7f) << 1) ^
|
tp4 = ((tp2 & 0x7f7f7f7f) << 1) ^
|
||||||
((m - (m >> 7)) & 0x1b1b1b1b);
|
((m - (m >> 7)) & 0x1b1b1b1b);
|
||||||
m = tp4 & 0x80808080;
|
m = tp4 & 0x80808080;
|
||||||
tp8 = ((tp4 & 0x7f7f7f7f) << 1) ^
|
tp8 = ((tp4 & 0x7f7f7f7f) << 1) ^
|
||||||
((m - (m >> 7)) & 0x1b1b1b1b);
|
((m - (m >> 7)) & 0x1b1b1b1b);
|
||||||
tp9 = tp8 ^ tp1;
|
tp9 = tp8 ^ tp1;
|
||||||
tpb = tp9 ^ tp2;
|
tpb = tp9 ^ tp2;
|
||||||
tpd = tp9 ^ tp4;
|
tpd = tp9 ^ tp4;
|
||||||
tpe = tp8 ^ tp4 ^ tp2;
|
tpe = tp8 ^ tp4 ^ tp2;
|
||||||
#if defined(ROTATE)
|
#if defined(ROTATE)
|
||||||
rk[j] = tpe ^ ROTATE(tpd,16) ^
|
rk[j] = tpe ^ ROTATE(tpd,16) ^
|
||||||
ROTATE(tp9,24) ^ ROTATE(tpb,8);
|
ROTATE(tp9,24) ^ ROTATE(tpb,8);
|
||||||
#else
|
#else
|
||||||
rk[j] = tpe ^ (tpd >> 16) ^ (tpd << 16) ^
|
rk[j] = tpe ^ (tpd >> 16) ^ (tpd << 16) ^
|
||||||
(tp9 >> 8) ^ (tp9 << 24) ^
|
(tp9 >> 8) ^ (tp9 << 24) ^
|
||||||
(tpb >> 24) ^ (tpb << 8);
|
(tpb >> 24) ^ (tpb << 8);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* AES_ASM */
|
#endif /* AES_ASM */
|
||||||
|
|||||||
@@ -56,7 +56,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include <openssl/crypto.h>
|
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include "aes_locl.h"
|
#include "aes_locl.h"
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <openssl/crypto.h>
|
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/modes.h>
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
|
|||||||
@@ -53,207 +53,18 @@
|
|||||||
|
|
||||||
#include "cryptlib.h"
|
#include "cryptlib.h"
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/bio.h>
|
#include <openssl/modes.h>
|
||||||
|
|
||||||
static const unsigned char default_iv[] = {
|
|
||||||
0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6,
|
|
||||||
};
|
|
||||||
|
|
||||||
int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
|
int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
|
||||||
unsigned char *out,
|
unsigned char *out,
|
||||||
const unsigned char *in, unsigned int inlen)
|
const unsigned char *in, unsigned int inlen)
|
||||||
{
|
{
|
||||||
unsigned char *A, B[16], *R;
|
return CRYPTO_128_wrap(key, iv, out, in, inlen, (block128_f)AES_encrypt);
|
||||||
unsigned int i, j, t;
|
|
||||||
if ((inlen & 0x7) || (inlen < 8))
|
|
||||||
return -1;
|
|
||||||
A = B;
|
|
||||||
t = 1;
|
|
||||||
memcpy(out + 8, in, inlen);
|
|
||||||
if (!iv)
|
|
||||||
iv = default_iv;
|
|
||||||
|
|
||||||
memcpy(A, iv, 8);
|
|
||||||
|
|
||||||
for (j = 0; j < 6; j++)
|
|
||||||
{
|
|
||||||
R = out + 8;
|
|
||||||
for (i = 0; i < inlen; i += 8, t++, R += 8)
|
|
||||||
{
|
|
||||||
memcpy(B + 8, R, 8);
|
|
||||||
AES_encrypt(B, B, key);
|
|
||||||
A[7] ^= (unsigned char)(t & 0xff);
|
|
||||||
if (t > 0xff)
|
|
||||||
{
|
|
||||||
A[6] ^= (unsigned char)((t >> 8) & 0xff);
|
|
||||||
A[5] ^= (unsigned char)((t >> 16) & 0xff);
|
|
||||||
A[4] ^= (unsigned char)((t >> 24) & 0xff);
|
|
||||||
}
|
|
||||||
memcpy(R, B + 8, 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
memcpy(out, A, 8);
|
|
||||||
return inlen + 8;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
|
int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
|
||||||
unsigned char *out,
|
unsigned char *out,
|
||||||
const unsigned char *in, unsigned int inlen)
|
const unsigned char *in, unsigned int inlen)
|
||||||
{
|
{
|
||||||
unsigned char *A, B[16], *R;
|
return CRYPTO_128_unwrap(key, iv, out, in, inlen, (block128_f)AES_decrypt);
|
||||||
unsigned int i, j, t;
|
|
||||||
inlen -= 8;
|
|
||||||
if (inlen & 0x7)
|
|
||||||
return -1;
|
|
||||||
if (inlen < 8)
|
|
||||||
return -1;
|
|
||||||
A = B;
|
|
||||||
t = 6 * (inlen >> 3);
|
|
||||||
memcpy(A, in, 8);
|
|
||||||
memcpy(out, in + 8, inlen);
|
|
||||||
for (j = 0; j < 6; j++)
|
|
||||||
{
|
|
||||||
R = out + inlen - 8;
|
|
||||||
for (i = 0; i < inlen; i += 8, t--, R -= 8)
|
|
||||||
{
|
|
||||||
A[7] ^= (unsigned char)(t & 0xff);
|
|
||||||
if (t > 0xff)
|
|
||||||
{
|
|
||||||
A[6] ^= (unsigned char)((t >> 8) & 0xff);
|
|
||||||
A[5] ^= (unsigned char)((t >> 16) & 0xff);
|
|
||||||
A[4] ^= (unsigned char)((t >> 24) & 0xff);
|
|
||||||
}
|
|
||||||
memcpy(B + 8, R, 8);
|
|
||||||
AES_decrypt(B, B, key);
|
|
||||||
memcpy(R, B + 8, 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!iv)
|
|
||||||
iv = default_iv;
|
|
||||||
if (memcmp(A, iv, 8))
|
|
||||||
{
|
|
||||||
OPENSSL_cleanse(out, inlen);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return inlen;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef AES_WRAP_TEST
|
|
||||||
|
|
||||||
int AES_wrap_unwrap_test(const unsigned char *kek, int keybits,
|
|
||||||
const unsigned char *iv,
|
|
||||||
const unsigned char *eout,
|
|
||||||
const unsigned char *key, int keylen)
|
|
||||||
{
|
|
||||||
unsigned char *otmp = NULL, *ptmp = NULL;
|
|
||||||
int r, ret = 0;
|
|
||||||
AES_KEY wctx;
|
|
||||||
otmp = OPENSSL_malloc(keylen + 8);
|
|
||||||
ptmp = OPENSSL_malloc(keylen);
|
|
||||||
if (!otmp || !ptmp)
|
|
||||||
return 0;
|
|
||||||
if (AES_set_encrypt_key(kek, keybits, &wctx))
|
|
||||||
goto err;
|
|
||||||
r = AES_wrap_key(&wctx, iv, otmp, key, keylen);
|
|
||||||
if (r <= 0)
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (eout && memcmp(eout, otmp, keylen))
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
if (AES_set_decrypt_key(kek, keybits, &wctx))
|
|
||||||
goto err;
|
|
||||||
r = AES_unwrap_key(&wctx, iv, ptmp, otmp, r);
|
|
||||||
|
|
||||||
if (memcmp(key, ptmp, keylen))
|
|
||||||
goto err;
|
|
||||||
|
|
||||||
ret = 1;
|
|
||||||
|
|
||||||
err:
|
|
||||||
if (otmp)
|
|
||||||
OPENSSL_free(otmp);
|
|
||||||
if (ptmp)
|
|
||||||
OPENSSL_free(ptmp);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
|
|
||||||
static const unsigned char kek[] = {
|
|
||||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
|
||||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
|
|
||||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
|
|
||||||
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char key[] = {
|
|
||||||
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
|
|
||||||
0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
|
|
||||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
|
||||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e1[] = {
|
|
||||||
0x1f, 0xa6, 0x8b, 0x0a, 0x81, 0x12, 0xb4, 0x47,
|
|
||||||
0xae, 0xf3, 0x4b, 0xd8, 0xfb, 0x5a, 0x7b, 0x82,
|
|
||||||
0x9d, 0x3e, 0x86, 0x23, 0x71, 0xd2, 0xcf, 0xe5
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e2[] = {
|
|
||||||
0x96, 0x77, 0x8b, 0x25, 0xae, 0x6c, 0xa4, 0x35,
|
|
||||||
0xf9, 0x2b, 0x5b, 0x97, 0xc0, 0x50, 0xae, 0xd2,
|
|
||||||
0x46, 0x8a, 0xb8, 0xa1, 0x7a, 0xd8, 0x4e, 0x5d
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e3[] = {
|
|
||||||
0x64, 0xe8, 0xc3, 0xf9, 0xce, 0x0f, 0x5b, 0xa2,
|
|
||||||
0x63, 0xe9, 0x77, 0x79, 0x05, 0x81, 0x8a, 0x2a,
|
|
||||||
0x93, 0xc8, 0x19, 0x1e, 0x7d, 0x6e, 0x8a, 0xe7
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e4[] = {
|
|
||||||
0x03, 0x1d, 0x33, 0x26, 0x4e, 0x15, 0xd3, 0x32,
|
|
||||||
0x68, 0xf2, 0x4e, 0xc2, 0x60, 0x74, 0x3e, 0xdc,
|
|
||||||
0xe1, 0xc6, 0xc7, 0xdd, 0xee, 0x72, 0x5a, 0x93,
|
|
||||||
0x6b, 0xa8, 0x14, 0x91, 0x5c, 0x67, 0x62, 0xd2
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e5[] = {
|
|
||||||
0xa8, 0xf9, 0xbc, 0x16, 0x12, 0xc6, 0x8b, 0x3f,
|
|
||||||
0xf6, 0xe6, 0xf4, 0xfb, 0xe3, 0x0e, 0x71, 0xe4,
|
|
||||||
0x76, 0x9c, 0x8b, 0x80, 0xa3, 0x2c, 0xb8, 0x95,
|
|
||||||
0x8c, 0xd5, 0xd1, 0x7d, 0x6b, 0x25, 0x4d, 0xa1
|
|
||||||
};
|
|
||||||
|
|
||||||
static const unsigned char e6[] = {
|
|
||||||
0x28, 0xc9, 0xf4, 0x04, 0xc4, 0xb8, 0x10, 0xf4,
|
|
||||||
0xcb, 0xcc, 0xb3, 0x5c, 0xfb, 0x87, 0xf8, 0x26,
|
|
||||||
0x3f, 0x57, 0x86, 0xe2, 0xd8, 0x0e, 0xd3, 0x26,
|
|
||||||
0xcb, 0xc7, 0xf0, 0xe7, 0x1a, 0x99, 0xf4, 0x3b,
|
|
||||||
0xfb, 0x98, 0x8b, 0x9b, 0x7a, 0x02, 0xdd, 0x21
|
|
||||||
};
|
|
||||||
|
|
||||||
AES_KEY wctx, xctx;
|
|
||||||
int ret;
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 128, NULL, e1, key, 16);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 192, NULL, e2, key, 16);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 256, NULL, e3, key, 16);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 192, NULL, e4, key, 24);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 256, NULL, e5, key, 24);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
ret = AES_wrap_unwrap_test(kek, 256, NULL, e6, key, 32);
|
|
||||||
fprintf(stderr, "Key test result %d\n", ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user