Compare commits
980 Commits
main
...
OpenSSL-fi
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6f93fd5685 | ||
![]() |
45b364ddab | ||
![]() |
8887e81bd7 | ||
![]() |
9008856f7a | ||
![]() |
1c4273ae0d | ||
![]() |
1ba833a427 | ||
![]() |
7e994953c9 | ||
![]() |
f97b8f3114 | ||
![]() |
c9a0ab4907 | ||
![]() |
cdabf88810 | ||
![]() |
e756ea4722 | ||
![]() |
9fce443775 | ||
![]() |
e70e417baf | ||
![]() |
f64f44358d | ||
![]() |
c848cd1c35 | ||
![]() |
ef7c1a9490 | ||
![]() |
9b4e99ebd1 | ||
![]() |
351b731d00 | ||
![]() |
3d3fd6beb2 | ||
![]() |
7486fb6550 | ||
![]() |
5786b6c92f | ||
![]() |
ae2865a771 | ||
![]() |
a302eb21b7 | ||
![]() |
409e30479a | ||
![]() |
b664536914 | ||
![]() |
6fffeb46ad | ||
![]() |
48331e3f64 | ||
![]() |
edd529ad16 | ||
![]() |
5be243dc20 | ||
![]() |
e9d247d2b0 | ||
![]() |
18ab306e63 | ||
![]() |
03c4a3a474 | ||
![]() |
e4bc9d9ef6 | ||
![]() |
9620067392 | ||
![]() |
814dfe70bc | ||
![]() |
c79cb4a07b | ||
![]() |
9ac269f78c | ||
![]() |
6fa2c4cadc | ||
![]() |
1980bc91fe | ||
![]() |
8b7745571f | ||
![]() |
0d2b761dae | ||
![]() |
85a752e838 | ||
![]() |
34d67fd5f6 | ||
![]() |
7c01fd975c | ||
![]() |
8da1de4a5a | ||
![]() |
7bff8fd23d | ||
![]() |
7292151850 | ||
![]() |
1b4a2cf20b | ||
![]() |
0c19f2c725 | ||
![]() |
d48c5e8c45 | ||
![]() |
f645290f31 | ||
![]() |
9b95537a01 | ||
![]() |
a383b2546e | ||
![]() |
ff81ee92cb | ||
![]() |
87863a0cd4 | ||
![]() |
012d1c8dd9 | ||
![]() |
86fbdae6e8 | ||
![]() |
e0c5f4e438 | ||
![]() |
d946944dbd | ||
![]() |
ddc3e0dd03 | ||
![]() |
fbe1fcccdc | ||
![]() |
4578122b60 | ||
![]() |
e361b2ff2e | ||
![]() |
57362da5ab | ||
![]() |
002104370a | ||
![]() |
fda62b13d4 | ||
![]() |
a7fdb764c5 | ||
![]() |
3b2e785e50 | ||
![]() |
280bc44730 | ||
![]() |
9e1468e482 | ||
![]() |
b3307eae6d | ||
![]() |
19cf9463e7 | ||
![]() |
2dd4c4b430 | ||
![]() |
86160f3c41 | ||
![]() |
0633bca11c | ||
![]() |
97c9cf71aa | ||
![]() |
a0dc48e7db | ||
![]() |
22f6a2b271 | ||
![]() |
a3a426cfb5 | ||
![]() |
93d4d2b900 | ||
![]() |
2f9048b8a1 | ||
![]() |
d73ed541db | ||
![]() |
e6e5592a50 | ||
![]() |
663bbb6367 | ||
![]() |
98ced05c56 | ||
![]() |
5b75e1cff4 | ||
![]() |
f36a8c2060 | ||
![]() |
90ac9ec264 | ||
![]() |
fe5c4c885b | ||
![]() |
1950e8acea | ||
![]() |
437bafa5cc | ||
![]() |
7c78f06301 | ||
![]() |
b27278d0cf | ||
![]() |
24a69a8196 | ||
![]() |
b3049d696b | ||
![]() |
77b265f48c | ||
![]() |
735b9eeed5 | ||
![]() |
67c31c4b61 | ||
![]() |
0406ce2646 | ||
![]() |
76108ba7eb | ||
![]() |
4d27e3d339 | ||
![]() |
7d59e441ca | ||
![]() |
3e3c47d5d5 | ||
![]() |
03b7b4690c | ||
![]() |
0fd9322af1 | ||
![]() |
7016b1952e | ||
![]() |
ff3e014820 | ||
![]() |
50cd0f0eb3 | ||
![]() |
32098b7565 | ||
![]() |
bf4131fbf9 | ||
![]() |
2ac869590f | ||
![]() |
4742bc0f6f | ||
![]() |
02e483d236 | ||
![]() |
1a58139aaa | ||
![]() |
a32f4770e9 | ||
![]() |
086d475ffb | ||
![]() |
7f1288da93 | ||
![]() |
0a6e92a88f | ||
![]() |
36eaa70621 | ||
![]() |
d7dc9a7ce3 | ||
![]() |
319e19db9c | ||
![]() |
ef85b85b12 | ||
![]() |
4d4d27a2a0 | ||
![]() |
8f0d89092e | ||
![]() |
c4a2cab0bb | ||
![]() |
6d73d35f4f | ||
![]() |
f53e66af67 | ||
![]() |
5cbe626d26 | ||
![]() |
fe93a60b00 | ||
![]() |
5e10ca5618 | ||
![]() |
4e8da09800 | ||
![]() |
203ae57fe0 | ||
![]() |
529c33f1e8 | ||
![]() |
af18a34478 | ||
![]() |
da5c0127ac | ||
![]() |
ce0e12d29a | ||
![]() |
87339c6290 | ||
![]() |
0a22e7446b | ||
![]() |
b56cb7c6ea | ||
![]() |
cd5ab329f2 | ||
![]() |
80106dc5fb | ||
![]() |
0fa79cbe17 | ||
![]() |
be22102d82 | ||
![]() |
1ad95f8217 | ||
![]() |
5f1211834f | ||
![]() |
28feb1f8da | ||
![]() |
9596d1e63b | ||
![]() |
626bebeede | ||
![]() |
dfe42a131f | ||
![]() |
1970bc2703 | ||
![]() |
08debe11f8 | ||
![]() |
9c7e058216 | ||
![]() |
b01e8b2063 | ||
![]() |
100868d1cf | ||
![]() |
0712210f03 | ||
![]() |
8431a6aaf5 | ||
![]() |
2b4a783f66 | ||
![]() |
25df4a81cc | ||
![]() |
23830280e4 | ||
![]() |
bfdfc67b01 | ||
![]() |
4764a0543d | ||
![]() |
d92b0efbb8 | ||
![]() |
b329cc2410 | ||
![]() |
ed31fe68ff | ||
![]() |
8fa41c6696 | ||
![]() |
707a028c8b | ||
![]() |
9593bc46bf | ||
![]() |
5c65d38219 | ||
![]() |
1b8b2d9300 | ||
![]() |
4e1778b0d8 | ||
![]() |
982c67fbaa | ||
![]() |
2ef2463643 | ||
![]() |
585eb117d4 | ||
![]() |
7c27ac1030 | ||
![]() |
475631c31a | ||
![]() |
218ba8cb9d | ||
![]() |
e881c00515 | ||
![]() |
6c3fca2b10 | ||
![]() |
0225c7a41e | ||
![]() |
a334b0436d | ||
![]() |
af13a3949d | ||
![]() |
ffc35e73b4 | ||
![]() |
a197212e0f | ||
![]() |
8944220221 | ||
![]() |
5fd76ba57a | ||
![]() |
df50ec372e | ||
![]() |
49fa74385d | ||
![]() |
899f528c1a | ||
![]() |
5faa5a9476 | ||
![]() |
ddb0cb5bfd | ||
![]() |
b2d65cbac7 | ||
![]() |
6be8288928 | ||
![]() |
9fe07b7cf0 | ||
![]() |
0c86c87c60 | ||
![]() |
e20d6ef3d6 | ||
![]() |
27f50994ff | ||
![]() |
53c381105a | ||
![]() |
33d0ef8fde | ||
![]() |
b2acf7a572 | ||
![]() |
e8d2d9478d | ||
![]() |
23b3b61921 | ||
![]() |
d265676989 | ||
![]() |
69fc3dff96 | ||
![]() |
667731b635 | ||
![]() |
a416ca47ac | ||
![]() |
2714e2ac89 | ||
![]() |
1139eeecbc | ||
![]() |
1b936a5e37 | ||
![]() |
0cca0fe0c2 | ||
![]() |
56474376dc | ||
![]() |
3e511f167e | ||
![]() |
282af42404 | ||
![]() |
a81f337331 | ||
![]() |
1729dca9a8 | ||
![]() |
9719193222 | ||
![]() |
e6fa7c1276 | ||
![]() |
cf7053430d | ||
![]() |
ff03c6bc97 | ||
![]() |
82c8b6b74d | ||
![]() |
cb6fdc3a49 | ||
![]() |
8c3b5d5f27 | ||
![]() |
dc83f2e312 | ||
![]() |
6693e26927 | ||
![]() |
793364457b | ||
![]() |
6b05350495 | ||
![]() |
daec9a56a0 | ||
![]() |
5c77786a55 | ||
![]() |
42bc3582a9 | ||
![]() |
2050f6514f | ||
![]() |
5068d7dda4 | ||
![]() |
55768cf773 | ||
![]() |
6c69dcd9f5 | ||
![]() |
ad4297dd9c | ||
![]() |
aeb9ccfaad | ||
![]() |
79b335a4b5 | ||
![]() |
6fd3f3260d | ||
![]() |
d9e262443c | ||
![]() |
51c3bb3b98 | ||
![]() |
7d608f9e32 | ||
![]() |
295de18c8a | ||
![]() |
3370b694b9 | ||
![]() |
3380c52f15 | ||
![]() |
1364e6f1ac | ||
![]() |
c5ac2aa62c | ||
![]() |
392a0345de | ||
![]() |
5c2fc73e7b | ||
![]() |
402b951804 | ||
![]() |
5848d13fed | ||
![]() |
5dd24ead57 | ||
![]() |
d2cb94952a | ||
![]() |
0615396d2d | ||
![]() |
82877ea449 | ||
![]() |
81fae49db9 | ||
![]() |
74ff8dc975 | ||
![]() |
ac319217d0 | ||
![]() |
cdb13ae8d0 | ||
![]() |
ab700807d9 | ||
![]() |
744b91bb9f | ||
![]() |
d69f85bf15 | ||
![]() |
52ee969e29 | ||
![]() |
55f0501201 | ||
![]() |
b2710ee19a | ||
![]() |
bbfcc4724d | ||
![]() |
c31cc72d79 | ||
![]() |
d1049ad93e | ||
![]() |
5f4cc234fb | ||
![]() |
d31a13953c | ||
![]() |
28f5873179 | ||
![]() |
8f813338f1 | ||
![]() |
6555dfa486 | ||
![]() |
5eee0253e5 | ||
![]() |
594c723f98 | ||
![]() |
f418265865 | ||
![]() |
53707e2eec | ||
![]() |
fde794e898 | ||
![]() |
082f19b42d | ||
![]() |
e31c620686 | ||
![]() |
dcc309548e | ||
![]() |
570253315f | ||
![]() |
8eae0ff0f7 | ||
![]() |
5dcdac6e4e | ||
![]() |
5c4a07551e | ||
![]() |
eea3fce854 | ||
![]() |
215c49d032 | ||
![]() |
923df53e25 | ||
![]() |
b443a0ea5d | ||
![]() |
1a684d0020 | ||
![]() |
1f4a5a3339 | ||
![]() |
dc3b721fa0 | ||
![]() |
4479ce9c1c | ||
![]() |
4a0d3530e0 | ||
![]() |
9907d2992d | ||
![]() |
20fb51b1a7 | ||
![]() |
551bfa60e0 | ||
![]() |
9d9224f184 | ||
![]() |
78d4d87e39 | ||
![]() |
6211633273 | ||
![]() |
3a4cf918bf | ||
![]() |
e25eb309ec | ||
![]() |
ffa2b2aa7d | ||
![]() |
a77a95584d | ||
![]() |
68bb98159f | ||
![]() |
8e6905d238 | ||
![]() |
1a8521ff24 | ||
![]() |
9d5460d72d | ||
![]() |
35e59297fc | ||
![]() |
9b945233b1 | ||
![]() |
b065dc2eee | ||
![]() |
66c4bb1a70 | ||
![]() |
36abe6fe61 | ||
![]() |
3c786aa6c8 | ||
![]() |
e5cce6d356 | ||
![]() |
723b7d81e4 | ||
![]() |
a3ddd7358b | ||
![]() |
45c027f31f | ||
![]() |
3b62e9eb0d | ||
![]() |
34a8c7ec87 | ||
![]() |
d4a6240005 | ||
![]() |
5c6f76da0a | ||
![]() |
4636341b05 | ||
![]() |
be3b770d8f | ||
![]() |
af32387b3f | ||
![]() |
115fc340cb | ||
![]() |
900f7a8776 | ||
![]() |
4877e30504 | ||
![]() |
4656ec3852 | ||
![]() |
e336441197 | ||
![]() |
20d6182f33 | ||
![]() |
aa145866f9 | ||
![]() |
fdff41e166 | ||
![]() |
07b4bc3979 | ||
![]() |
0c66d3ae37 | ||
![]() |
bd869183d5 | ||
![]() |
7e2bf83100 | ||
![]() |
25e52a78fb | ||
![]() |
47c4bb2ddf | ||
![]() |
951dfbb13a | ||
![]() |
81780a3b62 | ||
![]() |
c574d0cdf2 | ||
![]() |
c987c3f999 | ||
![]() |
1a5e414863 | ||
![]() |
ec3639385e | ||
![]() |
f01cfca6a4 | ||
![]() |
7d5af5e0fa | ||
![]() |
8fdb296cbd | ||
![]() |
879b30aaa3 | ||
![]() |
40ddcb717a | ||
![]() |
da1841a075 | ||
![]() |
0a0a10d127 | ||
![]() |
df20b6e79b | ||
![]() |
f4f1dc39e0 | ||
![]() |
340b4dd7df | ||
![]() |
4b9dcd821f | ||
![]() |
669c5c9380 | ||
![]() |
7f9aa6c59b | ||
![]() |
d9c06b56ca | ||
![]() |
d045e1d77e | ||
![]() |
6d14cc7ec1 | ||
![]() |
eb499b2854 | ||
![]() |
65a82ef6d7 | ||
![]() |
616f581650 | ||
![]() |
57e802656f | ||
![]() |
5d7f15daf8 | ||
![]() |
ec67e3b7e4 | ||
![]() |
0d3ff3c073 | ||
![]() |
325e48867c | ||
![]() |
8de95bc05b | ||
![]() |
5e3003bb52 | ||
![]() |
e6e3f38bfa | ||
![]() |
aa17ab7e57 | ||
![]() |
35908bd040 | ||
![]() |
4a9cfd763e | ||
![]() |
0e73294e26 | ||
![]() |
b610f46bae | ||
![]() |
1921a1adb2 | ||
![]() |
6d2cd23f40 | ||
![]() |
14fb67f28a | ||
![]() |
c552680473 | ||
![]() |
edbf9f878d | ||
![]() |
2745ddfc33 | ||
![]() |
808606034a | ||
![]() |
e18eef3d7a | ||
![]() |
e78fc11a95 | ||
![]() |
83231cb376 | ||
![]() |
986ad56124 | ||
![]() |
b723a7b11b | ||
![]() |
1b6b67b17e | ||
![]() |
1ee3236f72 | ||
![]() |
b03a4917be | ||
![]() |
84971b39f5 | ||
![]() |
5ab3e743f3 | ||
![]() |
1c5dc844e7 | ||
![]() |
f871949efd | ||
![]() |
eb2ec6bee9 | ||
![]() |
df22f59f6e | ||
![]() |
db0edc3273 | ||
![]() |
6300c14248 | ||
![]() |
d4426e79a7 | ||
![]() |
b095418d20 | ||
![]() |
d6fd880481 | ||
![]() |
cbb0b734c7 | ||
![]() |
f4bcd70f27 | ||
![]() |
6e16b45d9d | ||
![]() |
e09e7ab362 | ||
![]() |
d5cc2f19cd | ||
![]() |
b7a80146f4 | ||
![]() |
5586a71a6e | ||
![]() |
81418b7c77 | ||
![]() |
8bd0c77ae3 | ||
![]() |
e2217e7ed5 | ||
![]() |
51b75ea7ef | ||
![]() |
41d4d6721c | ||
![]() |
9d01d50459 | ||
![]() |
e27c67c5c5 | ||
![]() |
e7decd5f4d | ||
![]() |
38a3178185 | ||
![]() |
58828ae573 | ||
![]() |
6b5f5e3508 | ||
![]() |
f0ec771933 | ||
![]() |
22d1087e16 | ||
![]() |
9f85fcefdc | ||
![]() |
269d2575cd | ||
![]() |
0b8ed5de2d | ||
![]() |
c22684eac9 | ||
![]() |
c42cd4b831 | ||
![]() |
ab50cf18db | ||
![]() |
31c0a38482 | ||
![]() |
91c88deafe | ||
![]() |
a91cb15daa | ||
![]() |
d2890f6223 | ||
![]() |
1ce5bb27e4 | ||
![]() |
04262cee42 | ||
![]() |
a5a1e71e86 | ||
![]() |
06d2a382c4 | ||
![]() |
4630a51537 | ||
![]() |
01f2ee2bc6 | ||
![]() |
def5aefa7f | ||
![]() |
5ba7d69c66 | ||
![]() |
cf81dc74bd | ||
![]() |
46c646225d | ||
![]() |
d18c4d09d1 | ||
![]() |
e5ad779b69 | ||
![]() |
cb36743161 | ||
![]() |
fb3eab3562 | ||
![]() |
2724bcac2f | ||
![]() |
3431c07a66 | ||
![]() |
9abf011643 | ||
![]() |
75cdb055e6 | ||
![]() |
f4207058b8 | ||
![]() |
900b1eb869 | ||
![]() |
e3b61b1e57 | ||
![]() |
750779da07 | ||
![]() |
157f01a8ef | ||
![]() |
491923fde1 | ||
![]() |
273f5726a5 | ||
![]() |
a37778046d | ||
![]() |
8a087e57d2 | ||
![]() |
e384fd9418 | ||
![]() |
f6e32f9db4 | ||
![]() |
66bb600b05 | ||
![]() |
c3b2d69945 | ||
![]() |
619991cc3e | ||
![]() |
3c410172b7 | ||
![]() |
56319ad00e | ||
![]() |
f7832889d3 | ||
![]() |
46fdad292a | ||
![]() |
da99684a8e | ||
![]() |
2130ee35d9 | ||
![]() |
15f239a4a3 | ||
![]() |
223ab84726 | ||
![]() |
94d66c3182 | ||
![]() |
a0dd62bdb7 | ||
![]() |
fd6d2e0754 | ||
![]() |
4a4d3c02f2 | ||
![]() |
7abd533793 | ||
![]() |
b1816f93e1 | ||
![]() |
e1904f9eec | ||
![]() |
9f3d5018c4 | ||
![]() |
768729afbe | ||
![]() |
0c96e35c42 | ||
![]() |
72e2934909 | ||
![]() |
26d96f26da | ||
![]() |
5fcc83ed1e | ||
![]() |
9ecb20f1de | ||
![]() |
b611ff350c | ||
![]() |
7f790e0575 | ||
![]() |
dccf15ee25 | ||
![]() |
89d8a20f22 | ||
![]() |
782f8600fa | ||
![]() |
f2008fe3fd | ||
![]() |
70b3786ffe | ||
![]() |
b48fb91edd | ||
![]() |
8a19891b2a | ||
![]() |
f35d0948eb | ||
![]() |
d0f2c1bb81 | ||
![]() |
7ba410f9a5 | ||
![]() |
36c2be5645 | ||
![]() |
0869cd2676 | ||
![]() |
4ac5596a86 | ||
![]() |
4d018f7067 | ||
![]() |
3df76b15ed | ||
![]() |
46eaf3b0cc | ||
![]() |
9b3cce3d00 | ||
![]() |
9df2a00b94 | ||
![]() |
c8a2f669f3 | ||
![]() |
fbcf4bc1f2 | ||
![]() |
04a2a836f7 | ||
![]() |
ca08c064bb | ||
![]() |
02df47d349 | ||
![]() |
41c39e3366 | ||
![]() |
45803988ce | ||
![]() |
28251e7ff9 | ||
![]() |
217382d584 | ||
![]() |
82a2cb6f51 | ||
![]() |
611ed5f312 | ||
![]() |
27fbb5dbf4 | ||
![]() |
db8d9b7cf1 | ||
![]() |
60ec950517 | ||
![]() |
2cd4ebc01f | ||
![]() |
5f4dcaf781 | ||
![]() |
c55d882fab | ||
![]() |
8dc7450068 | ||
![]() |
2e885232c2 | ||
![]() |
970d9b3795 | ||
![]() |
2f58af0d85 | ||
![]() |
0ae50f19da | ||
![]() |
c4ac37361e | ||
![]() |
3152861e81 | ||
![]() |
a14afd0804 | ||
![]() |
25d5d1a60d | ||
![]() |
6ff58b9240 | ||
![]() |
99237262d4 | ||
![]() |
29982dfd15 | ||
![]() |
6c4da94687 | ||
![]() |
6986d0e6eb | ||
![]() |
bc9320452c | ||
![]() |
23d43aae27 | ||
![]() |
de71735e7c | ||
![]() |
05decf3638 | ||
![]() |
95bffa1a1f | ||
![]() |
974d52fdb8 | ||
![]() |
7614f0e55e | ||
![]() |
0632284f79 | ||
![]() |
ad4a89f070 | ||
![]() |
6104c49f31 | ||
![]() |
07fc760999 | ||
![]() |
cf6bc84148 | ||
![]() |
36d51bea93 | ||
![]() |
fc12885b1b | ||
![]() |
ec7033745e | ||
![]() |
9e31e63147 | ||
![]() |
feef17fd88 | ||
![]() |
817f011191 | ||
![]() |
98c045cf3a | ||
![]() |
8860f3a82a | ||
![]() |
43e9f4ca2f | ||
![]() |
586f843c76 | ||
![]() |
7cfc9e6d8c | ||
![]() |
4952ed0fa4 | ||
![]() |
a084185d76 | ||
![]() |
914b80d276 | ||
![]() |
282557da52 | ||
![]() |
5f649d583c | ||
![]() |
b98225ebf5 | ||
![]() |
abb0c2bba4 | ||
![]() |
b3bdb474a9 | ||
![]() |
d796e6acb7 | ||
![]() |
d3afc92bc9 | ||
![]() |
35a97b4b7b | ||
![]() |
f59463aad3 | ||
![]() |
ed656499c4 | ||
![]() |
63533e9a22 | ||
![]() |
20f7053254 | ||
![]() |
8b8ef74d39 | ||
![]() |
3bfe024d8d | ||
![]() |
063333e03d | ||
![]() |
0a0918ff38 | ||
![]() |
802c014656 | ||
![]() |
860841794d | ||
![]() |
2a87c31237 | ||
![]() |
da5f7fdcee | ||
![]() |
d8b408b1de | ||
![]() |
64932f9e4a | ||
![]() |
5a20efcf17 | ||
![]() |
2a2857bbc8 | ||
![]() |
1bef284ab1 | ||
![]() |
d8d0b6434f | ||
![]() |
416b6fd115 | ||
![]() |
f685cf920b | ||
![]() |
54f51116b2 | ||
![]() |
b0d90958fc | ||
![]() |
049ced2c2f | ||
![]() |
844b0e603b | ||
![]() |
75ef751e23 | ||
![]() |
c4f6e56fca | ||
![]() |
ff86d3d894 | ||
![]() |
85b4c03e33 | ||
![]() |
efaf159af6 | ||
![]() |
daa657fb78 | ||
![]() |
4685663d73 | ||
![]() |
ed1f716022 | ||
![]() |
d3205a4898 | ||
![]() |
86731ce2c6 | ||
![]() |
1399309624 | ||
![]() |
cb59297438 | ||
![]() |
5824f6bc06 | ||
![]() |
5ce7090d54 | ||
![]() |
7306ab29bc | ||
![]() |
3a8b42f291 | ||
![]() |
e4c25383f2 | ||
![]() |
e734dcc2c7 | ||
![]() |
0fce007b8e | ||
![]() |
5a053a3a07 | ||
![]() |
3b2ba5f7fb | ||
![]() |
7f622f6c04 | ||
![]() |
801136bcc2 | ||
![]() |
3c0e39c539 | ||
![]() |
19fddebf0e | ||
![]() |
9eaf7e14c7 | ||
![]() |
0e441bc103 | ||
![]() |
cd9911fdf8 | ||
![]() |
6086422193 | ||
![]() |
9ddb11f11c | ||
![]() |
7a20cabd03 | ||
![]() |
9dc4ca4507 | ||
![]() |
62fea98b4f | ||
![]() |
7ae4eac5b6 | ||
![]() |
fcf8ae5e2b | ||
![]() |
55b9a7938b | ||
![]() |
cf1546a60e | ||
![]() |
e7eec05af0 | ||
![]() |
98e986141b | ||
![]() |
d7e35e0371 | ||
![]() |
222f224664 | ||
![]() |
62b6cd007f | ||
![]() |
1682e8fb12 | ||
![]() |
984aefe0e8 | ||
![]() |
2d54cc69c9 | ||
![]() |
2dd8278de8 | ||
![]() |
e0d8ac972e | ||
![]() |
ec03812fb0 | ||
![]() |
93cf2b17bf | ||
![]() |
77ef1a989d | ||
![]() |
423c7ac6c6 | ||
![]() |
2c368ef148 | ||
![]() |
b3c7162fd0 | ||
![]() |
67865069eb | ||
![]() |
1896a9be60 | ||
![]() |
b5b2c037c1 | ||
![]() |
1957924d51 | ||
![]() |
104a66f256 | ||
![]() |
3de6d65ea3 | ||
![]() |
fdb0a6e004 | ||
![]() |
87b857b6bf | ||
![]() |
b18165301d | ||
![]() |
097e65944a | ||
![]() |
0cdd29ea78 | ||
![]() |
7dec24688f | ||
![]() |
e62fa54811 | ||
![]() |
1614174e79 | ||
![]() |
f95d097359 | ||
![]() |
3c6ab9aad9 | ||
![]() |
4913b88f70 | ||
![]() |
273157153c | ||
![]() |
fb5156ff38 | ||
![]() |
2a824402f3 | ||
![]() |
86a249fe4f | ||
![]() |
6cae8221c9 | ||
![]() |
750cb3d248 | ||
![]() |
f254b540b8 | ||
![]() |
11024f252e | ||
![]() |
9d5cba17ba | ||
![]() |
1d01c9d43d | ||
![]() |
e32ea81876 | ||
![]() |
ef8a18f49b | ||
![]() |
b914049c53 | ||
![]() |
dabaea8048 | ||
![]() |
09c1a425a9 | ||
![]() |
8c6fed007f | ||
![]() |
2e39604021 | ||
![]() |
fbfb947b21 | ||
![]() |
8b963f4ba4 | ||
![]() |
9152f07eaf | ||
![]() |
35f70c09f5 | ||
![]() |
cc4cba7b5d | ||
![]() |
6b695fefd0 | ||
![]() |
910d193029 | ||
![]() |
f18dd687c8 | ||
![]() |
50d5376698 | ||
![]() |
5b9b62a7db | ||
![]() |
c0e29e5b01 | ||
![]() |
2f03129d46 | ||
![]() |
b44e2d3416 | ||
![]() |
564915681c | ||
![]() |
a24b7eeb87 | ||
![]() |
0215c01861 | ||
![]() |
beae6324e5 | ||
![]() |
71a61c573e | ||
![]() |
6b3b632767 | ||
![]() |
2a2fa04b7b | ||
![]() |
79b81d194b | ||
![]() |
ef04c9aff8 | ||
![]() |
7f85197c10 | ||
![]() |
ff0bfe64af | ||
![]() |
44b3a3a5e6 | ||
![]() |
7e3033aa93 | ||
![]() |
8bdbf50772 | ||
![]() |
ec33a76641 | ||
![]() |
00ce9376c7 | ||
![]() |
46e7a9797e | ||
![]() |
7006c4ac88 | ||
![]() |
a50a2126cf | ||
![]() |
07f7b4b470 | ||
![]() |
7e726e42f4 | ||
![]() |
40ba0257de | ||
![]() |
3fbd5f9fea | ||
![]() |
57b2246d35 | ||
![]() |
2a5b22d6f9 | ||
![]() |
f247dc7522 | ||
![]() |
e6531253e2 | ||
![]() |
c938babf00 | ||
![]() |
bf3900020f | ||
![]() |
586df3bb7f | ||
![]() |
c4b13b0268 | ||
![]() |
daef72316f | ||
![]() |
1f93c96e63 | ||
![]() |
8aa9c79276 | ||
![]() |
09a7f2e734 | ||
![]() |
b2d27e376d | ||
![]() |
644c4af11e | ||
![]() |
ca3dc3a0a0 | ||
![]() |
2b975dfd5b | ||
![]() |
0932892278 | ||
![]() |
fe0b3d98c2 | ||
![]() |
8d56c8b51c | ||
![]() |
d8e6409336 | ||
![]() |
a4ae746656 | ||
![]() |
331a0a7b9b | ||
![]() |
c630a3e8d6 | ||
![]() |
7435d89edf | ||
![]() |
14557c8be4 | ||
![]() |
98b4995bad | ||
![]() |
3000bdcc3a | ||
![]() |
cbe77a6753 | ||
![]() |
c58a1f76f8 | ||
![]() |
ecf2875ebf | ||
![]() |
ce2c19e357 | ||
![]() |
1b1081a3ed | ||
![]() |
37b200389a | ||
![]() |
6b5a8f3a22 | ||
![]() |
0b18d8b0c7 | ||
![]() |
3d187ede47 | ||
![]() |
f3b9c34515 | ||
![]() |
c923394924 | ||
![]() |
d9dbd24db5 | ||
![]() |
b135819d71 | ||
![]() |
cbcbd07da2 | ||
![]() |
24f6ab73a7 | ||
![]() |
5e88347e1b | ||
![]() |
cac0d4ee6f | ||
![]() |
428759b3d4 | ||
![]() |
898d3ecce0 | ||
![]() |
004f16f6c4 | ||
![]() |
4e2a0e58f2 | ||
![]() |
39d29195a7 | ||
![]() |
727c9b8027 | ||
![]() |
bd4e9b0512 | ||
![]() |
7844ff735f | ||
![]() |
49e96badcf | ||
![]() |
eb6a81bacc | ||
![]() |
6687f12988 | ||
![]() |
fcd12fc0f1 | ||
![]() |
0fb4d54068 | ||
![]() |
830a468a23 | ||
![]() |
af3ca7b4a9 | ||
![]() |
7a6bb17255 | ||
![]() |
bc6d459a6e | ||
![]() |
ff7f34e353 | ||
![]() |
2e3d79aaec | ||
![]() |
8a41bcc934 | ||
![]() |
e2414b41ad | ||
![]() |
266958bce7 | ||
![]() |
bc5354cbf0 | ||
![]() |
cc4997843e | ||
![]() |
ab95eac286 | ||
![]() |
1cd76233d1 | ||
![]() |
3d5afc8b83 | ||
![]() |
d28b7799dd | ||
![]() |
b0fb889c29 | ||
![]() |
460e80bd1d | ||
![]() |
bc1e96e942 | ||
![]() |
7ea61df414 | ||
![]() |
431712293d | ||
![]() |
335ed97263 | ||
![]() |
e00b165e9b | ||
![]() |
5467ddf0e1 | ||
![]() |
7a37dd92ed | ||
![]() |
d0c11e9d72 | ||
![]() |
5ec52fee2c | ||
![]() |
d39e69c95a | ||
![]() |
5026bc13bb | ||
![]() |
69ffdb2d46 | ||
![]() |
c7d27e5247 | ||
![]() |
e301a26ade | ||
![]() |
b7d7af7ea9 | ||
![]() |
39663d2c40 | ||
![]() |
000299a0e6 | ||
![]() |
0a47d82b9b | ||
![]() |
198bcece58 | ||
![]() |
053677d124 | ||
![]() |
804072f014 | ||
![]() |
e9429b43ce | ||
![]() |
3d37d5e24a | ||
![]() |
2728a1b4f3 | ||
![]() |
adb040d4cb | ||
![]() |
479d7934c0 | ||
![]() |
22d1acd5ac | ||
![]() |
b257c152c6 | ||
![]() |
77b97ee0d7 | ||
![]() |
e2ac4732cd | ||
![]() |
e8f665b495 | ||
![]() |
55f3ef29ea | ||
![]() |
c2d78c9623 | ||
![]() |
a4578a5413 | ||
![]() |
e884fcf785 | ||
![]() |
e96025755d | ||
![]() |
c9028b0ab5 | ||
![]() |
b4d2858f95 | ||
![]() |
dea446d995 | ||
![]() |
5cd94f9e9d | ||
![]() |
cad811fc41 | ||
![]() |
2ed0cf8eef | ||
![]() |
1c2cbe6fcc | ||
![]() |
023616e32d | ||
![]() |
69f6a9f007 | ||
![]() |
b2703470e0 | ||
![]() |
4eeee0c59f | ||
![]() |
452cd79114 | ||
![]() |
a5afa6c95f | ||
![]() |
9eaca0079f | ||
![]() |
625dacb93d | ||
![]() |
bbaf3c2b40 | ||
![]() |
62e9c2e091 | ||
![]() |
e4106a4e24 | ||
![]() |
a506b8c7dd | ||
![]() |
e5cd536894 | ||
![]() |
629ea39a88 | ||
![]() |
7d9e1321c7 | ||
![]() |
83af7422a0 | ||
![]() |
ce8945f35c | ||
![]() |
dd890f0776 | ||
![]() |
af4ac437ab | ||
![]() |
607585fdaf | ||
![]() |
2f596aeef5 | ||
![]() |
69762c75fa | ||
![]() |
36b29660ce | ||
![]() |
4976983f30 | ||
![]() |
31e4ad25ba | ||
![]() |
225f4daf15 | ||
![]() |
b9927cfa2d | ||
![]() |
af6cafc603 | ||
![]() |
15da07d436 | ||
![]() |
886ed3544b | ||
![]() |
aff2922f9a | ||
![]() |
f32e0035a3 | ||
![]() |
7b1e7706d8 | ||
![]() |
cd74dda72a | ||
![]() |
032bb2a2c5 | ||
![]() |
fa96ed06d2 | ||
![]() |
43133041c9 | ||
![]() |
e0ee5ea962 | ||
![]() |
f5634286a3 | ||
![]() |
97d37c1c1e | ||
![]() |
739b139cb2 | ||
![]() |
0bc9920ad4 | ||
![]() |
3f516ce837 | ||
![]() |
9f197f9da5 | ||
![]() |
3dc2cc36e9 | ||
![]() |
ca3e683747 | ||
![]() |
38a1757168 | ||
![]() |
4104a57107 | ||
![]() |
b0c0f20071 | ||
![]() |
ce147f8998 | ||
![]() |
7870774162 | ||
![]() |
4e99f848d8 | ||
![]() |
4213cdaf5d | ||
![]() |
358cf2f6e8 | ||
![]() |
39b4c974ee | ||
![]() |
407c2c1106 | ||
![]() |
508f56f17c | ||
![]() |
2e8aaf94c2 | ||
![]() |
48665b7c99 | ||
![]() |
3108a80b09 | ||
![]() |
51971f7293 | ||
![]() |
bfa3933c8b | ||
![]() |
3d3addb252 | ||
![]() |
40b4a633a1 | ||
![]() |
3f8bdd1fdb | ||
![]() |
fc784cbc5c | ||
![]() |
6181fd949f | ||
![]() |
afd61c63c2 | ||
![]() |
d20b5c2043 | ||
![]() |
fdf45c44be | ||
![]() |
9a2073b4cd | ||
![]() |
68b08c56c2 | ||
![]() |
f28468188b | ||
![]() |
4416eec8ca | ||
![]() |
8871d87512 | ||
![]() |
709af3877d | ||
![]() |
a2b81188be | ||
![]() |
8651ba5d45 | ||
![]() |
f91f6cd5e4 | ||
![]() |
efbb2cb4e5 | ||
![]() |
bd923a7bac | ||
![]() |
dec45d606f | ||
![]() |
373c88faef | ||
![]() |
6dfd1801fe | ||
![]() |
14813d8123 | ||
![]() |
d8242c65b3 | ||
![]() |
92f2437f48 | ||
![]() |
ee42430cc8 | ||
![]() |
da959761ff | ||
![]() |
da3fe316cf | ||
![]() |
d8cd25aa0d | ||
![]() |
c8214d6c8b | ||
![]() |
d63d4f46fc | ||
![]() |
063b216760 | ||
![]() |
52161e090d | ||
![]() |
65f0a05325 | ||
![]() |
9e55e06501 | ||
![]() |
952b6955c0 | ||
![]() |
0b6df67fb1 | ||
![]() |
6f74afaa57 | ||
![]() |
bf087e1ea1 | ||
![]() |
3edefe670a | ||
![]() |
885818fb7c | ||
![]() |
a461d307f2 | ||
![]() |
2f370048cb | ||
![]() |
89a4dad179 | ||
![]() |
28dc02a9d8 | ||
![]() |
1ea2fda9dc | ||
![]() |
54ebaca535 | ||
![]() |
f41dcf3d50 | ||
![]() |
4fedc91a4a | ||
![]() |
1e6031eeb7 | ||
![]() |
f734aaa413 | ||
![]() |
d9e61666c9 | ||
![]() |
a575d4b9ee | ||
![]() |
2f07e0d591 | ||
![]() |
77a87ded3a | ||
![]() |
b0a3d8dd27 | ||
![]() |
b958d2c298 | ||
![]() |
a7100590fe | ||
![]() |
dc72a195c2 | ||
![]() |
7b1ef38609 | ||
![]() |
e2812ff61f | ||
![]() |
3f5602ce04 | ||
![]() |
8c2e34e27f | ||
![]() |
be0dccdd9e | ||
![]() |
31f3950fbf | ||
![]() |
50a4d84e79 | ||
![]() |
75b3654d18 | ||
![]() |
0135aa9888 | ||
![]() |
418f9ac5e3 | ||
![]() |
692e644df6 | ||
![]() |
ad4afe4edf | ||
![]() |
3b72341958 | ||
![]() |
c844b971cb | ||
![]() |
3a0278b211 | ||
![]() |
ca9b1c47af | ||
![]() |
304ba9fa78 | ||
![]() |
86039d2751 | ||
![]() |
4484703f5e | ||
![]() |
420a692f04 | ||
![]() |
6b7751ac2c | ||
![]() |
1d2a464fe0 | ||
![]() |
7af4688a8f | ||
![]() |
7735dd0750 | ||
![]() |
d8360c3a8a | ||
![]() |
bf7b075f0c |
517
Configure
517
Configure
@ -6,7 +6,9 @@ eval 'exec perl -S $0 ${1+"$@"}'
|
|||||||
##
|
##
|
||||||
|
|
||||||
require 5.000;
|
require 5.000;
|
||||||
use strict;
|
eval 'use strict;';
|
||||||
|
|
||||||
|
print STDERR "Warning: perl module strict not found.\n" if ($@);
|
||||||
|
|
||||||
# see INSTALL for instructions.
|
# see INSTALL for instructions.
|
||||||
|
|
||||||
@ -114,15 +116,17 @@ 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_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o:rm86-elf.o:r586-elf.o";
|
my $x86_elf_asm="x86cpuid-elf.o:bn86-elf.o co86-elf.o mo86-elf.o:dx86-elf.o yx86-elf.o:ax86-elf.o:bx86-elf.o:mx86-elf.o:sx86-elf.o s512sse2-elf.o:cx86-elf.o:rx86-elf.o rc4_skey.o:rm86-elf.o:r586-elf.o";
|
||||||
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o:rm86-cof.o:r586-cof.o";
|
my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o mo86-cof.o:dx86-cof.o yx86-cof.o:ax86-cof.o:bx86-cof.o:mx86-cof.o:sx86-cof.o s512sse2-cof.o:cx86-cof.o:rx86-cof.o rc4_skey.o:rm86-cof.o:r586-cof.o";
|
||||||
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o:rm86-out.o:r586-out.o";
|
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o mo86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o rc4_skey.o:rm86-out.o:r586-out.o";
|
||||||
|
|
||||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o::::md5-x86_64.o:::rc4-x86_64.o::";
|
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o::aes-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o::";
|
||||||
my $ia64_asm=":ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o::";
|
|
||||||
|
|
||||||
my $no_asm="::::::::::";
|
my $no_asm="::::::::::";
|
||||||
|
|
||||||
|
my $ia64_asm=":bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o::";
|
||||||
|
my $s390x_asm=$no_asm;
|
||||||
|
|
||||||
# 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,
|
||||||
# but is treated differently. OpenBSD expands is as -D_POSIX_THREAD
|
# but is treated differently. OpenBSD expands is as -D_POSIX_THREAD
|
||||||
@ -155,17 +159,19 @@ my %table=(
|
|||||||
"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:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||||
"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-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
|
"debug-steve64", "gcc:-m64 -DL_ENDIAN -DTERMIO -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -DOPENSSL_NO_DEPRECATED -g -pedantic -Wall -Werror -Wno-long-long -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
|
"debug-steve32", "gcc:-m32 -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -DOPENSSL_NO_DEPRECATED -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -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", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -m32 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
|
||||||
|
"debug-steve-opt", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -O3 -m32 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
|
||||||
"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 -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-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 -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-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 -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-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 -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-geoff","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 ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-geoff","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 ${x86_gcc_des} ${x86_gcc_opts}:${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 -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 -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 -m486 -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 -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 -m486 -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 -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)",
|
||||||
"dist", "cc:-O::(unknown)::::::",
|
"dist", "cc:-O::(unknown)::::::",
|
||||||
|
|
||||||
# Basic configs that should work on any (32 and less bit) box
|
# Basic configs that should work on any (32 and less bit) box
|
||||||
@ -173,10 +179,8 @@ my %table=(
|
|||||||
"cc", "cc:-O::(unknown)::::::",
|
"cc", "cc:-O::(unknown)::::::",
|
||||||
|
|
||||||
####VOS Configurations
|
####VOS Configurations
|
||||||
"vos-gcc","gcc:-b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
"vos-gcc","gcc:-O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
||||||
"debug-vos-gcc","gcc:-b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
"debug-vos-gcc","gcc:-O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
|
||||||
"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::${no_asm}:::::.so:",
|
|
||||||
"debug-vos-vcc","vcc:-b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map::${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
|
||||||
@ -184,7 +188,7 @@ my %table=(
|
|||||||
# surrounds it with #APP #NO_APP comment pair which (at least Solaris
|
# surrounds it with #APP #NO_APP comment pair which (at least Solaris
|
||||||
# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
|
# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
|
||||||
# error message.
|
# error message.
|
||||||
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# -shared -static-libgcc might appear controversial, but modules taken
|
# -shared -static-libgcc might appear controversial, but modules taken
|
||||||
# from static libgcc do not have relocations and linking them into our
|
# from static libgcc do not have relocations and linking them into our
|
||||||
# shared objects doesn't have any negative side-effects. On the contrary,
|
# shared objects doesn't have any negative side-effects. On the contrary,
|
||||||
@ -197,29 +201,29 @@ my %table=(
|
|||||||
|
|
||||||
#### 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 -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 BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -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 BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Solaris with GNU C setups
|
#### SPARC Solaris with GNU C setups
|
||||||
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
|
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
|
||||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
####
|
####
|
||||||
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Solaris with Sun C setups
|
#### SPARC Solaris with Sun C setups
|
||||||
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
|
||||||
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
|
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
|
||||||
# SC5.0 note: Compiler common patch 107357-01 or later is required!
|
# SC5.0 note: Compiler common patch 107357-01 or later is required!
|
||||||
"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.o:des_enc-sparc.o fcrypt_b.o:::::::::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:${no_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::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::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:${no_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:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
|
||||||
####
|
####
|
||||||
"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.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_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:${no_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::sparcv8plus.o::::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_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:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SunOS configs, assuming sparc for the gcc one.
|
#### SunOS configs, assuming sparc for the gcc one.
|
||||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
|
||||||
@ -232,11 +236,11 @@ my %table=(
|
|||||||
#### IRIX 6.x configs
|
#### IRIX 6.x configs
|
||||||
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
|
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
|
||||||
# './Configure irix-cc -o32' manually.
|
# './Configure irix-cc -o32' manually.
|
||||||
"irix-mips3-gcc","gcc:-mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${no_asm}:dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${no_asm}:dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# N64 ABI builds.
|
# N64 ABI builds.
|
||||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${no_asm}:dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -G0 -rdata_shared -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${no_asm}:dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### Unified HP-UX ANSI C configs.
|
#### Unified HP-UX ANSI C configs.
|
||||||
# Special notes:
|
# Special notes:
|
||||||
@ -269,8 +273,8 @@ 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-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::::::::::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:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"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::::::::::dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"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:${no_asm}:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# 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.
|
||||||
#
|
#
|
||||||
@ -278,8 +282,8 @@ 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_0-cc","cc:+DAportable +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:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-parisc1_0-cc","cc:+DAportable +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:${no_asm}: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::pa-risc2.o::::::::::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:${no_asm}:dl:hpux-shared:+Z:-b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"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::pa-risc2W.o::::::::::dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"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:${no_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# HP/UX IA-64 targets
|
# HP/UX IA-64 targets
|
||||||
"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-ia64-cc","cc:-Ae +DD32 +O2 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD32 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
@ -287,7 +291,7 @@ my %table=(
|
|||||||
# with debugging of the following config.
|
# with debugging of the following config.
|
||||||
"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# GCC builds...
|
# GCC builds...
|
||||||
"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT::ia64.o::aes-ia64.o:::sha256-ia64.o sha512-ia64.o::rc4-ia64.o:::dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# Legacy HPUX 9.X configs...
|
# Legacy HPUX 9.X configs...
|
||||||
@ -307,7 +311,7 @@ my %table=(
|
|||||||
# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
|
# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
|
||||||
#
|
#
|
||||||
"osf1-alpha-gcc", "gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
|
"osf1-alpha-gcc", "gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
|
||||||
"ofs1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
|
"osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
|
||||||
"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
|
"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
|
||||||
|
|
||||||
####
|
####
|
||||||
@ -316,27 +320,28 @@ my %table=(
|
|||||||
# *-generic* is endian-neutral target, but ./config is free to
|
# *-generic* is endian-neutral target, but ./config is free to
|
||||||
# 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::linux_ppc32.o::::::::::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:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### 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 -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-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 -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
||||||
####
|
####
|
||||||
"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)",
|
||||||
# -bpowerpc64-linux is transient option, -m64 should be the one to use...
|
"linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-ppc64", "gcc:-bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-bpowerpc64-linux:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${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:${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:${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:${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:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
"linux-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}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### SPARC Linux setups
|
#### SPARC Linux setups
|
||||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
||||||
# assisted with debugging of following two configs.
|
# assisted with debugging of following two configs.
|
||||||
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
||||||
# -Wa,-Av8plus should do the trick no matter what.
|
# -Wa,-Av8plus should do the trick no matter what.
|
||||||
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# GCC 3.1 is a requirement
|
# GCC 3.1 is a requirement
|
||||||
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
#### Alpha Linux with GNU C and Compaq C setups
|
#### Alpha Linux with GNU C and Compaq C setups
|
||||||
# Special notes:
|
# Special notes:
|
||||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
||||||
@ -360,17 +365,17 @@ my %table=(
|
|||||||
"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall -g::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"debug-BSD-x86-elf", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall -g::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-sparcv8", "gcc:-DB_ENDIAN -DTERMIOS -O3 -mv8 -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-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-generic64","gcc:-DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
|
# -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
|
||||||
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
# simply *happens* to work around a compiler bug in gcc 3.3.3,
|
||||||
# triggered by RIPEMD160 code.
|
# triggered by RIPEMD160 code.
|
||||||
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
"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}:::",
|
||||||
@ -397,21 +402,19 @@ my %table=(
|
|||||||
"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}:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -m486 -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}:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"OpenUNIX-8","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)",
|
|
||||||
"OpenUNIX-8-gcc","gcc:-O -DFILIO_H -fomit-frame-pointer::-pthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
|
||||||
"sco3-gcc", "gcc:-O3 -fomit-frame-pointer -Dssize_t=int -DNO_SYS_UN_H::(unknown)::-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ...
|
|
||||||
# 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}: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}: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::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:",
|
"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${no_asm}:dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||||
|
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-maix64:.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::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
|
||||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${no_asm}:dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cray T90 and similar (SDSC)
|
# Cray T90 and similar (SDSC)
|
||||||
@ -460,8 +463,8 @@ my %table=(
|
|||||||
"OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
|
"OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
|
||||||
|
|
||||||
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
|
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
|
||||||
"VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
|
"VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
|
||||||
"VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
|
"VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
|
||||||
|
|
||||||
# Visual C targets
|
# Visual C targets
|
||||||
"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
|
"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
|
||||||
@ -480,29 +483,32 @@ 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_coff_asm}: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_coff_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",
|
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_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) - requires MetroWerks NLM development tools
|
# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools
|
||||||
# netware-clib => legacy CLib c-runtime support
|
# netware-clib => legacy CLib c-runtime support
|
||||||
"netware-clib", "mwccnlm:::::${x86_gcc_opts}:::",
|
"netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
# netware-libc => LibC/NKS support
|
# netware-libc => LibC/NKS support
|
||||||
"netware-libc", "mwccnlm:::::BN_LLONG ${x86_gcc_opts}:::",
|
# NetWare defaults socket bio to WinSock sockets. However, the LibC build can be
|
||||||
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall::::${x86_gcc_opts}:::",
|
# configured to use BSD sockets instead.
|
||||||
|
"netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
|
"netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
|
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
|
||||||
|
|
||||||
# DJGPP
|
# DJGPP
|
||||||
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall -DDEVRANDOM=\"/dev/urandom\\x24\":::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
|
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
|
||||||
|
|
||||||
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
|
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
|
||||||
"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
|
"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
|
||||||
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::::::",
|
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::BN_LLONG::::",
|
||||||
# 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. Rhapsody or Darwin) setup
|
||||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
|
"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:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o:::::::::::darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-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",
|
||||||
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::darwin-shared:-fPIC:-dunamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
|
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX:-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",
|
||||||
"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::osx_ppc32.o:::::::::::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:${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:::",
|
||||||
@ -511,7 +517,7 @@ my %table=(
|
|||||||
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
|
"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 -m486 -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",
|
||||||
|
|
||||||
##### OS/2 EMX
|
##### OS/2 EMX
|
||||||
"OS2-EMX", "gcc::::::::",
|
"OS2-EMX", "gcc::::::::",
|
||||||
@ -519,7 +525,7 @@ my %table=(
|
|||||||
##### VxWorks for various targets
|
##### VxWorks for various targets
|
||||||
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
||||||
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
|
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
|
||||||
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
|
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
|
||||||
"vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
"vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
|
||||||
"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
|
"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
|
||||||
|
|
||||||
@ -530,7 +536,7 @@ my %table=(
|
|||||||
|
|
||||||
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
|
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
|
||||||
VC-NT VC-CE VC-WIN32
|
VC-NT VC-CE VC-WIN32
|
||||||
BC-32 OS2-EMX netware-clib netware-libc);
|
BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock);
|
||||||
|
|
||||||
my $idx = 0;
|
my $idx = 0;
|
||||||
my $idx_cc = $idx++;
|
my $idx_cc = $idx++;
|
||||||
@ -563,11 +569,17 @@ my $prefix="";
|
|||||||
my $openssldir="";
|
my $openssldir="";
|
||||||
my $exe_ext="";
|
my $exe_ext="";
|
||||||
my $install_prefix="";
|
my $install_prefix="";
|
||||||
|
my $fipslibdir="/usr/local/ssl/fips-1.0/lib/";
|
||||||
|
my $nofipscanistercheck=0;
|
||||||
|
my $fipsdso=0;
|
||||||
|
my $fipscanisterinternal="n";
|
||||||
|
my $baseaddr="0xFB00000";
|
||||||
my $no_threads=0;
|
my $no_threads=0;
|
||||||
my $threads=0;
|
my $threads=0;
|
||||||
my $no_shared=0; # but "no-shared" is default
|
my $no_shared=0; # but "no-shared" is default
|
||||||
my $zlib=1; # but "no-zlib" is default
|
my $zlib=1; # but "no-zlib" is default
|
||||||
my $no_krb5=0; # but "no-krb5" is implied unless "--with-krb5-..." is used
|
my $no_krb5=0; # but "no-krb5" is implied unless "--with-krb5-..." is used
|
||||||
|
my $no_rfc3779=1; # but "no-rfc3779" is default
|
||||||
my $no_asm=0;
|
my $no_asm=0;
|
||||||
my $no_dso=0;
|
my $no_dso=0;
|
||||||
my $no_gmp=0;
|
my $no_gmp=0;
|
||||||
@ -584,10 +596,11 @@ my $rc2 ="crypto/rc2/rc2.h";
|
|||||||
my $bf ="crypto/bf/bf_locl.h";
|
my $bf ="crypto/bf/bf_locl.h";
|
||||||
my $bn_asm ="bn_asm.o";
|
my $bn_asm ="bn_asm.o";
|
||||||
my $des_enc="des_enc.o fcrypt_b.o";
|
my $des_enc="des_enc.o fcrypt_b.o";
|
||||||
|
my $fips_des_enc="fips_des_enc.o";
|
||||||
my $aes_enc="aes_core.o aes_cbc.o";
|
my $aes_enc="aes_core.o aes_cbc.o";
|
||||||
my $bf_enc ="bf_enc.o";
|
my $bf_enc ="bf_enc.o";
|
||||||
my $cast_enc="c_enc.o";
|
my $cast_enc="c_enc.o";
|
||||||
my $rc4_enc="rc4_enc.o";
|
my $rc4_enc="rc4_enc.o rc4_skey.o";
|
||||||
my $rc5_enc="rc5_enc.o";
|
my $rc5_enc="rc5_enc.o";
|
||||||
my $md5_obj="";
|
my $md5_obj="";
|
||||||
my $sha1_obj="";
|
my $sha1_obj="";
|
||||||
@ -595,15 +608,22 @@ my $rmd160_obj="";
|
|||||||
my $processor="";
|
my $processor="";
|
||||||
my $default_ranlib;
|
my $default_ranlib;
|
||||||
my $perl;
|
my $perl;
|
||||||
|
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"
|
my %disabled = ( # "what" => "comment"
|
||||||
"gmp" => "default",
|
"camellia" => "default",
|
||||||
|
"capieng" => "default",
|
||||||
|
"cms" => "default",
|
||||||
|
"gmp" => "default",
|
||||||
"mdc2" => "default",
|
"mdc2" => "default",
|
||||||
"rc5" => "default",
|
"rc5" => "default",
|
||||||
|
"rfc3779" => "default",
|
||||||
|
"seed" => "default",
|
||||||
"shared" => "default",
|
"shared" => "default",
|
||||||
|
"tlsext" => "default",
|
||||||
"zlib" => "default",
|
"zlib" => "default",
|
||||||
"zlib-dynamic" => "default"
|
"zlib-dynamic" => "default"
|
||||||
);
|
);
|
||||||
@ -613,7 +633,7 @@ my %disabled = ( # "what" => "comment"
|
|||||||
# For symmetry, "disable-..." is a synonym for "no-...".
|
# For symmetry, "disable-..." is a synonym for "no-...".
|
||||||
|
|
||||||
# This is what $depflags will look like with the above default:
|
# This is what $depflags will look like with the above default:
|
||||||
my $default_depflags = "-DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 ";
|
my $default_depflags = "-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED -DOPENSSL_NO_TLSEXT ";
|
||||||
|
|
||||||
|
|
||||||
my $no_sse2=0;
|
my $no_sse2=0;
|
||||||
@ -697,7 +717,7 @@ PROCESS_ARGS:
|
|||||||
{
|
{
|
||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
chop;
|
chomp;
|
||||||
if (/^CONFIGURE_ARGS=(.*)/)
|
if (/^CONFIGURE_ARGS=(.*)/)
|
||||||
{
|
{
|
||||||
$argvstring=$1;
|
$argvstring=$1;
|
||||||
@ -716,12 +736,36 @@ PROCESS_ARGS:
|
|||||||
}
|
}
|
||||||
elsif (/^386$/)
|
elsif (/^386$/)
|
||||||
{ $processor=386; }
|
{ $processor=386; }
|
||||||
|
elsif (/^fips$/)
|
||||||
|
{
|
||||||
|
$fips=1;
|
||||||
|
}
|
||||||
elsif (/^rsaref$/)
|
elsif (/^rsaref$/)
|
||||||
{
|
{
|
||||||
# No RSAref support any more since it's not needed.
|
# No RSAref support any more since it's not needed.
|
||||||
# The check for the option is there so scripts aren't
|
# The check for the option is there so scripts aren't
|
||||||
# broken
|
# broken
|
||||||
}
|
}
|
||||||
|
elsif (/^nofipscanistercheck$/)
|
||||||
|
{
|
||||||
|
$fips = 1;
|
||||||
|
$nofipscanistercheck = 1;
|
||||||
|
}
|
||||||
|
elsif (/^fipscanisterbuild$/)
|
||||||
|
{
|
||||||
|
$fips = 1;
|
||||||
|
$nofipscanistercheck = 1;
|
||||||
|
$fipslibdir="";
|
||||||
|
$fipscanisterinternal="y";
|
||||||
|
}
|
||||||
|
elsif (/^fipsdso$/)
|
||||||
|
{
|
||||||
|
$fips = 1;
|
||||||
|
$nofipscanistercheck = 1;
|
||||||
|
$fipslibdir="";
|
||||||
|
$fipscanisterinternal="y";
|
||||||
|
$fipsdso = 1;
|
||||||
|
}
|
||||||
elsif (/^[-+]/)
|
elsif (/^[-+]/)
|
||||||
{
|
{
|
||||||
if (/^-[lL](.*)$/)
|
if (/^-[lL](.*)$/)
|
||||||
@ -748,6 +792,22 @@ PROCESS_ARGS:
|
|||||||
{
|
{
|
||||||
$withargs{"krb5-".$1}=$2;
|
$withargs{"krb5-".$1}=$2;
|
||||||
}
|
}
|
||||||
|
elsif (/^--with-zlib-lib=(.*)$/)
|
||||||
|
{
|
||||||
|
$withargs{"zlib-lib"}=$1;
|
||||||
|
}
|
||||||
|
elsif (/^--with-zlib-include=(.*)$/)
|
||||||
|
{
|
||||||
|
$withargs{"zlib-include"}="-I$1";
|
||||||
|
}
|
||||||
|
elsif (/^--with-fipslibdir=(.*)$/)
|
||||||
|
{
|
||||||
|
$fipslibdir="$1/";
|
||||||
|
}
|
||||||
|
elsif (/^--with-baseaddr=(.*)$/)
|
||||||
|
{
|
||||||
|
$baseaddr="$1";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print STDERR $usage;
|
print STDERR $usage;
|
||||||
@ -761,7 +821,7 @@ PROCESS_ARGS:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die "target already defined - $target\n" if ($target ne "");
|
die "target already defined - $target (offending arg: $_)\n" if ($target ne "");
|
||||||
$target=$_;
|
$target=$_;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -827,6 +887,10 @@ if (defined($disabled{"md5"}) || defined($disabled{"sha"})
|
|||||||
$disabled{"tls1"} = "forced";
|
$disabled{"tls1"} = "forced";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (defined($disabled{"tls1"}))
|
||||||
|
{
|
||||||
|
$disabled{"tlsext"} = "forced";
|
||||||
|
}
|
||||||
|
|
||||||
if ($target eq "TABLE") {
|
if ($target eq "TABLE") {
|
||||||
foreach $target (sort keys %table) {
|
foreach $target (sort keys %table) {
|
||||||
@ -851,83 +915,6 @@ print "Configuring for $target\n";
|
|||||||
|
|
||||||
&usage if (!defined($table{$target}));
|
&usage if (!defined($table{$target}));
|
||||||
|
|
||||||
|
|
||||||
foreach (sort (keys %disabled))
|
|
||||||
{
|
|
||||||
$options .= " no-$_";
|
|
||||||
|
|
||||||
printf " no-%-12s %-10s", $_, "[$disabled{$_}]";
|
|
||||||
|
|
||||||
if (/^dso$/)
|
|
||||||
{ $no_dso = 1; }
|
|
||||||
elsif (/^threads$/)
|
|
||||||
{ $no_threads = 1; }
|
|
||||||
elsif (/^shared$/)
|
|
||||||
{ $no_shared = 1; }
|
|
||||||
elsif (/^zlib$/)
|
|
||||||
{ $zlib = 0; }
|
|
||||||
elsif (/^zlib-dynamic$/)
|
|
||||||
{ }
|
|
||||||
elsif (/^symlinks$/)
|
|
||||||
{ $symlink = 0; }
|
|
||||||
elsif (/^sse2$/)
|
|
||||||
{ $no_sse2 = 1; }
|
|
||||||
else
|
|
||||||
{
|
|
||||||
my ($ALGO, $algo);
|
|
||||||
($ALGO = $algo = $_) =~ tr/[a-z]/[A-Z]/;
|
|
||||||
|
|
||||||
if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/)
|
|
||||||
{
|
|
||||||
$openssl_other_defines .= "#define OPENSSL_NO_$ALGO\n";
|
|
||||||
print " OPENSSL_NO_$ALGO";
|
|
||||||
|
|
||||||
if (/^err$/)
|
|
||||||
{ $flags .= "-DOPENSSL_NO_ERR "; }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$openssl_algorithm_defines .= "#define OPENSSL_NO_$ALGO\n";
|
|
||||||
print " OPENSSL_NO_$ALGO";
|
|
||||||
|
|
||||||
if (/^krb5$/)
|
|
||||||
{ $no_krb5 = 1; }
|
|
||||||
else
|
|
||||||
{
|
|
||||||
push @skip, $algo;
|
|
||||||
print " (skip dir)";
|
|
||||||
|
|
||||||
$depflags .="-DOPENSSL_NO_$ALGO ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
|
||||||
|
|
||||||
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin");
|
|
||||||
|
|
||||||
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
|
|
||||||
$exe_ext=".pm" if ($target =~ /vos/);
|
|
||||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
|
|
||||||
$prefix=$openssldir if $prefix eq "";
|
|
||||||
|
|
||||||
$default_ranlib= &which("ranlib") or $default_ranlib="true";
|
|
||||||
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
|
||||||
or $perl="perl";
|
|
||||||
|
|
||||||
chop $openssldir if $openssldir =~ /\/$/;
|
|
||||||
chop $prefix if $prefix =~ /\/$/;
|
|
||||||
|
|
||||||
$openssldir=$prefix . "/ssl" if $openssldir eq "";
|
|
||||||
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
|
|
||||||
|
|
||||||
|
|
||||||
print "IsMK1MF=$IsMK1MF\n";
|
|
||||||
|
|
||||||
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||||
my $cc = $fields[$idx_cc];
|
my $cc = $fields[$idx_cc];
|
||||||
my $cflags = $fields[$idx_cflags];
|
my $cflags = $fields[$idx_cflags];
|
||||||
@ -955,6 +942,110 @@ my $shared_extension = $fields[$idx_shared_extension];
|
|||||||
my $ranlib = $fields[$idx_ranlib];
|
my $ranlib = $fields[$idx_ranlib];
|
||||||
my $arflags = $fields[$idx_arflags];
|
my $arflags = $fields[$idx_arflags];
|
||||||
|
|
||||||
|
if ($fips)
|
||||||
|
{
|
||||||
|
delete $disabled{"shared"} if ($disabled{"shared"} eq "default");
|
||||||
|
$disabled{"asm"}="forced"
|
||||||
|
if ($target !~ "VC\-.*" &&
|
||||||
|
"$cpuid_obj:$bn_obj:$aes_obj:$des_obj:$sha1_obj" eq "::::");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach (sort (keys %disabled))
|
||||||
|
{
|
||||||
|
$options .= " no-$_";
|
||||||
|
|
||||||
|
printf " no-%-12s %-10s", $_, "[$disabled{$_}]";
|
||||||
|
|
||||||
|
if (/^dso$/)
|
||||||
|
{ $no_dso = 1; }
|
||||||
|
elsif (/^threads$/)
|
||||||
|
{ $no_threads = 1; }
|
||||||
|
elsif (/^shared$/)
|
||||||
|
{ $no_shared = 1; }
|
||||||
|
elsif (/^zlib$/)
|
||||||
|
{ $zlib = 0; }
|
||||||
|
elsif (/^static-engine$/)
|
||||||
|
{ }
|
||||||
|
elsif (/^zlib-dynamic$/)
|
||||||
|
{ }
|
||||||
|
elsif (/^symlinks$/)
|
||||||
|
{ $symlink = 0; }
|
||||||
|
elsif (/^sse2$/)
|
||||||
|
{ $no_sse2 = 1; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
my ($ALGO, $algo);
|
||||||
|
($ALGO = $algo = $_) =~ tr/[a-z]/[A-Z]/;
|
||||||
|
|
||||||
|
if (/^asm$/ || /^err$/ || /^hw$/ || /^hw-/)
|
||||||
|
{
|
||||||
|
$openssl_other_defines .= "#define OPENSSL_NO_$ALGO\n";
|
||||||
|
print " OPENSSL_NO_$ALGO";
|
||||||
|
|
||||||
|
if (/^err$/) { $flags .= "-DOPENSSL_NO_ERR "; }
|
||||||
|
elsif (/^asm$/) { $no_asm = 1; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$openssl_algorithm_defines .= "#define OPENSSL_NO_$ALGO\n";
|
||||||
|
print " OPENSSL_NO_$ALGO";
|
||||||
|
|
||||||
|
if (/^krb5$/)
|
||||||
|
{ $no_krb5 = 1; }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
push @skip, $algo;
|
||||||
|
print " (skip dir)";
|
||||||
|
|
||||||
|
$depflags .="-DOPENSSL_NO_$ALGO ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
||||||
|
|
||||||
|
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
|
||||||
|
|
||||||
|
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
|
||||||
|
|
||||||
|
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
|
||||||
|
$exe_ext=".pm" if ($target =~ /vos/);
|
||||||
|
if ($openssldir eq "" and $prefix eq "")
|
||||||
|
{
|
||||||
|
if ($fips)
|
||||||
|
{
|
||||||
|
$openssldir="/usr/local/ssl/fips";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$openssldir="/usr/local/ssl";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$prefix=$openssldir if $prefix eq "";
|
||||||
|
|
||||||
|
$default_ranlib= &which("ranlib") or $default_ranlib="true";
|
||||||
|
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
||||||
|
or $perl="perl";
|
||||||
|
|
||||||
|
chop $openssldir if $openssldir =~ /\/$/;
|
||||||
|
chop $prefix if $prefix =~ /\/$/;
|
||||||
|
|
||||||
|
$openssldir=$prefix . "/ssl" if $openssldir eq "";
|
||||||
|
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
|
||||||
|
|
||||||
|
|
||||||
|
print "IsMK1MF=$IsMK1MF\n";
|
||||||
|
|
||||||
|
# '%' in $lflags is used to split flags to "pre-" and post-flags
|
||||||
|
my ($prelflags,$postlflags)=split('%',$lflags);
|
||||||
|
if (defined($postlflags)) { $lflags=$postlflags; }
|
||||||
|
else { $lflags=$prelflags; undef $prelflags; }
|
||||||
|
|
||||||
my $no_shared_warn=0;
|
my $no_shared_warn=0;
|
||||||
my $no_user_cflags=0;
|
my $no_user_cflags=0;
|
||||||
|
|
||||||
@ -1083,6 +1174,8 @@ if ($no_asm)
|
|||||||
{
|
{
|
||||||
$cpuid_obj=$bn_obj=$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
|
$cpuid_obj=$bn_obj=$des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj="";
|
||||||
$sha1_obj=$md5_obj=$rmd160_obj="";
|
$sha1_obj=$md5_obj=$rmd160_obj="";
|
||||||
|
$cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
||||||
|
$thread_cflags=~s/\-D[BL]_ENDIAN// if ($fips);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$no_shared)
|
if (!$no_shared)
|
||||||
@ -1113,7 +1206,7 @@ if ($zlib)
|
|||||||
my $shared_mark = "";
|
my $shared_mark = "";
|
||||||
if ($shared_target eq "")
|
if ($shared_target eq "")
|
||||||
{
|
{
|
||||||
$no_shared_warn = 1 if !$no_shared;
|
$no_shared_warn = 1 if !$no_shared && !$fips;
|
||||||
$no_shared = 1;
|
$no_shared = 1;
|
||||||
}
|
}
|
||||||
if (!$no_shared)
|
if (!$no_shared)
|
||||||
@ -1124,22 +1217,32 @@ if (!$no_shared)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($no_shared)
|
if (!$IsMK1MF)
|
||||||
{
|
{
|
||||||
$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
|
if ($no_shared)
|
||||||
}
|
{
|
||||||
else
|
$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
|
||||||
{
|
}
|
||||||
$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
|
else
|
||||||
|
{
|
||||||
|
$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
||||||
# Compiler fix-ups
|
|
||||||
if ($target =~ /icc$/)
|
#
|
||||||
|
# Platform fix-ups
|
||||||
|
#
|
||||||
|
if ($target =~ /\-icc$/) # Intel C compiler
|
||||||
{
|
{
|
||||||
my($iccver)=`$cc -V 2>&1`;
|
my $iccver=0;
|
||||||
if ($iccver =~ /Version ([0-9]+)\./) { $iccver=$1; }
|
if (open(FD,"$cc -V 2>&1 |"))
|
||||||
else { $iccver=0; }
|
{
|
||||||
|
while(<FD>) { $iccver=$1 if (/Version ([0-9]+)\./); }
|
||||||
|
close(FD);
|
||||||
|
}
|
||||||
|
|
||||||
if ($iccver>=8)
|
if ($iccver>=8)
|
||||||
{
|
{
|
||||||
# Eliminate unnecessary dependency from libirc.a. This is
|
# Eliminate unnecessary dependency from libirc.a. This is
|
||||||
@ -1147,6 +1250,28 @@ if ($target =~ /icc$/)
|
|||||||
# apps/openssl can end up in endless loop upon startup...
|
# apps/openssl can end up in endless loop upon startup...
|
||||||
$cflags.=" -Dmemcpy=__builtin_memcpy -Dmemset=__builtin_memset";
|
$cflags.=" -Dmemcpy=__builtin_memcpy -Dmemset=__builtin_memset";
|
||||||
}
|
}
|
||||||
|
if ($iccver>=9)
|
||||||
|
{
|
||||||
|
$cflags.=" -i-static";
|
||||||
|
$cflags=~s/\-no_cpprt/-no-cpprt/;
|
||||||
|
}
|
||||||
|
if ($iccver>=10)
|
||||||
|
{
|
||||||
|
$cflags=~s/\-i\-static/-static-intel/;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Unlike other OSes (like Solaris, Linux, Tru64, IRIX) BSD run-time
|
||||||
|
# linkers (tested OpenBSD, NetBSD and FreeBSD) "demand" RPATH set on
|
||||||
|
# .so objects. Apparently application RPATH is not global and does
|
||||||
|
# not apply to .so linked with other .so. Problem manifests itself
|
||||||
|
# when libssl.so fails to load libcrypto.so. One can argue that we
|
||||||
|
# should engrave this into Makefile.shared rules or into BSD-* config
|
||||||
|
# lines above. Meanwhile let's try to be cautious and pass -rpath to
|
||||||
|
# linker only when --prefix is not /usr.
|
||||||
|
if ($target =~ /^BSD\-/)
|
||||||
|
{
|
||||||
|
$shared_ldflag.=" -Wl,-rpath,\$(LIBRPATH)" if ($prefix !~ m|^/usr[/]*$|);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sys_id ne "")
|
if ($sys_id ne "")
|
||||||
@ -1172,6 +1297,13 @@ $bn_obj = $bn_asm unless $bn_obj ne "";
|
|||||||
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
|
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
|
||||||
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
|
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
|
||||||
|
|
||||||
|
$cflags.=" -DOPENSSL_BN_ASM_MONT" if ($bn_obj =~ /\-mont|mo86\-/);
|
||||||
|
|
||||||
|
if ($fips)
|
||||||
|
{
|
||||||
|
$openssl_other_defines.="#define OPENSSL_FIPS\n";
|
||||||
|
}
|
||||||
|
|
||||||
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
|
$des_obj=$des_enc unless ($des_obj =~ /\.o$/);
|
||||||
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
|
$bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
|
||||||
$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
|
$cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
|
||||||
@ -1183,7 +1315,7 @@ if ($sha1_obj =~ /\.o$/)
|
|||||||
$cflags.=" -DSHA1_ASM" if ($sha1_obj =~ /sx86/ || $sha1_obj =~ /sha1/);
|
$cflags.=" -DSHA1_ASM" if ($sha1_obj =~ /sx86/ || $sha1_obj =~ /sha1/);
|
||||||
$cflags.=" -DSHA256_ASM" if ($sha1_obj =~ /sha256/);
|
$cflags.=" -DSHA256_ASM" if ($sha1_obj =~ /sha256/);
|
||||||
$cflags.=" -DSHA512_ASM" if ($sha1_obj =~ /sha512/);
|
$cflags.=" -DSHA512_ASM" if ($sha1_obj =~ /sha512/);
|
||||||
if ($sha1_obj =~ /x86/)
|
if ($sha1_obj =~ /sse2/)
|
||||||
{ if ($no_sse2)
|
{ if ($no_sse2)
|
||||||
{ $sha1_obj =~ s/\S*sse2\S+//; }
|
{ $sha1_obj =~ s/\S*sse2\S+//; }
|
||||||
elsif ($cflags !~ /OPENSSL_IA32_SSE2/)
|
elsif ($cflags !~ /OPENSSL_IA32_SSE2/)
|
||||||
@ -1251,7 +1383,7 @@ print OUT "### Generated automatically from Makefile.org by Configure.\n\n";
|
|||||||
my $sdirs=0;
|
my $sdirs=0;
|
||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
chop;
|
chomp;
|
||||||
$sdirs = 1 if /^SDIRS=/;
|
$sdirs = 1 if /^SDIRS=/;
|
||||||
if ($sdirs) {
|
if ($sdirs) {
|
||||||
my $dir;
|
my $dir;
|
||||||
@ -1278,6 +1410,7 @@ while (<IN>)
|
|||||||
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
|
s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
|
||||||
s/^CFLAG=.*$/CFLAG= $cflags/;
|
s/^CFLAG=.*$/CFLAG= $cflags/;
|
||||||
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
|
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
|
||||||
|
s/^PEX_LIBS=.*$/PEX_LIBS= $prelflags/;
|
||||||
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
||||||
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/;
|
||||||
@ -1297,9 +1430,26 @@ while (<IN>)
|
|||||||
s/^PERL=.*/PERL= $perl/;
|
s/^PERL=.*/PERL= $perl/;
|
||||||
s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
|
s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
|
||||||
s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
|
s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
|
||||||
|
s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
|
||||||
|
s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
|
||||||
|
s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
|
||||||
|
if ($fipsdso)
|
||||||
|
{
|
||||||
|
s/^FIPSCANLIB=.*/FIPSCANLIB=libfips/;
|
||||||
|
s/^SHARED_FIPS=.*/SHARED_FIPS=libfips\$(SHLIB_EXT)/;
|
||||||
|
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl fips/;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
|
||||||
|
s/^SHARED_FIPS=.*/SHARED_FIPS=/;
|
||||||
|
s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
|
||||||
|
}
|
||||||
|
s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
|
||||||
|
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/;
|
||||||
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
|
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_FIPS) \$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
|
||||||
if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
|
if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
|
||||||
{
|
{
|
||||||
my $sotmp = $1;
|
my $sotmp = $1;
|
||||||
@ -1594,9 +1744,16 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "040904b0"
|
BLOCK "040904b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
#if defined(FIPS)
|
||||||
|
VALUE "Comments", "WARNING: TEST VERSION ONLY ***NOT*** FIPS 140-2 VALIDATED.\\0"
|
||||||
|
#endif
|
||||||
// Required:
|
// Required:
|
||||||
VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
|
VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
|
||||||
|
#if defined(FIPS)
|
||||||
|
VALUE "FileDescription", "TEST UNVALIDATED FIPS140-2 DLL\\0"
|
||||||
|
#else
|
||||||
VALUE "FileDescription", "OpenSSL Shared Library\\0"
|
VALUE "FileDescription", "OpenSSL Shared Library\\0"
|
||||||
|
#endif
|
||||||
VALUE "FileVersion", "$version\\0"
|
VALUE "FileVersion", "$version\\0"
|
||||||
#if defined(CRYPTO)
|
#if defined(CRYPTO)
|
||||||
VALUE "InternalName", "libeay32\\0"
|
VALUE "InternalName", "libeay32\\0"
|
||||||
@ -1604,12 +1761,15 @@ BEGIN
|
|||||||
#elif defined(SSL)
|
#elif defined(SSL)
|
||||||
VALUE "InternalName", "ssleay32\\0"
|
VALUE "InternalName", "ssleay32\\0"
|
||||||
VALUE "OriginalFilename", "ssleay32.dll\\0"
|
VALUE "OriginalFilename", "ssleay32.dll\\0"
|
||||||
|
#elif defined(FIPS)
|
||||||
|
VALUE "InternalName", "libosslfips\\0"
|
||||||
|
VALUE "OriginalFilename", "libosslfips.dll\\0"
|
||||||
#endif
|
#endif
|
||||||
VALUE "ProductName", "The OpenSSL Toolkit\\0"
|
VALUE "ProductName", "The OpenSSL Toolkit\\0"
|
||||||
VALUE "ProductVersion", "$version\\0"
|
VALUE "ProductVersion", "$version\\0"
|
||||||
// Optional:
|
// Optional:
|
||||||
//VALUE "Comments", "\\0"
|
//VALUE "Comments", "\\0"
|
||||||
VALUE "LegalCopyright", "Copyright © 1998-2005 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
|
VALUE "LegalCopyright", "Copyright © 1998-2007 The OpenSSL Project. Copyright © 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
|
||||||
//VALUE "LegalTrademarks", "\\0"
|
//VALUE "LegalTrademarks", "\\0"
|
||||||
//VALUE "PrivateBuild", "\\0"
|
//VALUE "PrivateBuild", "\\0"
|
||||||
//VALUE "SpecialBuild", "\\0"
|
//VALUE "SpecialBuild", "\\0"
|
||||||
@ -1646,6 +1806,21 @@ 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 an OpenSSL 0.9.8-fips test version.
|
||||||
|
|
||||||
|
See the file README.FIPS for details of how to build a test library.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
sub usage
|
sub usage
|
||||||
@ -1791,3 +1966,11 @@ sub test_sanity
|
|||||||
print STDERR "No sanity errors detected!\n" if $errorcnt == 0;
|
print STDERR "No sanity errors detected!\n" if $errorcnt == 0;
|
||||||
return $errorcnt;
|
return $errorcnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Attempt to detect MSYS environment
|
||||||
|
|
||||||
|
sub is_msys
|
||||||
|
{
|
||||||
|
return 1 if (exists $ENV{"TERM"} && $ENV{"TERM"} eq "msys");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
91
FAQ
91
FAQ
@ -31,6 +31,7 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why does my browser give a warning about a mismatched hostname?
|
* Why does my browser give a warning about a mismatched hostname?
|
||||||
* How do I install a CA certificate into a browser?
|
* How do I install a CA certificate into a browser?
|
||||||
* Why is OpenSSL x509 DN output not conformant to RFC2253?
|
* Why is OpenSSL x509 DN output not conformant to RFC2253?
|
||||||
|
* What is a "128 bit certificate"? Can I create one with OpenSSL?
|
||||||
|
|
||||||
[BUILD] Questions about building and testing OpenSSL
|
[BUILD] Questions about building and testing OpenSSL
|
||||||
|
|
||||||
@ -47,6 +48,8 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* Why does the OpenSSL test suite fail in BN_sqr test [on a 64-bit platform]?
|
* Why does the OpenSSL test suite fail in BN_sqr test [on a 64-bit platform]?
|
||||||
* Why does OpenBSD-i386 build fail on des-586.s with "Unimplemented segment type"?
|
* Why does OpenBSD-i386 build fail on des-586.s with "Unimplemented segment type"?
|
||||||
* Why does the OpenSSL test suite fail in sha512t on x86 CPU?
|
* Why does the OpenSSL test suite fail in sha512t on x86 CPU?
|
||||||
|
* Why does compiler fail to compile sha512.c?
|
||||||
|
* Test suite still fails, what to do?
|
||||||
|
|
||||||
[PROG] Questions about programming with OpenSSL
|
[PROG] Questions about programming with OpenSSL
|
||||||
|
|
||||||
@ -71,7 +74,7 @@ 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 0.9.7g was released on April 11, 2005.
|
OpenSSL 0.9.8e was released on February 23rd, 2007.
|
||||||
|
|
||||||
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:
|
||||||
@ -142,8 +145,8 @@ less Unix-centric, it might have been used much earlier.
|
|||||||
|
|
||||||
With version 0.9.6 OpenSSL was extended to interface to external crypto
|
With version 0.9.6 OpenSSL was extended to interface to external crypto
|
||||||
hardware. This was realized in a special release '0.9.6-engine'. With
|
hardware. This was realized in a special release '0.9.6-engine'. With
|
||||||
version 0.9.7 (not yet released) the changes were merged into the main
|
version 0.9.7 the changes were merged into the main development line,
|
||||||
development line, so that the special release is no longer necessary.
|
so that the special release is no longer necessary.
|
||||||
|
|
||||||
* How do I check the authenticity of the OpenSSL distribution?
|
* How do I check the authenticity of the OpenSSL distribution?
|
||||||
|
|
||||||
@ -385,6 +388,43 @@ 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" commandline 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?
|
||||||
|
|
||||||
|
The term "128 bit certificate" is a highly misleading marketing term. It does
|
||||||
|
*not* refer to the size of the public key in the certificate! A certificate
|
||||||
|
containing a 128 bit RSA key would have negligible security.
|
||||||
|
|
||||||
|
There were various other names such as "magic certificates", "SGC
|
||||||
|
certificates", "step up certificates" etc.
|
||||||
|
|
||||||
|
You can't generally create such a certificate using OpenSSL but there is no
|
||||||
|
need to any more. Nowadays web browsers using unrestricted strong encryption
|
||||||
|
are generally available.
|
||||||
|
|
||||||
|
When there were tight export restrictions on the export of strong encryption
|
||||||
|
software from the US only weak encryption algorithms could be freely exported
|
||||||
|
(initially 40 bit and then 56 bit). It was widely recognised that this was
|
||||||
|
inadequate. A relaxation the rules allowed the use of strong encryption but
|
||||||
|
only to an authorised server.
|
||||||
|
|
||||||
|
Two slighly different techniques were developed to support this, one used by
|
||||||
|
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
|
||||||
|
check to see if the certificate contained certain extensions and was issued by
|
||||||
|
an authorised authority. If these test succeeded it would reconnect using
|
||||||
|
strong encryption.
|
||||||
|
|
||||||
|
Only certain (initially one) certificate authorities could issue the
|
||||||
|
certificates and they generally cost more than ordinary certificates.
|
||||||
|
|
||||||
|
Although OpenSSL can create certificates containing the appropriate extensions
|
||||||
|
the certificate would not come from a permitted authority and so would not
|
||||||
|
be recognized.
|
||||||
|
|
||||||
|
The export laws were later changed to allow almost unrestricted use of strong
|
||||||
|
encryption so these certificates are now obsolete.
|
||||||
|
|
||||||
|
|
||||||
[BUILD] =======================================================================
|
[BUILD] =======================================================================
|
||||||
|
|
||||||
* Why does the linker complain about undefined symbols?
|
* Why does the linker complain about undefined symbols?
|
||||||
@ -607,6 +647,27 @@ Intel P4, under control of kernel which does not support SSE2
|
|||||||
instruction extentions. See accompanying INSTALL file and
|
instruction extentions. 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?
|
||||||
|
|
||||||
|
OpenSSL SHA-512 implementation depends on compiler support for 64-bit
|
||||||
|
integer type. Few elder compilers [ULTRIX cc, SCO compiler to mention a
|
||||||
|
couple] lack support for this and therefore are incapable of compiling
|
||||||
|
the module in question. The recommendation is to disable SHA-512 by
|
||||||
|
adding no-sha512 to ./config [or ./Configure] command line. Another
|
||||||
|
possible alternative might be to switch to GCC.
|
||||||
|
|
||||||
|
* Test suite still fails, what to do?
|
||||||
|
|
||||||
|
Another common reason for failure to complete some particular test is
|
||||||
|
simply bad code generated by a buggy component in toolchain or deficiency
|
||||||
|
in run-time environment. There are few cases documented in PROBLEMS file,
|
||||||
|
consult it for possible workaround before you beat the drum. Even if you
|
||||||
|
don't find solution or even mention there, do reserve for possibility of
|
||||||
|
a compiler bug. Compiler bugs might appear in rather bizarre ways, they
|
||||||
|
never make sense, and tend to emerge when you least expect them. In order
|
||||||
|
to identify one, drop optimization level, e.g. by editing CFLAG line in
|
||||||
|
top-level Makefile, recompile and re-run the test.
|
||||||
|
|
||||||
[PROG] ========================================================================
|
[PROG] ========================================================================
|
||||||
|
|
||||||
* Is OpenSSL thread-safe?
|
* Is OpenSSL thread-safe?
|
||||||
@ -618,8 +679,9 @@ libraries. If your platform is not one of these, consult the INSTALL
|
|||||||
file.
|
file.
|
||||||
|
|
||||||
Multi-threaded applications must provide two callback functions to
|
Multi-threaded applications must provide two callback functions to
|
||||||
OpenSSL. This is described in the threads(3) manpage.
|
OpenSSL by calling CRYPTO_set_locking_callback() and
|
||||||
|
CRYPTO_set_id_callback(). This is described in the threads(3)
|
||||||
|
manpage.
|
||||||
|
|
||||||
* I've compiled a program under Windows and it crashes: why?
|
* I've compiled a program under Windows and it crashes: why?
|
||||||
|
|
||||||
@ -639,10 +701,10 @@ your application must link against the same by which OpenSSL was
|
|||||||
built. If you are using MS Visual C++ (Studio) this can be changed
|
built. If you are using MS Visual C++ (Studio) this can be changed
|
||||||
by:
|
by:
|
||||||
|
|
||||||
1. Select Settings... from the Project Menu.
|
1. Select Settings... from the Project Menu.
|
||||||
2. Select the C/C++ Tab.
|
2. Select the C/C++ Tab.
|
||||||
3. Select "Code Generation from the "Category" drop down list box
|
3. Select "Code Generation from the "Category" drop down list box
|
||||||
4. Select the Appropriate library (see table below) from the "Use
|
4. Select the Appropriate library (see table below) from the "Use
|
||||||
run-time library" drop down list box. Perform this step for both
|
run-time library" drop down list box. Perform this step for both
|
||||||
your debug and release versions of your application (look at the
|
your debug and release versions of your application (look at the
|
||||||
top left of the settings panel to change between the two)
|
top left of the settings panel to change between the two)
|
||||||
@ -662,16 +724,19 @@ Note that debug and release libraries are NOT interchangeable. If you
|
|||||||
built OpenSSL with /MD your application must use /MD and cannot use /MDd.
|
built OpenSSL with /MD your application must use /MD and cannot use /MDd.
|
||||||
|
|
||||||
As per 0.9.8 the above limitation is eliminated for .DLLs. OpenSSL
|
As per 0.9.8 the above limitation is eliminated for .DLLs. OpenSSL
|
||||||
.DLLs compiled with some specific run-time option [we recommend the
|
.DLLs compiled with some specific run-time option [we insist on the
|
||||||
default /MD] can be deployed with application compiled with different
|
default /MD] can be deployed with application compiled with different
|
||||||
option or even different compiler. But there is a catch! Instead of
|
option or even different compiler. But there is a catch! Instead of
|
||||||
re-compiling OpenSSL toolkit, as you would have to with prior versions,
|
re-compiling OpenSSL toolkit, as you would have to with prior versions,
|
||||||
you have to compile small C snippet with compiler and/or options of
|
you have to compile small C snippet with compiler and/or options of
|
||||||
your choice. The snippet gets installed as
|
your choice. The snippet gets installed as
|
||||||
<install-root>/include/openssl/applink.c and should be either added to
|
<install-root>/include/openssl/applink.c and should be either added to
|
||||||
your project or simply #include-d in one [and only one] of your source
|
your application project or simply #include-d in one [and only one]
|
||||||
files. Failure to do either manifests itself as fatal "no
|
of your application source files. Failure to link this shim module
|
||||||
OPENSSL_Applink" error.
|
into your application manifests itself as fatal "no OPENSSL_Applink"
|
||||||
|
run-time error. An explicit reminder is due that in this situation
|
||||||
|
[mixing compiler options] it is as important to add CRYPTO_malloc_init
|
||||||
|
prior first call to OpenSSL.
|
||||||
|
|
||||||
* How do I read or write a DER encoded buffer using the ASN1 functions?
|
* How do I read or write a DER encoded buffer using the ASN1 functions?
|
||||||
|
|
||||||
|
16
INSTALL
16
INSTALL
@ -75,7 +75,9 @@
|
|||||||
no-asm Do not use assembler code.
|
no-asm Do not use assembler code.
|
||||||
|
|
||||||
386 Use the 80386 instruction set only (the default x86 code is
|
386 Use the 80386 instruction set only (the default x86 code is
|
||||||
more efficient, but requires at least a 486).
|
more efficient, but requires at least a 486). Note: Use
|
||||||
|
compiler flags for any other CPU specific configuration,
|
||||||
|
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 extention is
|
||||||
detected at run-time, but the decision whether or not the
|
detected at run-time, but the decision whether or not the
|
||||||
@ -96,7 +98,7 @@
|
|||||||
The crypto/<cipher> directory can be removed after running
|
The crypto/<cipher> directory can be removed after running
|
||||||
"make depend".
|
"make depend".
|
||||||
|
|
||||||
-Dxxx, -lxxx, -Lxxx, -fxxx, -Kxxx These system specific options will
|
-Dxxx, -lxxx, -Lxxx, -fxxx, -mxxx, -Kxxx These system specific options will
|
||||||
be passed through to the compiler to allow you to
|
be passed through to the compiler to allow you to
|
||||||
define preprocessor symbols, specify additional libraries,
|
define preprocessor symbols, specify additional libraries,
|
||||||
library directories or other compiler options.
|
library directories or other compiler options.
|
||||||
@ -300,10 +302,10 @@
|
|||||||
Note on shared libraries
|
Note on shared libraries
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
Shared library is currently an experimental feature. The only reason to
|
Shared libraries have certain caveats. Binary backward compatibility
|
||||||
have them would be to conserve memory on systems where several program
|
can't be guaranteed before OpenSSL version 1.0. The only reason to
|
||||||
are using OpenSSL. Binary backward compatibility can't be guaranteed
|
use them would be to conserve memory on systems where several programs
|
||||||
before OpenSSL version 1.0.
|
are using OpenSSL.
|
||||||
|
|
||||||
For some systems, the OpenSSL Configure script knows what is needed to
|
For some systems, the OpenSSL Configure script knows what is needed to
|
||||||
build shared libraries for libcrypto and libssl. On these systems,
|
build shared libraries for libcrypto and libssl. On these systems,
|
||||||
@ -328,7 +330,7 @@
|
|||||||
Note on support for multiple builds
|
Note on support for multiple builds
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
OpenSSL is usually built in it's source tree. Unfortunately, this doesn't
|
OpenSSL is usually built in its source tree. Unfortunately, this doesn't
|
||||||
support building for multiple platforms from the same source tree very well.
|
support building for multiple platforms from the same source tree very well.
|
||||||
It is however possible to build in a separate tree through the use of lots
|
It is however possible to build in a separate tree through the use of lots
|
||||||
of symbolic links, which should be prepared like this:
|
of symbolic links, which should be prepared like this:
|
||||||
|
36
INSTALL.NW
36
INSTALL.NW
@ -32,6 +32,10 @@ The necessary LibC functionality ships with NetWare 6. However, earlier
|
|||||||
NetWare 5.x versions will require updates in order to run the OpenSSL LibC
|
NetWare 5.x versions will require updates in order to run the OpenSSL LibC
|
||||||
build.
|
build.
|
||||||
|
|
||||||
|
As of June 2005, the LibC build can be configured to use BSD sockets instead
|
||||||
|
of WinSock sockets. Call Configure (usually through netware\build.bat) using
|
||||||
|
a target of "netware-libc-bsdsock" instead of "netware-libc".
|
||||||
|
|
||||||
|
|
||||||
REQUIRED TOOLS:
|
REQUIRED TOOLS:
|
||||||
---------------
|
---------------
|
||||||
@ -95,7 +99,12 @@ following tools may be required:
|
|||||||
Microsoft SDK. Note: The winsock2.h support headers may change
|
Microsoft SDK. Note: The winsock2.h support headers may change
|
||||||
with various versions of winsock2.h. Check the dependencies
|
with various versions of winsock2.h. Check the dependencies
|
||||||
section on the NDK WinSock2 download page for the latest
|
section on the NDK WinSock2 download page for the latest
|
||||||
information on dependencies.
|
information on dependencies. These components are unsupported by
|
||||||
|
Novell. They are provided as a courtesy, but it is strongly
|
||||||
|
suggested that all development be done using LIBC, not CLIB.
|
||||||
|
|
||||||
|
As of June 2005, the WinSock2 components are available at:
|
||||||
|
http://forgeftp.novell.com//ws2comp/
|
||||||
|
|
||||||
|
|
||||||
NLM and NetWare libraries for C (including CLIB and XPlat):
|
NLM and NetWare libraries for C (including CLIB and XPlat):
|
||||||
@ -121,7 +130,8 @@ following tools may be required:
|
|||||||
|
|
||||||
NOTE: The LibC SDK includes the necessary WinSock2 support. It
|
NOTE: The LibC SDK includes the necessary WinSock2 support. It
|
||||||
It is not necessary to download the WinSock2 Developer when building
|
It is not necessary to download the WinSock2 Developer when building
|
||||||
for LibC.
|
for LibC. The LibC SDK also includes the appropriate BSD socket support
|
||||||
|
if configuring to use BSD sockets.
|
||||||
|
|
||||||
|
|
||||||
BUILDING:
|
BUILDING:
|
||||||
@ -172,8 +182,9 @@ the assembly code. Always run build.bat from the "openssl" directory.
|
|||||||
|
|
||||||
netware\build [target] [debug opts] [assembly opts] [configure opts]
|
netware\build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
|
|
||||||
target - "netware-clib" - CLib NetWare build
|
target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
- "netware-libc" - LibC NetWare build
|
- "netware-libc" - LibC NetWare build (WinSock Sockets)
|
||||||
|
- "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
||||||
|
|
||||||
debug opts - "debug" - build debug
|
debug opts - "debug" - build debug
|
||||||
|
|
||||||
@ -192,25 +203,29 @@ the assembly code. Always run build.bat from the "openssl" directory.
|
|||||||
LibC build, non-debug, using NASM assembly:
|
LibC build, non-debug, using NASM assembly:
|
||||||
netware\build.bat netware-libc nw-nasm
|
netware\build.bat netware-libc nw-nasm
|
||||||
|
|
||||||
|
LibC build, BSD sockets, non-debug, without assembly:
|
||||||
|
netware\build.bat netware-libc-bsdsock no-asm
|
||||||
|
|
||||||
Running build.bat generates a make file to be processed by your make
|
Running build.bat generates a make file to be processed by your make
|
||||||
tool (gmake or nmake):
|
tool (gmake or nmake):
|
||||||
|
|
||||||
CLIB ex: gmake -f netware\nlm_clib.mak
|
CLIB ex: gmake -f netware\nlm_clib_dbg.mak
|
||||||
LibC ex: gmake -f netware\nlm_libc.mak
|
LibC ex: gmake -f netware\nlm_libc.mak
|
||||||
|
LibC ex: gmake -f netware\nlm_libc_bsdsock.mak
|
||||||
|
|
||||||
|
|
||||||
You can also run the build scripts manually if you do not want to use the
|
You can also run the build scripts manually if you do not want to use the
|
||||||
build.bat file. Run the following scripts in the "\openssl"
|
build.bat file. Run the following scripts in the "\openssl"
|
||||||
subdirectory (in the order listed below):
|
subdirectory (in the order listed below):
|
||||||
|
|
||||||
perl configure no-asm [other config opts] [netware-clib|netware-libc]
|
perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock]
|
||||||
configures no assembly build for specified netware environment
|
configures no assembly build for specified netware environment
|
||||||
(CLIB or LibC).
|
(CLIB or LibC).
|
||||||
|
|
||||||
perl util\mkfiles.pl >MINFO
|
perl util\mkfiles.pl >MINFO
|
||||||
generates a listing of source files (used by mk1mf)
|
generates a listing of source files (used by mk1mf)
|
||||||
|
|
||||||
perl util\mk1mf.pl no-asm [other config opts] [netware-clib|netware-libc >netware\nlm.mak
|
perl util\mk1mf.pl no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock >netware\nlm.mak
|
||||||
generates the makefile for NetWare
|
generates the makefile for NetWare
|
||||||
|
|
||||||
gmake -f netware\nlm.mak
|
gmake -f netware\nlm.mak
|
||||||
@ -288,13 +303,6 @@ The do_tests.pl script generates a log file "\openssl\test_out\tests.log"
|
|||||||
which should be reviewed for errors. Any errors will be denoted by the word
|
which should be reviewed for errors. Any errors will be denoted by the word
|
||||||
"ERROR" in the log.
|
"ERROR" in the log.
|
||||||
|
|
||||||
NOTE: Currently (11/2002), the LibC test nlms report an error while loading
|
|
||||||
when launched from the perl script (do_tests.pl). The problems are
|
|
||||||
being addressed by the LibC development team and should be fixed in the
|
|
||||||
next release. Until the problems are corrected, the LibC test nlms
|
|
||||||
will have to be executed manually.
|
|
||||||
|
|
||||||
|
|
||||||
DEVELOPING WITH THE OPENSSL SDK:
|
DEVELOPING WITH THE OPENSSL SDK:
|
||||||
--------------------------------
|
--------------------------------
|
||||||
Now that everything is built and tested, you are ready to use the OpenSSL
|
Now that everything is built and tested, you are ready to use the OpenSSL
|
||||||
|
39
INSTALL.W32
39
INSTALL.W32
@ -3,6 +3,7 @@
|
|||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
[Instructions for building for Windows CE can be found in INSTALL.WCE]
|
[Instructions for building for Windows CE can be found in INSTALL.WCE]
|
||||||
|
[Instructions for building for Win64 can be found in INSTALL.W64]
|
||||||
|
|
||||||
Heres a few comments about building OpenSSL in Windows environments. Most
|
Heres a few comments about building OpenSSL in Windows environments. Most
|
||||||
of this is tested on Win32 but it may also work in Win 3.1 with some
|
of this is tested on Win32 but it may also work in Win 3.1 with some
|
||||||
@ -48,7 +49,9 @@
|
|||||||
|
|
||||||
Firstly you should run Configure:
|
Firstly you should run Configure:
|
||||||
|
|
||||||
> perl Configure VC-WIN32
|
> perl Configure VC-WIN32 --prefix=c:/some/openssl/dir
|
||||||
|
|
||||||
|
Where the prefix argument specifies where OpenSSL will be installed to.
|
||||||
|
|
||||||
Next you need to build the Makefiles and optionally the assembly language
|
Next you need to build the Makefiles and optionally the assembly language
|
||||||
files:
|
files:
|
||||||
@ -76,8 +79,12 @@
|
|||||||
If all is well it should compile and you will have some DLLs and executables
|
If all is well it should compile and you will have some DLLs and executables
|
||||||
in out32dll. If you want to try the tests then do:
|
in out32dll. If you want to try the tests then do:
|
||||||
|
|
||||||
> cd out32dll
|
> nmake -f ms\ntdll.mak test
|
||||||
> ..\ms\test
|
|
||||||
|
|
||||||
|
To install OpenSSL to the specified location do:
|
||||||
|
|
||||||
|
> nmake -f ms\ntdll.mak install
|
||||||
|
|
||||||
Tweaks:
|
Tweaks:
|
||||||
|
|
||||||
@ -87,6 +94,12 @@
|
|||||||
compiled in. Note that mk1mf.pl expects the platform to be the last argument
|
compiled in. Note that mk1mf.pl expects the platform to be the last argument
|
||||||
on the command line, so 'debug' must appear before that, as all other options.
|
on the command line, so 'debug' must appear before that, as all other options.
|
||||||
|
|
||||||
|
|
||||||
|
By default in 0.9.8 OpenSSL will compile builtin ENGINES into the libeay32.dll
|
||||||
|
shared library. If you specify the "no-static-engine" option on the command
|
||||||
|
line to Configure the shared library build (ms\ntdll.mak) will compile the
|
||||||
|
engines as separate DLLs.
|
||||||
|
|
||||||
The default Win32 environment is to leave out any Windows NT specific
|
The default Win32 environment is to leave out any Windows NT specific
|
||||||
features.
|
features.
|
||||||
|
|
||||||
@ -97,6 +110,8 @@
|
|||||||
You can also build a static version of the library using the Makefile
|
You can also build a static version of the library using the Makefile
|
||||||
ms\nt.mak
|
ms\nt.mak
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Borland C++ builder 5
|
Borland C++ builder 5
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@ -286,3 +301,21 @@
|
|||||||
(e.g. fopen()), and OpenSSL cannot change these; so in general you cannot
|
(e.g. fopen()), and OpenSSL cannot change these; so in general you cannot
|
||||||
rely on CRYPTO_malloc_init() solving your problem, and you should
|
rely on CRYPTO_malloc_init() solving your problem, and you should
|
||||||
consistently use the multithreaded library.
|
consistently use the multithreaded library.
|
||||||
|
|
||||||
|
Linking your application
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
If you link with static OpenSSL libraries [those built with ms/nt.mak],
|
||||||
|
then you're expected to additionally link your application with
|
||||||
|
WSOCK32.LIB, ADVAPI32.LIB, GDI32.LIB and USER32.LIB. Those developing
|
||||||
|
non-interactive service applications might feel concerned about linking
|
||||||
|
with latter two, as they are justly associated with interactive desktop,
|
||||||
|
which is not available to service processes. The toolkit is designed
|
||||||
|
to detect in which context it's currently executed, GUI, console app
|
||||||
|
or service, and act accordingly, namely whether or not to actually make
|
||||||
|
GUI calls.
|
||||||
|
|
||||||
|
If you link with OpenSSL .DLLs, then you're expected to include into
|
||||||
|
your application code small "shim" snippet, which provides glue between
|
||||||
|
OpenSSL BIO layer and your compiler run-time. Look up OPENSSL_Applink
|
||||||
|
reference page for further details.
|
||||||
|
66
INSTALL.W64
Normal file
66
INSTALL.W64
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
INSTALLATION ON THE WIN64 PLATFORM
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Caveat lector
|
||||||
|
-------------
|
||||||
|
|
||||||
|
As of moment of this writing Win64 support is classified "initial"
|
||||||
|
for the following reasons.
|
||||||
|
|
||||||
|
- No assembler modules are engaged upon initial 0.9.8 release.
|
||||||
|
- API might change within 0.9.8 life-span, *but* in a manner which
|
||||||
|
doesn't break backward binary compatibility. Or in other words,
|
||||||
|
application programs compiled with initial 0.9.8 headers will
|
||||||
|
be expected to work with future minor release .DLL without need
|
||||||
|
to re-compile, even if future minor release features modified API.
|
||||||
|
- Above mentioned API modifications have everything to do with
|
||||||
|
elimination of a number of limitations, which are normally
|
||||||
|
considered inherent to 32-bit platforms. Which in turn is why they
|
||||||
|
are treated as limitations on 64-bit platform such as Win64:-)
|
||||||
|
The current list comprises [but not necessarily limited to]:
|
||||||
|
|
||||||
|
- null-terminated strings may not be longer than 2G-1 bytes,
|
||||||
|
longer strings are treated as zero-length;
|
||||||
|
- dynamically and *internally* allocated chunks can't be larger
|
||||||
|
than 2G-1 bytes;
|
||||||
|
- inability to encrypt/decrypt chunks of data larger than 4GB
|
||||||
|
[it's possibly to *hash* chunks of arbitrary size through];
|
||||||
|
|
||||||
|
Neither of these is actually big deal and hardly encountered
|
||||||
|
in real-life applications.
|
||||||
|
|
||||||
|
Compiling procedure
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
You will need Perl. You can run under Cygwin or you can download
|
||||||
|
ActiveState Perl from http://www.activestate.com/ActivePerl.
|
||||||
|
|
||||||
|
You will need Microsoft Platform SDK, available for download at
|
||||||
|
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/. As per
|
||||||
|
April 2005 Platform SDK is equipped with Win64 compilers, as well
|
||||||
|
as assemblers, but it might change in the future.
|
||||||
|
|
||||||
|
To build for Win64/x64:
|
||||||
|
|
||||||
|
> perl Configure VC-WIN64A
|
||||||
|
> ms\do_win64a
|
||||||
|
> nmake -f ms\ntdll.mak
|
||||||
|
> cd out32dll
|
||||||
|
> ..\ms\test
|
||||||
|
|
||||||
|
To build for Win64/IA64:
|
||||||
|
|
||||||
|
> perl Configure VC-WIN64I
|
||||||
|
> ms\do_win64i
|
||||||
|
> nmake -f ms\ntdll.mak
|
||||||
|
> cd out32dll
|
||||||
|
> ..\ms\test
|
||||||
|
|
||||||
|
Naturally test-suite itself has to be executed on the target platform.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
|
TBD, for now see INSTALL.W32.
|
||||||
|
|
@ -11,8 +11,11 @@
|
|||||||
You also need Perl for Win32. You will need ActiveState Perl, available
|
You also need Perl for Win32. You will need ActiveState Perl, available
|
||||||
from http://www.activestate.com/ActivePerl.
|
from http://www.activestate.com/ActivePerl.
|
||||||
|
|
||||||
Windows CE support in OpenSSL relies on wcecompat. All Windows CE specific
|
Windows CE support in OpenSSL relies on wcecompat and therefore it's
|
||||||
issues should be directed to www.essemer.com.au.
|
appropriate to check http://www.essemer.com.au/windowsce/ for updates in
|
||||||
|
case of compilation problems. As for the moment of this writing version
|
||||||
|
1.1 is available and actually required for WCE 4.2 and newer platforms.
|
||||||
|
All Windows CE specific issues should be directed to www.essemer.com.au.
|
||||||
|
|
||||||
The C Runtime Library implementation for Windows CE that is included with
|
The C Runtime Library implementation for Windows CE that is included with
|
||||||
Microsoft eMbedded Visual C++ 3.0 is incomplete and in some places
|
Microsoft eMbedded Visual C++ 3.0 is incomplete and in some places
|
||||||
|
2
LICENSE
2
LICENSE
@ -12,7 +12,7 @@
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
|
344
Makefile.org
344
Makefile.org
@ -65,6 +65,7 @@ EX_LIBS=
|
|||||||
EXE_EXT=
|
EXE_EXT=
|
||||||
ARFLAGS=
|
ARFLAGS=
|
||||||
AR=ar $(ARFLAGS) r
|
AR=ar $(ARFLAGS) r
|
||||||
|
ARD=ar $(ARFLAGS) d
|
||||||
RANLIB= ranlib
|
RANLIB= ranlib
|
||||||
PERL= perl
|
PERL= perl
|
||||||
TAR= tar
|
TAR= tar
|
||||||
@ -100,18 +101,50 @@ RMD160_ASM_OBJ=
|
|||||||
KRB5_INCLUDES=
|
KRB5_INCLUDES=
|
||||||
LIBKRB5=
|
LIBKRB5=
|
||||||
|
|
||||||
DIRS= crypto ssl engines apps test tools
|
# Zlib stuff
|
||||||
SHLIBDIRS= crypto ssl
|
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 make be different so hard
|
||||||
|
# code the path.
|
||||||
|
|
||||||
|
FIPSLIBDIR=/usr/local/ssl/lib/
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# 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 ssl engines apps test tools
|
||||||
|
SHLIBDIRS= crypto ssl fips
|
||||||
|
|
||||||
# dirs in crypto to build
|
# dirs in crypto to build
|
||||||
SDIRS= \
|
SDIRS= \
|
||||||
objects \
|
objects \
|
||||||
md2 md4 md5 sha mdc2 hmac ripemd \
|
md2 md4 md5 sha mdc2 hmac ripemd \
|
||||||
des aes rc2 rc4 rc5 idea bf cast \
|
des aes rc2 rc4 rc5 idea bf cast camellia seed \
|
||||||
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
bn ec rsa dsa ecdsa dh ecdh dso engine \
|
||||||
buffer bio stack lhash rand err \
|
buffer bio stack lhash rand err \
|
||||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
||||||
store pqueue
|
store cms pqueue
|
||||||
|
# keep in mind that the above list is adjusted by ./Configure
|
||||||
|
# according to no-xxx arguments...
|
||||||
|
|
||||||
# tests to perform. "alltests" is a special word indicating that all tests
|
# tests to perform. "alltests" is a special word indicating that all tests
|
||||||
# should be performed.
|
# should be performed.
|
||||||
@ -132,30 +165,48 @@ WDIRS= windows
|
|||||||
LIBS= libcrypto.a libssl.a
|
LIBS= libcrypto.a libssl.a
|
||||||
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
|
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
|
||||||
SHARED_SSL=libssl$(SHLIB_EXT)
|
SHARED_SSL=libssl$(SHLIB_EXT)
|
||||||
|
SHARED_FIPS=
|
||||||
SHARED_LIBS=
|
SHARED_LIBS=
|
||||||
SHARED_LIBS_LINK_EXTS=
|
SHARED_LIBS_LINK_EXTS=
|
||||||
SHARED_LDFLAGS=
|
SHARED_LDFLAGS=
|
||||||
|
|
||||||
GENERAL= Makefile
|
GENERAL= Makefile
|
||||||
BASENAME= openssl
|
BASENAME= openssl
|
||||||
NAME= $(BASENAME)-$(VERSION)
|
NAME= $(BASENAME)-fips-$(VERSION)
|
||||||
TARFILE= $(NAME).tar
|
TARFILE= $(NAME).tar
|
||||||
WTARFILE= $(NAME)-win.tar
|
WTARFILE= $(NAME)-win.tar
|
||||||
EXHEADER= e_os2.h
|
EXHEADER= e_os2.h
|
||||||
HEADER= e_os.h
|
HEADER= e_os.h
|
||||||
|
|
||||||
all: Makefile build_all openssl.pc
|
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}' \
|
BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
||||||
CC='${CC}' CFLAG='${CFLAG}' \
|
CC='${CC}' CFLAG='${CFLAG}' \
|
||||||
AS='${CC}' ASFLAG='${CFLAG} -c' \
|
AS='${CC}' ASFLAG='${CFLAG} -c' \
|
||||||
AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
|
AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
|
||||||
SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/lib' \
|
SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/lib' \
|
||||||
|
INSTALL_PREFIX='${INSTALL_PREFIX}' \
|
||||||
INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
|
INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
|
||||||
MAKEDEPEND='$$(TOP)/util/domd $$(TOP) -MD $(MAKEDEPPROG)'\
|
MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
|
||||||
DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
|
DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
|
||||||
MAKEDEPPROG='${MAKEDEPPROG}' \
|
MAKEDEPPROG='${MAKEDEPPROG}' \
|
||||||
LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
|
SHARED_LDFLAGS='${SHARED_LDFLAGS}' \
|
||||||
KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
|
KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
|
||||||
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}' \
|
||||||
@ -168,44 +219,147 @@ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
|||||||
SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
|
SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' \
|
||||||
MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
|
MD5_ASM_OBJ='${MD5_ASM_OBJ}' \
|
||||||
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
|
RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' \
|
||||||
THIS=$${THIS:-$@}
|
FIPSLIBDIR='${FIPSLIBDIR}' FIPSCANLIB='${FIPSCANLIB}' \
|
||||||
|
FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' \
|
||||||
|
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=if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
|
# BUILD_CMD is a generic macro to build a given target in a given
|
||||||
if [ -d "$$dir" ]; then \
|
# subdirectory. The target must be given through the shell variable
|
||||||
(cd $$dir && echo "making $$target in $$dir..." && \
|
# `target' and the subdirectory to build in must be given through `dir'.
|
||||||
$(MAKE) $(BUILDENV) $$target ) || exit 1; \
|
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
|
||||||
else \
|
# BUILD_ONE_CMD instead.
|
||||||
$(MAKE) $$dir; \
|
#
|
||||||
fi; fi
|
# 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 echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
|
||||||
|
$(BUILD_CMD); \
|
||||||
|
fi
|
||||||
|
|
||||||
reflect:
|
reflect:
|
||||||
@[ -n "$(THIS)" ] && $(MAKE) $(THIS) $(BUILDENV)
|
@[ -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_lib.o \
|
||||||
|
../crypto/bn/bn_mod.o \
|
||||||
|
../crypto/bn/bn_mont.o \
|
||||||
|
../crypto/bn/bn_mul.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/cryptlib.o \
|
||||||
|
../crypto/des/cfb64ede.o \
|
||||||
|
../crypto/des/cfb64enc.o \
|
||||||
|
../crypto/des/cfb_enc.o \
|
||||||
|
../crypto/des/ecb3_enc.o \
|
||||||
|
../crypto/des/ecb_enc.o \
|
||||||
|
../crypto/des/ofb64ede.o \
|
||||||
|
../crypto/des/ofb64enc.o \
|
||||||
|
../crypto/des/fcrypt.o \
|
||||||
|
../crypto/des/set_key.o \
|
||||||
|
../crypto/dsa/dsa_utl.o \
|
||||||
|
../crypto/dsa/dsa_sign.o \
|
||||||
|
../crypto/dsa/dsa_vrf.o \
|
||||||
|
../crypto/err/err.o \
|
||||||
|
../crypto/evp/digest.o \
|
||||||
|
../crypto/evp/enc_min.o \
|
||||||
|
../crypto/evp/e_aes.o \
|
||||||
|
../crypto/evp/e_des3.o \
|
||||||
|
../crypto/evp/p_sign.o \
|
||||||
|
../crypto/evp/p_verify.o \
|
||||||
|
../crypto/mem_clr.o \
|
||||||
|
../crypto/mem.o \
|
||||||
|
../crypto/rand/md_rand.o \
|
||||||
|
../crypto/rand/rand_egd.o \
|
||||||
|
../crypto/rand/randfile.o \
|
||||||
|
../crypto/rand/rand_lib.o \
|
||||||
|
../crypto/rand/rand_os2.o \
|
||||||
|
../crypto/rand/rand_unix.o \
|
||||||
|
../crypto/rand/rand_win.o \
|
||||||
|
../crypto/rsa/rsa_lib.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/sha/sha1dgst.o \
|
||||||
|
../crypto/sha/sha256.o \
|
||||||
|
../crypto/sha/sha512.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_ssl build_engines
|
build_libs: build_crypto build_fips build_ssl build_shared build_engines
|
||||||
|
|
||||||
build_crypto:
|
build_crypto:
|
||||||
@dir=crypto; target=all; $(BUILD_CMD)
|
if [ -n "$(FIPSCANLIB)" ]; then \
|
||||||
|
EXCL_OBJ='$(AES_ASM_OBJ) $(BN_ASM) $(DES_ENC) $(CPUID_OBJ) $(SHA1_ASM_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
|
||||||
|
ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
|
||||||
|
else \
|
||||||
|
ARX='${AR}' ; \
|
||||||
|
fi ; export ARX ; \
|
||||||
|
dir=crypto; target=all; $(BUILD_ONE_CMD)
|
||||||
|
build_fips:
|
||||||
|
@dir=fips; target=all; [ -z "$(FIPSCANLIB)" ] || $(BUILD_ONE_CMD)
|
||||||
build_ssl:
|
build_ssl:
|
||||||
@dir=ssl; target=all; $(BUILD_CMD)
|
@dir=ssl; target=all; $(BUILD_ONE_CMD)
|
||||||
build_engines:
|
build_engines:
|
||||||
@dir=engines; target=all; $(BUILD_CMD)
|
@dir=engines; target=all; $(BUILD_ONE_CMD)
|
||||||
build_apps:
|
build_apps:
|
||||||
@dir=apps; target=all; $(BUILD_CMD)
|
@dir=apps; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tests:
|
build_tests:
|
||||||
@dir=test; target=all; $(BUILD_CMD)
|
@dir=test; target=all; $(BUILD_ONE_CMD)
|
||||||
build_tools:
|
build_tools:
|
||||||
@dir=tools; target=all; $(BUILD_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_CMD)
|
@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
|
||||||
|
|
||||||
libcrypto$(SHLIB_EXT): libcrypto.a
|
build_shared: $(SHARED_LIBS)
|
||||||
|
libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
if [ "$(FIPSCANLIB)" = "libfips" ]; then \
|
||||||
|
$(ARD) libcrypto.a fipscanister.o ; \
|
||||||
|
$(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \
|
||||||
|
$(AR) libcrypto.a fips/fipscanister.o ; \
|
||||||
|
else \
|
||||||
|
if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
|
||||||
|
FIPSLD_CC=$(CC); CC=fips/fipsld; \
|
||||||
|
export CC FIPSLD_CC; \
|
||||||
|
fi; \
|
||||||
|
$(MAKE) -e SHLIBDIRS='crypto' build-shared; \
|
||||||
|
fi \
|
||||||
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; \
|
||||||
@ -213,12 +367,32 @@ libcrypto$(SHLIB_EXT): libcrypto.a
|
|||||||
|
|
||||||
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
|
shlibdeps=-lcrypto; \
|
||||||
|
[ "$(FIPSCANLIB)" = "libfips" ] && shlibdeps="$$shlibdeps -lfips"; \
|
||||||
|
$(MAKE) SHLIBDIRS=ssl SHLIBDEPS="$$shlibdeps" build-shared; \
|
||||||
|
else \
|
||||||
|
echo "There's no support for shared libraries on this platform" >&2 ; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
fips/fipscanister.o: build_fips
|
||||||
|
libfips$(SHLIB_EXT): fips/fipscanister.o
|
||||||
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
|
FIPSLD_CC=$(CC); CC=fips/fipsld; export CC FIPSLD_CC; \
|
||||||
|
$(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
||||||
|
CC=$${CC} LIBNAME=fips THIS=$@ \
|
||||||
|
LIBEXTRAS=fips/fipscanister.o \
|
||||||
|
LIBDEPS="$(EX_LIBS)" \
|
||||||
|
LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
|
link_o.$(SHLIB_TARGET) || { rm -f $@; exit 1; } \
|
||||||
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; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
libfips.a:
|
||||||
|
dir=fips; target=all; $(BUILD_ONE_CMD)
|
||||||
|
|
||||||
clean-shared:
|
clean-shared:
|
||||||
@set -e; for i in $(SHLIBDIRS); do \
|
@set -e; for i in $(SHLIBDIRS); do \
|
||||||
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
||||||
@ -235,7 +409,7 @@ clean-shared:
|
|||||||
|
|
||||||
link-shared:
|
link-shared:
|
||||||
@ set -e; for i in ${SHLIBDIRS}; do \
|
@ set -e; for i in ${SHLIBDIRS}; do \
|
||||||
$(MAKE) -f $(HERE)/Makefile.shared \
|
$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
|
||||||
LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
|
LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
|
||||||
symlink.$(SHLIB_TARGET); \
|
symlink.$(SHLIB_TARGET); \
|
||||||
@ -249,7 +423,7 @@ do_$(SHLIB_TARGET):
|
|||||||
if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
|
if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
|
||||||
libs="$(LIBKRB5) $$libs"; \
|
libs="$(LIBKRB5) $$libs"; \
|
||||||
fi; \
|
fi; \
|
||||||
$(MAKE) -f Makefile.shared $(BUILDENV) \
|
$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
||||||
LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
|
LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
|
||||||
LIBDEPS="$$libs $(EX_LIBS)" \
|
LIBDEPS="$$libs $(EX_LIBS)" \
|
||||||
@ -257,6 +431,32 @@ do_$(SHLIB_TARGET):
|
|||||||
libs="-l$$i $$libs"; \
|
libs="-l$$i $$libs"; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
libcrypto.pc: Makefile
|
||||||
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
|
echo 'exec_prefix=$${prefix}'; \
|
||||||
|
echo 'libdir=$${exec_prefix}/lib'; \
|
||||||
|
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}/lib'; \
|
||||||
|
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
|
openssl.pc: Makefile
|
||||||
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
@ ( echo 'prefix=$(INSTALLTOP)'; \
|
||||||
echo 'exec_prefix=$${prefix}'; \
|
echo 'exec_prefix=$${prefix}'; \
|
||||||
@ -280,15 +480,9 @@ libclean:
|
|||||||
|
|
||||||
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
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
rm -f $(LIBS)
|
||||||
if [ -d "$$i" ]; then \
|
rm -f openssl.pc libssl.pc libcrypto.pc
|
||||||
(cd $$i && echo "making clean in $$i..." && \
|
|
||||||
$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
|
|
||||||
rm -f $(LIBS); \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
rm -f openssl.pc
|
|
||||||
rm -f speed.* .pure
|
rm -f speed.* .pure
|
||||||
rm -f $(TARFILE)
|
rm -f $(TARFILE)
|
||||||
@set -e; for i in $(ONEDIRS) ;\
|
@set -e; for i in $(ONEDIRS) ;\
|
||||||
@ -302,32 +496,20 @@ makefile.one: files
|
|||||||
|
|
||||||
files:
|
files:
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=files; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
|
||||||
if [ -d "$$i" ]; then \
|
|
||||||
(cd $$i && echo "making 'files' in $$i..." && \
|
|
||||||
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
links:
|
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; for dir in $(DIRS); do $(BUILD_CMD); done
|
@set -e; target=links; $(RECURSIVE_BUILD_CMD)
|
||||||
|
|
||||||
gentests:
|
gentests:
|
||||||
@(cd test && echo "generating dummy tests (if needed)..." && \
|
@(cd test && echo "generating dummy tests (if needed)..." && \
|
||||||
$(MAKE) $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
|
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
|
||||||
|
|
||||||
dclean:
|
dclean:
|
||||||
rm -f *.bak
|
rm -f *.bak
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
|
||||||
if [ -d "$$i" ]; then \
|
|
||||||
(cd $$i && echo "making dclean in $$i..." && \
|
|
||||||
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
rehash: rehash.time
|
rehash: rehash.time
|
||||||
rehash.time: certs
|
rehash.time: certs
|
||||||
@ -341,29 +523,17 @@ test: tests
|
|||||||
|
|
||||||
tests: rehash
|
tests: rehash
|
||||||
@(cd test && echo "testing..." && \
|
@(cd test && echo "testing..." && \
|
||||||
$(MAKE) $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
|
$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
|
||||||
util/opensslwrap.sh version -a
|
util/opensslwrap.sh version -a
|
||||||
|
|
||||||
report:
|
report:
|
||||||
@$(PERL) util/selftest.pl
|
@$(PERL) util/selftest.pl
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=depend; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
|
||||||
if [ -d "$$i" ]; then \
|
|
||||||
(cd $$i && echo "making dependencies $$i..." && \
|
|
||||||
$(MAKE) $(BUILDENV) depend ) || exit 1; \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
|
||||||
if [ -d "$$i" ]; then \
|
|
||||||
(cd $$i && echo "making lint $$i..." && \
|
|
||||||
$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
|
|
||||||
fi; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
tags:
|
tags:
|
||||||
rm -f TAGS
|
rm -f TAGS
|
||||||
@ -391,11 +561,15 @@ crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt c
|
|||||||
apps/openssl-vms.cnf: apps/openssl.cnf
|
apps/openssl-vms.cnf: apps/openssl.cnf
|
||||||
$(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.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
|
TABLE: Configure
|
||||||
(echo 'Output of `Configure TABLE'"':"; \
|
(echo 'Output of `Configure TABLE'"':"; \
|
||||||
$(PERL) Configure TABLE) > TABLE
|
$(PERL) Configure TABLE) > TABLE
|
||||||
|
|
||||||
update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf TABLE
|
update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.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
|
# 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
|
# pretty long, on several platforms a "too many arguments" error or similar
|
||||||
@ -410,7 +584,7 @@ tar:
|
|||||||
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
|
||||||
tardy --user_number=0 --user_name=openssl \
|
tardy --user_number=0 --user_name=openssl \
|
||||||
--group_number=0 --group_name=openssl \
|
--group_number=0 --group_name=openssl \
|
||||||
--prefix=openssl-$(VERSION) - |\
|
--prefix=openssl-fips-$(VERSION) - |\
|
||||||
gzip --best >../$(TARFILE).gz; \
|
gzip --best >../$(TARFILE).gz; \
|
||||||
rm -f ../$(TARFILE).list; \
|
rm -f ../$(TARFILE).list; \
|
||||||
ls -l ../$(TARFILE).gz
|
ls -l ../$(TARFILE).gz
|
||||||
@ -430,9 +604,9 @@ dist:
|
|||||||
@$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
|
@$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
|
||||||
|
|
||||||
dist_pem_h:
|
dist_pem_h:
|
||||||
(cd crypto/pem; $(MAKE) $(BUILDENV) pem.h; $(MAKE) clean)
|
(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
|
||||||
|
|
||||||
install: all install_docs install_sw
|
install: all install_sw
|
||||||
|
|
||||||
install_sw:
|
install_sw:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
|
||||||
@ -448,13 +622,7 @@ install_sw:
|
|||||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||||
done;
|
done;
|
||||||
@set -e; for i in $(DIRS) ;\
|
@set -e; target=install; $(RECURSIVE_BUILD_CMD)
|
||||||
do \
|
|
||||||
if [ -d "$$i" ]; then \
|
|
||||||
(cd $$i; echo "installing $$i..."; \
|
|
||||||
$(MAKE) $(BUILDENV) install ); \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
@set -e; for i in $(LIBS) ;\
|
@set -e; for i in $(LIBS) ;\
|
||||||
do \
|
do \
|
||||||
if [ -f "$$i" ]; then \
|
if [ -f "$$i" ]; then \
|
||||||
@ -496,6 +664,10 @@ install_sw:
|
|||||||
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
|
sed -e '1,/^$$/d' doc/openssl-shared.txt; \
|
||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
|
cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libcrypto.pc
|
||||||
|
cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libssl.pc
|
||||||
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
|
||||||
|
|
||||||
@ -521,8 +693,8 @@ install_docs:
|
|||||||
--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\$$" | \
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
grep -v "[ ]" | \
|
(grep -v "[ ]"; true) | \
|
||||||
(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
|
(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
|
||||||
while read n; do \
|
while read n; do \
|
||||||
$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
|
$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
|
||||||
@ -538,8 +710,8 @@ install_docs:
|
|||||||
--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\$$" | \
|
(grep -v $$filecase "^$$fn\$$"; true) | \
|
||||||
grep -v "[ ]" | \
|
(grep -v "[ ]"; true) | \
|
||||||
(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
|
(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
|
||||||
while read n; do \
|
while read n; do \
|
||||||
$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
|
$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
|
||||||
|
@ -89,25 +89,25 @@ CALC_VERSIONS= \
|
|||||||
|
|
||||||
LINK_APP= \
|
LINK_APP= \
|
||||||
( $(SET_X); \
|
( $(SET_X); \
|
||||||
LIBDEPS=$${LIBDEPS:-$(LIBDEPS)}; \
|
LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \
|
||||||
|
LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \
|
||||||
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
|
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
|
||||||
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
|
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
|
||||||
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
|
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
|
||||||
$${LDCMD:=$(CC)} $${LDFLAGS:=$(CFLAGS)} \
|
$${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} )
|
||||||
-o $${APPNAME:=$(APPNAME)} $(OBJECTS) $$LIBDEPS )
|
|
||||||
|
|
||||||
LINK_SO= \
|
LINK_SO= \
|
||||||
( $(SET_X); \
|
( $(SET_X); \
|
||||||
LIBDEPS=$${LIBDEPS:-$(LIBDEPS)}; \
|
LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \
|
||||||
nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \
|
SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \
|
||||||
|
SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
|
||||||
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
|
LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
|
||||||
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
|
LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
|
||||||
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
|
LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
|
||||||
$${SHAREDCMD:=$(CC)} $${SHAREDFLAGS:=$(CFLAGS) $(SHARED_LDFLAGS)} \
|
$${SHAREDCMD} $${SHAREDFLAGS} \
|
||||||
-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
|
-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
|
||||||
$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
|
$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
|
||||||
) && $(SYMLINK_SO); \
|
) && $(SYMLINK_SO)
|
||||||
( $(SET_X); rm -f lib$(LIBNAME).exp )
|
|
||||||
|
|
||||||
SYMLINK_SO= \
|
SYMLINK_SO= \
|
||||||
if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \
|
if [ -n "$$INHIBIT_SYMLINKS" ]; then :; else \
|
||||||
@ -194,12 +194,19 @@ link_app.bsd:
|
|||||||
fi; $(LINK_APP)
|
fi; $(LINK_APP)
|
||||||
|
|
||||||
# For Darwin AKA Mac OS/X (dyld)
|
# For Darwin AKA Mac OS/X (dyld)
|
||||||
|
# link_o.darwin produces .so, because we let it use dso_dlfcn module,
|
||||||
|
# which has .so extension hard-coded. One can argue that one should
|
||||||
|
# develop special dso module for MacOS X. At least manual encourages
|
||||||
|
# to use native NSModule(3) API and refers to dlfcn as termporary hack.
|
||||||
link_o.darwin:
|
link_o.darwin:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
SHLIB=lib$(LIBNAME); \
|
SHLIB=`expr "$$THIS" : '.*/\([^/\.]*\)\.'`; \
|
||||||
SHLIB_SUFFIX=.dylib; \
|
SHLIB=$${SHLIB:-lib$(LIBNAME)}; \
|
||||||
|
SHLIB_SUFFIX=`expr "$$THIS" : '.*\(\.[^\.]*\)$$'`; \
|
||||||
|
SHLIB_SUFFIX=$${SHLIB_SUFFIX:-.so}; \
|
||||||
ALLSYMSFLAGS='-all_load'; \
|
ALLSYMSFLAGS='-all_load'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \
|
||||||
if [ -n "$(LIBVERSION)" ]; then \
|
if [ -n "$(LIBVERSION)" ]; then \
|
||||||
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
|
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -213,12 +220,14 @@ link_a.darwin:
|
|||||||
SHLIB_SUFFIX=.dylib; \
|
SHLIB_SUFFIX=.dylib; \
|
||||||
ALLSYMSFLAGS='-all_load'; \
|
ALLSYMSFLAGS='-all_load'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \
|
||||||
if [ -n "$(LIBVERSION)" ]; then \
|
if [ -n "$(LIBVERSION)" ]; then \
|
||||||
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
|
SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
|
||||||
fi; \
|
fi; \
|
||||||
if [ -n "$$SHLIB_SOVER_NODOT" ]; then \
|
if [ -n "$$SHLIB_SOVER_NODOT" ]; then \
|
||||||
SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_NODOT"; \
|
SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_NODOT"; \
|
||||||
fi; \
|
fi; \
|
||||||
|
SHAREDFLAGS="$$SHAREDFLAGS -install_name ${INSTALLTOP}/lib/$$SHLIB${SHLIB_EXT}"; \
|
||||||
$(LINK_SO_A)
|
$(LINK_SO_A)
|
||||||
link_app.darwin: # is there run-path on darwin?
|
link_app.darwin: # is there run-path on darwin?
|
||||||
$(LINK_APP)
|
$(LINK_APP)
|
||||||
@ -227,24 +236,30 @@ link_o.cygwin:
|
|||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
INHIBIT_SYMLINKS=yes; \
|
INHIBIT_SYMLINKS=yes; \
|
||||||
SHLIB=cyg$(LIBNAME); \
|
SHLIB=cyg$(LIBNAME); \
|
||||||
expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
|
base=-Wl,--enable-auto-image-base; \
|
||||||
|
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
||||||
|
SHLIB=$(LIBNAME)eay32; base=; \
|
||||||
|
fi; \
|
||||||
SHLIB_SUFFIX=.dll; \
|
SHLIB_SUFFIX=.dll; \
|
||||||
LIBVERSION="$(LIBVERSION)"; \
|
LIBVERSION="$(LIBVERSION)"; \
|
||||||
SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
|
SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
|
||||||
ALLSYMSFLAGS='-Wl,--whole-archive'; \
|
ALLSYMSFLAGS='-Wl,--whole-archive'; \
|
||||||
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
|
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
|
||||||
$(LINK_SO_O)
|
$(LINK_SO_O)
|
||||||
link_a.cygwin:
|
link_a.cygwin:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
INHIBIT_SYMLINKS=yes; \
|
INHIBIT_SYMLINKS=yes; \
|
||||||
SHLIB=cyg$(LIBNAME); \
|
SHLIB=cyg$(LIBNAME); \
|
||||||
expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
|
base=-Wl,--enable-auto-image-base; \
|
||||||
|
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
||||||
|
SHLIB=$(LIBNAME)eay32; \
|
||||||
|
base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
|
||||||
|
fi; \
|
||||||
SHLIB_SUFFIX=.dll; \
|
SHLIB_SUFFIX=.dll; \
|
||||||
SHLIB_SOVER=-$(LIBVERSION); \
|
SHLIB_SOVER=-$(LIBVERSION); \
|
||||||
ALLSYMSFLAGS='-Wl,--whole-archive'; \
|
ALLSYMSFLAGS='-Wl,--whole-archive'; \
|
||||||
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
|
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
|
||||||
base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
|
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
|
||||||
[ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \
|
[ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \
|
||||||
[ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \
|
[ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \
|
||||||
@ -269,9 +284,9 @@ link_o.alpha-osf1:
|
|||||||
SHLIB_SOVER=; \
|
SHLIB_SOVER=; \
|
||||||
ALLSYMSFLAGS='-all'; \
|
ALLSYMSFLAGS='-all'; \
|
||||||
NOALLSYMSFLAGS='-none'; \
|
NOALLSYMSFLAGS='-none'; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic"; \
|
||||||
if [ -n "$$SHLIB_HIST" ]; then \
|
if [ -n "$$SHLIB_HIST" ]; then \
|
||||||
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
|
SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \
|
||||||
fi; \
|
fi; \
|
||||||
fi; \
|
fi; \
|
||||||
$(LINK_SO_O)
|
$(LINK_SO_O)
|
||||||
@ -290,9 +305,9 @@ link_a.alpha-osf1:
|
|||||||
SHLIB_SOVER=; \
|
SHLIB_SOVER=; \
|
||||||
ALLSYMSFLAGS='-all'; \
|
ALLSYMSFLAGS='-all'; \
|
||||||
NOALLSYMSFLAGS='-none'; \
|
NOALLSYMSFLAGS='-none'; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-B,symbolic"; \
|
||||||
if [ -n "$$SHLIB_HIST" ]; then \
|
if [ -n "$$SHLIB_HIST" ]; then \
|
||||||
SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
|
SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \
|
||||||
fi; \
|
fi; \
|
||||||
fi; \
|
fi; \
|
||||||
$(LINK_SO_A)
|
$(LINK_SO_A)
|
||||||
@ -413,7 +428,7 @@ link_o.irix:
|
|||||||
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
|
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
|
||||||
ALLSYMSFLAGS="$${MINUSWL}-all"; \
|
ALLSYMSFLAGS="$${MINUSWL}-all"; \
|
||||||
NOALLSYMSFLAGS="$${MINUSWL}-none"; \
|
NOALLSYMSFLAGS="$${MINUSWL}-none"; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \
|
||||||
fi; \
|
fi; \
|
||||||
$(LINK_SO_O)
|
$(LINK_SO_O)
|
||||||
link_a.irix:
|
link_a.irix:
|
||||||
@ -427,7 +442,7 @@ link_a.irix:
|
|||||||
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
|
($(CC) -v 2>&1 | grep gcc) > /dev/null && MINUSWL="-Wl,"; \
|
||||||
ALLSYMSFLAGS="$${MINUSWL}-all"; \
|
ALLSYMSFLAGS="$${MINUSWL}-all"; \
|
||||||
NOALLSYMSFLAGS="$${MINUSWL}-none"; \
|
NOALLSYMSFLAGS="$${MINUSWL}-none"; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,-B,symbolic"; \
|
||||||
fi; \
|
fi; \
|
||||||
$(LINK_SO_A)
|
$(LINK_SO_A)
|
||||||
link_app.irix:
|
link_app.irix:
|
||||||
@ -446,13 +461,14 @@ link_o.hpux:
|
|||||||
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
|
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
|
||||||
$(CALC_VERSIONS); \
|
$(CALC_VERSIONS); \
|
||||||
SHLIB=lib$(LIBNAME).sl; \
|
SHLIB=lib$(LIBNAME).sl; \
|
||||||
expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
|
expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so; \
|
||||||
SHLIB_SUFFIX=; \
|
SHLIB_SUFFIX=; \
|
||||||
ALLSYMSFLAGS='-Wl,-Fl'; \
|
ALLSYMSFLAGS='-Wl,-Fl'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
|
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \
|
||||||
fi; \
|
fi; \
|
||||||
|
rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \
|
||||||
$(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
|
$(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
|
||||||
link_a.hpux:
|
link_a.hpux:
|
||||||
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
|
@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
|
||||||
@ -463,8 +479,9 @@ link_a.hpux:
|
|||||||
ALLSYMSFLAGS='-Wl,-Fl'; \
|
ALLSYMSFLAGS='-Wl,-Fl'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
|
expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
|
||||||
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
|
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX,+cdp,../:,+cdp,./:"; \
|
||||||
fi; \
|
fi; \
|
||||||
|
rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \
|
||||||
$(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
|
$(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
|
||||||
link_app.hpux:
|
link_app.hpux:
|
||||||
@if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \
|
@if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \
|
||||||
@ -474,26 +491,26 @@ link_app.hpux:
|
|||||||
|
|
||||||
link_o.aix:
|
link_o.aix:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
|
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || :; \
|
||||||
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
SHLIB=lib$(LIBNAME).so; \
|
||||||
SHLIB_SUFFIX=; \
|
SHLIB_SUFFIX=; \
|
||||||
ALLSYMSFLAGS='-bnogc'; \
|
ALLSYMSFLAGS=''; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \
|
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
|
||||||
$(LINK_SO_O); rm -rf lib$(LIBNAME).exp
|
$(LINK_SO_O);
|
||||||
link_a.aix:
|
link_a.aix:
|
||||||
@ $(CALC_VERSIONS); \
|
@ $(CALC_VERSIONS); \
|
||||||
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
|
OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || : ; \
|
||||||
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
|
||||||
SHLIB=lib$(LIBNAME).so; \
|
SHLIB=lib$(LIBNAME).so; \
|
||||||
SHLIB_SUFFIX=; \
|
SHLIB_SUFFIX=; \
|
||||||
ALLSYMSFLAGS='-bnogc'; \
|
ALLSYMSFLAGS='-bnogc'; \
|
||||||
NOALLSYMSFLAGS=''; \
|
NOALLSYMSFLAGS=''; \
|
||||||
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \
|
SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
|
||||||
$(LINK_SO_A_VIA_O)
|
$(LINK_SO_A_VIA_O)
|
||||||
link_app.aix:
|
link_app.aix:
|
||||||
LDFLAGS="$(CFLAGS) -blibpath:$(LIBRPATH)"; \
|
LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
|
||||||
$(LINK_APP)
|
$(LINK_APP)
|
||||||
|
|
||||||
link_o.reliantunix:
|
link_o.reliantunix:
|
||||||
@ -532,7 +549,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 symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
|
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
|
||||||
|
129
NEWS
129
NEWS
@ -5,6 +5,135 @@
|
|||||||
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 0.9.8d and OpenSSL 0.9.8e:
|
||||||
|
|
||||||
|
o Various ciphersuite selection fixes.
|
||||||
|
o RFC3779 support.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d:
|
||||||
|
|
||||||
|
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 Changes to ciphersuite selection algorithm
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c:
|
||||||
|
|
||||||
|
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
||||||
|
o New cipher Camellia
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b:
|
||||||
|
|
||||||
|
o Cipher string fixes.
|
||||||
|
o Fixes for VC++ 2005.
|
||||||
|
o Updated ECC cipher suite support.
|
||||||
|
o New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free().
|
||||||
|
o Zlib compression usage fixes.
|
||||||
|
o Built in dynamic engine compilation support on Win32.
|
||||||
|
o Fixes auto dynamic engine loading in Win32.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a:
|
||||||
|
|
||||||
|
o Fix potential SSL 2.0 rollback, CVE-2005-2969
|
||||||
|
o Extended Windows CE support
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8:
|
||||||
|
|
||||||
|
o Major work on the BIGNUM library for higher efficiency and to
|
||||||
|
make operations more streamlined and less contradictory. This
|
||||||
|
is the result of a major audit of the BIGNUM library.
|
||||||
|
o Addition of BIGNUM functions for fields GF(2^m) and NIST
|
||||||
|
curves, to support the Elliptic Crypto functions.
|
||||||
|
o Major work on Elliptic Crypto; ECDH and ECDSA added, including
|
||||||
|
the use through EVP, X509 and ENGINE.
|
||||||
|
o New ASN.1 mini-compiler that's usable through the OpenSSL
|
||||||
|
configuration file.
|
||||||
|
o Added support for ASN.1 indefinite length constructed encoding.
|
||||||
|
o New PKCS#12 'medium level' API to manipulate PKCS#12 files.
|
||||||
|
o Complete rework of shared library construction and linking
|
||||||
|
programs with shared or static libraries, through a separate
|
||||||
|
Makefile.shared.
|
||||||
|
o Rework of the passing of parameters from one Makefile to another.
|
||||||
|
o Changed ENGINE framework to load dynamic engine modules
|
||||||
|
automatically from specifically given directories.
|
||||||
|
o New structure and ASN.1 functions for CertificatePair.
|
||||||
|
o Changed the ZLIB compression method to be stateful.
|
||||||
|
o Changed the key-generation and primality testing "progress"
|
||||||
|
mechanism to take a structure that contains the ticker
|
||||||
|
function and an argument.
|
||||||
|
o New engine module: GMP (performs private key exponentiation).
|
||||||
|
o New engine module: VIA PadLOck ACE extension in VIA C3
|
||||||
|
Nehemiah processors.
|
||||||
|
o Added support for IPv6 addresses in certificate extensions.
|
||||||
|
See RFC 1884, section 2.2.
|
||||||
|
o Added support for certificate policy mappings, policy
|
||||||
|
constraints and name constraints.
|
||||||
|
o Added support for multi-valued AVAs in the OpenSSL
|
||||||
|
configuration file.
|
||||||
|
o Added support for multiple certificates with the same subject
|
||||||
|
in the 'openssl ca' index file.
|
||||||
|
o Make it possible to create self-signed certificates using
|
||||||
|
'openssl ca -selfsign'.
|
||||||
|
o Make it possible to generate a serial number file with
|
||||||
|
'openssl ca -create_serial'.
|
||||||
|
o New binary search functions with extended functionality.
|
||||||
|
o New BUF functions.
|
||||||
|
o New STORE structure and library to provide an interface to all
|
||||||
|
sorts of data repositories. Supports storage of public and
|
||||||
|
private keys, certificates, CRLs, numbers and arbitrary blobs.
|
||||||
|
This library is unfortunately unfinished and unused withing
|
||||||
|
OpenSSL.
|
||||||
|
o New control functions for the error stack.
|
||||||
|
o Changed the PKCS#7 library to support one-pass S/MIME
|
||||||
|
processing.
|
||||||
|
o Added the possibility to compile without old deprecated
|
||||||
|
functionality with the OPENSSL_NO_DEPRECATED macro or the
|
||||||
|
'no-deprecated' argument to the config and Configure scripts.
|
||||||
|
o Constification of all ASN.1 conversion functions, and other
|
||||||
|
affected functions.
|
||||||
|
o Improved platform support for PowerPC.
|
||||||
|
o New FIPS 180-2 algorithms (SHA-224, -256, -384 and -512).
|
||||||
|
o New X509_VERIFY_PARAM structure to support parametrisation
|
||||||
|
of X.509 path validation.
|
||||||
|
o Major overhaul of RC4 performance on Intel P4, IA-64 and
|
||||||
|
AMD64.
|
||||||
|
o Changed the Configure script to have some algorithms disabled
|
||||||
|
by default. Those can be explicitely enabled with the new
|
||||||
|
argument form 'enable-xxx'.
|
||||||
|
o Change the default digest in 'openssl' commands from MD5 to
|
||||||
|
SHA-1.
|
||||||
|
o Added support for DTLS.
|
||||||
|
o New BIGNUM blinding.
|
||||||
|
o Added support for the RSA-PSS encryption scheme
|
||||||
|
o Added support for the RSA X.931 padding.
|
||||||
|
o Added support for BSD sockets on NetWare.
|
||||||
|
o Added support for files larger than 2GB.
|
||||||
|
o Added initial support for Win64.
|
||||||
|
o Added alternate pkg-config files.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
|
||||||
|
|
||||||
|
o Introduce limits to prevent malicious key DoS (CVE-2006-2940)
|
||||||
|
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:
|
||||||
|
|
||||||
|
o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j:
|
||||||
|
|
||||||
|
o Visual C++ 2005 fixes.
|
||||||
|
o Update Windows build system for FIPS.
|
||||||
|
|
||||||
|
Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i:
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
o Fix SSL 2.0 Rollback, CVE-2005-2969
|
||||||
|
o Allow use of fixed-length exponent on DSA signing
|
||||||
|
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:
|
||||||
|
|
||||||
o More compilation issues fixed.
|
o More compilation issues fixed.
|
||||||
|
@ -6,14 +6,16 @@ rem
|
|||||||
rem usage:
|
rem usage:
|
||||||
rem build [target] [debug opts] [assembly opts] [configure opts]
|
rem build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
rem
|
rem
|
||||||
rem target - "netware-clib" - CLib NetWare build
|
rem target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
rem - "netware-libc" - LibC NKS NetWare build
|
rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets)
|
||||||
|
rem - "netware-libc" - LibC NetWare build (WinSock Sockets)
|
||||||
|
rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
||||||
rem
|
rem
|
||||||
rem debug opts - "debug" - build debug
|
rem debug opts - "debug" - build debug
|
||||||
rem
|
rem
|
||||||
rem assembly opts - "nw-mwasm" - use Metrowerks assembler
|
rem assembly opts - "nw-mwasm" - use Metrowerks assembler
|
||||||
rem "nw-nasm" - use NASM assembler
|
rem - "nw-nasm" - use NASM assembler
|
||||||
rem "no-asm" - don't use assembly
|
rem - "no-asm" - don't use assembly
|
||||||
rem
|
rem
|
||||||
rem configure opts- all unrecognized arguments are passed to the
|
rem configure opts- all unrecognized arguments are passed to the
|
||||||
rem perl configure script
|
rem perl configure script
|
||||||
@ -70,12 +72,16 @@ if "%1" == "nw-nasm" set NO_ASM=
|
|||||||
if "%1" == "nw-nasm" set ARG_PROCESSED=YES
|
if "%1" == "nw-nasm" set ARG_PROCESSED=YES
|
||||||
if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm
|
if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm
|
||||||
if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks
|
if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks
|
||||||
if "%1" == "nw-mwasm" set NO_ASM=
|
if "%1" == "nw-mwasm" set NO_ASM=
|
||||||
if "%1" == "nw-mwasm" set ARG_PROCESSED=YES
|
if "%1" == "nw-mwasm" set ARG_PROCESSED=YES
|
||||||
if "%1" == "netware-clib" set BLD_TARGET=netware-clib
|
if "%1" == "netware-clib" set BLD_TARGET=netware-clib
|
||||||
if "%1" == "netware-clib" set ARG_PROCESSED=YES
|
if "%1" == "netware-clib" set ARG_PROCESSED=YES
|
||||||
|
if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock
|
||||||
|
if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES
|
||||||
if "%1" == "netware-libc" set BLD_TARGET=netware-libc
|
if "%1" == "netware-libc" set BLD_TARGET=netware-libc
|
||||||
if "%1" == "netware-libc" set ARG_PROCESSED=YES
|
if "%1" == "netware-libc" set ARG_PROCESSED=YES
|
||||||
|
if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock
|
||||||
|
if "%1" == "netware-libc-bsdsock" set ARG_PROCESSED=YES
|
||||||
|
|
||||||
rem If we didn't recognize the argument, consider it an option for config
|
rem If we didn't recognize the argument, consider it an option for config
|
||||||
if "%ARG_PROCESSED%" == "NO" set CONFIG_OPTS=%CONFIG_OPTS% %1
|
if "%ARG_PROCESSED%" == "NO" set CONFIG_OPTS=%CONFIG_OPTS% %1
|
||||||
@ -91,7 +97,9 @@ if "%BLD_TARGET%" == "no_target" goto no_target
|
|||||||
rem build the nlm make file name which includes target and debug info
|
rem build the nlm make file name which includes target and debug info
|
||||||
set NLM_MAKE=
|
set NLM_MAKE=
|
||||||
if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib
|
if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib
|
||||||
|
if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock
|
||||||
if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc
|
if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc
|
||||||
|
if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock
|
||||||
if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak
|
if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak
|
||||||
if "%DEBUG%" == "debug" set NLM_MAKE=%NLM_MAKE%_dbg.mak
|
if "%DEBUG%" == "debug" set NLM_MAKE=%NLM_MAKE%_dbg.mak
|
||||||
|
|
||||||
@ -106,7 +114,14 @@ echo Generating x86 for %ASSEMBLER% assembler
|
|||||||
|
|
||||||
echo Bignum
|
echo Bignum
|
||||||
cd crypto\bn\asm
|
cd crypto\bn\asm
|
||||||
perl x86.pl %ASM_MODE% > bn-nw.asm
|
rem perl x86.pl %ASM_MODE% > bn-nw.asm
|
||||||
|
perl bn-586.pl %ASM_MODE% > bn-nw.asm
|
||||||
|
perl co-586.pl %ASM_MODE% > co-nw.asm
|
||||||
|
cd ..\..\..
|
||||||
|
|
||||||
|
echo AES
|
||||||
|
cd crypto\aes\asm
|
||||||
|
perl aes-586.pl %ASM_MODE% > a-nw.asm
|
||||||
cd ..\..\..
|
cd ..\..\..
|
||||||
|
|
||||||
echo DES
|
echo DES
|
||||||
@ -156,6 +171,11 @@ cd crypto\rc5\asm
|
|||||||
perl rc5-586.pl %ASM_MODE% > r5-nw.asm
|
perl rc5-586.pl %ASM_MODE% > r5-nw.asm
|
||||||
cd ..\..\..
|
cd ..\..\..
|
||||||
|
|
||||||
|
echo CPUID
|
||||||
|
cd crypto
|
||||||
|
perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm
|
||||||
|
cd ..\
|
||||||
|
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
rem
|
rem
|
||||||
:do_config
|
:do_config
|
||||||
@ -172,8 +192,10 @@ echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET%
|
|||||||
echo .
|
echo .
|
||||||
perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE%
|
perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE%
|
||||||
|
|
||||||
|
make -f %NLM_MAKE% vclean
|
||||||
|
echo .
|
||||||
echo The makefile "%NLM_MAKE%" has been created use your maketool to
|
echo The makefile "%NLM_MAKE%" has been created use your maketool to
|
||||||
echo build (ex: gmake -f %NLM_MAKE%)
|
echo build (ex: make -f %NLM_MAKE%)
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
@ -184,8 +206,10 @@ echo . No build target specified!!!
|
|||||||
echo .
|
echo .
|
||||||
echo . usage: build [target] [debug opts] [assembly opts] [configure opts]
|
echo . usage: build [target] [debug opts] [assembly opts] [configure opts]
|
||||||
echo .
|
echo .
|
||||||
echo . target - "netware-clib" - CLib NetWare build
|
echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets)
|
||||||
echo . - "netware-libc" - LibC NKS NetWare build
|
echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets)
|
||||||
|
echo . - "netware-libc" - LibC NetWare build (WinSock Sockets)
|
||||||
|
echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
|
||||||
echo .
|
echo .
|
||||||
echo . debug opts - "debug" - build debug
|
echo . debug opts - "debug" - build debug
|
||||||
echo .
|
echo .
|
||||||
|
@ -73,6 +73,7 @@ copy %loc%\test\testsid.pem %2\openssl\test\
|
|||||||
copy %loc%\test\testx509.pem %2\openssl\test\
|
copy %loc%\test\testx509.pem %2\openssl\test\
|
||||||
copy %loc%\test\v3-cert1.pem %2\openssl\test\
|
copy %loc%\test\v3-cert1.pem %2\openssl\test\
|
||||||
copy %loc%\test\v3-cert2.pem %2\openssl\test\
|
copy %loc%\test\v3-cert2.pem %2\openssl\test\
|
||||||
|
copy %loc%\crypto\evp\evptests.txt %2\openssl\test\
|
||||||
|
|
||||||
rem copy the apps directory stuff
|
rem copy the apps directory stuff
|
||||||
copy %loc%\apps\client.pem %2\openssl\apps\
|
copy %loc%\apps\client.pem %2\openssl\apps\
|
||||||
|
@ -34,16 +34,21 @@ sub main()
|
|||||||
# delete all the output files in the output directory
|
# delete all the output files in the output directory
|
||||||
unlink <$output_path\\*.*>;
|
unlink <$output_path\\*.*>;
|
||||||
|
|
||||||
# open the main log file
|
# open the main log file
|
||||||
open(OUT, ">$log_file") || die "unable to open $log_file\n";
|
open(OUT, ">$log_file") || die "unable to open $log_file\n";
|
||||||
|
|
||||||
|
print( OUT "========================================================\n");
|
||||||
|
my $outFile = "$output_path\\version.out";
|
||||||
|
system("openssl2 version (CLIB_OPT)/>$outFile");
|
||||||
|
log_output("CHECKING FOR OPENSSL VERSION:", $outFile);
|
||||||
|
|
||||||
algorithm_tests();
|
algorithm_tests();
|
||||||
encryption_tests();
|
encryption_tests();
|
||||||
|
evp_tests();
|
||||||
pem_tests();
|
pem_tests();
|
||||||
verify_tests();
|
verify_tests();
|
||||||
ssl_tests();
|
|
||||||
ca_tests();
|
ca_tests();
|
||||||
|
ssl_tests();
|
||||||
|
|
||||||
close(OUT);
|
close(OUT);
|
||||||
|
|
||||||
@ -56,9 +61,10 @@ sub algorithm_tests
|
|||||||
{
|
{
|
||||||
my $i;
|
my $i;
|
||||||
my $outFile;
|
my $outFile;
|
||||||
my @tests = ( rsa_test, destest, ideatest, bftest, shatest, sha1test,
|
my @tests = ( rsa_test, destest, ideatest, bftest, bntest, shatest, sha1test,
|
||||||
md5test, dsatest, md2test, mdc2test, rc2test, rc4test, randtest,
|
sha256t, sha512t, dsatest, md2test, md4test, md5test, mdc2test,
|
||||||
dhtest, exptest );
|
rc2test, rc4test, rc5test, randtest, rmdtest, dhtest, ecdhtest,
|
||||||
|
ecdsatest, ectest, exptest, casttest, hmactest );
|
||||||
|
|
||||||
print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n");
|
print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n");
|
||||||
|
|
||||||
@ -67,10 +73,17 @@ sub algorithm_tests
|
|||||||
|
|
||||||
foreach $i (@tests)
|
foreach $i (@tests)
|
||||||
{
|
{
|
||||||
$outFile = "$output_path\\$i.out";
|
if (-e "$base_path\\$i.nlm")
|
||||||
system("$i > $outFile");
|
{
|
||||||
log_desc("Test: $i\.nlm:");
|
$outFile = "$output_path\\$i.out";
|
||||||
log_output("", $outFile );
|
system("$i (CLIB_OPT)/>$outFile");
|
||||||
|
log_desc("Test: $i\.nlm:");
|
||||||
|
log_output("", $outFile );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_desc("Test: $i\.nlm: file not found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,24 +115,24 @@ sub encryption_tests
|
|||||||
|
|
||||||
# do encryption
|
# do encryption
|
||||||
$outFile = "$output_path\\enc.out";
|
$outFile = "$output_path\\enc.out";
|
||||||
system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher > $outFile" );
|
system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile" );
|
||||||
log_output("Encrypting: $input --> $cipher", $outFile);
|
log_output("Encrypting: $input --> $cipher", $outFile);
|
||||||
|
|
||||||
# do decryption
|
# do decryption
|
||||||
$outFile = "$output_path\\dec.out";
|
$outFile = "$output_path\\dec.out";
|
||||||
system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear > $outFile");
|
system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile");
|
||||||
log_output("Decrypting: $cipher --> $clear", $outFile);
|
log_output("Decrypting: $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# compare files
|
# compare files
|
||||||
$x = compare_files( $input, $clear, 1);
|
$x = compare_files( $input, $clear, 1);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "SUCCESS - files match: $input, $clear\n");
|
print( "\rSUCCESS - files match: $input, $clear\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $clear\n");
|
print( OUT "SUCCESS - files match: $input, $clear\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "ERROR: files don't match\n");
|
print( "\rERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,24 +142,24 @@ sub encryption_tests
|
|||||||
|
|
||||||
# do encryption B64
|
# do encryption B64
|
||||||
$outFile = "$output_path\\B64enc.out";
|
$outFile = "$output_path\\B64enc.out";
|
||||||
system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher > $outFile");
|
system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile");
|
||||||
log_output("Encrypting(B64): $cipher --> $clear", $outFile);
|
log_output("Encrypting(B64): $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# do decryption B64
|
# do decryption B64
|
||||||
$outFile = "$output_path\\B64dec.out";
|
$outFile = "$output_path\\B64dec.out";
|
||||||
system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear > $outFile");
|
system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile");
|
||||||
log_output("Decrypting(B64): $cipher --> $clear", $outFile);
|
log_output("Decrypting(B64): $cipher --> $clear", $outFile);
|
||||||
|
|
||||||
# compare files
|
# compare files
|
||||||
$x = compare_files( $input, $clear, 1);
|
$x = compare_files( $input, $clear, 1);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "SUCCESS - files match: $input, $clear\n");
|
print( "\rSUCCESS - files match: $input, $clear\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $clear\n");
|
print( OUT "SUCCESS - files match: $input, $clear\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "ERROR: files don't match\n");
|
print( "\rERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,24 +205,24 @@ sub pem_tests
|
|||||||
|
|
||||||
if ($i ne "req" )
|
if ($i ne "req" )
|
||||||
{
|
{
|
||||||
system("openssl2 $i -in $input -out $tmp_out > $outFile");
|
system("openssl2 $i -in $input -out $tmp_out (CLIB_OPT)/>$outFile");
|
||||||
log_output( "openssl2 $i -in $input -out $tmp_out", $outFile);
|
log_output( "openssl2 $i -in $input -out $tmp_out", $outFile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config > $outFile");
|
system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config (CLIB_OPT)/>$outFile");
|
||||||
log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile );
|
log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile );
|
||||||
}
|
}
|
||||||
|
|
||||||
$x = compare_files( $input, $tmp_out);
|
$x = compare_files( $input, $tmp_out);
|
||||||
if ( $x == 0 )
|
if ( $x == 0 )
|
||||||
{
|
{
|
||||||
print( "SUCCESS - files match: $input, $tmp_out\n");
|
print( "\rSUCCESS - files match: $input, $tmp_out\n");
|
||||||
print( OUT "SUCCESS - files match: $input, $tmp_out\n");
|
print( OUT "SUCCESS - files match: $input, $tmp_out\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print( "ERROR: files don't match\n");
|
print( "\rERROR: files don't match\n");
|
||||||
print( OUT "ERROR: files don't match\n");
|
print( OUT "ERROR: files don't match\n");
|
||||||
}
|
}
|
||||||
do_wait();
|
do_wait();
|
||||||
@ -224,7 +237,8 @@ sub verify_tests
|
|||||||
my $i;
|
my $i;
|
||||||
my $outFile = "$output_path\\verify.out";
|
my $outFile = "$output_path\\verify.out";
|
||||||
|
|
||||||
my @cert_files = <$cert_path\\*.pem>;
|
$cert_path =~ s/\\/\//g;
|
||||||
|
my @cert_files = <$cert_path/*.pem>;
|
||||||
|
|
||||||
print( "\nRUNNING VERIFY TESTS:\n\n");
|
print( "\nRUNNING VERIFY TESTS:\n\n");
|
||||||
|
|
||||||
@ -235,7 +249,7 @@ sub verify_tests
|
|||||||
|
|
||||||
foreach $i (@cert_files)
|
foreach $i (@cert_files)
|
||||||
{
|
{
|
||||||
system("openssl2 verify -CAfile $tmp_cert $i >$outFile");
|
system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Verifying cert: $i");
|
log_desc("Verifying cert: $i");
|
||||||
log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile);
|
log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile);
|
||||||
}
|
}
|
||||||
@ -246,113 +260,115 @@ sub verify_tests
|
|||||||
sub ssl_tests
|
sub ssl_tests
|
||||||
{
|
{
|
||||||
my $outFile = "$output_path\\ssl_tst.out";
|
my $outFile = "$output_path\\ssl_tst.out";
|
||||||
|
my($CAcert) = "$output_path\\certCA.ss";
|
||||||
|
my($Ukey) = "$output_path\\keyU.ss";
|
||||||
|
my($Ucert) = "$output_path\\certU.ss";
|
||||||
|
my($ssltest)= "ssltest -key $Ukey -cert $Ucert -c_key $Ukey -c_cert $Ucert -CAfile $CAcert";
|
||||||
|
|
||||||
print( "\nRUNNING SSL TESTS:\n\n");
|
print( "\nRUNNING SSL TESTS:\n\n");
|
||||||
|
|
||||||
print( OUT "\n========================================================\n");
|
print( OUT "\n========================================================\n");
|
||||||
print( OUT "SSL TESTS:\n\n");
|
print( OUT "SSL TESTS:\n\n");
|
||||||
|
|
||||||
make_tmp_cert_file();
|
system("ssltest -ssl2 (CLIB_OPT)/>$outFile");
|
||||||
|
|
||||||
system("ssltest -ssl2 >$outFile");
|
|
||||||
log_desc("Testing sslv2:");
|
log_desc("Testing sslv2:");
|
||||||
log_output("ssltest -ssl2", $outFile);
|
log_output("ssltest -ssl2", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl2 -server_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 with server authentication:");
|
log_desc("Testing sslv2 with server authentication:");
|
||||||
log_output("ssltest -ssl2 -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl2 -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl2 -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 with client authentication:");
|
log_desc("Testing sslv2 with client authentication:");
|
||||||
log_output("ssltest -ssl2 -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl2 -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl2 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 with both client and server authentication:");
|
log_desc("Testing sslv2 with both client and server authentication:");
|
||||||
log_output("ssltest -ssl2 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl3 >$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);
|
||||||
|
|
||||||
system("ssltest -ssl3 -server_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl3 -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with server authentication:");
|
log_desc("Testing sslv3 with server authentication:");
|
||||||
log_output("ssltest -ssl3 -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl3 -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl3 -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl3 -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with client authentication:");
|
log_desc("Testing sslv3 with client authentication:");
|
||||||
log_output("ssltest -ssl3 -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl3 -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -ssl3 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with both client and server authentication:");
|
log_desc("Testing sslv3 with both client and server authentication:");
|
||||||
log_output("ssltest -ssl3 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest >$outFile");
|
system("ssltest (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3:");
|
log_desc("Testing sslv2/sslv3:");
|
||||||
log_output("ssltest", $outFile);
|
log_output("ssltest", $outFile);
|
||||||
|
|
||||||
system("ssltest -server_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with server authentication:");
|
log_desc("Testing sslv2/sslv3 with server authentication:");
|
||||||
log_output("ssltest -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with client authentication:");
|
log_desc("Testing sslv2/sslv3 with client authentication:");
|
||||||
log_output("ssltest -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -client_auth ", $outFile);
|
||||||
|
|
||||||
system("ssltest -server_auth -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
||||||
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 -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl2 >$outFile");
|
system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 via BIO pair:");
|
log_desc("Testing sslv2 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl2", $outFile);
|
log_output("ssltest -bio_pair -ssl2", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -dhe1024dsa -v >$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 -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 with server authentication via BIO pair:");
|
log_desc("Testing sslv2 with server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl2 -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl2 -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2 with client authentication via BIO pair:");
|
log_desc("Testing sslv2 with client authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl2 -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile $tmp_cert >$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_desc("Testing sslv2 with both client and server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 >$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);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 -server_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -ssl3 -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with server authentication via BIO pair:");
|
log_desc("Testing sslv3 with server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl3 -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -ssl3 -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with client authentication via BIO pair:");
|
log_desc("Testing sslv3 with client authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl3 -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv3 with both client and server authentication via BIO pair:");
|
log_desc("Testing sslv3 with both client and server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair >$outFile");
|
system("ssltest -bio_pair (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 via BIO pair:");
|
log_desc("Testing sslv2/sslv3 via BIO pair:");
|
||||||
log_output("ssltest -bio_pair", $outFile);
|
log_output("ssltest -bio_pair", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -server_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -server_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -server_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -server_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -client_auth", $outFile);
|
||||||
|
|
||||||
system("ssltest -bio_pair -server_auth -client_auth -CAfile $tmp_cert >$outFile");
|
system("$ssltest -bio_pair -server_auth -client_auth (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:");
|
log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:");
|
||||||
log_output("ssltest -bio_pair -server_auth -client_auth -CAfile $tmp_cert", $outFile);
|
log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -380,43 +396,43 @@ sub ca_tests
|
|||||||
print( OUT "\n========================================================\n");
|
print( OUT "\n========================================================\n");
|
||||||
print( OUT "CA TESTS:\n");
|
print( OUT "CA TESTS:\n");
|
||||||
|
|
||||||
system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new >$outFile");
|
system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Make a certificate request using req:");
|
log_desc("Make a certificate request using req:");
|
||||||
log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile);
|
log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey >$outFile");
|
system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Convert the certificate request into a self signed certificate using x509:");
|
log_desc("Convert the certificate request into a self signed certificate using x509:");
|
||||||
log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile);
|
log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 >$outFile");
|
system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Convert a certificate into a certificate request using 'x509':");
|
log_desc("Convert a certificate into a certificate request using 'x509':");
|
||||||
log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile);
|
log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout >$outFile");
|
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout (CLIB_OPT)/>$outFile");
|
||||||
log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile);
|
log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout >$outFile");
|
system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout (CLIB_OPT)/>$outFile");
|
||||||
log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile);
|
log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile);
|
||||||
|
|
||||||
system("openssl2 verify -CAfile $CAcert $CAcert >$outFile");
|
system("openssl2 verify -CAfile $CAcert $CAcert (CLIB_OPT)/>$outFile");
|
||||||
log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile);
|
log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile);
|
||||||
|
|
||||||
system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new >$outFile");
|
system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Make another certificate request using req:");
|
log_desc("Make another certificate request using req:");
|
||||||
log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile);
|
log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial >$outFile");
|
system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Sign certificate request with the just created CA via x509:");
|
log_desc("Sign certificate request with the just created CA via x509:");
|
||||||
log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile);
|
log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile);
|
||||||
|
|
||||||
system("openssl2 verify -CAfile $CAcert $Ucert >$outFile");
|
system("openssl2 verify -CAfile $CAcert $Ucert (CLIB_OPT)/>$outFile");
|
||||||
log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile);
|
log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile);
|
||||||
|
|
||||||
system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert >$outFile");
|
system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert (CLIB_OPT)/>$outFile");
|
||||||
log_desc("Certificate details");
|
log_desc("Certificate details");
|
||||||
log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile);
|
log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile);
|
||||||
|
|
||||||
print(OUT "-- \n");
|
print(OUT "--\n");
|
||||||
print(OUT "The generated CA certificate is $CAcert\n");
|
print(OUT "The generated CA certificate is $CAcert\n");
|
||||||
print(OUT "The generated CA private key is $CAkey\n");
|
print(OUT "The generated CA private key is $CAkey\n");
|
||||||
print(OUT "The current CA signing serial number is in $CAserial\n");
|
print(OUT "The current CA signing serial number is in $CAserial\n");
|
||||||
@ -426,6 +442,29 @@ sub ca_tests
|
|||||||
print(OUT "--\n");
|
print(OUT "--\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
sub evp_tests
|
||||||
|
{
|
||||||
|
my $i = 'evp_test';
|
||||||
|
|
||||||
|
print( "\nRUNNING EVP TESTS:\n\n");
|
||||||
|
|
||||||
|
print( OUT "\n========================================================\n");
|
||||||
|
print( OUT "EVP TESTS:\n\n");
|
||||||
|
|
||||||
|
if (-e "$base_path\\$i.nlm")
|
||||||
|
{
|
||||||
|
my $outFile = "$output_path\\$i.out";
|
||||||
|
system("$i $test_path\\evptests.txt (CLIB_OPT)/>$outFile");
|
||||||
|
log_desc("Test: $i\.nlm:");
|
||||||
|
log_output("", $outFile );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log_desc("Test: $i\.nlm: file not found");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
sub log_output( $ $ )
|
sub log_output( $ $ )
|
||||||
{
|
{
|
||||||
@ -436,7 +475,7 @@ sub log_output( $ $ )
|
|||||||
|
|
||||||
if ($desc)
|
if ($desc)
|
||||||
{
|
{
|
||||||
print("$desc\n");
|
print("\r$desc\n");
|
||||||
print(OUT "$desc\n");
|
print(OUT "$desc\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,8 +487,8 @@ sub log_output( $ $ )
|
|||||||
# copy test output to log file
|
# copy test output to log file
|
||||||
open(IN, "<$file");
|
open(IN, "<$file");
|
||||||
while (<IN>)
|
while (<IN>)
|
||||||
{
|
{
|
||||||
print(OUT $_);
|
print(OUT $_);
|
||||||
if ( $_ =~ /ERROR/ )
|
if ( $_ =~ /ERROR/ )
|
||||||
{
|
{
|
||||||
$error = 1;
|
$error = 1;
|
||||||
@ -476,13 +515,13 @@ sub log_output( $ $ )
|
|||||||
$key = getc;
|
$key = getc;
|
||||||
print("\n");
|
print("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
# Several of the testing scripts run a loop loading the
|
# Several of the testing scripts run a loop loading the
|
||||||
# same NLM with different options.
|
# same NLM with different options.
|
||||||
# On slow NetWare machines there appears to be some delay in the
|
# On slow NetWare machines there appears to be some delay in the
|
||||||
# OS actually unloading the test nlms and the OS complains about.
|
# OS actually unloading the test nlms and the OS complains about.
|
||||||
# the NLM already being loaded. This additional pause is to
|
# the NLM already being loaded. This additional pause is to
|
||||||
# to help provide a little more time for unloading before trying to
|
# to help provide a little more time for unloading before trying to
|
||||||
# load again.
|
# load again.
|
||||||
sleep(1);
|
sleep(1);
|
||||||
}
|
}
|
||||||
@ -553,7 +592,7 @@ sub do_wait()
|
|||||||
############################################################################
|
############################################################################
|
||||||
sub make_tmp_cert_file()
|
sub make_tmp_cert_file()
|
||||||
{
|
{
|
||||||
my @cert_files = <$cert_path\\*.pem>;
|
my @cert_files = <$cert_path/*.pem>;
|
||||||
|
|
||||||
# delete the file if it already exists
|
# delete the file if it already exists
|
||||||
unlink($tmp_cert);
|
unlink($tmp_cert);
|
||||||
@ -561,7 +600,7 @@ sub make_tmp_cert_file()
|
|||||||
open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n";
|
open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n";
|
||||||
|
|
||||||
print("building temporary cert file\n");
|
print("building temporary cert file\n");
|
||||||
|
|
||||||
# create a temporary cert file that contains all the certs
|
# create a temporary cert file that contains all the certs
|
||||||
foreach $i (@cert_files)
|
foreach $i (@cert_files)
|
||||||
{
|
{
|
||||||
|
@ -16,75 +16,97 @@ if "a%1" == "a" goto usage
|
|||||||
|
|
||||||
set LIBC_BUILD=
|
set LIBC_BUILD=
|
||||||
set CLIB_BUILD=
|
set CLIB_BUILD=
|
||||||
|
set GNUC=
|
||||||
|
|
||||||
if "%1" == "netware-clib" set CLIB_BUILD=Y
|
if "%1" == "netware-clib" set CLIB_BUILD=Y
|
||||||
if "%1" == "netware-clib" set LIBC_BUILD=
|
if "%1" == "netware-clib" set LIBC_BUILD=
|
||||||
|
|
||||||
if "%1" == "netware-libc" set LIBC_BUILD=Y
|
if "%1" == "netware-libc" set LIBC_BUILD=Y
|
||||||
if "%1" == "netware-libc" set CLIB_BUILD=
|
if "%1" == "netware-libc" set CLIB_BUILD=
|
||||||
|
|
||||||
|
if "%2" == "gnuc" set GNUC=Y
|
||||||
|
if "%2" == "codewarrior" set GNUC=
|
||||||
|
|
||||||
rem Location of tools (compiler, linker, etc)
|
rem Location of tools (compiler, linker, etc)
|
||||||
set TOOLS=d:\i_drive\tools
|
if "%NDKBASE%" == "" set NDKBASE=c:\Novell
|
||||||
|
|
||||||
rem If Perl for Win32 is not already in your path, add it here
|
rem If Perl for Win32 is not already in your path, add it here
|
||||||
set PERL_PATH=
|
set PERL_PATH=
|
||||||
|
|
||||||
rem Define path to the Metrowerks command line tools
|
rem Define path to the Metrowerks command line tools
|
||||||
|
rem or GNU Crosscompiler gcc / nlmconv
|
||||||
rem ( compiler, assembler, linker)
|
rem ( compiler, assembler, linker)
|
||||||
set METROWERKS_PATH=%TOOLS%\codewar\pdk_21\tools\command line tools
|
if "%GNUC%" == "Y" set COMPILER_PATH=c:\usr\i586-netware\bin;c:\usr\bin
|
||||||
rem set METROWERKS_PATH=%TOOLS%\codewar\PDK_40\Other Metrowerks Tools\Command Line Tools
|
if "%GNUC%" == "" set COMPILER_PATH=c:\prg\cwcmdl40
|
||||||
|
|
||||||
rem If using gnu make define path to utility
|
rem If using gnu make define path to utility
|
||||||
set GNU_MAKE_PATH=%TOOLS%\gnu
|
rem set GNU_MAKE_PATH=%NDKBASE%\gnu
|
||||||
|
set GNU_MAKE_PATH=c:\prg\tools
|
||||||
|
|
||||||
rem If using ms nmake define path to nmake
|
rem If using ms nmake define path to nmake
|
||||||
set MS_NMAKE_PATH=%TOOLS%\msvc\600\bin
|
rem set MS_NMAKE_PATH=%NDKBASE%\msvc\600\bin
|
||||||
|
|
||||||
rem If using NASM assembler define path
|
rem If using NASM assembler define path
|
||||||
set NASM_PATH=%TOOLS%\nasm
|
rem set NASM_PATH=%NDKBASE%\nasm
|
||||||
|
set NASM_PATH=c:\prg\tools
|
||||||
|
|
||||||
rem Update path to include tool paths
|
rem Update path to include tool paths
|
||||||
set path=%path%;%METROWERKS_PATH%
|
set path=%path%;%COMPILER_PATH%
|
||||||
if not "%GNU_MAKE_PATH%" == "" set path=%path%;%GNU_MAKE_PATH%
|
if not "%GNU_MAKE_PATH%" == "" set path=%path%;%GNU_MAKE_PATH%
|
||||||
if not "%MS_NMAKE_PATH%" == "" set path=%path%;%MS_NMAKE_PATH%
|
if not "%MS_NMAKE_PATH%" == "" set path=%path%;%MS_NMAKE_PATH%
|
||||||
if not "%NASM_PATH%" == "" set path=%path%;%NASM_PATH%
|
if not "%NASM_PATH%" == "" set path=%path%;%NASM_PATH%
|
||||||
if not "%PERL_PATH%" == "" set path=%path%;%PERL_PATH%
|
if not "%PERL_PATH%" == "" set path=%path%;%PERL_PATH%
|
||||||
|
|
||||||
rem Set MWCIncludes to location of Novell NDK includes
|
rem Set INCLUDES to location of Novell NDK includes
|
||||||
if "%LIBC_BUILD%" == "Y" set MWCIncludes=%TOOLS%\ndk\libc\include;%TOOLS%\ndk\libc\include\winsock;.\engines
|
if "%LIBC_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\libc\include;%NDKBASE%\ndk\libc\include\winsock
|
||||||
if "%CLIB_BUILD%" == "Y" set MWCIncludes=%TOOLS%\ndk\nwsdk\include\nlm;.\engines
|
if "%CLIB_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\nwsdk\include\nlm;%NDKBASE%\ws295sdk\include
|
||||||
set include=
|
|
||||||
|
|
||||||
rem Set Imports to location of Novell NDK import files
|
rem Set Imports to location of Novell NDK import files
|
||||||
if "%LIBC_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\libc\imports
|
if "%LIBC_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\libc\imports
|
||||||
if "%CLIB_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\nwsdk\imports
|
if "%CLIB_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\nwsdk\imports
|
||||||
|
|
||||||
rem Set PRELUDE to the absolute path of the prelude object to link with in
|
rem Set PRELUDE to the absolute path of the prelude object to link with in
|
||||||
rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is
|
rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is
|
||||||
rem recommended, for LibC NKS builds libcpre.o must be used
|
rem recommended, for LibC NKS builds libcpre.o must be used
|
||||||
|
if "%GNUC%" == "Y" goto gnuc
|
||||||
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o
|
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o
|
||||||
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o
|
rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o
|
||||||
|
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.o
|
||||||
|
echo using MetroWerks CodeWarrior
|
||||||
|
goto info
|
||||||
|
|
||||||
|
:gnuc
|
||||||
|
if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.gcc.o
|
||||||
|
rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.gcc.o
|
||||||
|
if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.gcc.o
|
||||||
|
echo using GNU GCC Compiler
|
||||||
|
|
||||||
|
:info
|
||||||
|
echo.
|
||||||
|
|
||||||
if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build
|
if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build
|
||||||
if "%LIBC_BUILD%" == "Y" echo use "netware\build.bat netware-libc ..."
|
if "%LIBC_BUILD%" == "Y" echo use "netware\build.bat netware-libc ..."
|
||||||
|
|
||||||
if "%CLIB_BUILD%" == "Y" echo Enviroment configured for CLib build
|
if "%CLIB_BUILD%" == "Y" echo Enviroment configured for CLib build
|
||||||
if "%CLIB_BUILD%" == "Y" echo use "netware\build.bat netware-clib ..."
|
if "%CLIB_BUILD%" == "Y" echo use "netware\build.bat netware-clib ..."
|
||||||
|
|
||||||
goto end
|
goto end
|
||||||
|
|
||||||
:usage
|
:usage
|
||||||
rem ===============================================================
|
rem ===============================================================
|
||||||
echo .
|
echo.
|
||||||
echo . No target build specified!
|
echo No target build specified!
|
||||||
echo .
|
echo.
|
||||||
echo . usage: set_env [target]
|
echo usage: set_env [target] [compiler]
|
||||||
echo .
|
echo.
|
||||||
echo . target - "netware-clib" - Clib build
|
echo target - "netware-clib" - Clib build
|
||||||
echo . - "netware-libc" - LibC build
|
echo - "netware-libc" - LibC build
|
||||||
echo .
|
echo.
|
||||||
|
echo compiler - "gnuc" - GNU GCC Compiler
|
||||||
|
echo - "codewarrior" - MetroWerks CodeWarrior (default)
|
||||||
|
echo.
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
echo.
|
||||||
|
|
||||||
|
|
||||||
|
93
PROBLEMS
93
PROBLEMS
@ -12,8 +12,8 @@ along the whole library path before it bothers looking for .a libraries. This
|
|||||||
means that -L switches won't matter unless OpenSSL is built with shared
|
means that -L switches won't matter unless OpenSSL is built with shared
|
||||||
library support.
|
library support.
|
||||||
|
|
||||||
The workaround may be to change the following lines in apps/Makefile.ssl and
|
The workaround may be to change the following lines in apps/Makefile and
|
||||||
test/Makefile.ssl:
|
test/Makefile:
|
||||||
|
|
||||||
LIBCRYPTO=-L.. -lcrypto
|
LIBCRYPTO=-L.. -lcrypto
|
||||||
LIBSSL=-L.. -lssl
|
LIBSSL=-L.. -lssl
|
||||||
@ -48,20 +48,34 @@ will interfere with each other and lead to test failure.
|
|||||||
The solution is simple for now: don't run parallell make when testing.
|
The solution is simple for now: don't run parallell make when testing.
|
||||||
|
|
||||||
|
|
||||||
* Bugs in gcc 3.0 triggered
|
* Bugs in gcc triggered
|
||||||
|
|
||||||
According to a problem report, there are bugs in gcc 3.0 that are
|
- According to a problem report, there are bugs in gcc 3.0 that are
|
||||||
triggered by some of the code in OpenSSL, more specifically in
|
triggered by some of the code in OpenSSL, more specifically in
|
||||||
PEM_get_EVP_CIPHER_INFO(). The triggering code is the following:
|
PEM_get_EVP_CIPHER_INFO(). The triggering code is the following:
|
||||||
|
|
||||||
header+=11;
|
header+=11;
|
||||||
if (*header != '4') return(0); header++;
|
if (*header != '4') return(0); header++;
|
||||||
if (*header != ',') return(0); header++;
|
if (*header != ',') return(0); header++;
|
||||||
|
|
||||||
What happens is that gcc might optimize a little too agressively, and
|
What happens is that gcc might optimize a little too agressively, and
|
||||||
you end up with an extra incrementation when *header != '4'.
|
you end up with an extra incrementation when *header != '4'.
|
||||||
|
|
||||||
We recommend that you upgrade gcc to as high a 3.x version as you can.
|
We recommend that you upgrade gcc to as high a 3.x version as you can.
|
||||||
|
|
||||||
|
- According to multiple problem reports, some of our message digest
|
||||||
|
implementations trigger bug[s] in code optimizer in gcc 3.3 for sparc64
|
||||||
|
and gcc 2.96 for ppc. Former fails to complete RIPEMD160 test, while
|
||||||
|
latter - SHA one.
|
||||||
|
|
||||||
|
The recomendation is to upgrade your compiler. This naturally applies to
|
||||||
|
other similar cases.
|
||||||
|
|
||||||
|
- There is a subtle Solaris x86-specific gcc run-time environment bug, which
|
||||||
|
"falls between" OpenSSL [0.9.8 and later], Solaris ld and GCC. The bug
|
||||||
|
manifests itself as Segmentation Fault upon early application start-up.
|
||||||
|
The problem can be worked around by patching the environment according to
|
||||||
|
http://www.openssl.org/~appro/values.c.
|
||||||
|
|
||||||
* solaris64-sparcv9-cc SHA-1 performance with WorkShop 6 compiler.
|
* solaris64-sparcv9-cc SHA-1 performance with WorkShop 6 compiler.
|
||||||
|
|
||||||
@ -120,3 +134,64 @@ Any information helping to solve this issue would be deeply
|
|||||||
appreciated.
|
appreciated.
|
||||||
|
|
||||||
NOTE: building non-shared doesn't come with this problem.
|
NOTE: building non-shared doesn't come with this problem.
|
||||||
|
|
||||||
|
* ULTRIX build fails with shell errors, such as "bad substitution"
|
||||||
|
and "test: argument expected"
|
||||||
|
|
||||||
|
The problem is caused by ULTRIX /bin/sh supporting only original
|
||||||
|
Bourne shell syntax/semantics, and the trouble is that the vast
|
||||||
|
majority is so accustomed to more modern syntax, that very few
|
||||||
|
people [if any] would recognize the ancient syntax even as valid.
|
||||||
|
This inevitably results in non-trivial scripts breaking on ULTRIX,
|
||||||
|
and OpenSSL isn't an exclusion. Fortunately there is workaround,
|
||||||
|
hire /bin/ksh to do the job /bin/sh fails to do.
|
||||||
|
|
||||||
|
1. Trick make(1) to use /bin/ksh by setting up following environ-
|
||||||
|
ment variables *prior* you execute ./Configure and make:
|
||||||
|
|
||||||
|
PROG_ENV=POSIX
|
||||||
|
MAKESHELL=/bin/ksh
|
||||||
|
export PROG_ENV MAKESHELL
|
||||||
|
|
||||||
|
or if your shell is csh-compatible:
|
||||||
|
|
||||||
|
setenv PROG_ENV POSIX
|
||||||
|
setenv MAKESHELL /bin/ksh
|
||||||
|
|
||||||
|
2. Trick /bin/sh to use alternative expression evaluator. Create
|
||||||
|
following 'test' script for example in /tmp:
|
||||||
|
|
||||||
|
#!/bin/ksh
|
||||||
|
${0##*/} "$@"
|
||||||
|
|
||||||
|
Then 'chmod a+x /tmp/test; ln /tmp/test /tmp/[' and *prepend*
|
||||||
|
your $PATH with chosen location, e.g. PATH=/tmp:$PATH. Alter-
|
||||||
|
natively just replace system /bin/test and /bin/[ with the
|
||||||
|
above script.
|
||||||
|
|
||||||
|
* hpux64-ia64-cc fails blowfish test.
|
||||||
|
|
||||||
|
Compiler bug, presumably at particular patch level. It should be noted
|
||||||
|
that same compiler generates correct 32-bit code, a.k.a. hpux-ia64-cc
|
||||||
|
target. Drop optimization level to +O2 when compiling 64-bit bf_skey.o.
|
||||||
|
|
||||||
|
* no-engines generates errors.
|
||||||
|
|
||||||
|
Unfortunately, the 'no-engines' configuration option currently doesn't
|
||||||
|
work properly. Use 'no-hw' and you'll will at least get no hardware
|
||||||
|
support. We'll see how we fix that on OpenSSL versions past 0.9.8.
|
||||||
|
|
||||||
|
* 'make test' fails in BN_sqr [commonly with "error 139" denoting SIGSEGV]
|
||||||
|
if elder GNU binutils were deployed to link shared libcrypto.so.
|
||||||
|
|
||||||
|
As subject suggests the failure is caused by a bug in elder binutils,
|
||||||
|
either as or ld, and was observed on FreeBSD and Linux. There are two
|
||||||
|
options. First is naturally to upgrade binutils, the second one - to
|
||||||
|
reconfigure with additional no-sse2 [or 386] option passed to ./config.
|
||||||
|
|
||||||
|
* If configured with ./config no-dso, toolkit still gets linked with -ldl,
|
||||||
|
which most notably poses a problem when linking with dietlibc.
|
||||||
|
|
||||||
|
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
|
||||||
|
EX_LIBS line.
|
||||||
|
27
README
27
README
@ -1,10 +1,16 @@
|
|||||||
|
|
||||||
OpenSSL 0.9.9-dev XX xxx XXXX
|
OpenSSL 0.9.8h-fips-dev test version
|
||||||
|
|
||||||
Copyright (c) 1998-2005 The OpenSSL Project
|
Copyright (c) 1998-2007 The OpenSSL Project
|
||||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
WARNING
|
||||||
|
-------
|
||||||
|
|
||||||
|
This version of OpenSSL is a port of the FIPS 140-2 code to OpenSSL
|
||||||
|
0.9.8. See the file README.FIPS for brief usage details.
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
@ -36,12 +42,13 @@
|
|||||||
actually logically part of it. It includes routines for the following:
|
actually logically part of it. It includes routines for the following:
|
||||||
|
|
||||||
Ciphers
|
Ciphers
|
||||||
libdes - EAY's libdes DES encryption package which has been floating
|
libdes - EAY's libdes DES encryption package which was floating
|
||||||
around the net for a few years. It includes 15
|
around the net for a few years, and was then relicensed by
|
||||||
'modes/variations' of DES (1, 2 and 3 key versions of ecb,
|
him as part of SSLeay. It includes 15 'modes/variations'
|
||||||
cbc, cfb and ofb; pcbc and a more general form of cfb and
|
of DES (1, 2 and 3 key versions of ecb, cbc, cfb and ofb;
|
||||||
ofb) including desx in cbc mode, a fast crypt(3), and
|
pcbc and a more general form of cfb and ofb) including desx
|
||||||
routines to read passwords from the keyboard.
|
in cbc mode, a fast crypt(3), and routines to read
|
||||||
|
passwords from the keyboard.
|
||||||
RC4 encryption,
|
RC4 encryption,
|
||||||
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
RC2 encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||||
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
|
||||||
@ -113,6 +120,10 @@
|
|||||||
|
|
||||||
The MDC2 algorithm is patented by IBM.
|
The MDC2 algorithm is patented by IBM.
|
||||||
|
|
||||||
|
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
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
84
README.FIPS
Normal file
84
README.FIPS
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
Brief instructions on using OpenSSL 0.9.8 FIPS 140-2 test branch.
|
||||||
|
|
||||||
|
NOTE: this distribution is NOT FIPS140-2 validated. These instructions are
|
||||||
|
intended for people who wish to test the OpenSSL FIPS 140-2 1.2 module. More
|
||||||
|
complete instructions will be made available after validation.
|
||||||
|
|
||||||
|
1. Build from test tarball.
|
||||||
|
|
||||||
|
Download the OpenSSL test 1.2 source tree. The current version has the CVS tag
|
||||||
|
FIPS_098_TEST_8 or can be downloaded from:
|
||||||
|
|
||||||
|
ftp://ftp.openssl.org/snapshot/openssl-fips-test-1.2.0.tar.gz
|
||||||
|
|
||||||
|
Ignore any instructions in that tree: they are likely to be out of date.
|
||||||
|
|
||||||
|
If you are using a Unix like environment run the following commands. You may
|
||||||
|
NOT specify ANY other options at this stage.
|
||||||
|
|
||||||
|
./config fipscanisterbuild
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
This will build and install the test 1.2 module and binaries under
|
||||||
|
/usr/local/fips-1.0
|
||||||
|
|
||||||
|
For Windows you need VC++, perl and NASM installed. This is now a pure VC++
|
||||||
|
build: no alternative compilers or tools are required. From a VC++ environment
|
||||||
|
do:
|
||||||
|
|
||||||
|
ms\do_fips
|
||||||
|
|
||||||
|
It should report that the compile was successful.
|
||||||
|
|
||||||
|
This will compile binaries into the out32dll directory. They can be copied to
|
||||||
|
a more convenient location.
|
||||||
|
|
||||||
|
2. Link test module to a more recent version of OpenSSL.
|
||||||
|
|
||||||
|
Once the test module has been installed it can be linked against a more recent
|
||||||
|
version of OpenSSL. Currently only versions from the 0.9.8-fips stable branch
|
||||||
|
can be used. It has the CVS tag OpenSSL-fips-0_9_8-stable daily snaphots can
|
||||||
|
also be downloaded as:
|
||||||
|
|
||||||
|
ftp://ftp.openssl.org/snapshot/openssl-0.9.8-fips-test-SNAP-YYMMDD.tar.gz
|
||||||
|
|
||||||
|
For a Unix build the standrd build procedure is followed and the option "fips"
|
||||||
|
is passed to either the config or Configure scripts. The fipscanisterbuild
|
||||||
|
option MUST NOT be used. Any other options may be included. Static libraries
|
||||||
|
can be built using the no-shared option.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
./config fips
|
||||||
|
|
||||||
|
./config fips no-shared
|
||||||
|
|
||||||
|
For Windows builds the options "fips" and --with-fipslibdir=<path> are passed
|
||||||
|
to the Configure script where <path> is wherever the module was installed
|
||||||
|
For example:
|
||||||
|
|
||||||
|
perl Configure fips --with-fipslibdir=C:\some\path\fips
|
||||||
|
|
||||||
|
Then the build process continues in the normal way for example:
|
||||||
|
|
||||||
|
ms\do_nasm
|
||||||
|
nmake -f ms\ntdll.mak
|
||||||
|
|
||||||
|
for DLLs or
|
||||||
|
|
||||||
|
ms\do_nasm
|
||||||
|
nmake -f ms\nt.mak
|
||||||
|
|
||||||
|
for static builds.
|
||||||
|
|
||||||
|
3. Test new version of OpenSSL.
|
||||||
|
|
||||||
|
The new test FIPS enabled OpenSSL can now be tested in the usual way.
|
||||||
|
|
||||||
|
Additionally binary compatibility tests against OpenSSL 0.9.8x would be
|
||||||
|
MOST welcomed. This will help avoid any major issues when the 0.9.8-fips
|
||||||
|
branch is merged into 0.9.8 branch.
|
||||||
|
|
||||||
|
Any problems should be reported to the openssl-dev mailing list.
|
||||||
|
|
16
STATUS
16
STATUS
@ -1,11 +1,22 @@
|
|||||||
|
|
||||||
OpenSSL STATUS Last modified at
|
OpenSSL STATUS Last modified at
|
||||||
______________ $Date: 2005/05/19 19:43:28 $
|
______________ $Date: 2007/02/23 12:12:27 $
|
||||||
|
|
||||||
DEVELOPMENT STATE
|
DEVELOPMENT STATE
|
||||||
|
|
||||||
o OpenSSL 0.9.9: Under development...
|
o OpenSSL 0.9.9: Under development...
|
||||||
o OpenSSL 0.9.8-beta1: Released on May 19th, 2005
|
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.7g: Released on April 11th, 2005
|
||||||
o OpenSSL 0.9.7f: Released on March 22nd, 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.7e: Released on October 25th, 2004
|
||||||
@ -40,6 +51,7 @@
|
|||||||
|
|
||||||
RELEASE SHOWSTOPPERS
|
RELEASE SHOWSTOPPERS
|
||||||
|
|
||||||
|
o The Makefiles fail with some SysV makes.
|
||||||
o
|
o
|
||||||
|
|
||||||
AVAILABLE PATCHES
|
AVAILABLE PATCHES
|
||||||
|
@ -68,19 +68,19 @@ foreach (@ARGV) {
|
|||||||
exit 0;
|
exit 0;
|
||||||
} elsif (/^-newcert$/) {
|
} elsif (/^-newcert$/) {
|
||||||
# create a certificate
|
# create a certificate
|
||||||
system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS");
|
system ("$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
print "Certificate (and private key) is in newreq.pem\n"
|
print "Certificate is in newcert.pem, private key is in newkey.pem\n"
|
||||||
} elsif (/^-newreq$/) {
|
} elsif (/^-newreq$/) {
|
||||||
# create a certificate request
|
# create a certificate request
|
||||||
system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
|
system ("$REQ -new -keyout newkey.pem -out newreq.pem $DAYS");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
print "Request (and private key) is in newreq.pem\n";
|
print "Request is in newreq.pem, private key is in newkey.pem\n";
|
||||||
} elsif (/^-newreq-nodes$/) {
|
} elsif (/^-newreq-nodes$/) {
|
||||||
# create a certificate request
|
# create a certificate request
|
||||||
system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS");
|
system ("$REQ -new -nodes -keyout newkey.pem -out newreq.pem $DAYS");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
print "Request (and private key) is in newreq.pem\n";
|
print "Request is in newreq.pem, private key is in newkey.pem\n";
|
||||||
} elsif (/^-newca$/) {
|
} elsif (/^-newca$/) {
|
||||||
# if explicitly asked for or it doesn't exist then setup the
|
# if explicitly asked for or it doesn't exist then setup the
|
||||||
# directory structure that Eric likes to manage things
|
# directory structure that Eric likes to manage things
|
||||||
@ -94,6 +94,9 @@ foreach (@ARGV) {
|
|||||||
mkdir "${CATOP}/private", $DIRMODE;
|
mkdir "${CATOP}/private", $DIRMODE;
|
||||||
open OUT, ">${CATOP}/index.txt";
|
open OUT, ">${CATOP}/index.txt";
|
||||||
close OUT;
|
close OUT;
|
||||||
|
open OUT, ">${CATOP}/crlnumber";
|
||||||
|
print OUT "01\n";
|
||||||
|
close OUT;
|
||||||
}
|
}
|
||||||
if ( ! -f "${CATOP}/private/$CAKEY" ) {
|
if ( ! -f "${CATOP}/private/$CAKEY" ) {
|
||||||
print "CA certificate filename (or enter to create)\n";
|
print "CA certificate filename (or enter to create)\n";
|
||||||
@ -113,6 +116,7 @@ foreach (@ARGV) {
|
|||||||
system ("$CA -create_serial " .
|
system ("$CA -create_serial " .
|
||||||
"-out ${CATOP}/$CACERT $CADAYS -batch " .
|
"-out ${CATOP}/$CACERT $CADAYS -batch " .
|
||||||
"-keyfile ${CATOP}/private/$CAKEY -selfsign " .
|
"-keyfile ${CATOP}/private/$CAKEY -selfsign " .
|
||||||
|
"-extensions v3_ca " .
|
||||||
"-infiles ${CATOP}/$CAREQ ");
|
"-infiles ${CATOP}/$CAREQ ");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
}
|
}
|
||||||
@ -120,10 +124,11 @@ foreach (@ARGV) {
|
|||||||
} elsif (/^-pkcs12$/) {
|
} elsif (/^-pkcs12$/) {
|
||||||
my $cname = $ARGV[1];
|
my $cname = $ARGV[1];
|
||||||
$cname = "My Certificate" unless defined $cname;
|
$cname = "My Certificate" unless defined $cname;
|
||||||
system ("$PKCS12 -in newcert.pem -inkey newreq.pem " .
|
system ("$PKCS12 -in newcert.pem -inkey newkey.pem " .
|
||||||
"-certfile ${CATOP}/$CACERT -out newcert.p12 " .
|
"-certfile ${CATOP}/$CACERT -out newcert.p12 " .
|
||||||
"-export -name \"$cname\"");
|
"-export -name \"$cname\"");
|
||||||
$RET=$?;
|
$RET=$?;
|
||||||
|
print "PKCS #12 file is in newcert.p12\n";
|
||||||
exit $RET;
|
exit $RET;
|
||||||
} elsif (/^-xsign$/) {
|
} elsif (/^-xsign$/) {
|
||||||
system ("$CA -policy policy_anything -infiles newreq.pem");
|
system ("$CA -policy policy_anything -infiles newreq.pem");
|
||||||
|
@ -53,15 +53,15 @@ case $i in
|
|||||||
;;
|
;;
|
||||||
-newcert)
|
-newcert)
|
||||||
# create a certificate
|
# create a certificate
|
||||||
$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS
|
$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS
|
||||||
RET=$?
|
RET=$?
|
||||||
echo "Certificate (and private key) is in newreq.pem"
|
echo "Certificate is in newcert.pem, private key is in newkey.pem"
|
||||||
;;
|
;;
|
||||||
-newreq)
|
-newreq)
|
||||||
# create a certificate request
|
# create a certificate request
|
||||||
$REQ -new -keyout newreq.pem -out newreq.pem $DAYS
|
$REQ -new -keyout newkey.pem -out newreq.pem $DAYS
|
||||||
RET=$?
|
RET=$?
|
||||||
echo "Request (and private key) is in newreq.pem"
|
echo "Request is in newreq.pem, private key is in newkey.pem"
|
||||||
;;
|
;;
|
||||||
-newca)
|
-newca)
|
||||||
# if explicitly asked for or it doesn't exist then setup the directory
|
# if explicitly asked for or it doesn't exist then setup the directory
|
||||||
|
892
apps/Makefile
892
apps/Makefile
File diff suppressed because it is too large
Load Diff
28
apps/apps.c
28
apps/apps.c
@ -125,7 +125,9 @@
|
|||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_RSA
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
|
#endif
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
#define NON_MAIN
|
#define NON_MAIN
|
||||||
@ -374,10 +376,17 @@ int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
|
|||||||
/* The start of something good :-) */
|
/* The start of something good :-) */
|
||||||
if (num >= arg->count)
|
if (num >= arg->count)
|
||||||
{
|
{
|
||||||
arg->count+=20;
|
char **tmp_p;
|
||||||
arg->data=(char **)OPENSSL_realloc(arg->data,
|
int tlen = arg->count + 20;
|
||||||
sizeof(char *)*arg->count);
|
tmp_p = (char **)OPENSSL_realloc(arg->data,
|
||||||
if (argc == 0) return(0);
|
sizeof(char *)*tlen);
|
||||||
|
if (tmp_p == NULL)
|
||||||
|
return 0;
|
||||||
|
arg->data = tmp_p;
|
||||||
|
arg->count = tlen;
|
||||||
|
/* initialize newly allocated data */
|
||||||
|
for (i = num; i < arg->count; i++)
|
||||||
|
arg->data[i] = NULL;
|
||||||
}
|
}
|
||||||
arg->data[num++]=p;
|
arg->data[num++]=p;
|
||||||
|
|
||||||
@ -1604,8 +1613,9 @@ int rotate_serial(char *serialfile, char *new_suffix, char *old_suffix)
|
|||||||
{
|
{
|
||||||
if (errno != ENOENT
|
if (errno != ENOENT
|
||||||
#ifdef ENOTDIR
|
#ifdef ENOTDIR
|
||||||
&& errno != ENOTDIR)
|
&& errno != ENOTDIR
|
||||||
#endif
|
#endif
|
||||||
|
)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1893,8 +1903,9 @@ int rotate_index(const char *dbfile, const char *new_suffix, const char *old_suf
|
|||||||
{
|
{
|
||||||
if (errno != ENOENT
|
if (errno != ENOENT
|
||||||
#ifdef ENOTDIR
|
#ifdef ENOTDIR
|
||||||
&& errno != ENOTDIR)
|
&& errno != ENOTDIR
|
||||||
#endif
|
#endif
|
||||||
|
)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1929,8 +1940,9 @@ int rotate_index(const char *dbfile, const char *new_suffix, const char *old_suf
|
|||||||
{
|
{
|
||||||
if (errno != ENOENT
|
if (errno != ENOENT
|
||||||
#ifdef ENOTDIR
|
#ifdef ENOTDIR
|
||||||
&& errno != ENOTDIR)
|
&& errno != ENOTDIR
|
||||||
#endif
|
#endif
|
||||||
|
)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1998,7 +2010,7 @@ int parse_yesno(const char *str, int def)
|
|||||||
case 'y': /* yes */
|
case 'y': /* yes */
|
||||||
case 'Y': /* YES */
|
case 'Y': /* YES */
|
||||||
case '1': /* 1 */
|
case '1': /* 1 */
|
||||||
ret = 0;
|
ret = 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ret = def;
|
ret = def;
|
||||||
|
18
apps/apps.h
18
apps/apps.h
@ -122,6 +122,9 @@
|
|||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_OCSP
|
||||||
|
#include <openssl/ocsp.h>
|
||||||
|
#endif
|
||||||
#include <openssl/ossl_typ.h>
|
#include <openssl/ossl_typ.h>
|
||||||
|
|
||||||
int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn);
|
int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn);
|
||||||
@ -146,9 +149,11 @@ int WIN32_rename(const char *oldname,const char *newname);
|
|||||||
#ifndef NON_MAIN
|
#ifndef NON_MAIN
|
||||||
CONF *config=NULL;
|
CONF *config=NULL;
|
||||||
BIO *bio_err=NULL;
|
BIO *bio_err=NULL;
|
||||||
|
int in_FIPS_mode=0;
|
||||||
#else
|
#else
|
||||||
extern CONF *config;
|
extern CONF *config;
|
||||||
extern BIO *bio_err;
|
extern BIO *bio_err;
|
||||||
|
extern int in_FIPS_mode;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -157,6 +162,7 @@ extern BIO *bio_err;
|
|||||||
extern CONF *config;
|
extern CONF *config;
|
||||||
extern char *default_config_file;
|
extern char *default_config_file;
|
||||||
extern BIO *bio_err;
|
extern BIO *bio_err;
|
||||||
|
extern int in_FIPS_mode;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -228,6 +234,12 @@ extern BIO *bio_err;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_SYSNAME_WIN32
|
||||||
|
# define openssl_fdset(a,b) FD_SET((unsigned int)a, b)
|
||||||
|
#else
|
||||||
|
# define openssl_fdset(a,b) FD_SET(a, b)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct args_st
|
typedef struct args_st
|
||||||
{
|
{
|
||||||
char **data;
|
char **data;
|
||||||
@ -275,6 +287,12 @@ X509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath);
|
|||||||
ENGINE *setup_engine(BIO *err, const char *engine, int debug);
|
ENGINE *setup_engine(BIO *err, const char *engine, int debug);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_OCSP
|
||||||
|
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
||||||
|
char *host, char *path, char *port, int use_ssl,
|
||||||
|
int req_timeout);
|
||||||
|
#endif
|
||||||
|
|
||||||
int load_config(BIO *err, CONF *cnf);
|
int load_config(BIO *err, CONF *cnf);
|
||||||
char *make_config_name(void);
|
char *make_config_name(void);
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ int MAIN(int argc, char **argv)
|
|||||||
bad:
|
bad:
|
||||||
BIO_printf(bio_err,"%s [options] <infile\n",prog);
|
BIO_printf(bio_err,"%s [options] <infile\n",prog);
|
||||||
BIO_printf(bio_err,"where options are\n");
|
BIO_printf(bio_err,"where options are\n");
|
||||||
BIO_printf(bio_err," -inform arg input format - one of DER TXT PEM\n");
|
BIO_printf(bio_err," -inform arg input format - one of DER PEM\n");
|
||||||
BIO_printf(bio_err," -in arg input file\n");
|
BIO_printf(bio_err," -in arg input file\n");
|
||||||
BIO_printf(bio_err," -out arg output file (output format is always DER\n");
|
BIO_printf(bio_err," -out arg output file (output format is always DER\n");
|
||||||
BIO_printf(bio_err," -noout arg don't produce any output\n");
|
BIO_printf(bio_err," -noout arg don't produce any output\n");
|
||||||
|
67
apps/ca.c
67
apps/ca.c
@ -105,6 +105,9 @@
|
|||||||
|
|
||||||
#define ENV_DEFAULT_CA "default_ca"
|
#define ENV_DEFAULT_CA "default_ca"
|
||||||
|
|
||||||
|
#define STRING_MASK "string_mask"
|
||||||
|
#define UTF8_IN "utf8"
|
||||||
|
|
||||||
#define ENV_DIR "dir"
|
#define ENV_DIR "dir"
|
||||||
#define ENV_CERTS "certs"
|
#define ENV_CERTS "certs"
|
||||||
#define ENV_CRL_DIR "crl_dir"
|
#define ENV_CRL_DIR "crl_dir"
|
||||||
@ -174,6 +177,7 @@ static const char *ca_usage[]={
|
|||||||
" -msie_hack - msie modifications to handle all those universal strings\n",
|
" -msie_hack - msie modifications to handle all those universal strings\n",
|
||||||
" -revoke file - Revoke a certificate (given in file)\n",
|
" -revoke file - Revoke a certificate (given in file)\n",
|
||||||
" -subj arg - Use arg instead of request's subject\n",
|
" -subj arg - Use arg instead of request's subject\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 extentions to add\n",
|
||||||
@ -195,27 +199,27 @@ extern int EF_ALIGNMENT;
|
|||||||
static void lookup_fail(const char *name, const char *tag);
|
static void lookup_fail(const char *name, const char *tag);
|
||||||
static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||||
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,CA_DB *db,
|
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,CA_DB *db,
|
||||||
BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate,
|
BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate,
|
||||||
char *enddate, long days, int batch, char *ext_sect, CONF *conf,
|
char *enddate, long days, int batch, char *ext_sect, CONF *conf,
|
||||||
int verbose, unsigned long certopt, unsigned long nameopt,
|
int verbose, unsigned long certopt, unsigned long nameopt,
|
||||||
int default_op, int ext_copy, int selfsign);
|
int default_op, int ext_copy, int selfsign);
|
||||||
static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||||
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
|
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
|
||||||
CA_DB *db, BIGNUM *serial, char *subj, int multirdn, int email_dn,
|
CA_DB *db, BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn,
|
||||||
char *startdate, char *enddate, long days, int batch,
|
char *startdate, char *enddate, long days, int batch,
|
||||||
char *ext_sect, CONF *conf,int verbose, unsigned long certopt,
|
char *ext_sect, CONF *conf,int verbose, unsigned long certopt,
|
||||||
unsigned long nameopt, int default_op, int ext_copy,
|
unsigned long nameopt, int default_op, int ext_copy,
|
||||||
ENGINE *e);
|
ENGINE *e);
|
||||||
static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
|
||||||
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
|
const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
|
||||||
CA_DB *db, BIGNUM *serial,char *subj, int multirdn, int email_dn,
|
CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn, int email_dn,
|
||||||
char *startdate, char *enddate, long days, char *ext_sect,
|
char *startdate, char *enddate, long days, char *ext_sect,
|
||||||
CONF *conf, int verbose, unsigned long certopt,
|
CONF *conf, int verbose, unsigned long certopt,
|
||||||
unsigned long nameopt, int default_op, int ext_copy);
|
unsigned long nameopt, int default_op, int ext_copy);
|
||||||
static int fix_data(int nid, int *type);
|
static int fix_data(int nid, int *type);
|
||||||
static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext);
|
static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext);
|
||||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
||||||
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj, int multirdn,
|
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn,
|
||||||
int email_dn, char *startdate, char *enddate, long days, int batch,
|
int email_dn, char *startdate, char *enddate, long days, int batch,
|
||||||
int verbose, X509_REQ *req, char *ext_sect, CONF *conf,
|
int verbose, X509_REQ *req, char *ext_sect, CONF *conf,
|
||||||
unsigned long certopt, unsigned long nameopt, int default_op,
|
unsigned long certopt, unsigned long nameopt, int default_op,
|
||||||
@ -275,6 +279,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char *extensions=NULL;
|
char *extensions=NULL;
|
||||||
char *extfile=NULL;
|
char *extfile=NULL;
|
||||||
char *subj=NULL;
|
char *subj=NULL;
|
||||||
|
unsigned long chtype = MBSTRING_ASC;
|
||||||
int multirdn = 0;
|
int multirdn = 0;
|
||||||
char *tmp_email_dn=NULL;
|
char *tmp_email_dn=NULL;
|
||||||
char *crl_ext=NULL;
|
char *crl_ext=NULL;
|
||||||
@ -356,6 +361,8 @@ EF_ALIGNMENT=0;
|
|||||||
subj= *(++argv);
|
subj= *(++argv);
|
||||||
/* preserve=1; */
|
/* preserve=1; */
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-utf8") == 0)
|
||||||
|
chtype = MBSTRING_UTF8;
|
||||||
else if (strcmp(*argv,"-create_serial") == 0)
|
else if (strcmp(*argv,"-create_serial") == 0)
|
||||||
create_ser = 1;
|
create_ser = 1;
|
||||||
else if (strcmp(*argv,"-multivalue-rdn") == 0)
|
else if (strcmp(*argv,"-multivalue-rdn") == 0)
|
||||||
@ -645,6 +652,23 @@ bad:
|
|||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
app_RAND_load_file(randfile, bio_err, 0);
|
app_RAND_load_file(randfile, bio_err, 0);
|
||||||
|
|
||||||
|
f = NCONF_get_string(conf, section, STRING_MASK);
|
||||||
|
if (!f)
|
||||||
|
ERR_clear_error();
|
||||||
|
|
||||||
|
if(f && !ASN1_STRING_set_default_mask_asc(f)) {
|
||||||
|
BIO_printf(bio_err, "Invalid global string mask setting %s\n", f);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (chtype != MBSTRING_UTF8){
|
||||||
|
f = NCONF_get_string(conf, section, UTF8_IN);
|
||||||
|
if (!f)
|
||||||
|
ERR_clear_error();
|
||||||
|
else if (!strcmp(f, "yes"))
|
||||||
|
chtype = MBSTRING_UTF8;
|
||||||
|
}
|
||||||
|
|
||||||
db_attr.unique_subject = 1;
|
db_attr.unique_subject = 1;
|
||||||
p = NCONF_get_string(conf, section, ENV_UNIQUE_SUBJECT);
|
p = NCONF_get_string(conf, section, ENV_UNIQUE_SUBJECT);
|
||||||
if (p)
|
if (p)
|
||||||
@ -945,7 +969,6 @@ bad:
|
|||||||
if (verbose) BIO_printf(bio_err,
|
if (verbose) BIO_printf(bio_err,
|
||||||
"Done. %d entries marked as expired\n",i);
|
"Done. %d entries marked as expired\n",i);
|
||||||
}
|
}
|
||||||
goto err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
@ -1135,7 +1158,7 @@ bad:
|
|||||||
{
|
{
|
||||||
total++;
|
total++;
|
||||||
j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
|
j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
|
||||||
serial,subj,multirdn,email_dn,startdate,enddate,days,extensions,
|
serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,extensions,
|
||||||
conf,verbose,certopt,nameopt,default_op,ext_copy);
|
conf,verbose,certopt,nameopt,default_op,ext_copy);
|
||||||
if (j < 0) goto err;
|
if (j < 0) goto err;
|
||||||
if (j > 0)
|
if (j > 0)
|
||||||
@ -1159,7 +1182,7 @@ bad:
|
|||||||
{
|
{
|
||||||
total++;
|
total++;
|
||||||
j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
|
j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
|
||||||
db,serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
|
db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
|
||||||
extensions,conf,verbose, certopt, nameopt,
|
extensions,conf,verbose, certopt, nameopt,
|
||||||
default_op, ext_copy, e);
|
default_op, ext_copy, e);
|
||||||
if (j < 0) goto err;
|
if (j < 0) goto err;
|
||||||
@ -1179,7 +1202,7 @@ bad:
|
|||||||
{
|
{
|
||||||
total++;
|
total++;
|
||||||
j=certify(&x,infile,pkey,x509p,dgst,attribs,db,
|
j=certify(&x,infile,pkey,x509p,dgst,attribs,db,
|
||||||
serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
|
serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
|
||||||
extensions,conf,verbose, certopt, nameopt,
|
extensions,conf,verbose, certopt, nameopt,
|
||||||
default_op, ext_copy, selfsign);
|
default_op, ext_copy, selfsign);
|
||||||
if (j < 0) goto err;
|
if (j < 0) goto err;
|
||||||
@ -1199,7 +1222,7 @@ bad:
|
|||||||
{
|
{
|
||||||
total++;
|
total++;
|
||||||
j=certify(&x,argv[i],pkey,x509p,dgst,attribs,db,
|
j=certify(&x,argv[i],pkey,x509p,dgst,attribs,db,
|
||||||
serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
|
serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
|
||||||
extensions,conf,verbose, certopt, nameopt,
|
extensions,conf,verbose, certopt, nameopt,
|
||||||
default_op, ext_copy, selfsign);
|
default_op, ext_copy, selfsign);
|
||||||
if (j < 0) goto err;
|
if (j < 0) goto err;
|
||||||
@ -1497,6 +1520,7 @@ err:
|
|||||||
if (x509) X509_free(x509);
|
if (x509) X509_free(x509);
|
||||||
X509_CRL_free(crl);
|
X509_CRL_free(crl);
|
||||||
NCONF_free(conf);
|
NCONF_free(conf);
|
||||||
|
NCONF_free(extconf);
|
||||||
OBJ_cleanup();
|
OBJ_cleanup();
|
||||||
apps_shutdown();
|
apps_shutdown();
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
@ -1509,7 +1533,7 @@ static void lookup_fail(const char *name, const char *tag)
|
|||||||
|
|
||||||
static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
||||||
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
||||||
BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
|
BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
|
||||||
long days, int batch, char *ext_sect, CONF *lconf, int verbose,
|
long days, int batch, char *ext_sect, CONF *lconf, int verbose,
|
||||||
unsigned long certopt, unsigned long nameopt, int default_op,
|
unsigned long certopt, unsigned long nameopt, int default_op,
|
||||||
int ext_copy, int selfsign)
|
int ext_copy, int selfsign)
|
||||||
@ -1565,7 +1589,7 @@ static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
|||||||
else
|
else
|
||||||
BIO_printf(bio_err,"Signature ok\n");
|
BIO_printf(bio_err,"Signature ok\n");
|
||||||
|
|
||||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj, multirdn, email_dn,
|
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn, email_dn,
|
||||||
startdate,enddate,days,batch,verbose,req,ext_sect,lconf,
|
startdate,enddate,days,batch,verbose,req,ext_sect,lconf,
|
||||||
certopt, nameopt, default_op, ext_copy, selfsign);
|
certopt, nameopt, default_op, ext_copy, selfsign);
|
||||||
|
|
||||||
@ -1577,7 +1601,7 @@ err:
|
|||||||
|
|
||||||
static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
||||||
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
||||||
BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
|
BIGNUM *serial, char *subj, unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
|
||||||
long days, int batch, char *ext_sect, CONF *lconf, int verbose,
|
long days, int batch, char *ext_sect, CONF *lconf, int verbose,
|
||||||
unsigned long certopt, unsigned long nameopt, int default_op,
|
unsigned long certopt, unsigned long nameopt, int default_op,
|
||||||
int ext_copy, ENGINE *e)
|
int ext_copy, ENGINE *e)
|
||||||
@ -1619,7 +1643,7 @@ static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
|||||||
if ((rreq=X509_to_X509_REQ(req,NULL,EVP_md5())) == NULL)
|
if ((rreq=X509_to_X509_REQ(req,NULL,EVP_md5())) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,multirdn,email_dn,startdate,enddate,
|
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,
|
||||||
days,batch,verbose,rreq,ext_sect,lconf, certopt, nameopt, default_op,
|
days,batch,verbose,rreq,ext_sect,lconf, certopt, nameopt, default_op,
|
||||||
ext_copy, 0);
|
ext_copy, 0);
|
||||||
|
|
||||||
@ -1631,7 +1655,7 @@ err:
|
|||||||
|
|
||||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
||||||
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial, char *subj,
|
STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial, char *subj,
|
||||||
int multirdn,
|
unsigned long chtype, int multirdn,
|
||||||
int email_dn, char *startdate, char *enddate, long days, int batch,
|
int email_dn, char *startdate, char *enddate, long days, int batch,
|
||||||
int verbose, X509_REQ *req, char *ext_sect, CONF *lconf,
|
int verbose, X509_REQ *req, char *ext_sect, CONF *lconf,
|
||||||
unsigned long certopt, unsigned long nameopt, int default_op,
|
unsigned long certopt, unsigned long nameopt, int default_op,
|
||||||
@ -1664,7 +1688,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
|
|||||||
|
|
||||||
if (subj)
|
if (subj)
|
||||||
{
|
{
|
||||||
X509_NAME *n = parse_name(subj, MBSTRING_ASC, multirdn);
|
X509_NAME *n = parse_name(subj, chtype, multirdn);
|
||||||
|
|
||||||
if (!n)
|
if (!n)
|
||||||
{
|
{
|
||||||
@ -2201,7 +2225,7 @@ static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext)
|
|||||||
|
|
||||||
static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
||||||
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
|
||||||
BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
|
BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
|
||||||
long days, char *ext_sect, CONF *lconf, int verbose, unsigned long certopt,
|
long days, char *ext_sect, CONF *lconf, int verbose, unsigned long certopt,
|
||||||
unsigned long nameopt, int default_op, int ext_copy)
|
unsigned long nameopt, int default_op, int ext_copy)
|
||||||
{
|
{
|
||||||
@ -2342,7 +2366,7 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
|
|||||||
|
|
||||||
X509_REQ_set_pubkey(req,pktmp);
|
X509_REQ_set_pubkey(req,pktmp);
|
||||||
EVP_PKEY_free(pktmp);
|
EVP_PKEY_free(pktmp);
|
||||||
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,multirdn,email_dn,startdate,enddate,
|
ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,
|
||||||
days,1,verbose,req,ext_sect,lconf, certopt, nameopt, default_op,
|
days,1,verbose,req,ext_sect,lconf, certopt, nameopt, default_op,
|
||||||
ext_copy, 0);
|
ext_copy, 0);
|
||||||
err:
|
err:
|
||||||
@ -2858,13 +2882,22 @@ int old_entry_print(BIO *bp, ASN1_OBJECT *obj, ASN1_STRING *str)
|
|||||||
p=(char *)str->data;
|
p=(char *)str->data;
|
||||||
for (j=str->length; j>0; j--)
|
for (j=str->length; j>0; j--)
|
||||||
{
|
{
|
||||||
|
#ifdef CHARSET_EBCDIC
|
||||||
|
if ((*p >= 0x20) && (*p <= 0x7e))
|
||||||
|
BIO_printf(bp,"%c",os_toebcdic[*p]);
|
||||||
|
#else
|
||||||
if ((*p >= ' ') && (*p <= '~'))
|
if ((*p >= ' ') && (*p <= '~'))
|
||||||
BIO_printf(bp,"%c",*p);
|
BIO_printf(bp,"%c",*p);
|
||||||
|
#endif
|
||||||
else if (*p & 0x80)
|
else if (*p & 0x80)
|
||||||
BIO_printf(bp,"\\0x%02X",*p);
|
BIO_printf(bp,"\\0x%02X",*p);
|
||||||
else if ((unsigned char)*p == 0xf7)
|
else if ((unsigned char)*p == 0xf7)
|
||||||
BIO_printf(bp,"^?");
|
BIO_printf(bp,"^?");
|
||||||
|
#ifdef CHARSET_EBCDIC
|
||||||
|
else BIO_printf(bp,"^%c",os_toebcdic[*p+0x40]);
|
||||||
|
#else
|
||||||
else BIO_printf(bp,"^%c",*p+'@');
|
else BIO_printf(bp,"^%c",*p+'@');
|
||||||
|
#endif
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
BIO_printf(bp,"'\n");
|
BIO_printf(bp,"'\n");
|
||||||
|
1347
apps/cms.c
Normal file
1347
apps/cms.c
Normal file
File diff suppressed because it is too large
Load Diff
114
apps/dgst.c
114
apps/dgst.c
@ -66,6 +66,7 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
#include <openssl/hmac.h>
|
||||||
|
|
||||||
#undef BUFSIZE
|
#undef BUFSIZE
|
||||||
#define BUFSIZE 1024*8
|
#define BUFSIZE 1024*8
|
||||||
@ -75,7 +76,7 @@
|
|||||||
|
|
||||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
||||||
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
||||||
const char *file);
|
const char *file,BIO *bmd,const char *hmac_key, int non_fips_allow);
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
@ -100,13 +101,16 @@ int MAIN(int argc, char **argv)
|
|||||||
EVP_PKEY *sigkey = NULL;
|
EVP_PKEY *sigkey = NULL;
|
||||||
unsigned char *sigbuf = NULL;
|
unsigned char *sigbuf = NULL;
|
||||||
int siglen = 0;
|
int siglen = 0;
|
||||||
|
unsigned int sig_flags = 0;
|
||||||
char *passargin = NULL, *passin = NULL;
|
char *passargin = NULL, *passin = NULL;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine=NULL;
|
char *engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
|
char *hmac_key=NULL;
|
||||||
|
int non_fips_allow = 0;
|
||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
ERR_load_crypto_strings();
|
||||||
if ((buf=(unsigned char *)OPENSSL_malloc(BUFSIZE)) == NULL)
|
if ((buf=(unsigned char *)OPENSSL_malloc(BUFSIZE)) == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"out of memory\n");
|
BIO_printf(bio_err,"out of memory\n");
|
||||||
@ -165,6 +169,27 @@ int MAIN(int argc, char **argv)
|
|||||||
keyfile=*(++argv);
|
keyfile=*(++argv);
|
||||||
do_verify = 1;
|
do_verify = 1;
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-x931") == 0)
|
||||||
|
sig_flags = EVP_MD_CTX_FLAG_PAD_X931;
|
||||||
|
else if (strcmp(*argv,"-pss_saltlen") == 0)
|
||||||
|
{
|
||||||
|
int saltlen;
|
||||||
|
if (--argc < 1) break;
|
||||||
|
saltlen=atoi(*(++argv));
|
||||||
|
if (saltlen == -1)
|
||||||
|
sig_flags = EVP_MD_CTX_FLAG_PSS_MREC;
|
||||||
|
else if (saltlen == -2)
|
||||||
|
sig_flags = EVP_MD_CTX_FLAG_PSS_MDLEN;
|
||||||
|
else if (saltlen < -2 || saltlen >= 0xFFFE)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Invalid PSS salt length %d\n", saltlen);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sig_flags = saltlen;
|
||||||
|
sig_flags <<= 16;
|
||||||
|
sig_flags |= EVP_MD_CTX_FLAG_PAD_PSS;
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-signature") == 0)
|
else if (strcmp(*argv,"-signature") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) break;
|
if (--argc < 1) break;
|
||||||
@ -188,6 +213,16 @@ int MAIN(int argc, char **argv)
|
|||||||
out_bin = 1;
|
out_bin = 1;
|
||||||
else if (strcmp(*argv,"-d") == 0)
|
else if (strcmp(*argv,"-d") == 0)
|
||||||
debug=1;
|
debug=1;
|
||||||
|
else if (strcmp(*argv,"-non-fips-allow") == 0)
|
||||||
|
non_fips_allow=1;
|
||||||
|
else if (!strcmp(*argv,"-fips-fingerprint"))
|
||||||
|
hmac_key = "etaonrishdlcupfm";
|
||||||
|
else if (!strcmp(*argv,"-hmac"))
|
||||||
|
{
|
||||||
|
if (--argc < 1)
|
||||||
|
break;
|
||||||
|
hmac_key=*++argv;
|
||||||
|
}
|
||||||
else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL)
|
else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL)
|
||||||
md=m;
|
md=m;
|
||||||
else
|
else
|
||||||
@ -219,33 +254,38 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err,"-keyform arg key file format (PEM or ENGINE)\n");
|
BIO_printf(bio_err,"-keyform arg key file format (PEM or ENGINE)\n");
|
||||||
BIO_printf(bio_err,"-signature file signature to verify\n");
|
BIO_printf(bio_err,"-signature file signature to verify\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 key create hashed MAC with key\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
|
||||||
|
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm (default)\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm (default)\n",
|
||||||
LN_md5,LN_md5);
|
LN_md5,LN_md5);
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_md4,LN_md4);
|
LN_md4,LN_md4);
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_md2,LN_md2);
|
LN_md2,LN_md2);
|
||||||
#ifndef OPENSSL_NO_SHA
|
#ifndef OPENSSL_NO_SHA
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_sha1,LN_sha1);
|
LN_sha1,LN_sha1);
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_sha,LN_sha);
|
LN_sha,LN_sha);
|
||||||
#ifndef OPENSSL_NO_SHA256
|
#ifndef OPENSSL_NO_SHA256
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
|
LN_sha224,LN_sha224);
|
||||||
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_sha256,LN_sha256);
|
LN_sha256,LN_sha256);
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_SHA512
|
#ifndef OPENSSL_NO_SHA512
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
|
LN_sha384,LN_sha384);
|
||||||
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_sha512,LN_sha512);
|
LN_sha512,LN_sha512);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_mdc2,LN_mdc2);
|
LN_mdc2,LN_mdc2);
|
||||||
BIO_printf(bio_err,"-%3s to use the %s message digest algorithm\n",
|
BIO_printf(bio_err,"-%-14s to use the %s message digest algorithm\n",
|
||||||
LN_ripemd160,LN_ripemd160);
|
LN_ripemd160,LN_ripemd160);
|
||||||
err=1;
|
err=1;
|
||||||
goto end;
|
goto end;
|
||||||
@ -261,7 +301,7 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
BIO_set_callback(in,BIO_debug_callback);
|
BIO_set_callback(in,BIO_debug_callback);
|
||||||
/* needed for windows 3.1 */
|
/* needed for windows 3.1 */
|
||||||
BIO_set_callback_arg(in,bio_err);
|
BIO_set_callback_arg(in,(char *)bio_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))
|
if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))
|
||||||
@ -341,8 +381,20 @@ 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 (sig_flags)
|
||||||
|
{
|
||||||
|
EVP_MD_CTX *md_ctx;
|
||||||
|
BIO_get_md_ctx(bmd,&md_ctx);
|
||||||
|
EVP_MD_CTX_set_flags(md_ctx, sig_flags);
|
||||||
|
}
|
||||||
|
|
||||||
/* we use md as a filter, reading from 'in' */
|
/* we use md as a filter, reading from 'in' */
|
||||||
if (!BIO_set_md(bmd,md))
|
if (!BIO_set_md(bmd,md))
|
||||||
@ -358,7 +410,7 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||||
err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf,
|
err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf,
|
||||||
siglen,"","(stdin)");
|
siglen,"","(stdin)",bmd,hmac_key,non_fips_allow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -376,14 +428,15 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
if(!out_bin)
|
if(!out_bin)
|
||||||
{
|
{
|
||||||
size_t len = strlen(name)+strlen(argv[i])+5;
|
size_t len = strlen(name)+strlen(argv[i])+(hmac_key ? 5 : 0)+5;
|
||||||
tmp=tofree=OPENSSL_malloc(len);
|
tmp=tofree=OPENSSL_malloc(len);
|
||||||
BIO_snprintf(tmp,len,"%s(%s)= ",name,argv[i]);
|
BIO_snprintf(tmp,len,"%s%s(%s)= ",
|
||||||
|
hmac_key ? "HMAC-" : "",name,argv[i]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp="";
|
tmp="";
|
||||||
r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf,
|
r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf,
|
||||||
siglen,tmp,argv[i]);
|
siglen,tmp,argv[i],bmd,hmac_key,non_fips_allow);
|
||||||
if(r)
|
if(r)
|
||||||
err=r;
|
err=r;
|
||||||
if(tofree)
|
if(tofree)
|
||||||
@ -410,11 +463,23 @@ end:
|
|||||||
|
|
||||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
||||||
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
|
||||||
const char *file)
|
const char *file,BIO *bmd,const char *hmac_key,int non_fips_allow)
|
||||||
{
|
{
|
||||||
int len;
|
unsigned int len;
|
||||||
int i;
|
int i;
|
||||||
|
EVP_MD_CTX *md_ctx;
|
||||||
|
HMAC_CTX hmac_ctx;
|
||||||
|
|
||||||
|
if (hmac_key)
|
||||||
|
{
|
||||||
|
EVP_MD *md;
|
||||||
|
|
||||||
|
BIO_get_md(bmd,&md);
|
||||||
|
HMAC_CTX_init(&hmac_ctx);
|
||||||
|
HMAC_Init_ex(&hmac_ctx,hmac_key,strlen(hmac_key),md, NULL);
|
||||||
|
BIO_get_md_ctx(bmd,&md_ctx);
|
||||||
|
BIO_set_md_ctx(bmd,&hmac_ctx.md_ctx);
|
||||||
|
}
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
i=BIO_read(bp,(char *)buf,BUFSIZE);
|
i=BIO_read(bp,(char *)buf,BUFSIZE);
|
||||||
@ -457,6 +522,11 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(hmac_key)
|
||||||
|
{
|
||||||
|
HMAC_Final(&hmac_ctx,buf,&len);
|
||||||
|
HMAC_CTX_cleanup(&hmac_ctx);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
len=BIO_gets(bp,(char *)buf,BUFSIZE);
|
len=BIO_gets(bp,(char *)buf,BUFSIZE);
|
||||||
|
|
||||||
@ -464,7 +534,7 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_write(out,title,strlen(title));
|
BIO_write(out,title,strlen(title));
|
||||||
for (i=0; i<len; i++)
|
for (i=0; i<(int)len; i++)
|
||||||
{
|
{
|
||||||
if (sep && (i != 0))
|
if (sep && (i != 0))
|
||||||
BIO_printf(out, ":");
|
BIO_printf(out, ":");
|
||||||
@ -472,6 +542,10 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
|
|||||||
}
|
}
|
||||||
BIO_printf(out, "\n");
|
BIO_printf(out, "\n");
|
||||||
}
|
}
|
||||||
|
if (hmac_key)
|
||||||
|
{
|
||||||
|
BIO_set_md_ctx(bmd,md_ctx);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DH */
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -109,6 +109,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DH */
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
50
apps/dsa.c
50
apps/dsa.c
@ -56,6 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -83,6 +84,10 @@
|
|||||||
* -aes128 - encrypt output if PEM format
|
* -aes128 - encrypt output if PEM format
|
||||||
* -aes192 - encrypt output if PEM format
|
* -aes192 - encrypt output if PEM format
|
||||||
* -aes256 - encrypt output if PEM format
|
* -aes256 - encrypt output if PEM format
|
||||||
|
* -camellia128 - encrypt output if PEM format
|
||||||
|
* -camellia192 - encrypt output if PEM format
|
||||||
|
* -camellia256 - encrypt output if PEM format
|
||||||
|
* -seed - encrypt output if PEM format
|
||||||
* -text - print a text version
|
* -text - print a text version
|
||||||
* -modulus - print the DSA public key
|
* -modulus - print the DSA public key
|
||||||
*/
|
*/
|
||||||
@ -210,6 +215,13 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
||||||
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err," -seed encrypt PEM output with cbc seed\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -text print the key in text\n");
|
BIO_printf(bio_err," -text print the key in text\n");
|
||||||
BIO_printf(bio_err," -noout don't print key out\n");
|
BIO_printf(bio_err," -noout don't print key out\n");
|
||||||
@ -228,37 +240,27 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
in=BIO_new(BIO_s_file());
|
|
||||||
out=BIO_new(BIO_s_file());
|
out=BIO_new(BIO_s_file());
|
||||||
if ((in == NULL) || (out == NULL))
|
if (out == NULL)
|
||||||
{
|
{
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (infile == NULL)
|
|
||||||
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (BIO_read_filename(in,infile) <= 0)
|
|
||||||
{
|
|
||||||
perror(infile);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BIO_printf(bio_err,"read DSA key\n");
|
BIO_printf(bio_err,"read DSA key\n");
|
||||||
if (informat == FORMAT_ASN1) {
|
{
|
||||||
if(pubin) dsa=d2i_DSA_PUBKEY_bio(in,NULL);
|
EVP_PKEY *pkey;
|
||||||
else dsa=d2i_DSAPrivateKey_bio(in,NULL);
|
if (pubin)
|
||||||
} else if (informat == FORMAT_PEM) {
|
pkey = load_pubkey(bio_err, infile, informat, 1,
|
||||||
if(pubin) dsa=PEM_read_bio_DSA_PUBKEY(in,NULL, NULL, NULL);
|
passin, e, "Public Key");
|
||||||
else dsa=PEM_read_bio_DSAPrivateKey(in,NULL,NULL,passin);
|
else
|
||||||
} else
|
pkey = load_key(bio_err, infile, informat, 1,
|
||||||
{
|
passin, e, "Private Key");
|
||||||
BIO_printf(bio_err,"bad input format specified for key\n");
|
|
||||||
goto end;
|
if (pkey != NULL)
|
||||||
}
|
dsa = pkey == NULL ? NULL : EVP_PKEY_get1_DSA(pkey);
|
||||||
|
EVP_PKEY_free(pkey);
|
||||||
|
}
|
||||||
if (dsa == NULL)
|
if (dsa == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unable to load Key\n");
|
BIO_printf(bio_err,"unable to load Key\n");
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
||||||
* deprecated functions for openssl-internal code */
|
* deprecated functions for openssl-internal code */
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
#ifdef OPENSSL_NO_DEPRECATED
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -243,7 +244,7 @@ bad:
|
|||||||
" the ec parameters are encoded\n");
|
" the ec parameters are encoded\n");
|
||||||
BIO_printf(bio_err, " in the asn1 der "
|
BIO_printf(bio_err, " in the asn1 der "
|
||||||
"encoding\n");
|
"encoding\n");
|
||||||
BIO_printf(bio_err, " possilbe values:"
|
BIO_printf(bio_err, " possible values:"
|
||||||
" named_curve (default)\n");
|
" named_curve (default)\n");
|
||||||
BIO_printf(bio_err," "
|
BIO_printf(bio_err," "
|
||||||
"explicit\n");
|
"explicit\n");
|
||||||
@ -346,7 +347,10 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (noout)
|
if (noout)
|
||||||
|
{
|
||||||
|
ret = 0;
|
||||||
goto end;
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
BIO_printf(bio_err, "writing EC key\n");
|
BIO_printf(bio_err, "writing EC key\n");
|
||||||
if (outformat == FORMAT_ASN1)
|
if (outformat == FORMAT_ASN1)
|
||||||
|
@ -68,6 +68,8 @@
|
|||||||
* Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
|
* Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
29
apps/enc.c
29
apps/enc.c
@ -127,6 +127,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();
|
||||||
|
|
||||||
@ -261,6 +262,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))
|
||||||
{
|
{
|
||||||
@ -314,7 +317,10 @@ bad:
|
|||||||
|
|
||||||
if (dgst == NULL)
|
if (dgst == NULL)
|
||||||
{
|
{
|
||||||
dgst = EVP_md5();
|
if (in_FIPS_mode)
|
||||||
|
dgst = EVP_sha1();
|
||||||
|
else
|
||||||
|
dgst = EVP_md5();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bufsize != NULL)
|
if (bufsize != NULL)
|
||||||
@ -340,7 +346,7 @@ bad:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* It must be large enough for a base64 encoded line */
|
/* It must be large enough for a base64 encoded line */
|
||||||
if (n < 80) n=80;
|
if (base64 && n < 80) n=80;
|
||||||
|
|
||||||
bsize=(int)n;
|
bsize=(int)n;
|
||||||
if (verbose) BIO_printf(bio_err,"bufsize=%d\n",bsize);
|
if (verbose) BIO_printf(bio_err,"bufsize=%d\n",bsize);
|
||||||
@ -365,12 +371,16 @@ bad:
|
|||||||
{
|
{
|
||||||
BIO_set_callback(in,BIO_debug_callback);
|
BIO_set_callback(in,BIO_debug_callback);
|
||||||
BIO_set_callback(out,BIO_debug_callback);
|
BIO_set_callback(out,BIO_debug_callback);
|
||||||
BIO_set_callback_arg(in,bio_err);
|
BIO_set_callback_arg(in,(char *)bio_err);
|
||||||
BIO_set_callback_arg(out,bio_err);
|
BIO_set_callback_arg(out,(char *)bio_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inf == NULL)
|
if (inf == NULL)
|
||||||
|
{
|
||||||
|
if (bufsize != NULL)
|
||||||
|
setvbuf(stdin, (char *)NULL, _IONBF, 0);
|
||||||
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
BIO_set_fp(in,stdin,BIO_NOCLOSE);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (BIO_read_filename(in,inf) <= 0)
|
if (BIO_read_filename(in,inf) <= 0)
|
||||||
@ -421,6 +431,8 @@ bad:
|
|||||||
if (outf == NULL)
|
if (outf == NULL)
|
||||||
{
|
{
|
||||||
BIO_set_fp(out,stdout,BIO_NOCLOSE);
|
BIO_set_fp(out,stdout,BIO_NOCLOSE);
|
||||||
|
if (bufsize != NULL)
|
||||||
|
setvbuf(stdout, (char *)NULL, _IONBF, 0);
|
||||||
#ifdef OPENSSL_SYS_VMS
|
#ifdef OPENSSL_SYS_VMS
|
||||||
{
|
{
|
||||||
BIO *tmpbio = BIO_new(BIO_f_linebuffer());
|
BIO *tmpbio = BIO_new(BIO_f_linebuffer());
|
||||||
@ -447,7 +459,7 @@ bad:
|
|||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
BIO_set_callback(b64,BIO_debug_callback);
|
BIO_set_callback(b64,BIO_debug_callback);
|
||||||
BIO_set_callback_arg(b64,bio_err);
|
BIO_set_callback_arg(b64,(char *)bio_err);
|
||||||
}
|
}
|
||||||
if (olb64)
|
if (olb64)
|
||||||
BIO_set_flags(b64,BIO_FLAGS_BASE64_NO_NL);
|
BIO_set_flags(b64,BIO_FLAGS_BASE64_NO_NL);
|
||||||
@ -543,6 +555,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",
|
||||||
@ -565,7 +582,7 @@ bad:
|
|||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
BIO_set_callback(benc,BIO_debug_callback);
|
BIO_set_callback(benc,BIO_debug_callback);
|
||||||
BIO_set_callback_arg(benc,bio_err);
|
BIO_set_callback_arg(benc,(char *)bio_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (printkey)
|
if (printkey)
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
||||||
* deprecated functions for openssl-internal code */
|
* deprecated functions for openssl-internal code */
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
#ifdef OPENSSL_NO_DEPRECATED
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
|
||||||
#ifndef OPENSSL_NO_DSA
|
#ifndef OPENSSL_NO_DSA
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -139,6 +140,10 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"-idea") == 0)
|
else if (strcmp(*argv,"-idea") == 0)
|
||||||
enc=EVP_idea_cbc();
|
enc=EVP_idea_cbc();
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
else if (strcmp(*argv,"-seed") == 0)
|
||||||
|
enc=EVP_seed_cbc();
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
else if (strcmp(*argv,"-aes128") == 0)
|
else if (strcmp(*argv,"-aes128") == 0)
|
||||||
enc=EVP_aes_128_cbc();
|
enc=EVP_aes_128_cbc();
|
||||||
@ -146,6 +151,14 @@ int MAIN(int argc, char **argv)
|
|||||||
enc=EVP_aes_192_cbc();
|
enc=EVP_aes_192_cbc();
|
||||||
else if (strcmp(*argv,"-aes256") == 0)
|
else if (strcmp(*argv,"-aes256") == 0)
|
||||||
enc=EVP_aes_256_cbc();
|
enc=EVP_aes_256_cbc();
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
else if (strcmp(*argv,"-camellia128") == 0)
|
||||||
|
enc=EVP_camellia_128_cbc();
|
||||||
|
else if (strcmp(*argv,"-camellia192") == 0)
|
||||||
|
enc=EVP_camellia_192_cbc();
|
||||||
|
else if (strcmp(*argv,"-camellia256") == 0)
|
||||||
|
enc=EVP_camellia_256_cbc();
|
||||||
#endif
|
#endif
|
||||||
else if (**argv != '-' && dsaparams == NULL)
|
else if (**argv != '-' && dsaparams == NULL)
|
||||||
{
|
{
|
||||||
@ -169,10 +182,18 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf(bio_err," -idea - encrypt the generated key with IDEA in cbc mode\n");
|
BIO_printf(bio_err," -idea - encrypt the generated key with IDEA in cbc mode\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err," -seed\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc seed\n");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
||||||
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
|
||||||
|
#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
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
|
||||||
* deprecated functions for openssl-internal code */
|
* deprecated functions for openssl-internal code */
|
||||||
#ifdef OPENSSL_NO_DEPRECATED
|
#ifdef OPENSSL_NO_DEPRECATED
|
||||||
@ -94,6 +95,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int ret=1;
|
int ret=1;
|
||||||
int i,num=DEFBITS;
|
int i,num=DEFBITS;
|
||||||
long l;
|
long l;
|
||||||
|
int use_x931 = 0;
|
||||||
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;
|
||||||
@ -137,6 +139,8 @@ int MAIN(int argc, char **argv)
|
|||||||
f4=3;
|
f4=3;
|
||||||
else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0)
|
else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0)
|
||||||
f4=RSA_F4;
|
f4=RSA_F4;
|
||||||
|
else if (strcmp(*argv,"-x931") == 0)
|
||||||
|
use_x931 = 1;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
else if (strcmp(*argv,"-engine") == 0)
|
else if (strcmp(*argv,"-engine") == 0)
|
||||||
{
|
{
|
||||||
@ -159,6 +163,10 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"-idea") == 0)
|
else if (strcmp(*argv,"-idea") == 0)
|
||||||
enc=EVP_idea_cbc();
|
enc=EVP_idea_cbc();
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
else if (strcmp(*argv,"-seed") == 0)
|
||||||
|
enc=EVP_seed_cbc();
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
else if (strcmp(*argv,"-aes128") == 0)
|
else if (strcmp(*argv,"-aes128") == 0)
|
||||||
enc=EVP_aes_128_cbc();
|
enc=EVP_aes_128_cbc();
|
||||||
@ -166,6 +174,14 @@ int MAIN(int argc, char **argv)
|
|||||||
enc=EVP_aes_192_cbc();
|
enc=EVP_aes_192_cbc();
|
||||||
else if (strcmp(*argv,"-aes256") == 0)
|
else if (strcmp(*argv,"-aes256") == 0)
|
||||||
enc=EVP_aes_256_cbc();
|
enc=EVP_aes_256_cbc();
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
else if (strcmp(*argv,"-camellia128") == 0)
|
||||||
|
enc=EVP_camellia_128_cbc();
|
||||||
|
else if (strcmp(*argv,"-camellia192") == 0)
|
||||||
|
enc=EVP_camellia_192_cbc();
|
||||||
|
else if (strcmp(*argv,"-camellia256") == 0)
|
||||||
|
enc=EVP_camellia_256_cbc();
|
||||||
#endif
|
#endif
|
||||||
else if (strcmp(*argv,"-passout") == 0)
|
else if (strcmp(*argv,"-passout") == 0)
|
||||||
{
|
{
|
||||||
@ -186,9 +202,17 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf(bio_err," -idea encrypt the generated key with IDEA in cbc mode\n");
|
BIO_printf(bio_err," -idea encrypt the generated key with IDEA in cbc mode\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err," -seed\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc seed\n");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
||||||
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -out file output the key to 'file\n");
|
BIO_printf(bio_err," -out file output the key to 'file\n");
|
||||||
BIO_printf(bio_err," -passout arg output file pass phrase source\n");
|
BIO_printf(bio_err," -passout arg output file pass phrase source\n");
|
||||||
@ -245,7 +269,17 @@ bad:
|
|||||||
BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
|
BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
|
||||||
num);
|
num);
|
||||||
|
|
||||||
if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
|
if (use_x931)
|
||||||
|
{
|
||||||
|
BIGNUM *pubexp;
|
||||||
|
pubexp = BN_new();
|
||||||
|
if (!BN_set_word(pubexp, f4))
|
||||||
|
goto err;
|
||||||
|
if (!RSA_X931_generate_key_ex(rsa, num, pubexp, &cb))
|
||||||
|
goto err;
|
||||||
|
BN_free(pubexp);
|
||||||
|
}
|
||||||
|
else 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);
|
||||||
|
@ -143,26 +143,9 @@ $ LIB_FILES = "VERIFY;ASN1PARS;REQ;DGST;DH;DHPARAM;ENC;PASSWD;GENDH;ERRSTR;"+-
|
|||||||
"X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
|
"X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
|
||||||
"S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+-
|
"S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+-
|
||||||
"CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP;PRIME"
|
"CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP;PRIME"
|
||||||
$ APP_FILES := OPENSSL,'OBJ_DIR'VERIFY.OBJ,ASN1PARS.OBJ,REQ.OBJ,DGST.OBJ,DH.OBJ,DHPARAM.OBJ,ENC.OBJ,PASSWD.OBJ,GENDH.OBJ,ERRSTR.OBJ,-
|
|
||||||
CA.OBJ,PKCS7.OBJ,CRL2P7.OBJ,CRL.OBJ,-
|
|
||||||
RSA.OBJ,RSAUTL.OBJ,DSA.OBJ,DSAPARAM.OBJ,EC.OBJ,ECPARAM.OBJ,-
|
|
||||||
X509.OBJ,GENRSA.OBJ,GENDSA.OBJ,S_SERVER.OBJ,S_CLIENT.OBJ,SPEED.OBJ,-
|
|
||||||
S_TIME.OBJ,APPS.OBJ,S_CB.OBJ,S_SOCKET.OBJ,APP_RAND.OBJ,VERSION.OBJ,SESS_ID.OBJ,-
|
|
||||||
CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ,PKCS8.OBJ,SPKAC.OBJ,SMIME.OBJ,RAND.OBJ,ENGINE.OBJ,OCSP.OBJ,PRIME.OBJ
|
|
||||||
$ TCPIP_PROGRAMS = ",,"
|
$ TCPIP_PROGRAMS = ",,"
|
||||||
$ IF COMPILER .EQS. "VAXC" THEN -
|
$ IF COMPILER .EQS. "VAXC" THEN -
|
||||||
TCPIP_PROGRAMS = ",OPENSSL,"
|
TCPIP_PROGRAMS = ",OPENSSL,"
|
||||||
$!$ APP_FILES := VERIFY;ASN1PARS;REQ;DGST;DH;ENC;GENDH;ERRSTR;CA;-
|
|
||||||
$! PKCS7;CRL2P7;CRL;-
|
|
||||||
$! RSA;DSA;DSAPARAM;-
|
|
||||||
$! X509;GENRSA;GENDSA;-
|
|
||||||
$! S_SERVER,'OBJ_DIR'S_SOCKET.OBJ,'OBJ_DIR'S_CB.OBJ;-
|
|
||||||
$! S_CLIENT,'OBJ_DIR'S_SOCKET.OBJ,'OBJ_DIR'S_CB.OBJ;-
|
|
||||||
$! SPEED;-
|
|
||||||
$! S_TIME,'OBJ_DIR'S_CB.OBJ;VERSION;SESS_ID;CIPHERS;NSEQ
|
|
||||||
$!$ TCPIP_PROGRAMS = ",,"
|
|
||||||
$!$ IF COMPILER .EQS. "VAXC" THEN -
|
|
||||||
$! TCPIP_PROGRAMS = ",S_SERVER,S_CLIENT,SESS_ID,CIPHERS,S_TIME,"
|
|
||||||
$!
|
$!
|
||||||
$! Setup exceptional compilations
|
$! Setup exceptional compilations
|
||||||
$!
|
$!
|
||||||
|
210
apps/ocsp.c
210
apps/ocsp.c
@ -56,15 +56,14 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#ifndef OPENSSL_NO_OCSP
|
#ifndef OPENSSL_NO_OCSP
|
||||||
|
#define USE_SOCKETS
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "apps.h"
|
#include "apps.h" /* needs to be included before the openssl headers! */
|
||||||
#include <openssl/pem.h>
|
#include <openssl/e_os2.h>
|
||||||
#include <openssl/ocsp.h>
|
|
||||||
#include <openssl/err.h>
|
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/bn.h>
|
#include <openssl/err.h>
|
||||||
|
|
||||||
/* Maximum leeway in validity period: default 5 minutes */
|
/* Maximum leeway in validity period: default 5 minutes */
|
||||||
#define MAX_VALIDITY_PERIOD (5 * 60)
|
#define MAX_VALIDITY_PERIOD (5 * 60)
|
||||||
@ -86,6 +85,8 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser);
|
|||||||
static BIO *init_responder(char *port);
|
static BIO *init_responder(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, 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,
|
||||||
|
OCSP_REQUEST *req, int req_timeout);
|
||||||
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG ocsp_main
|
#define PROG ocsp_main
|
||||||
@ -112,11 +113,11 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO *acbio = NULL, *cbio = NULL;
|
BIO *acbio = NULL, *cbio = NULL;
|
||||||
BIO *derbio = NULL;
|
BIO *derbio = NULL;
|
||||||
BIO *out = NULL;
|
BIO *out = NULL;
|
||||||
|
int req_timeout = -1;
|
||||||
int req_text = 0, resp_text = 0;
|
int req_text = 0, resp_text = 0;
|
||||||
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;
|
||||||
SSL_CTX *ctx = 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;
|
||||||
@ -139,6 +140,7 @@ int MAIN(int argc, char **argv)
|
|||||||
if (!load_config(bio_err, NULL))
|
if (!load_config(bio_err, NULL))
|
||||||
goto end;
|
goto end;
|
||||||
SSL_load_error_strings();
|
SSL_load_error_strings();
|
||||||
|
OpenSSL_add_ssl_algorithms();
|
||||||
args = argv + 1;
|
args = argv + 1;
|
||||||
reqnames = sk_new_null();
|
reqnames = sk_new_null();
|
||||||
ids = sk_OCSP_CERTID_new_null();
|
ids = sk_OCSP_CERTID_new_null();
|
||||||
@ -153,6 +155,22 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else badarg = 1;
|
else badarg = 1;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(*args, "-timeout"))
|
||||||
|
{
|
||||||
|
if (args[1])
|
||||||
|
{
|
||||||
|
args++;
|
||||||
|
req_timeout = atol(*args);
|
||||||
|
if (req_timeout < 0)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"Illegal timeout value %s\n",
|
||||||
|
*args);
|
||||||
|
badarg = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else badarg = 1;
|
||||||
|
}
|
||||||
else if (!strcmp(*args, "-url"))
|
else if (!strcmp(*args, "-url"))
|
||||||
{
|
{
|
||||||
if (args[1])
|
if (args[1])
|
||||||
@ -702,47 +720,14 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (host)
|
else if (host)
|
||||||
{
|
{
|
||||||
#ifndef OPENSSL_NO_SOCK
|
#ifndef OPENSSL_NO_SOCK
|
||||||
cbio = BIO_new_connect(host);
|
resp = process_responder(bio_err, req, host, path,
|
||||||
|
port, use_ssl, req_timeout);
|
||||||
|
if (!resp)
|
||||||
|
goto end;
|
||||||
#else
|
#else
|
||||||
BIO_printf(bio_err, "Error creating connect BIO - sockets not supported.\n");
|
BIO_printf(bio_err, "Error creating connect BIO - sockets not supported.\n");
|
||||||
goto end;
|
goto end;
|
||||||
#endif
|
#endif
|
||||||
if (!cbio)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Error creating connect BIO\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
if (port) BIO_set_conn_port(cbio, port);
|
|
||||||
if (use_ssl == 1)
|
|
||||||
{
|
|
||||||
BIO *sbio;
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
|
||||||
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(bio_err, "SSL is disabled\n");
|
|
||||||
goto end;
|
|
||||||
#endif
|
|
||||||
SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
|
|
||||||
sbio = BIO_new_ssl(ctx, 1);
|
|
||||||
cbio = BIO_push(sbio, cbio);
|
|
||||||
}
|
|
||||||
if (BIO_do_connect(cbio) <= 0)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Error connecting BIO\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
resp = OCSP_sendreq_bio(cbio, path, req);
|
|
||||||
BIO_free_all(cbio);
|
|
||||||
cbio = NULL;
|
|
||||||
if (!resp)
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Error querying OCSP responsder\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (respin)
|
else if (respin)
|
||||||
{
|
{
|
||||||
@ -891,7 +876,6 @@ end:
|
|||||||
OPENSSL_free(host);
|
OPENSSL_free(host);
|
||||||
OPENSSL_free(port);
|
OPENSSL_free(port);
|
||||||
OPENSSL_free(path);
|
OPENSSL_free(path);
|
||||||
SSL_CTX_free(ctx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OPENSSL_EXIT(ret);
|
OPENSSL_EXIT(ret);
|
||||||
@ -1115,6 +1099,7 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser)
|
|||||||
char *itmp, *row[DB_NUMBER],**rrow;
|
char *itmp, *row[DB_NUMBER],**rrow;
|
||||||
for (i = 0; i < DB_NUMBER; i++) row[i] = NULL;
|
for (i = 0; i < DB_NUMBER; i++) row[i] = NULL;
|
||||||
bn = ASN1_INTEGER_to_BN(ser,NULL);
|
bn = ASN1_INTEGER_to_BN(ser,NULL);
|
||||||
|
OPENSSL_assert(bn); /* FIXME: should report an error at this point and abort */
|
||||||
if (BN_is_zero(bn))
|
if (BN_is_zero(bn))
|
||||||
itmp = BUF_strdup("00");
|
itmp = BUF_strdup("00");
|
||||||
else
|
else
|
||||||
@ -1221,8 +1206,141 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
|
|||||||
return 0;
|
return 0;
|
||||||
BIO_printf(cbio, http_resp, i2d_OCSP_RESPONSE(resp, NULL));
|
BIO_printf(cbio, http_resp, i2d_OCSP_RESPONSE(resp, NULL));
|
||||||
i2d_OCSP_RESPONSE_bio(cbio, resp);
|
i2d_OCSP_RESPONSE_bio(cbio, resp);
|
||||||
BIO_flush(cbio);
|
(void)BIO_flush(cbio);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static OCSP_RESPONSE *query_responder(BIO *err, BIO *cbio, char *path,
|
||||||
|
OCSP_REQUEST *req, int req_timeout)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
int rv;
|
||||||
|
OCSP_REQ_CTX *ctx = NULL;
|
||||||
|
OCSP_RESPONSE *rsp = NULL;
|
||||||
|
fd_set confds;
|
||||||
|
struct timeval tv;
|
||||||
|
|
||||||
|
if (req_timeout != -1)
|
||||||
|
BIO_set_nbio(cbio, 1);
|
||||||
|
|
||||||
|
rv = BIO_do_connect(cbio);
|
||||||
|
|
||||||
|
if ((rv <= 0) && ((req_timeout == -1) || !BIO_should_retry(cbio)))
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Error connecting BIO\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req_timeout == -1)
|
||||||
|
return OCSP_sendreq_bio(cbio, path, req);
|
||||||
|
|
||||||
|
if (BIO_get_fd(cbio, &fd) <= 0)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Can't get connection fd\n");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rv <= 0)
|
||||||
|
{
|
||||||
|
FD_ZERO(&confds);
|
||||||
|
openssl_fdset(fd, &confds);
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
tv.tv_sec = req_timeout;
|
||||||
|
rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv);
|
||||||
|
if (rv == 0)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Timeout on connect\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ctx = OCSP_sendreq_new(cbio, path, req, -1);
|
||||||
|
if (!ctx)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
rv = OCSP_sendreq_nbio(&rsp, ctx);
|
||||||
|
if (rv != -1)
|
||||||
|
break;
|
||||||
|
FD_ZERO(&confds);
|
||||||
|
openssl_fdset(fd, &confds);
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
tv.tv_sec = req_timeout;
|
||||||
|
if (BIO_should_read(cbio))
|
||||||
|
rv = select(fd + 1, (void *)&confds, NULL, NULL, &tv);
|
||||||
|
else if (BIO_should_write(cbio))
|
||||||
|
rv = select(fd + 1, NULL, (void *)&confds, NULL, &tv);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Unexpected retry condition\n");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
if (rv == 0)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Timeout on request\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (rv == -1)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "Select error\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
err:
|
||||||
|
if (ctx)
|
||||||
|
OCSP_REQ_CTX_free(ctx);
|
||||||
|
|
||||||
|
return rsp;
|
||||||
|
}
|
||||||
|
|
||||||
|
OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
|
||||||
|
char *host, char *path, char *port, int use_ssl,
|
||||||
|
int req_timeout)
|
||||||
|
{
|
||||||
|
BIO *cbio = NULL;
|
||||||
|
SSL_CTX *ctx = NULL;
|
||||||
|
OCSP_RESPONSE *resp = NULL;
|
||||||
|
cbio = BIO_new_connect(host);
|
||||||
|
if (!cbio)
|
||||||
|
{
|
||||||
|
BIO_printf(err, "Error creating connect BIO\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
if (port) BIO_set_conn_port(cbio, port);
|
||||||
|
if (use_ssl == 1)
|
||||||
|
{
|
||||||
|
BIO *sbio;
|
||||||
|
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
BIO_printf(err, "Error creating SSL context.\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
|
||||||
|
sbio = BIO_new_ssl(ctx, 1);
|
||||||
|
cbio = BIO_push(sbio, cbio);
|
||||||
|
}
|
||||||
|
resp = query_responder(err, cbio, path, req, req_timeout);
|
||||||
|
if (!resp)
|
||||||
|
BIO_printf(bio_err, "Error querying OCSP responsder\n");
|
||||||
|
end:
|
||||||
|
if (ctx)
|
||||||
|
SSL_CTX_free(ctx);
|
||||||
|
if (cbio)
|
||||||
|
BIO_free_all(cbio);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,9 +8,8 @@
|
|||||||
HOME = .
|
HOME = .
|
||||||
RANDFILE = $ENV::HOME/.rnd
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
# Extra OBJECT IDENTIFIER info:
|
# Uncomment out to enable OpenSSL configuration see config(3)
|
||||||
#oid_file = $ENV::HOME/.oid
|
# openssl_conf = openssl_init
|
||||||
oid_section = new_oids
|
|
||||||
|
|
||||||
# To use this configuration file with the "-extfile" option of the
|
# To use this configuration file with the "-extfile" option of the
|
||||||
# "openssl x509" utility, name here the section containing the
|
# "openssl x509" utility, name here the section containing the
|
||||||
@ -19,13 +18,22 @@ oid_section = new_oids
|
|||||||
# (Alternatively, use a configuration file that has only
|
# (Alternatively, use a configuration file that has only
|
||||||
# X.509v3 extensions in its main [= default] section.)
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
oid_section = new_oids
|
||||||
|
alg_section = algs
|
||||||
|
|
||||||
[ new_oids ]
|
[ new_oids ]
|
||||||
|
|
||||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
# We can add new OIDs in here for use by any config aware application
|
||||||
# Add a simple OID like this:
|
# Add a simple OID like this:
|
||||||
# testoid1=1.2.3.4
|
# shortname=Long Object Identifier Name, 1.2.3.4
|
||||||
# Or use config file substitution like this:
|
# Or use config file substitution like this:
|
||||||
# testoid2=${testoid1}.5.6
|
# testoid2=OID2 LONG NAME, ${testoid1}.5.6, OTHER OID
|
||||||
|
|
||||||
|
[ algs ]
|
||||||
|
# Algorithm configuration options. Currently just fips_mode
|
||||||
|
fips_mode = no
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ ca ]
|
[ ca ]
|
||||||
@ -188,7 +196,7 @@ nsComment = "OpenSSL Generated Certificate"
|
|||||||
|
|
||||||
# PKIX recommendations harmless if included in all certificates.
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
subjectKeyIdentifier=hash
|
subjectKeyIdentifier=hash
|
||||||
authorityKeyIdentifier=keyid,issuer:always
|
authorityKeyIdentifier=keyid,issuer
|
||||||
|
|
||||||
# This stuff is for subjectAltName and issuerAltname.
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
# Import the email address.
|
# Import the email address.
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@ -147,6 +147,7 @@ char *default_config_file=NULL;
|
|||||||
#ifdef MONOLITH
|
#ifdef MONOLITH
|
||||||
CONF *config=NULL;
|
CONF *config=NULL;
|
||||||
BIO *bio_err=NULL;
|
BIO *bio_err=NULL;
|
||||||
|
int in_FIPS_mode=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -232,6 +233,19 @@ int main(int Argc, char *Argv[])
|
|||||||
arg.data=NULL;
|
arg.data=NULL;
|
||||||
arg.count=0;
|
arg.count=0;
|
||||||
|
|
||||||
|
in_FIPS_mode = 0;
|
||||||
|
|
||||||
|
#ifdef OPENSSL_FIPS
|
||||||
|
if(getenv("OPENSSL_FIPS")) {
|
||||||
|
if (!FIPS_mode_set(1)) {
|
||||||
|
ERR_load_crypto_strings();
|
||||||
|
ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
|
||||||
|
EXIT(1);
|
||||||
|
}
|
||||||
|
in_FIPS_mode = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
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);
|
||||||
@ -445,7 +459,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
|
|||||||
for (fp=functions; fp->name != NULL; fp++)
|
for (fp=functions; fp->name != NULL; fp++)
|
||||||
{
|
{
|
||||||
nl=0;
|
nl=0;
|
||||||
|
#ifdef OPENSSL_NO_CAMELLIA
|
||||||
if (((i++) % 5) == 0)
|
if (((i++) % 5) == 0)
|
||||||
|
#else
|
||||||
|
if (((i++) % 4) == 0)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
nl=1;
|
nl=1;
|
||||||
@ -466,7 +484,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
|
|||||||
BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
|
BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef OPENSSL_NO_CAMELLIA
|
||||||
BIO_printf(bio_err,"%-15s",fp->name);
|
BIO_printf(bio_err,"%-15s",fp->name);
|
||||||
|
#else
|
||||||
|
BIO_printf(bio_err,"%-18s",fp->name);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
BIO_printf(bio_err,"\n\n");
|
BIO_printf(bio_err,"\n\n");
|
||||||
ret=0;
|
ret=0;
|
||||||
|
@ -8,9 +8,8 @@
|
|||||||
HOME = .
|
HOME = .
|
||||||
RANDFILE = $ENV::HOME/.rnd
|
RANDFILE = $ENV::HOME/.rnd
|
||||||
|
|
||||||
# Extra OBJECT IDENTIFIER info:
|
# Uncomment out to enable OpenSSL configuration see config(3)
|
||||||
#oid_file = $ENV::HOME/.oid
|
# openssl_conf = openssl_init
|
||||||
oid_section = new_oids
|
|
||||||
|
|
||||||
# To use this configuration file with the "-extfile" option of the
|
# To use this configuration file with the "-extfile" option of the
|
||||||
# "openssl x509" utility, name here the section containing the
|
# "openssl x509" utility, name here the section containing the
|
||||||
@ -19,13 +18,22 @@ oid_section = new_oids
|
|||||||
# (Alternatively, use a configuration file that has only
|
# (Alternatively, use a configuration file that has only
|
||||||
# X.509v3 extensions in its main [= default] section.)
|
# X.509v3 extensions in its main [= default] section.)
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
# Extra OBJECT IDENTIFIER info:
|
||||||
|
oid_section = new_oids
|
||||||
|
alg_section = algs
|
||||||
|
|
||||||
[ new_oids ]
|
[ new_oids ]
|
||||||
|
|
||||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
# We can add new OIDs in here for use by any config aware application
|
||||||
# Add a simple OID like this:
|
# Add a simple OID like this:
|
||||||
# testoid1=1.2.3.4
|
# shortname=Long Object Identifier Name, 1.2.3.4
|
||||||
# Or use config file substitution like this:
|
# Or use config file substitution like this:
|
||||||
# testoid2=${testoid1}.5.6
|
# testoid2=OID2 LONG NAME, ${testoid1}.5.6, OTHER OID
|
||||||
|
|
||||||
|
[ algs ]
|
||||||
|
# Algorithm configuration options. Currently just fips_mode
|
||||||
|
fips_mode = no
|
||||||
|
|
||||||
####################################################################
|
####################################################################
|
||||||
[ ca ]
|
[ ca ]
|
||||||
@ -188,7 +196,7 @@ nsComment = "OpenSSL Generated Certificate"
|
|||||||
|
|
||||||
# PKIX recommendations harmless if included in all certificates.
|
# PKIX recommendations harmless if included in all certificates.
|
||||||
subjectKeyIdentifier=hash
|
subjectKeyIdentifier=hash
|
||||||
authorityKeyIdentifier=keyid,issuer:always
|
authorityKeyIdentifier=keyid,issuer
|
||||||
|
|
||||||
# This stuff is for subjectAltName and issuerAltname.
|
# This stuff is for subjectAltName and issuerAltname.
|
||||||
# Import the email address.
|
# Import the email address.
|
||||||
|
@ -474,7 +474,8 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
|
|||||||
if ((strlen(passwd) > pw_maxlen))
|
if ((strlen(passwd) > pw_maxlen))
|
||||||
{
|
{
|
||||||
if (!quiet)
|
if (!quiet)
|
||||||
BIO_printf(bio_err, "Warning: truncating password to %u characters\n", pw_maxlen);
|
/* XXX: really we should know how to print a size_t, not cast it */
|
||||||
|
BIO_printf(bio_err, "Warning: truncating password to %u characters\n", (unsigned)pw_maxlen);
|
||||||
passwd[pw_maxlen] = 0;
|
passwd[pw_maxlen] = 0;
|
||||||
}
|
}
|
||||||
assert(strlen(passwd) <= pw_maxlen);
|
assert(strlen(passwd) <= pw_maxlen);
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
/* pkcs12.c */
|
/* pkcs12.c */
|
||||||
#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)
|
|
||||||
|
|
||||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
|
||||||
* project.
|
* project.
|
||||||
*/
|
*/
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@ -58,6 +56,9 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
|
#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -99,6 +100,7 @@ int MAIN(int argc, char **argv)
|
|||||||
char **args;
|
char **args;
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
char *csp_name = NULL;
|
char *csp_name = NULL;
|
||||||
|
int add_lmk = 0;
|
||||||
PKCS12 *p12 = NULL;
|
PKCS12 *p12 = NULL;
|
||||||
char pass[50], macpass[50];
|
char pass[50], macpass[50];
|
||||||
int export_cert = 0;
|
int export_cert = 0;
|
||||||
@ -109,7 +111,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int maciter = PKCS12_DEFAULT_ITER;
|
int maciter = PKCS12_DEFAULT_ITER;
|
||||||
int twopass = 0;
|
int twopass = 0;
|
||||||
int keytype = 0;
|
int keytype = 0;
|
||||||
int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
|
int cert_pbe;
|
||||||
int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
int macver = 1;
|
int macver = 1;
|
||||||
@ -126,6 +128,13 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
apps_startup();
|
apps_startup();
|
||||||
|
|
||||||
|
#ifdef OPENSSL_FIPS
|
||||||
|
if (FIPS_mode())
|
||||||
|
cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
|
||||||
|
|
||||||
enc = EVP_des_ede3_cbc();
|
enc = EVP_des_ede3_cbc();
|
||||||
if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
|
if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
|
||||||
|
|
||||||
@ -152,14 +161,22 @@ int MAIN(int argc, char **argv)
|
|||||||
cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
|
||||||
else if (!strcmp (*args, "-export")) export_cert = 1;
|
else if (!strcmp (*args, "-export")) export_cert = 1;
|
||||||
else if (!strcmp (*args, "-des")) enc=EVP_des_cbc();
|
else if (!strcmp (*args, "-des")) enc=EVP_des_cbc();
|
||||||
|
else if (!strcmp (*args, "-des3")) enc = EVP_des_ede3_cbc();
|
||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
else if (!strcmp (*args, "-idea")) enc=EVP_idea_cbc();
|
else if (!strcmp (*args, "-idea")) enc=EVP_idea_cbc();
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp (*args, "-des3")) enc = EVP_des_ede3_cbc();
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
else if (!strcmp(*args, "-seed")) enc=EVP_seed_cbc();
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
else if (!strcmp(*args,"-aes128")) enc=EVP_aes_128_cbc();
|
else if (!strcmp(*args,"-aes128")) enc=EVP_aes_128_cbc();
|
||||||
else if (!strcmp(*args,"-aes192")) enc=EVP_aes_192_cbc();
|
else if (!strcmp(*args,"-aes192")) enc=EVP_aes_192_cbc();
|
||||||
else if (!strcmp(*args,"-aes256")) enc=EVP_aes_256_cbc();
|
else if (!strcmp(*args,"-aes256")) enc=EVP_aes_256_cbc();
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
else if (!strcmp(*args,"-camellia128")) enc=EVP_camellia_128_cbc();
|
||||||
|
else if (!strcmp(*args,"-camellia192")) enc=EVP_camellia_192_cbc();
|
||||||
|
else if (!strcmp(*args,"-camellia256")) enc=EVP_camellia_256_cbc();
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp (*args, "-noiter")) iter = 1;
|
else if (!strcmp (*args, "-noiter")) iter = 1;
|
||||||
else if (!strcmp (*args, "-maciter"))
|
else if (!strcmp (*args, "-maciter"))
|
||||||
@ -174,7 +191,8 @@ int MAIN(int argc, char **argv)
|
|||||||
args++;
|
args++;
|
||||||
if (!strcmp(*args, "NONE"))
|
if (!strcmp(*args, "NONE"))
|
||||||
cert_pbe = -1;
|
cert_pbe = -1;
|
||||||
cert_pbe=OBJ_txt2nid(*args);
|
else
|
||||||
|
cert_pbe=OBJ_txt2nid(*args);
|
||||||
if(cert_pbe == NID_undef) {
|
if(cert_pbe == NID_undef) {
|
||||||
BIO_printf(bio_err,
|
BIO_printf(bio_err,
|
||||||
"Unknown PBE algorithm %s\n", *args);
|
"Unknown PBE algorithm %s\n", *args);
|
||||||
@ -214,7 +232,9 @@ int MAIN(int argc, char **argv)
|
|||||||
args++;
|
args++;
|
||||||
name = *args;
|
name = *args;
|
||||||
} else badarg = 1;
|
} else badarg = 1;
|
||||||
} else if (!strcmp (*args, "-CSP")) {
|
} else if (!strcmp (*args, "-LMK"))
|
||||||
|
add_lmk = 1;
|
||||||
|
else if (!strcmp (*args, "-CSP")) {
|
||||||
if (args[1]) {
|
if (args[1]) {
|
||||||
args++;
|
args++;
|
||||||
csp_name = *args;
|
csp_name = *args;
|
||||||
@ -299,9 +319,16 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf (bio_err, "-idea encrypt private keys with idea\n");
|
BIO_printf (bio_err, "-idea encrypt private keys with idea\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf (bio_err, "-seed encrypt private keys with seed\n");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
|
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
|
||||||
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
|
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf (bio_err, " encrypt PEM output with cbc camellia\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf (bio_err, "-nodes don't encrypt private keys\n");
|
BIO_printf (bio_err, "-nodes don't encrypt private keys\n");
|
||||||
BIO_printf (bio_err, "-noiter don't use encryption iteration\n");
|
BIO_printf (bio_err, "-noiter don't use encryption iteration\n");
|
||||||
@ -321,6 +348,8 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf(bio_err, "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err, "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
BIO_printf(bio_err, " load the file (or the files in the directory) into\n");
|
BIO_printf(bio_err, " load the file (or the files in the directory) into\n");
|
||||||
BIO_printf(bio_err, " the random number generator\n");
|
BIO_printf(bio_err, " the random number generator\n");
|
||||||
|
BIO_printf(bio_err, "-CSP name Microsoft CSP name\n");
|
||||||
|
BIO_printf(bio_err, "-LMK Add local machine keyset attribute to private key\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,7 +489,7 @@ int MAIN(int argc, char **argv)
|
|||||||
X509_keyid_set1(ucert, NULL, 0);
|
X509_keyid_set1(ucert, NULL, 0);
|
||||||
X509_alias_set1(ucert, NULL, 0);
|
X509_alias_set1(ucert, NULL, 0);
|
||||||
/* Remove from list */
|
/* Remove from list */
|
||||||
sk_X509_delete(certs, i);
|
(void)sk_X509_delete(certs, i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -525,8 +554,11 @@ int MAIN(int argc, char **argv)
|
|||||||
X509_free(sk_X509_value(chain2, 0));
|
X509_free(sk_X509_value(chain2, 0));
|
||||||
sk_X509_free(chain2);
|
sk_X509_free(chain2);
|
||||||
} else {
|
} else {
|
||||||
BIO_printf (bio_err, "Error %s getting chain.\n",
|
if (vret >= 0)
|
||||||
|
BIO_printf (bio_err, "Error %s getting chain.\n",
|
||||||
X509_verify_cert_error_string(vret));
|
X509_verify_cert_error_string(vret));
|
||||||
|
else
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
goto export_end;
|
goto export_end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -542,7 +574,9 @@ int MAIN(int argc, char **argv)
|
|||||||
if (csp_name && key)
|
if (csp_name && key)
|
||||||
EVP_PKEY_add1_attr_by_NID(key, NID_ms_csp_name,
|
EVP_PKEY_add1_attr_by_NID(key, NID_ms_csp_name,
|
||||||
MBSTRING_ASC, (unsigned char *)csp_name, -1);
|
MBSTRING_ASC, (unsigned char *)csp_name, -1);
|
||||||
|
|
||||||
|
if (add_lmk && key)
|
||||||
|
EVP_PKEY_add1_attr_by_NID(key, NID_LocalKeySet, 0, NULL, -1);
|
||||||
|
|
||||||
#ifdef CRYPTO_MDEBUG
|
#ifdef CRYPTO_MDEBUG
|
||||||
CRYPTO_pop_info();
|
CRYPTO_pop_info();
|
||||||
@ -800,7 +834,7 @@ int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain)
|
|||||||
{
|
{
|
||||||
X509_STORE_CTX store_ctx;
|
X509_STORE_CTX store_ctx;
|
||||||
STACK_OF(X509) *chn;
|
STACK_OF(X509) *chn;
|
||||||
int i;
|
int i = 0;
|
||||||
|
|
||||||
/* FIXME: Should really check the return status of X509_STORE_CTX_init
|
/* FIXME: Should really check the return status of X509_STORE_CTX_init
|
||||||
* for an error, but how that fits into the return value of this
|
* for an error, but how that fits into the return value of this
|
||||||
@ -808,13 +842,17 @@ int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain)
|
|||||||
X509_STORE_CTX_init(&store_ctx, store, cert, NULL);
|
X509_STORE_CTX_init(&store_ctx, store, cert, NULL);
|
||||||
if (X509_verify_cert(&store_ctx) <= 0) {
|
if (X509_verify_cert(&store_ctx) <= 0) {
|
||||||
i = X509_STORE_CTX_get_error (&store_ctx);
|
i = X509_STORE_CTX_get_error (&store_ctx);
|
||||||
|
if (i == 0)
|
||||||
|
/* avoid returning 0 if X509_verify_cert() did not
|
||||||
|
* set an appropriate error value in the context */
|
||||||
|
i = -1;
|
||||||
|
chn = NULL;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
} else
|
||||||
chn = X509_STORE_CTX_get1_chain(&store_ctx);
|
chn = X509_STORE_CTX_get1_chain(&store_ctx);
|
||||||
i = 0;
|
|
||||||
*chain = chn;
|
|
||||||
err:
|
err:
|
||||||
X509_STORE_CTX_cleanup(&store_ctx);
|
X509_STORE_CTX_cleanup(&store_ctx);
|
||||||
|
*chain = chn;
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@ -824,12 +862,14 @@ int alg_print (BIO *x, X509_ALGOR *alg)
|
|||||||
PBEPARAM *pbe;
|
PBEPARAM *pbe;
|
||||||
const unsigned char *p;
|
const unsigned char *p;
|
||||||
p = alg->parameter->value.sequence->data;
|
p = alg->parameter->value.sequence->data;
|
||||||
pbe = d2i_PBEPARAM (NULL, &p, alg->parameter->value.sequence->length);
|
pbe = d2i_PBEPARAM(NULL, &p, alg->parameter->value.sequence->length);
|
||||||
|
if (!pbe)
|
||||||
|
return 1;
|
||||||
BIO_printf (bio_err, "%s, Iteration %ld\n",
|
BIO_printf (bio_err, "%s, Iteration %ld\n",
|
||||||
OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)),
|
OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)),
|
||||||
ASN1_INTEGER_get(pbe->iter));
|
ASN1_INTEGER_get(pbe->iter));
|
||||||
PBEPARAM_free (pbe);
|
PBEPARAM_free (pbe);
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load all certificates from a given file */
|
/* Load all certificates from a given file */
|
||||||
|
@ -115,7 +115,7 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
BN_print(bio_out,bn);
|
BN_print(bio_out,bn);
|
||||||
BIO_printf(bio_out," is %sprime\n",
|
BIO_printf(bio_out," is %sprime\n",
|
||||||
BN_is_prime(bn,checks,NULL,NULL,NULL) ? "" : "not ");
|
BN_is_prime_ex(bn,checks,NULL,NULL) ? "" : "not ");
|
||||||
|
|
||||||
BN_free(bn);
|
BN_free(bn);
|
||||||
BIO_free_all(bio_out);
|
BIO_free_all(bio_out);
|
||||||
|
37
apps/progs.h
37
apps/progs.h
@ -28,6 +28,7 @@ extern int speed_main(int argc,char *argv[]);
|
|||||||
extern int s_time_main(int argc,char *argv[]);
|
extern int s_time_main(int argc,char *argv[]);
|
||||||
extern int version_main(int argc,char *argv[]);
|
extern int version_main(int argc,char *argv[]);
|
||||||
extern int pkcs7_main(int argc,char *argv[]);
|
extern int pkcs7_main(int argc,char *argv[]);
|
||||||
|
extern int cms_main(int argc,char *argv[]);
|
||||||
extern int crl2pkcs7_main(int argc,char *argv[]);
|
extern int crl2pkcs7_main(int argc,char *argv[]);
|
||||||
extern int sess_id_main(int argc,char *argv[]);
|
extern int sess_id_main(int argc,char *argv[]);
|
||||||
extern int ciphers_main(int argc,char *argv[]);
|
extern int ciphers_main(int argc,char *argv[]);
|
||||||
@ -109,6 +110,9 @@ FUNCTION functions[] = {
|
|||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_GENERAL,"version",version_main},
|
{FUNC_TYPE_GENERAL,"version",version_main},
|
||||||
{FUNC_TYPE_GENERAL,"pkcs7",pkcs7_main},
|
{FUNC_TYPE_GENERAL,"pkcs7",pkcs7_main},
|
||||||
|
#ifndef OPENSSL_NO_CMS
|
||||||
|
{FUNC_TYPE_GENERAL,"cms",cms_main},
|
||||||
|
#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) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
|
||||||
@ -165,6 +169,24 @@ FUNCTION functions[] = {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
{FUNC_TYPE_CIPHER,"aes-256-ecb",enc_main},
|
{FUNC_TYPE_CIPHER,"aes-256-ecb",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-128-cbc",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-128-ecb",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-192-cbc",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-192-ecb",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-256-cbc",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
{FUNC_TYPE_CIPHER,"camellia-256-ecb",enc_main},
|
||||||
#endif
|
#endif
|
||||||
{FUNC_TYPE_CIPHER,"base64",enc_main},
|
{FUNC_TYPE_CIPHER,"base64",enc_main},
|
||||||
#ifndef OPENSSL_NO_DES
|
#ifndef OPENSSL_NO_DES
|
||||||
@ -179,6 +201,9 @@ FUNCTION functions[] = {
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
{FUNC_TYPE_CIPHER,"idea",enc_main},
|
{FUNC_TYPE_CIPHER,"idea",enc_main},
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
{FUNC_TYPE_CIPHER,"seed",enc_main},
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC4
|
#ifndef OPENSSL_NO_RC4
|
||||||
{FUNC_TYPE_CIPHER,"rc4",enc_main},
|
{FUNC_TYPE_CIPHER,"rc4",enc_main},
|
||||||
#endif
|
#endif
|
||||||
@ -245,6 +270,18 @@ FUNCTION functions[] = {
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
{FUNC_TYPE_CIPHER,"idea-ofb",enc_main},
|
{FUNC_TYPE_CIPHER,"idea-ofb",enc_main},
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
{FUNC_TYPE_CIPHER,"seed-cbc",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
{FUNC_TYPE_CIPHER,"seed-ecb",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
{FUNC_TYPE_CIPHER,"seed-cfb",enc_main},
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
{FUNC_TYPE_CIPHER,"seed-ofb",enc_main},
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
{FUNC_TYPE_CIPHER,"rc2-cbc",enc_main},
|
{FUNC_TYPE_CIPHER,"rc2-cbc",enc_main},
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,6 +43,8 @@ foreach (@ARGV)
|
|||||||
{ print "#ifndef OPENSSL_NO_DH\n${str}#endif\n"; }
|
{ print "#ifndef OPENSSL_NO_DH\n${str}#endif\n"; }
|
||||||
elsif ( ($_ =~ /^pkcs12$/))
|
elsif ( ($_ =~ /^pkcs12$/))
|
||||||
{ print "#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)\n${str}#endif\n"; }
|
{ print "#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)\n${str}#endif\n"; }
|
||||||
|
elsif ( ($_ =~ /^cms$/))
|
||||||
|
{ print "#ifndef OPENSSL_NO_CMS\n${str}#endif\n"; }
|
||||||
else
|
else
|
||||||
{ print $str; }
|
{ print $str; }
|
||||||
}
|
}
|
||||||
@ -57,14 +59,18 @@ foreach (
|
|||||||
"aes-128-cbc", "aes-128-ecb",
|
"aes-128-cbc", "aes-128-ecb",
|
||||||
"aes-192-cbc", "aes-192-ecb",
|
"aes-192-cbc", "aes-192-ecb",
|
||||||
"aes-256-cbc", "aes-256-ecb",
|
"aes-256-cbc", "aes-256-ecb",
|
||||||
|
"camellia-128-cbc", "camellia-128-ecb",
|
||||||
|
"camellia-192-cbc", "camellia-192-ecb",
|
||||||
|
"camellia-256-cbc", "camellia-256-ecb",
|
||||||
"base64",
|
"base64",
|
||||||
"des", "des3", "desx", "idea", "rc4", "rc4-40",
|
"des", "des3", "desx", "idea", "seed", "rc4", "rc4-40",
|
||||||
"rc2", "bf", "cast", "rc5",
|
"rc2", "bf", "cast", "rc5",
|
||||||
"des-ecb", "des-ede", "des-ede3",
|
"des-ecb", "des-ede", "des-ede3",
|
||||||
"des-cbc", "des-ede-cbc","des-ede3-cbc",
|
"des-cbc", "des-ede-cbc","des-ede3-cbc",
|
||||||
"des-cfb", "des-ede-cfb","des-ede3-cfb",
|
"des-cfb", "des-ede-cfb","des-ede3-cfb",
|
||||||
"des-ofb", "des-ede-ofb","des-ede3-ofb",
|
"des-ofb", "des-ede-ofb","des-ede3-ofb",
|
||||||
"idea-cbc","idea-ecb", "idea-cfb", "idea-ofb",
|
"idea-cbc","idea-ecb", "idea-cfb", "idea-ofb",
|
||||||
|
"seed-cbc","seed-ecb", "seed-cfb", "seed-ofb",
|
||||||
"rc2-cbc", "rc2-ecb", "rc2-cfb","rc2-ofb", "rc2-64-cbc", "rc2-40-cbc",
|
"rc2-cbc", "rc2-ecb", "rc2-cfb","rc2-ofb", "rc2-64-cbc", "rc2-40-cbc",
|
||||||
"bf-cbc", "bf-ecb", "bf-cfb", "bf-ofb",
|
"bf-cbc", "bf-ecb", "bf-cfb", "bf-ofb",
|
||||||
"cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
|
"cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
|
||||||
@ -75,7 +81,9 @@ foreach (
|
|||||||
$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
|
$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
|
||||||
if ($_ =~ /des/) { $t="#ifndef OPENSSL_NO_DES\n${t}#endif\n"; }
|
if ($_ =~ /des/) { $t="#ifndef OPENSSL_NO_DES\n${t}#endif\n"; }
|
||||||
elsif ($_ =~ /aes/) { $t="#ifndef OPENSSL_NO_AES\n${t}#endif\n"; }
|
elsif ($_ =~ /aes/) { $t="#ifndef OPENSSL_NO_AES\n${t}#endif\n"; }
|
||||||
|
elsif ($_ =~ /camellia/) { $t="#ifndef OPENSSL_NO_CAMELLIA\n${t}#endif\n"; }
|
||||||
elsif ($_ =~ /idea/) { $t="#ifndef OPENSSL_NO_IDEA\n${t}#endif\n"; }
|
elsif ($_ =~ /idea/) { $t="#ifndef OPENSSL_NO_IDEA\n${t}#endif\n"; }
|
||||||
|
elsif ($_ =~ /seed/) { $t="#ifndef OPENSSL_NO_SEED\n${t}#endif\n"; }
|
||||||
elsif ($_ =~ /rc4/) { $t="#ifndef OPENSSL_NO_RC4\n${t}#endif\n"; }
|
elsif ($_ =~ /rc4/) { $t="#ifndef OPENSSL_NO_RC4\n${t}#endif\n"; }
|
||||||
elsif ($_ =~ /rc2/) { $t="#ifndef OPENSSL_NO_RC2\n${t}#endif\n"; }
|
elsif ($_ =~ /rc2/) { $t="#ifndef OPENSSL_NO_RC2\n${t}#endif\n"; }
|
||||||
elsif ($_ =~ /bf/) { $t="#ifndef OPENSSL_NO_BF\n${t}#endif\n"; }
|
elsif ($_ =~ /bf/) { $t="#ifndef OPENSSL_NO_BF\n${t}#endif\n"; }
|
||||||
|
@ -213,7 +213,7 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_write(out, buf, chunk);
|
BIO_write(out, buf, chunk);
|
||||||
num -= chunk;
|
num -= chunk;
|
||||||
}
|
}
|
||||||
BIO_flush(out);
|
(void)BIO_flush(out);
|
||||||
|
|
||||||
app_RAND_write_file(NULL, bio_err);
|
app_RAND_write_file(NULL, bio_err);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
12
apps/req.c
12
apps/req.c
@ -79,6 +79,13 @@
|
|||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
#ifndef OPENSSL_NO_RSA
|
||||||
|
#include <openssl/rsa.h>
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DSA
|
||||||
|
#include <openssl/dsa.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SECTION "req"
|
#define SECTION "req"
|
||||||
|
|
||||||
@ -712,8 +719,7 @@ bad:
|
|||||||
message */
|
message */
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
if (EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA ||
|
else
|
||||||
EVP_PKEY_type(pkey->type) == EVP_PKEY_EC)
|
|
||||||
{
|
{
|
||||||
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
||||||
if (randfile == NULL)
|
if (randfile == NULL)
|
||||||
@ -724,7 +730,9 @@ bad:
|
|||||||
|
|
||||||
if (newreq && (pkey == NULL))
|
if (newreq && (pkey == NULL))
|
||||||
{
|
{
|
||||||
|
#ifndef OPENSSL_NO_RSA
|
||||||
BN_GENCB cb;
|
BN_GENCB cb;
|
||||||
|
#endif
|
||||||
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
|
||||||
if (randfile == NULL)
|
if (randfile == NULL)
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
|
12
apps/rsa.c
12
apps/rsa.c
@ -56,6 +56,7 @@
|
|||||||
* [including the GNU Public Licence.]
|
* [including the GNU Public Licence.]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -80,9 +81,13 @@
|
|||||||
* -des - encrypt output if PEM format with DES in cbc mode
|
* -des - encrypt output if PEM format with DES in cbc mode
|
||||||
* -des3 - encrypt output if PEM format
|
* -des3 - encrypt output if PEM format
|
||||||
* -idea - encrypt output if PEM format
|
* -idea - encrypt output if PEM format
|
||||||
|
* -seed - encrypt output if PEM format
|
||||||
* -aes128 - encrypt output if PEM format
|
* -aes128 - encrypt output if PEM format
|
||||||
* -aes192 - encrypt output if PEM format
|
* -aes192 - encrypt output if PEM format
|
||||||
* -aes256 - encrypt output if PEM format
|
* -aes256 - encrypt output if PEM format
|
||||||
|
* -camellia128 - encrypt output if PEM format
|
||||||
|
* -camellia192 - encrypt output if PEM format
|
||||||
|
* -camellia256 - encrypt output if PEM format
|
||||||
* -text - print a text version
|
* -text - print a text version
|
||||||
* -modulus - print the RSA key modulus
|
* -modulus - print the RSA key modulus
|
||||||
* -check - verify key consistency
|
* -check - verify key consistency
|
||||||
@ -207,9 +212,16 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf(bio_err," -idea encrypt PEM output with cbc idea\n");
|
BIO_printf(bio_err," -idea encrypt PEM output with cbc idea\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err," -seed encrypt PEM output with cbc seed\n");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
|
||||||
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
BIO_printf(bio_err," encrypt PEM output with cbc aes\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf(bio_err," encrypt PEM output with cbc camellia\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -text print the key in text\n");
|
BIO_printf(bio_err," -text print the key in text\n");
|
||||||
BIO_printf(bio_err," -noout don't print key out\n");
|
BIO_printf(bio_err," -noout don't print key out\n");
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <openssl/opensslconf.h>
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
@ -118,24 +119,36 @@ int MAIN(int argc, char **argv)
|
|||||||
while(argc >= 1)
|
while(argc >= 1)
|
||||||
{
|
{
|
||||||
if (!strcmp(*argv,"-in")) {
|
if (!strcmp(*argv,"-in")) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
infile= *(++argv);
|
badarg = 1;
|
||||||
|
else
|
||||||
|
infile= *(++argv);
|
||||||
} else if (!strcmp(*argv,"-out")) {
|
} else if (!strcmp(*argv,"-out")) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
outfile= *(++argv);
|
badarg = 1;
|
||||||
|
else
|
||||||
|
outfile= *(++argv);
|
||||||
} else if(!strcmp(*argv, "-inkey")) {
|
} else if(!strcmp(*argv, "-inkey")) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
keyfile = *(++argv);
|
badarg = 1;
|
||||||
|
else
|
||||||
|
keyfile = *(++argv);
|
||||||
} else if (!strcmp(*argv,"-passin")) {
|
} else if (!strcmp(*argv,"-passin")) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
passargin= *(++argv);
|
badarg = 1;
|
||||||
|
else
|
||||||
|
passargin= *(++argv);
|
||||||
} else if (strcmp(*argv,"-keyform") == 0) {
|
} else if (strcmp(*argv,"-keyform") == 0) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
keyform=str2fmt(*(++argv));
|
badarg = 1;
|
||||||
|
else
|
||||||
|
keyform=str2fmt(*(++argv));
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
} else if(!strcmp(*argv, "-engine")) {
|
} else if(!strcmp(*argv, "-engine")) {
|
||||||
if (--argc < 1) badarg = 1;
|
if (--argc < 1)
|
||||||
engine = *(++argv);
|
badarg = 1;
|
||||||
|
else
|
||||||
|
engine = *(++argv);
|
||||||
#endif
|
#endif
|
||||||
} else if(!strcmp(*argv, "-pubin")) {
|
} else if(!strcmp(*argv, "-pubin")) {
|
||||||
key_type = KEY_PUBKEY;
|
key_type = KEY_PUBKEY;
|
||||||
|
@ -167,4 +167,7 @@ long MS_CALLBACK bio_dump_callback(BIO *bio, int cmd, const char *argp,
|
|||||||
#ifdef HEADER_SSL_H
|
#ifdef HEADER_SSL_H
|
||||||
void MS_CALLBACK apps_ssl_info_callback(const SSL *s, int where, int ret);
|
void MS_CALLBACK 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 MS_CALLBACK 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,
|
||||||
|
unsigned char *data, int len,
|
||||||
|
void *arg);
|
||||||
#endif
|
#endif
|
||||||
|
61
apps/s_cb.c
61
apps/s_cb.c
@ -573,5 +573,64 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
|
|||||||
BIO_printf(bio, " ...");
|
BIO_printf(bio, " ...");
|
||||||
BIO_printf(bio, "\n");
|
BIO_printf(bio, "\n");
|
||||||
}
|
}
|
||||||
BIO_flush(bio);
|
(void)BIO_flush(bio);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MS_CALLBACK tlsext_cb(SSL *s, int client_server, int type,
|
||||||
|
unsigned char *data, int len,
|
||||||
|
void *arg)
|
||||||
|
{
|
||||||
|
BIO *bio = arg;
|
||||||
|
char *extname;
|
||||||
|
|
||||||
|
switch(type)
|
||||||
|
{
|
||||||
|
case TLSEXT_TYPE_server_name:
|
||||||
|
extname = "server name";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_max_fragment_length:
|
||||||
|
extname = "max fragment length";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_client_certificate_url:
|
||||||
|
extname = "client certificate URL";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_trusted_ca_keys:
|
||||||
|
extname = "trusted CA keys";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_truncated_hmac:
|
||||||
|
extname = "truncated HMAC";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_status_request:
|
||||||
|
extname = "status request";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_elliptic_curves:
|
||||||
|
extname = "elliptic curves";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_ec_point_formats:
|
||||||
|
extname = "EC point formats";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case TLSEXT_TYPE_session_ticket:
|
||||||
|
extname = "server ticket";
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
extname = "unknown";
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BIO_printf(bio, "TLS %s extension \"%s\" (id=%d), len=%d\n",
|
||||||
|
client_server ? "server": "client",
|
||||||
|
extname, type, len);
|
||||||
|
BIO_dump(bio, (char *)data, len);
|
||||||
|
(void)BIO_flush(bio);
|
||||||
}
|
}
|
||||||
|
331
apps/s_client.c
331
apps/s_client.c
@ -134,6 +134,7 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
#include <openssl/ocsp.h>
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
#include "timeouts.h"
|
#include "timeouts.h"
|
||||||
|
|
||||||
@ -171,11 +172,18 @@ static int c_nbio=0;
|
|||||||
#endif
|
#endif
|
||||||
static int c_Pause=0;
|
static int c_Pause=0;
|
||||||
static int c_debug=0;
|
static int c_debug=0;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
static int c_tlsextdebug=0;
|
||||||
|
static int c_status_req=0;
|
||||||
|
#endif
|
||||||
static int c_msg=0;
|
static int c_msg=0;
|
||||||
static int c_showcerts=0;
|
static int c_showcerts=0;
|
||||||
|
|
||||||
static void sc_usage(void);
|
static void sc_usage(void);
|
||||||
static void print_stuff(BIO *berr,SSL *con,int full);
|
static void print_stuff(BIO *berr,SSL *con,int full);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
static int ocsp_resp_cb(SSL *s, void *arg);
|
||||||
|
#endif
|
||||||
static BIO *bio_c_out=NULL;
|
static BIO *bio_c_out=NULL;
|
||||||
static int c_quiet=0;
|
static int c_quiet=0;
|
||||||
static int c_ign_eof=0;
|
static int c_ign_eof=0;
|
||||||
@ -188,7 +196,7 @@ static void sc_usage(void)
|
|||||||
BIO_printf(bio_err," -port port - use -connect instead\n");
|
BIO_printf(bio_err," -port port - use -connect instead\n");
|
||||||
BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR);
|
BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR);
|
||||||
|
|
||||||
BIO_printf(bio_err," -verify arg - turn on peer certificate verification\n");
|
BIO_printf(bio_err," -verify depth - turn on peer certificate verification\n");
|
||||||
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
|
BIO_printf(bio_err," -cert arg - certificate file to use, PEM format assumed\n");
|
||||||
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
||||||
BIO_printf(bio_err," -key arg - Private key file to use, in cert file if\n");
|
BIO_printf(bio_err," -key arg - Private key file to use, in cert file if\n");
|
||||||
@ -226,14 +234,51 @@ static void sc_usage(void)
|
|||||||
BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
|
BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
|
||||||
BIO_printf(bio_err," for those protocols that support it, where\n");
|
BIO_printf(bio_err," for those protocols that support it, where\n");
|
||||||
BIO_printf(bio_err," 'prot' defines which one to assume. Currently,\n");
|
BIO_printf(bio_err," 'prot' defines which one to assume. Currently,\n");
|
||||||
BIO_printf(bio_err," only \"smtp\" and \"pop3\" are supported.\n");
|
BIO_printf(bio_err," only \"smtp\", \"pop3\", \"imap\", and \"ftp\" are supported.\n");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
|
BIO_printf(bio_err," -engine id - Initialise and use the specified engine\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
|
BIO_printf(bio_err," -sess_out arg - file to write SSL session to\n");
|
||||||
|
BIO_printf(bio_err," -sess_in arg - file to read SSL session from\n");
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
BIO_printf(bio_err," -servername host - Set TLS extension servername in ClientHello\n");
|
||||||
|
BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n");
|
||||||
|
BIO_printf(bio_err," -status - request certificate status from server\n");
|
||||||
|
BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
|
||||||
|
/* This is a context that we pass to callbacks */
|
||||||
|
typedef struct tlsextctx_st {
|
||||||
|
BIO * biodebug;
|
||||||
|
int ack;
|
||||||
|
} tlsextctx;
|
||||||
|
|
||||||
|
|
||||||
|
static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg)
|
||||||
|
{
|
||||||
|
tlsextctx * p = (tlsextctx *) arg;
|
||||||
|
const char * hn= SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
|
||||||
|
if (SSL_get_servername_type(s) != -1)
|
||||||
|
p->ack = !SSL_session_reused(s) && hn != NULL;
|
||||||
|
else
|
||||||
|
BIO_printf(bio_err,"Can't use SSL_get_servername\n");
|
||||||
|
|
||||||
|
return SSL_TLSEXT_ERR_OK;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
PROTO_OFF = 0,
|
||||||
|
PROTO_SMTP,
|
||||||
|
PROTO_POP3,
|
||||||
|
PROTO_IMAP,
|
||||||
|
PROTO_FTP
|
||||||
|
};
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char **argv)
|
int MAIN(int argc, char **argv)
|
||||||
@ -260,20 +305,32 @@ int MAIN(int argc, char **argv)
|
|||||||
int write_tty,read_tty,write_ssl,read_ssl,tty_on,ssl_pending;
|
int write_tty,read_tty,write_ssl,read_ssl,tty_on,ssl_pending;
|
||||||
SSL_CTX *ctx=NULL;
|
SSL_CTX *ctx=NULL;
|
||||||
int ret=1,in_init=1,i,nbio_test=0;
|
int ret=1,in_init=1,i,nbio_test=0;
|
||||||
int starttls_proto = 0;
|
int starttls_proto = PROTO_OFF;
|
||||||
int prexit = 0, vflags = 0;
|
int prexit = 0, vflags = 0;
|
||||||
SSL_METHOD *meth=NULL;
|
SSL_METHOD *meth=NULL;
|
||||||
|
#ifdef sock_type
|
||||||
|
#undef sock_type
|
||||||
|
#endif
|
||||||
int sock_type=SOCK_STREAM;
|
int sock_type=SOCK_STREAM;
|
||||||
BIO *sbio;
|
BIO *sbio;
|
||||||
char *inrand=NULL;
|
char *inrand=NULL;
|
||||||
|
int mbuf_len=0;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
char *engine_id=NULL;
|
char *engine_id=NULL;
|
||||||
ENGINE *e=NULL;
|
char *ssl_client_engine_id=NULL;
|
||||||
|
ENGINE *e=NULL, *ssl_client_engine=NULL;
|
||||||
#endif
|
#endif
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_NETWARE)
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
char *servername = NULL;
|
||||||
|
tlsextctx tlsextcbp =
|
||||||
|
{NULL,0};
|
||||||
|
#endif
|
||||||
|
char *sess_in = NULL;
|
||||||
|
char *sess_out = NULL;
|
||||||
struct sockaddr peer;
|
struct sockaddr peer;
|
||||||
int peerlen = sizeof(peer);
|
int peerlen = sizeof(peer);
|
||||||
int enable_timeouts = 0 ;
|
int enable_timeouts = 0 ;
|
||||||
@ -348,6 +405,16 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
cert_file= *(++argv);
|
cert_file= *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-sess_out") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
sess_out = *(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-sess_in") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
sess_in = *(++argv);
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-certform") == 0)
|
else if (strcmp(*argv,"-certform") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@ -372,6 +439,12 @@ int MAIN(int argc, char **argv)
|
|||||||
c_Pause=1;
|
c_Pause=1;
|
||||||
else if (strcmp(*argv,"-debug") == 0)
|
else if (strcmp(*argv,"-debug") == 0)
|
||||||
c_debug=1;
|
c_debug=1;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-tlsextdebug") == 0)
|
||||||
|
c_tlsextdebug=1;
|
||||||
|
else if (strcmp(*argv,"-status") == 0)
|
||||||
|
c_status_req=1;
|
||||||
|
#endif
|
||||||
#ifdef WATT32
|
#ifdef WATT32
|
||||||
else if (strcmp(*argv,"-wdebug") == 0)
|
else if (strcmp(*argv,"-wdebug") == 0)
|
||||||
dbug_init();
|
dbug_init();
|
||||||
@ -447,6 +520,10 @@ int MAIN(int argc, char **argv)
|
|||||||
off|=SSL_OP_NO_SSLv3;
|
off|=SSL_OP_NO_SSLv3;
|
||||||
else if (strcmp(*argv,"-no_ssl2") == 0)
|
else if (strcmp(*argv,"-no_ssl2") == 0)
|
||||||
off|=SSL_OP_NO_SSLv2;
|
off|=SSL_OP_NO_SSLv2;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-no_ticket") == 0)
|
||||||
|
{ off|=SSL_OP_NO_TICKET; }
|
||||||
|
#endif
|
||||||
else if (strcmp(*argv,"-serverpref") == 0)
|
else if (strcmp(*argv,"-serverpref") == 0)
|
||||||
off|=SSL_OP_CIPHER_SERVER_PREFERENCE;
|
off|=SSL_OP_CIPHER_SERVER_PREFERENCE;
|
||||||
else if (strcmp(*argv,"-cipher") == 0)
|
else if (strcmp(*argv,"-cipher") == 0)
|
||||||
@ -463,9 +540,13 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
++argv;
|
++argv;
|
||||||
if (strcmp(*argv,"smtp") == 0)
|
if (strcmp(*argv,"smtp") == 0)
|
||||||
starttls_proto = 1;
|
starttls_proto = PROTO_SMTP;
|
||||||
else if (strcmp(*argv,"pop3") == 0)
|
else if (strcmp(*argv,"pop3") == 0)
|
||||||
starttls_proto = 2;
|
starttls_proto = PROTO_POP3;
|
||||||
|
else if (strcmp(*argv,"imap") == 0)
|
||||||
|
starttls_proto = PROTO_IMAP;
|
||||||
|
else if (strcmp(*argv,"ftp") == 0)
|
||||||
|
starttls_proto = PROTO_FTP;
|
||||||
else
|
else
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
@ -475,12 +556,25 @@ int MAIN(int argc, char **argv)
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
engine_id = *(++argv);
|
engine_id = *(++argv);
|
||||||
}
|
}
|
||||||
|
else if (strcmp(*argv,"-ssl_client_engine") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
ssl_client_engine_id = *(++argv);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (strcmp(*argv,"-rand") == 0)
|
else if (strcmp(*argv,"-rand") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
inrand= *(++argv);
|
inrand= *(++argv);
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-servername") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
servername= *(++argv);
|
||||||
|
/* meth=TLSv1_client_method(); */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||||
@ -502,6 +596,16 @@ bad:
|
|||||||
|
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
e = setup_engine(bio_err, engine_id, 1);
|
e = setup_engine(bio_err, engine_id, 1);
|
||||||
|
if (ssl_client_engine_id)
|
||||||
|
{
|
||||||
|
ssl_client_engine = ENGINE_by_id(ssl_client_engine_id);
|
||||||
|
if (!ssl_client_engine)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"Error getting client auth engine\n");
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!app_passwd(bio_err, passarg, NULL, &pass, NULL))
|
if (!app_passwd(bio_err, passarg, NULL, &pass, NULL))
|
||||||
{
|
{
|
||||||
@ -569,6 +673,20 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
if (ssl_client_engine)
|
||||||
|
{
|
||||||
|
if (!SSL_CTX_set_client_cert_engine(ctx, ssl_client_engine))
|
||||||
|
{
|
||||||
|
BIO_puts(bio_err, "Error setting client auth engine\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
ENGINE_free(ssl_client_engine);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
ENGINE_free(ssl_client_engine);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (bugs)
|
if (bugs)
|
||||||
SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
|
SSL_CTX_set_options(ctx,SSL_OP_ALL|off);
|
||||||
else
|
else
|
||||||
@ -604,8 +722,51 @@ bad:
|
|||||||
|
|
||||||
store = SSL_CTX_get_cert_store(ctx);
|
store = SSL_CTX_get_cert_store(ctx);
|
||||||
X509_STORE_set_flags(store, vflags);
|
X509_STORE_set_flags(store, vflags);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (servername != NULL)
|
||||||
|
{
|
||||||
|
tlsextcbp.biodebug = bio_err;
|
||||||
|
SSL_CTX_set_tlsext_servername_callback(ctx, ssl_servername_cb);
|
||||||
|
SSL_CTX_set_tlsext_servername_arg(ctx, &tlsextcbp);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
con=SSL_new(ctx);
|
con=SSL_new(ctx);
|
||||||
|
if (sess_in)
|
||||||
|
{
|
||||||
|
SSL_SESSION *sess;
|
||||||
|
BIO *stmp = BIO_new_file(sess_in, "r");
|
||||||
|
if (!stmp)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Can't open session file %s\n",
|
||||||
|
sess_in);
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
sess = PEM_read_bio_SSL_SESSION(stmp, NULL, 0, NULL);
|
||||||
|
BIO_free(stmp);
|
||||||
|
if (!sess)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Can't open session file %s\n",
|
||||||
|
sess_in);
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
SSL_set_session(con, sess);
|
||||||
|
SSL_SESSION_free(sess);
|
||||||
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (servername != NULL)
|
||||||
|
{
|
||||||
|
if (!SSL_set_tlsext_host_name(con,servername))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"Unable to set TLS servername extension.\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if (con && (con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if (con && (con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@ -651,7 +812,7 @@ re_start:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
BIO_ctrl_set_connected(sbio, 1, &peer);
|
(void)BIO_ctrl_set_connected(sbio, 1, &peer);
|
||||||
|
|
||||||
if ( enable_timeouts)
|
if ( enable_timeouts)
|
||||||
{
|
{
|
||||||
@ -690,13 +851,37 @@ re_start:
|
|||||||
{
|
{
|
||||||
con->debug=1;
|
con->debug=1;
|
||||||
BIO_set_callback(sbio,bio_dump_callback);
|
BIO_set_callback(sbio,bio_dump_callback);
|
||||||
BIO_set_callback_arg(sbio,bio_c_out);
|
BIO_set_callback_arg(sbio,(char *)bio_c_out);
|
||||||
}
|
}
|
||||||
if (c_msg)
|
if (c_msg)
|
||||||
{
|
{
|
||||||
SSL_set_msg_callback(con, msg_cb);
|
SSL_set_msg_callback(con, msg_cb);
|
||||||
SSL_set_msg_callback_arg(con, bio_c_out);
|
SSL_set_msg_callback_arg(con, bio_c_out);
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (c_tlsextdebug)
|
||||||
|
{
|
||||||
|
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
||||||
|
SSL_set_tlsext_debug_arg(con, bio_c_out);
|
||||||
|
}
|
||||||
|
if (c_status_req)
|
||||||
|
{
|
||||||
|
SSL_set_tlsext_status_type(con, TLSEXT_STATUSTYPE_ocsp);
|
||||||
|
SSL_CTX_set_tlsext_status_cb(ctx, ocsp_resp_cb);
|
||||||
|
SSL_CTX_set_tlsext_status_arg(ctx, bio_c_out);
|
||||||
|
#if 0
|
||||||
|
{
|
||||||
|
STACK_OF(OCSP_RESPID) *ids = sk_OCSP_RESPID_new_null();
|
||||||
|
OCSP_RESPID *id = OCSP_RESPID_new();
|
||||||
|
id->value.byKey = ASN1_OCTET_STRING_new();
|
||||||
|
id->type = V_OCSP_RESPID_KEY;
|
||||||
|
ASN1_STRING_set(id->value.byKey, "Hello World", -1);
|
||||||
|
sk_OCSP_RESPID_push(ids, id);
|
||||||
|
SSL_set_tlsext_status_ids(con, ids);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
SSL_set_bio(con,sbio,sbio);
|
SSL_set_bio(con,sbio,sbio);
|
||||||
SSL_set_connect_state(con);
|
SSL_set_connect_state(con);
|
||||||
@ -716,18 +901,93 @@ re_start:
|
|||||||
sbuf_off=0;
|
sbuf_off=0;
|
||||||
|
|
||||||
/* This is an ugly hack that does a lot of assumptions */
|
/* This is an ugly hack that does a lot of assumptions */
|
||||||
if (starttls_proto == 1)
|
/* We do have to handle multi-line responses which may come
|
||||||
|
in a single packet or not. We therefore have to use
|
||||||
|
BIO_gets() which does need a buffering BIO. So during
|
||||||
|
the initial chitchat we do push a buffering BIO into the
|
||||||
|
chain that is removed again later on to not disturb the
|
||||||
|
rest of the s_client operation. */
|
||||||
|
if (starttls_proto == PROTO_SMTP)
|
||||||
{
|
{
|
||||||
BIO_read(sbio,mbuf,BUFSIZZ);
|
int foundit=0;
|
||||||
|
BIO *fbio = BIO_new(BIO_f_buffer());
|
||||||
|
BIO_push(fbio, sbio);
|
||||||
|
/* wait for multi-line response to end from SMTP */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
|
||||||
|
}
|
||||||
|
while (mbuf_len>3 && mbuf[3]=='-');
|
||||||
|
/* STARTTLS command requires EHLO... */
|
||||||
|
BIO_printf(fbio,"EHLO openssl.client.net\r\n");
|
||||||
|
(void)BIO_flush(fbio);
|
||||||
|
/* wait for multi-line response to end EHLO SMTP response */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
|
||||||
|
if (strstr(mbuf,"STARTTLS"))
|
||||||
|
foundit=1;
|
||||||
|
}
|
||||||
|
while (mbuf_len>3 && mbuf[3]=='-');
|
||||||
|
(void)BIO_flush(fbio);
|
||||||
|
BIO_pop(fbio);
|
||||||
|
BIO_free(fbio);
|
||||||
|
if (!foundit)
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"didn't found starttls in server response,"
|
||||||
|
" try anyway...\n");
|
||||||
BIO_printf(sbio,"STARTTLS\r\n");
|
BIO_printf(sbio,"STARTTLS\r\n");
|
||||||
BIO_read(sbio,sbuf,BUFSIZZ);
|
BIO_read(sbio,sbuf,BUFSIZZ);
|
||||||
}
|
}
|
||||||
if (starttls_proto == 2)
|
else if (starttls_proto == PROTO_POP3)
|
||||||
{
|
{
|
||||||
BIO_read(sbio,mbuf,BUFSIZZ);
|
BIO_read(sbio,mbuf,BUFSIZZ);
|
||||||
BIO_printf(sbio,"STLS\r\n");
|
BIO_printf(sbio,"STLS\r\n");
|
||||||
BIO_read(sbio,sbuf,BUFSIZZ);
|
BIO_read(sbio,sbuf,BUFSIZZ);
|
||||||
}
|
}
|
||||||
|
else if (starttls_proto == PROTO_IMAP)
|
||||||
|
{
|
||||||
|
int foundit=0;
|
||||||
|
BIO *fbio = BIO_new(BIO_f_buffer());
|
||||||
|
BIO_push(fbio, sbio);
|
||||||
|
BIO_gets(fbio,mbuf,BUFSIZZ);
|
||||||
|
/* STARTTLS command requires CAPABILITY... */
|
||||||
|
BIO_printf(fbio,". CAPABILITY\r\n");
|
||||||
|
(void)BIO_flush(fbio);
|
||||||
|
/* wait for multi-line CAPABILITY response */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
|
||||||
|
if (strstr(mbuf,"STARTTLS"))
|
||||||
|
foundit=1;
|
||||||
|
}
|
||||||
|
while (mbuf_len>3 && mbuf[0]!='.');
|
||||||
|
(void)BIO_flush(fbio);
|
||||||
|
BIO_pop(fbio);
|
||||||
|
BIO_free(fbio);
|
||||||
|
if (!foundit)
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"didn't found STARTTLS in server response,"
|
||||||
|
" try anyway...\n");
|
||||||
|
BIO_printf(sbio,". STARTTLS\r\n");
|
||||||
|
BIO_read(sbio,sbuf,BUFSIZZ);
|
||||||
|
}
|
||||||
|
else if (starttls_proto == PROTO_FTP)
|
||||||
|
{
|
||||||
|
BIO *fbio = BIO_new(BIO_f_buffer());
|
||||||
|
BIO_push(fbio, sbio);
|
||||||
|
/* wait for multi-line response to end from FTP */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
|
||||||
|
}
|
||||||
|
while (mbuf_len>3 && mbuf[3]=='-');
|
||||||
|
(void)BIO_flush(fbio);
|
||||||
|
BIO_pop(fbio);
|
||||||
|
BIO_free(fbio);
|
||||||
|
BIO_printf(sbio,"AUTH TLS\r\n");
|
||||||
|
BIO_read(sbio,sbuf,BUFSIZZ);
|
||||||
|
}
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@ -745,6 +1005,17 @@ re_start:
|
|||||||
if (in_init)
|
if (in_init)
|
||||||
{
|
{
|
||||||
in_init=0;
|
in_init=0;
|
||||||
|
if (sess_out)
|
||||||
|
{
|
||||||
|
BIO *stmp = BIO_new_file(sess_out, "w");
|
||||||
|
if (stmp)
|
||||||
|
{
|
||||||
|
PEM_write_bio_SSL_SESSION(stmp, SSL_get_session(con));
|
||||||
|
BIO_free(stmp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
BIO_printf(bio_err, "Error writing session file %s\n", sess_out);
|
||||||
|
}
|
||||||
print_stuff(bio_c_out,con,full_log);
|
print_stuff(bio_c_out,con,full_log);
|
||||||
if (full_log > 0) full_log--;
|
if (full_log > 0) full_log--;
|
||||||
|
|
||||||
@ -752,7 +1023,7 @@ re_start:
|
|||||||
{
|
{
|
||||||
BIO_printf(bio_err,"%s",mbuf);
|
BIO_printf(bio_err,"%s",mbuf);
|
||||||
/* We don't need to know any more */
|
/* We don't need to know any more */
|
||||||
starttls_proto = 0;
|
starttls_proto = PROTO_OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reconnect)
|
if (reconnect)
|
||||||
@ -1093,7 +1364,9 @@ static void print_stuff(BIO *bio, SSL *s, int full)
|
|||||||
SSL_CIPHER *c;
|
SSL_CIPHER *c;
|
||||||
X509_NAME *xn;
|
X509_NAME *xn;
|
||||||
int j,i;
|
int j,i;
|
||||||
|
#ifndef OPENSSL_NO_COMP
|
||||||
const COMP_METHOD *comp, *expansion;
|
const COMP_METHOD *comp, *expansion;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (full)
|
if (full)
|
||||||
{
|
{
|
||||||
@ -1196,17 +1469,47 @@ static void print_stuff(BIO *bio, SSL *s, int full)
|
|||||||
EVP_PKEY_bits(pktmp));
|
EVP_PKEY_bits(pktmp));
|
||||||
EVP_PKEY_free(pktmp);
|
EVP_PKEY_free(pktmp);
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_COMP
|
||||||
comp=SSL_get_current_compression(s);
|
comp=SSL_get_current_compression(s);
|
||||||
expansion=SSL_get_current_expansion(s);
|
expansion=SSL_get_current_expansion(s);
|
||||||
BIO_printf(bio,"Compression: %s\n",
|
BIO_printf(bio,"Compression: %s\n",
|
||||||
comp ? SSL_COMP_get_name(comp) : "NONE");
|
comp ? SSL_COMP_get_name(comp) : "NONE");
|
||||||
BIO_printf(bio,"Expansion: %s\n",
|
BIO_printf(bio,"Expansion: %s\n",
|
||||||
expansion ? SSL_COMP_get_name(expansion) : "NONE");
|
expansion ? SSL_COMP_get_name(expansion) : "NONE");
|
||||||
|
#endif
|
||||||
SSL_SESSION_print(bio,SSL_get_session(s));
|
SSL_SESSION_print(bio,SSL_get_session(s));
|
||||||
BIO_printf(bio,"---\n");
|
BIO_printf(bio,"---\n");
|
||||||
if (peer != NULL)
|
if (peer != NULL)
|
||||||
X509_free(peer);
|
X509_free(peer);
|
||||||
/* flush, or debugging output gets mixed with http response */
|
/* flush, or debugging output gets mixed with http response */
|
||||||
BIO_flush(bio);
|
(void)BIO_flush(bio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
|
||||||
|
static int ocsp_resp_cb(SSL *s, void *arg)
|
||||||
|
{
|
||||||
|
const unsigned char *p;
|
||||||
|
int len;
|
||||||
|
OCSP_RESPONSE *rsp;
|
||||||
|
len = SSL_get_tlsext_status_ocsp_resp(s, &p);
|
||||||
|
BIO_puts(arg, "OCSP response: ");
|
||||||
|
if (!p)
|
||||||
|
{
|
||||||
|
BIO_puts(arg, "no response sent\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
rsp = d2i_OCSP_RESPONSE(NULL, &p, len);
|
||||||
|
if (!rsp)
|
||||||
|
{
|
||||||
|
BIO_puts(arg, "response parse error\n");
|
||||||
|
BIO_dump_indent(arg, (char *)p, len, 4);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
BIO_puts(arg, "\n======================================\n");
|
||||||
|
OCSP_RESPONSE_print(arg, rsp, 0);
|
||||||
|
BIO_puts(arg, "======================================\n");
|
||||||
|
OCSP_RESPONSE_free(rsp);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif /* ndef OPENSSL_NO_TLSEXT */
|
||||||
|
522
apps/s_server.c
522
apps/s_server.c
@ -153,6 +153,13 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
|
#include <openssl/ocsp.h>
|
||||||
|
#ifndef OPENSSL_NO_DH
|
||||||
|
#include <openssl/dh.h>
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_RSA
|
||||||
|
#include <openssl/rsa.h>
|
||||||
|
#endif
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
#include "timeouts.h"
|
#include "timeouts.h"
|
||||||
|
|
||||||
@ -232,6 +239,9 @@ static int bufsize=BUFSIZZ;
|
|||||||
static int accept_socket= -1;
|
static int accept_socket= -1;
|
||||||
|
|
||||||
#define TEST_CERT "server.pem"
|
#define TEST_CERT "server.pem"
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
#define TEST_CERT2 "server2.pem"
|
||||||
|
#endif
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG s_server_main
|
#define PROG s_server_main
|
||||||
|
|
||||||
@ -241,6 +251,9 @@ static char *cipher=NULL;
|
|||||||
static int s_server_verify=SSL_VERIFY_NONE;
|
static int s_server_verify=SSL_VERIFY_NONE;
|
||||||
static int s_server_session_id_context = 1; /* anything will do */
|
static int s_server_session_id_context = 1; /* anything will do */
|
||||||
static const char *s_cert_file=TEST_CERT,*s_key_file=NULL;
|
static const char *s_cert_file=TEST_CERT,*s_key_file=NULL;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
static const char *s_cert_file2=TEST_CERT2,*s_key_file2=NULL;
|
||||||
|
#endif
|
||||||
static char *s_dcert_file=NULL,*s_dkey_file=NULL;
|
static char *s_dcert_file=NULL,*s_dkey_file=NULL;
|
||||||
#ifdef FIONBIO
|
#ifdef FIONBIO
|
||||||
static int s_nbio=0;
|
static int s_nbio=0;
|
||||||
@ -248,10 +261,18 @@ static int s_nbio=0;
|
|||||||
static int s_nbio_test=0;
|
static int s_nbio_test=0;
|
||||||
int s_crlf=0;
|
int s_crlf=0;
|
||||||
static SSL_CTX *ctx=NULL;
|
static SSL_CTX *ctx=NULL;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
static SSL_CTX *ctx2=NULL;
|
||||||
|
#endif
|
||||||
static int www=0;
|
static int www=0;
|
||||||
|
|
||||||
static BIO *bio_s_out=NULL;
|
static BIO *bio_s_out=NULL;
|
||||||
static int s_debug=0;
|
static int s_debug=0;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
static int s_tlsextdebug=0;
|
||||||
|
static int s_tlsextstatus=0;
|
||||||
|
static int cert_status_cb(SSL *s, void *arg);
|
||||||
|
#endif
|
||||||
static int s_msg=0;
|
static int s_msg=0;
|
||||||
static int s_quiet=0;
|
static int s_quiet=0;
|
||||||
|
|
||||||
@ -262,6 +283,9 @@ static char *engine_id=NULL;
|
|||||||
static const char *session_id_prefix=NULL;
|
static const char *session_id_prefix=NULL;
|
||||||
|
|
||||||
static int enable_timeouts = 0;
|
static int enable_timeouts = 0;
|
||||||
|
#ifdef mtu
|
||||||
|
#undef mtu
|
||||||
|
#endif
|
||||||
static long mtu;
|
static long mtu;
|
||||||
static int cert_chain = 0;
|
static int cert_chain = 0;
|
||||||
|
|
||||||
@ -276,6 +300,11 @@ static void s_server_init(void)
|
|||||||
s_dkey_file=NULL;
|
s_dkey_file=NULL;
|
||||||
s_cert_file=TEST_CERT;
|
s_cert_file=TEST_CERT;
|
||||||
s_key_file=NULL;
|
s_key_file=NULL;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
s_cert_file2=TEST_CERT2;
|
||||||
|
s_key_file2=NULL;
|
||||||
|
ctx2=NULL;
|
||||||
|
#endif
|
||||||
#ifdef FIONBIO
|
#ifdef FIONBIO
|
||||||
s_nbio=0;
|
s_nbio=0;
|
||||||
#endif
|
#endif
|
||||||
@ -304,6 +333,11 @@ static void sv_usage(void)
|
|||||||
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\n");
|
BIO_printf(bio_err," -Verify arg - turn on peer certificate verification, must have a cert.\n");
|
||||||
BIO_printf(bio_err," -cert arg - certificate file to use\n");
|
BIO_printf(bio_err," -cert arg - certificate file to use\n");
|
||||||
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
|
BIO_printf(bio_err," (default is %s)\n",TEST_CERT);
|
||||||
|
BIO_printf(bio_err," -crl_check - check the peer certificate has not been revoked by its CA.\n" \
|
||||||
|
" The CRL(s) are appended to the certificate file\n");
|
||||||
|
BIO_printf(bio_err," -crl_check_all - check the peer certificate has not been revoked by its CA\n" \
|
||||||
|
" or any other CRL in the CA chain. CRL(s) are appened to the\n" \
|
||||||
|
" the certificate file.\n");
|
||||||
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
|
||||||
BIO_printf(bio_err," -key arg - Private Key file to use, in cert file if\n");
|
BIO_printf(bio_err," -key arg - Private Key file to use, in cert file if\n");
|
||||||
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
|
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT);
|
||||||
@ -362,6 +396,16 @@ static void sv_usage(void)
|
|||||||
#endif
|
#endif
|
||||||
BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n");
|
BIO_printf(bio_err," -id_prefix arg - Generate SSL/TLS session IDs prefixed by 'arg'\n");
|
||||||
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
BIO_printf(bio_err," -servername host - servername for HostName TLS extension\n");
|
||||||
|
BIO_printf(bio_err," -servername_fatal - on mismatch send fatal alert (default warning alert)\n");
|
||||||
|
BIO_printf(bio_err," -cert2 arg - certificate file to use for servername\n");
|
||||||
|
BIO_printf(bio_err," (default is %s)\n",TEST_CERT2);
|
||||||
|
BIO_printf(bio_err," -key2 arg - Private Key file to use for servername, in cert file if\n");
|
||||||
|
BIO_printf(bio_err," not specified (default is %s)\n",TEST_CERT2);
|
||||||
|
BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n");
|
||||||
|
BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static int local_argc=0;
|
static int local_argc=0;
|
||||||
@ -517,6 +561,185 @@ static int ebcdic_puts(BIO *bp, const char *str)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
|
||||||
|
/* This is a context that we pass to callbacks */
|
||||||
|
typedef struct tlsextctx_st {
|
||||||
|
char * servername;
|
||||||
|
BIO * biodebug;
|
||||||
|
int extension_error;
|
||||||
|
} tlsextctx;
|
||||||
|
|
||||||
|
|
||||||
|
static int MS_CALLBACK ssl_servername_cb(SSL *s, int *ad, void *arg)
|
||||||
|
{
|
||||||
|
tlsextctx * p = (tlsextctx *) arg;
|
||||||
|
const char * servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name);
|
||||||
|
if (servername && p->biodebug)
|
||||||
|
BIO_printf(p->biodebug,"Hostname in TLS extension: \"%s\"\n",servername);
|
||||||
|
|
||||||
|
if (!p->servername)
|
||||||
|
return SSL_TLSEXT_ERR_NOACK;
|
||||||
|
|
||||||
|
if (servername)
|
||||||
|
{
|
||||||
|
if (strcmp(servername,p->servername))
|
||||||
|
return p->extension_error;
|
||||||
|
if (ctx2)
|
||||||
|
{
|
||||||
|
BIO_printf(p->biodebug,"Swiching server context.\n");
|
||||||
|
SSL_set_SSL_CTX(s,ctx2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return SSL_TLSEXT_ERR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Structure passed to cert status callback */
|
||||||
|
|
||||||
|
typedef struct tlsextstatusctx_st {
|
||||||
|
/* Default responder to use */
|
||||||
|
char *host, *path, *port;
|
||||||
|
int use_ssl;
|
||||||
|
int timeout;
|
||||||
|
BIO *err;
|
||||||
|
int verbose;
|
||||||
|
} tlsextstatusctx;
|
||||||
|
|
||||||
|
static tlsextstatusctx tlscstatp = {NULL, NULL, NULL, 0, -1, NULL, 0};
|
||||||
|
|
||||||
|
/* Certificate Status callback. This is called when a client includes a
|
||||||
|
* certificate status request extension.
|
||||||
|
*
|
||||||
|
* This is a simplified version. It examines certificates each time and
|
||||||
|
* makes one OCSP responder query for each request.
|
||||||
|
*
|
||||||
|
* A full version would store details such as the OCSP certificate IDs and
|
||||||
|
* minimise the number of OCSP responses by caching them until they were
|
||||||
|
* considered "expired".
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int cert_status_cb(SSL *s, void *arg)
|
||||||
|
{
|
||||||
|
tlsextstatusctx *srctx = arg;
|
||||||
|
BIO *err = srctx->err;
|
||||||
|
char *host, *port, *path;
|
||||||
|
int use_ssl;
|
||||||
|
unsigned char *rspder = NULL;
|
||||||
|
int rspderlen;
|
||||||
|
STACK *aia = NULL;
|
||||||
|
X509 *x = NULL;
|
||||||
|
X509_STORE_CTX inctx;
|
||||||
|
X509_OBJECT obj;
|
||||||
|
OCSP_REQUEST *req = NULL;
|
||||||
|
OCSP_RESPONSE *resp = NULL;
|
||||||
|
OCSP_CERTID *id = NULL;
|
||||||
|
STACK_OF(X509_EXTENSION) *exts;
|
||||||
|
int ret = SSL_TLSEXT_ERR_NOACK;
|
||||||
|
int i;
|
||||||
|
#if 0
|
||||||
|
STACK_OF(OCSP_RESPID) *ids;
|
||||||
|
SSL_get_tlsext_status_ids(s, &ids);
|
||||||
|
BIO_printf(err, "cert_status: received %d ids\n", sk_OCSP_RESPID_num(ids));
|
||||||
|
#endif
|
||||||
|
if (srctx->verbose)
|
||||||
|
BIO_puts(err, "cert_status: callback called\n");
|
||||||
|
/* Build up OCSP query from server certificate */
|
||||||
|
x = SSL_get_certificate(s);
|
||||||
|
aia = X509_get1_ocsp(x);
|
||||||
|
if (aia)
|
||||||
|
{
|
||||||
|
if (!OCSP_parse_url(sk_value(aia, 0),
|
||||||
|
&host, &port, &path, &use_ssl))
|
||||||
|
{
|
||||||
|
BIO_puts(err, "cert_status: can't parse AIA URL\n");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
if (srctx->verbose)
|
||||||
|
BIO_printf(err, "cert_status: AIA URL: %s\n",
|
||||||
|
sk_value(aia, 0));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!srctx->host)
|
||||||
|
{
|
||||||
|
BIO_puts(srctx->err, "cert_status: no AIA and no default responder URL\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
host = srctx->host;
|
||||||
|
path = srctx->path;
|
||||||
|
port = srctx->port;
|
||||||
|
use_ssl = srctx->use_ssl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!X509_STORE_CTX_init(&inctx,
|
||||||
|
SSL_CTX_get_cert_store(SSL_get_SSL_CTX(s)),
|
||||||
|
NULL, NULL))
|
||||||
|
goto err;
|
||||||
|
if (X509_STORE_get_by_subject(&inctx,X509_LU_X509,
|
||||||
|
X509_get_issuer_name(x),&obj) <= 0)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "cert_status: Can't retrieve issuer certificate.\n");
|
||||||
|
X509_STORE_CTX_cleanup(&inctx);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
req = OCSP_REQUEST_new();
|
||||||
|
if (!req)
|
||||||
|
goto err;
|
||||||
|
id = OCSP_cert_to_id(NULL, x, obj.data.x509);
|
||||||
|
X509_free(obj.data.x509);
|
||||||
|
X509_STORE_CTX_cleanup(&inctx);
|
||||||
|
if (!id)
|
||||||
|
goto err;
|
||||||
|
if (!OCSP_request_add0_id(req, id))
|
||||||
|
goto err;
|
||||||
|
id = NULL;
|
||||||
|
/* Add any extensions to the request */
|
||||||
|
SSL_get_tlsext_status_exts(s, &exts);
|
||||||
|
for (i = 0; i < sk_X509_EXTENSION_num(exts); i++)
|
||||||
|
{
|
||||||
|
X509_EXTENSION *ext = sk_X509_EXTENSION_value(exts, i);
|
||||||
|
if (!OCSP_REQUEST_add_ext(req, ext, -1))
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
resp = process_responder(err, req, host, path, port, use_ssl,
|
||||||
|
srctx->timeout);
|
||||||
|
if (!resp)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "cert_status: error querying responder\n");
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
rspderlen = i2d_OCSP_RESPONSE(resp, &rspder);
|
||||||
|
if (rspderlen <= 0)
|
||||||
|
goto err;
|
||||||
|
SSL_set_tlsext_status_ocsp_resp(s, rspder, rspderlen);
|
||||||
|
if (srctx->verbose)
|
||||||
|
{
|
||||||
|
BIO_puts(err, "cert_status: ocsp response sent:\n");
|
||||||
|
OCSP_RESPONSE_print(err, resp, 2);
|
||||||
|
}
|
||||||
|
ret = SSL_TLSEXT_ERR_OK;
|
||||||
|
done:
|
||||||
|
if (ret != SSL_TLSEXT_ERR_OK)
|
||||||
|
ERR_print_errors(err);
|
||||||
|
if (aia)
|
||||||
|
{
|
||||||
|
OPENSSL_free(host);
|
||||||
|
OPENSSL_free(path);
|
||||||
|
OPENSSL_free(port);
|
||||||
|
X509_email_free(aia);
|
||||||
|
}
|
||||||
|
if (id)
|
||||||
|
OCSP_CERTID_free(id);
|
||||||
|
if (req)
|
||||||
|
OCSP_REQUEST_free(req);
|
||||||
|
if (resp)
|
||||||
|
OCSP_RESPONSE_free(resp);
|
||||||
|
return ret;
|
||||||
|
err:
|
||||||
|
ret = SSL_TLSEXT_ERR_ALERT_FATAL;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
|
|
||||||
int MAIN(int argc, char *argv[])
|
int MAIN(int argc, char *argv[])
|
||||||
@ -527,14 +750,16 @@ int MAIN(int argc, char *argv[])
|
|||||||
char *CApath=NULL,*CAfile=NULL;
|
char *CApath=NULL,*CAfile=NULL;
|
||||||
unsigned char *context = NULL;
|
unsigned char *context = NULL;
|
||||||
char *dhfile = NULL;
|
char *dhfile = NULL;
|
||||||
|
#ifndef OPENSSL_NO_ECDH
|
||||||
char *named_curve = NULL;
|
char *named_curve = NULL;
|
||||||
|
#endif
|
||||||
int badop=0,bugs=0;
|
int badop=0,bugs=0;
|
||||||
int ret=1;
|
int ret=1;
|
||||||
int off=0;
|
int off=0;
|
||||||
int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
|
int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
|
||||||
int state=0;
|
int state=0;
|
||||||
SSL_METHOD *meth=NULL;
|
SSL_METHOD *meth=NULL;
|
||||||
int sock_type=SOCK_STREAM;
|
int socket_type=SOCK_STREAM;
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
ENGINE *e=NULL;
|
ENGINE *e=NULL;
|
||||||
#endif
|
#endif
|
||||||
@ -545,6 +770,14 @@ int MAIN(int argc, char *argv[])
|
|||||||
int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
|
int s_dcert_format = FORMAT_PEM, s_dkey_format = FORMAT_PEM;
|
||||||
X509 *s_cert = NULL, *s_dcert = NULL;
|
X509 *s_cert = NULL, *s_dcert = NULL;
|
||||||
EVP_PKEY *s_key = NULL, *s_dkey = NULL;
|
EVP_PKEY *s_key = NULL, *s_dkey = NULL;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
EVP_PKEY *s_key2 = NULL;
|
||||||
|
X509 *s_cert2 = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
tlsextctx tlsextcbp = {NULL, NULL, SSL_TLSEXT_ERR_ALERT_WARNING};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
|
||||||
meth=SSLv23_server_method();
|
meth=SSLv23_server_method();
|
||||||
@ -681,7 +914,7 @@ int MAIN(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
vflags |= X509_V_FLAG_CRL_CHECK;
|
vflags |= X509_V_FLAG_CRL_CHECK;
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-crl_check") == 0)
|
else if (strcmp(*argv,"-crl_check_all") == 0)
|
||||||
{
|
{
|
||||||
vflags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
|
vflags |= X509_V_FLAG_CRL_CHECK|X509_V_FLAG_CRL_CHECK_ALL;
|
||||||
}
|
}
|
||||||
@ -710,6 +943,37 @@ int MAIN(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-debug") == 0)
|
else if (strcmp(*argv,"-debug") == 0)
|
||||||
{ s_debug=1; }
|
{ s_debug=1; }
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-tlsextdebug") == 0)
|
||||||
|
s_tlsextdebug=1;
|
||||||
|
else if (strcmp(*argv,"-status") == 0)
|
||||||
|
s_tlsextstatus=1;
|
||||||
|
else if (strcmp(*argv,"-status_verbose") == 0)
|
||||||
|
{
|
||||||
|
s_tlsextstatus=1;
|
||||||
|
tlscstatp.verbose = 1;
|
||||||
|
}
|
||||||
|
else if (!strcmp(*argv, "-status_timeout"))
|
||||||
|
{
|
||||||
|
s_tlsextstatus=1;
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
tlscstatp.timeout = atoi(*(++argv));
|
||||||
|
}
|
||||||
|
else if (!strcmp(*argv, "-status_url"))
|
||||||
|
{
|
||||||
|
s_tlsextstatus=1;
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
if (!OCSP_parse_url(*(++argv),
|
||||||
|
&tlscstatp.host,
|
||||||
|
&tlscstatp.port,
|
||||||
|
&tlscstatp.path,
|
||||||
|
&tlscstatp.use_ssl))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err, "Error parsing URL\n");
|
||||||
|
goto bad;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else if (strcmp(*argv,"-msg") == 0)
|
else if (strcmp(*argv,"-msg") == 0)
|
||||||
{ s_msg=1; }
|
{ s_msg=1; }
|
||||||
else if (strcmp(*argv,"-hack") == 0)
|
else if (strcmp(*argv,"-hack") == 0)
|
||||||
@ -740,6 +1004,10 @@ int MAIN(int argc, char *argv[])
|
|||||||
{ off|=SSL_OP_NO_SSLv3; }
|
{ off|=SSL_OP_NO_SSLv3; }
|
||||||
else if (strcmp(*argv,"-no_tls1") == 0)
|
else if (strcmp(*argv,"-no_tls1") == 0)
|
||||||
{ off|=SSL_OP_NO_TLSv1; }
|
{ off|=SSL_OP_NO_TLSv1; }
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-no_ticket") == 0)
|
||||||
|
{ off|=SSL_OP_NO_TICKET; }
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_SSL2
|
#ifndef OPENSSL_NO_SSL2
|
||||||
else if (strcmp(*argv,"-ssl2") == 0)
|
else if (strcmp(*argv,"-ssl2") == 0)
|
||||||
{ meth=SSLv2_server_method(); }
|
{ meth=SSLv2_server_method(); }
|
||||||
@ -756,7 +1024,7 @@ int MAIN(int argc, char *argv[])
|
|||||||
else if (strcmp(*argv,"-dtls1") == 0)
|
else if (strcmp(*argv,"-dtls1") == 0)
|
||||||
{
|
{
|
||||||
meth=DTLSv1_server_method();
|
meth=DTLSv1_server_method();
|
||||||
sock_type = SOCK_DGRAM;
|
socket_type = SOCK_DGRAM;
|
||||||
}
|
}
|
||||||
else if (strcmp(*argv,"-timeout") == 0)
|
else if (strcmp(*argv,"-timeout") == 0)
|
||||||
enable_timeouts = 1;
|
enable_timeouts = 1;
|
||||||
@ -785,6 +1053,25 @@ int MAIN(int argc, char *argv[])
|
|||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
inrand= *(++argv);
|
inrand= *(++argv);
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
else if (strcmp(*argv,"-servername") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
tlsextcbp.servername= *(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-servername_fatal") == 0)
|
||||||
|
{ tlsextcbp.extension_error = SSL_TLSEXT_ERR_ALERT_FATAL; }
|
||||||
|
else if (strcmp(*argv,"-cert2") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
s_cert_file2= *(++argv);
|
||||||
|
}
|
||||||
|
else if (strcmp(*argv,"-key2") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
s_key_file2= *(++argv);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
BIO_printf(bio_err,"unknown option %s\n",*argv);
|
||||||
@ -817,24 +1104,52 @@ bad:
|
|||||||
|
|
||||||
if (s_key_file == NULL)
|
if (s_key_file == NULL)
|
||||||
s_key_file = s_cert_file;
|
s_key_file = s_cert_file;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (s_key_file2 == NULL)
|
||||||
|
s_key_file2 = s_cert_file2;
|
||||||
|
#endif
|
||||||
|
|
||||||
s_key = load_key(bio_err, s_key_file, s_key_format, 0, pass, e,
|
if (nocert == 0)
|
||||||
"server certificate private key file");
|
|
||||||
if (!s_key)
|
|
||||||
{
|
{
|
||||||
ERR_print_errors(bio_err);
|
s_key = load_key(bio_err, s_key_file, s_key_format, 0, pass, e,
|
||||||
goto end;
|
"server certificate private key file");
|
||||||
}
|
if (!s_key)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
s_cert = load_cert(bio_err,s_cert_file,s_cert_format,
|
s_cert = load_cert(bio_err,s_cert_file,s_cert_format,
|
||||||
NULL, e, "server certificate file");
|
NULL, e, "server certificate file");
|
||||||
|
|
||||||
if (!s_cert)
|
if (!s_cert)
|
||||||
{
|
{
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (tlsextcbp.servername)
|
||||||
|
{
|
||||||
|
s_key2 = load_key(bio_err, s_key_file2, s_key_format, 0, pass, e,
|
||||||
|
"second server certificate private key file");
|
||||||
|
if (!s_key2)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
s_cert2 = load_cert(bio_err,s_cert_file2,s_cert_format,
|
||||||
|
NULL, e, "second server certificate file");
|
||||||
|
|
||||||
|
if (!s_cert2)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
if (s_dcert_file)
|
if (s_dcert_file)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -891,6 +1206,10 @@ bad:
|
|||||||
s_key_file=NULL;
|
s_key_file=NULL;
|
||||||
s_dcert_file=NULL;
|
s_dcert_file=NULL;
|
||||||
s_dkey_file=NULL;
|
s_dkey_file=NULL;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
s_cert_file2=NULL;
|
||||||
|
s_key_file2=NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx=SSL_CTX_new(meth);
|
ctx=SSL_CTX_new(meth);
|
||||||
@ -922,7 +1241,7 @@ bad:
|
|||||||
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
||||||
* Setting read ahead solves this problem.
|
* Setting read ahead solves this problem.
|
||||||
*/
|
*/
|
||||||
if (sock_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx, 1);
|
if (socket_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx, 1);
|
||||||
|
|
||||||
if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
|
if (state) SSL_CTX_set_info_callback(ctx,apps_ssl_info_callback);
|
||||||
|
|
||||||
@ -949,6 +1268,62 @@ bad:
|
|||||||
}
|
}
|
||||||
store = SSL_CTX_get_cert_store(ctx);
|
store = SSL_CTX_get_cert_store(ctx);
|
||||||
X509_STORE_set_flags(store, vflags);
|
X509_STORE_set_flags(store, vflags);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (s_cert2)
|
||||||
|
{
|
||||||
|
ctx2=SSL_CTX_new(meth);
|
||||||
|
if (ctx2 == NULL)
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx2)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_s_out,"Setting secondary ctx parameters\n");
|
||||||
|
|
||||||
|
if (session_id_prefix)
|
||||||
|
{
|
||||||
|
if(strlen(session_id_prefix) >= 32)
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"warning: id_prefix is too long, only one new session will be possible\n");
|
||||||
|
else if(strlen(session_id_prefix) >= 16)
|
||||||
|
BIO_printf(bio_err,
|
||||||
|
"warning: id_prefix is too long if you use SSLv2\n");
|
||||||
|
if(!SSL_CTX_set_generate_session_id(ctx2, generate_session_id))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"error setting 'id_prefix'\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
BIO_printf(bio_err,"id_prefix '%s' set.\n", session_id_prefix);
|
||||||
|
}
|
||||||
|
SSL_CTX_set_quiet_shutdown(ctx2,1);
|
||||||
|
if (bugs) SSL_CTX_set_options(ctx2,SSL_OP_ALL);
|
||||||
|
if (hack) SSL_CTX_set_options(ctx2,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG);
|
||||||
|
SSL_CTX_set_options(ctx2,off);
|
||||||
|
|
||||||
|
/* DTLS: partial reads end up discarding unread UDP bytes :-(
|
||||||
|
* Setting read ahead solves this problem.
|
||||||
|
*/
|
||||||
|
if (socket_type == SOCK_DGRAM) SSL_CTX_set_read_ahead(ctx2, 1);
|
||||||
|
|
||||||
|
|
||||||
|
if (state) SSL_CTX_set_info_callback(ctx2,apps_ssl_info_callback);
|
||||||
|
|
||||||
|
SSL_CTX_sess_set_cache_size(ctx2,128);
|
||||||
|
|
||||||
|
if ((!SSL_CTX_load_verify_locations(ctx2,CAfile,CApath)) ||
|
||||||
|
(!SSL_CTX_set_default_verify_paths(ctx2)))
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
}
|
||||||
|
store = SSL_CTX_get_cert_store(ctx2);
|
||||||
|
X509_STORE_set_flags(store, vflags);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_DH
|
#ifndef OPENSSL_NO_DH
|
||||||
if (!no_dhe)
|
if (!no_dhe)
|
||||||
@ -972,6 +1347,24 @@ bad:
|
|||||||
(void)BIO_flush(bio_s_out);
|
(void)BIO_flush(bio_s_out);
|
||||||
|
|
||||||
SSL_CTX_set_tmp_dh(ctx,dh);
|
SSL_CTX_set_tmp_dh(ctx,dh);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2)
|
||||||
|
{
|
||||||
|
if (!dhfile)
|
||||||
|
{
|
||||||
|
DH *dh2=load_dh_param(s_cert_file2);
|
||||||
|
if (dh2 != NULL)
|
||||||
|
{
|
||||||
|
BIO_printf(bio_s_out,"Setting temp DH parameters\n");
|
||||||
|
(void)BIO_flush(bio_s_out);
|
||||||
|
|
||||||
|
DH_free(dh);
|
||||||
|
dh = dh2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SSL_CTX_set_tmp_dh(ctx2,dh);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
DH_free(dh);
|
DH_free(dh);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1017,12 +1410,20 @@ bad:
|
|||||||
(void)BIO_flush(bio_s_out);
|
(void)BIO_flush(bio_s_out);
|
||||||
|
|
||||||
SSL_CTX_set_tmp_ecdh(ctx,ecdh);
|
SSL_CTX_set_tmp_ecdh(ctx,ecdh);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2)
|
||||||
|
SSL_CTX_set_tmp_ecdh(ctx2,ecdh);
|
||||||
|
#endif
|
||||||
EC_KEY_free(ecdh);
|
EC_KEY_free(ecdh);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!set_cert_key_stuff(ctx,s_cert,s_key))
|
if (!set_cert_key_stuff(ctx,s_cert,s_key))
|
||||||
goto end;
|
goto end;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2 && !set_cert_key_stuff(ctx2,s_cert2,s_key2))
|
||||||
|
goto end;
|
||||||
|
#endif
|
||||||
if (s_dcert != NULL)
|
if (s_dcert != NULL)
|
||||||
{
|
{
|
||||||
if (!set_cert_key_stuff(ctx,s_dcert,s_dkey))
|
if (!set_cert_key_stuff(ctx,s_dcert,s_dkey))
|
||||||
@ -1032,7 +1433,13 @@ bad:
|
|||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
#if 1
|
#if 1
|
||||||
if (!no_tmp_rsa)
|
if (!no_tmp_rsa)
|
||||||
|
{
|
||||||
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2)
|
||||||
|
SSL_CTX_set_tmp_rsa_callback(ctx2,tmp_rsa_cb);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
||||||
{
|
{
|
||||||
@ -1048,6 +1455,16 @@ bad:
|
|||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2)
|
||||||
|
{
|
||||||
|
if (!SSL_CTX_set_tmp_rsa(ctx2,rsa))
|
||||||
|
{
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
RSA_free(rsa);
|
RSA_free(rsa);
|
||||||
BIO_printf(bio_s_out,"\n");
|
BIO_printf(bio_s_out,"\n");
|
||||||
}
|
}
|
||||||
@ -1059,19 +1476,46 @@ bad:
|
|||||||
BIO_printf(bio_err,"error setting cipher list\n");
|
BIO_printf(bio_err,"error setting cipher list\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
goto end;
|
goto end;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2 && !SSL_CTX_set_cipher_list(ctx2,cipher))
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"error setting cipher list\n");
|
||||||
|
ERR_print_errors(bio_err);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
|
SSL_CTX_set_verify(ctx,s_server_verify,verify_callback);
|
||||||
SSL_CTX_set_session_id_context(ctx,(void*)&s_server_session_id_context,
|
SSL_CTX_set_session_id_context(ctx,(void*)&s_server_session_id_context,
|
||||||
sizeof s_server_session_id_context);
|
sizeof s_server_session_id_context);
|
||||||
|
|
||||||
if (CAfile != NULL)
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
|
if (ctx2)
|
||||||
|
{
|
||||||
|
SSL_CTX_set_verify(ctx2,s_server_verify,verify_callback);
|
||||||
|
SSL_CTX_set_session_id_context(ctx2,(void*)&s_server_session_id_context,
|
||||||
|
sizeof s_server_session_id_context);
|
||||||
|
|
||||||
|
tlsextcbp.biodebug = bio_s_out;
|
||||||
|
SSL_CTX_set_tlsext_servername_callback(ctx2, ssl_servername_cb);
|
||||||
|
SSL_CTX_set_tlsext_servername_arg(ctx2, &tlsextcbp);
|
||||||
|
SSL_CTX_set_tlsext_servername_callback(ctx, ssl_servername_cb);
|
||||||
|
SSL_CTX_set_tlsext_servername_arg(ctx, &tlsextcbp);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (CAfile != NULL)
|
||||||
|
{
|
||||||
|
SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2)
|
||||||
|
SSL_CTX_set_client_CA_list(ctx2,SSL_load_client_CA_file(CAfile));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
BIO_printf(bio_s_out,"ACCEPT\n");
|
BIO_printf(bio_s_out,"ACCEPT\n");
|
||||||
if (www)
|
if (www)
|
||||||
do_server(port,sock_type,&accept_socket,www_body, context);
|
do_server(port,socket_type,&accept_socket,www_body, context);
|
||||||
else
|
else
|
||||||
do_server(port,sock_type,&accept_socket,sv_body, context);
|
do_server(port,socket_type,&accept_socket,sv_body, context);
|
||||||
print_stats(bio_s_out,ctx);
|
print_stats(bio_s_out,ctx);
|
||||||
ret=0;
|
ret=0;
|
||||||
end:
|
end:
|
||||||
@ -1088,6 +1532,13 @@ end:
|
|||||||
OPENSSL_free(pass);
|
OPENSSL_free(pass);
|
||||||
if (dpass)
|
if (dpass)
|
||||||
OPENSSL_free(dpass);
|
OPENSSL_free(dpass);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (ctx2 != NULL) SSL_CTX_free(ctx2);
|
||||||
|
if (s_cert2)
|
||||||
|
X509_free(s_cert2);
|
||||||
|
if (s_key2)
|
||||||
|
EVP_PKEY_free(s_key2);
|
||||||
|
#endif
|
||||||
if (bio_s_out != NULL)
|
if (bio_s_out != NULL)
|
||||||
{
|
{
|
||||||
BIO_free(bio_s_out);
|
BIO_free(bio_s_out);
|
||||||
@ -1154,6 +1605,19 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
|
|
||||||
if (con == NULL) {
|
if (con == NULL) {
|
||||||
con=SSL_new(ctx);
|
con=SSL_new(ctx);
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (s_tlsextdebug)
|
||||||
|
{
|
||||||
|
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
||||||
|
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
||||||
|
}
|
||||||
|
if (s_tlsextstatus)
|
||||||
|
{
|
||||||
|
SSL_CTX_set_tlsext_status_cb(ctx, cert_status_cb);
|
||||||
|
tlscstatp.err = bio_err;
|
||||||
|
SSL_CTX_set_tlsext_status_arg(ctx, &tlscstatp);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@ -1217,13 +1681,20 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
|||||||
{
|
{
|
||||||
con->debug=1;
|
con->debug=1;
|
||||||
BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
|
BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
|
||||||
BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
|
BIO_set_callback_arg(SSL_get_rbio(con),(char *)bio_s_out);
|
||||||
}
|
}
|
||||||
if (s_msg)
|
if (s_msg)
|
||||||
{
|
{
|
||||||
SSL_set_msg_callback(con, msg_cb);
|
SSL_set_msg_callback(con, msg_cb);
|
||||||
SSL_set_msg_callback_arg(con, bio_s_out);
|
SSL_set_msg_callback_arg(con, bio_s_out);
|
||||||
}
|
}
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (s_tlsextdebug)
|
||||||
|
{
|
||||||
|
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
||||||
|
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
width=s+1;
|
width=s+1;
|
||||||
for (;;)
|
for (;;)
|
||||||
@ -1589,6 +2060,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
|
if (!BIO_set_write_buffer_size(io,bufsize)) goto err;
|
||||||
|
|
||||||
if ((con=SSL_new(ctx)) == NULL) goto err;
|
if ((con=SSL_new(ctx)) == NULL) goto err;
|
||||||
|
#ifndef OPENSSL_NO_TLSEXT
|
||||||
|
if (s_tlsextdebug)
|
||||||
|
{
|
||||||
|
SSL_set_tlsext_debug_callback(con, tlsext_cb);
|
||||||
|
SSL_set_tlsext_debug_arg(con, bio_s_out);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
if ((con->kssl_ctx = kssl_ctx_new()) != NULL)
|
||||||
{
|
{
|
||||||
@ -1621,7 +2099,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
{
|
{
|
||||||
con->debug=1;
|
con->debug=1;
|
||||||
BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
|
BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
|
||||||
BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
|
BIO_set_callback_arg(SSL_get_rbio(con),(char *)bio_s_out);
|
||||||
}
|
}
|
||||||
if (s_msg)
|
if (s_msg)
|
||||||
{
|
{
|
||||||
|
@ -87,8 +87,12 @@ typedef unsigned int u_int;
|
|||||||
|
|
||||||
#ifndef OPENSSL_NO_SOCK
|
#ifndef OPENSSL_NO_SOCK
|
||||||
|
|
||||||
|
#if defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_BSDSOCK)
|
||||||
|
#include "netdb.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct hostent *GetHostByName(char *name);
|
static struct hostent *GetHostByName(char *name);
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE)
|
#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
|
||||||
static int ssl_sock_init(void);
|
static int ssl_sock_init(void);
|
||||||
@ -104,7 +108,7 @@ static int host_ip(char *str, unsigned char ip[4]);
|
|||||||
#define SOCKET_PROTOCOL IPPROTO_TCP
|
#define SOCKET_PROTOCOL IPPROTO_TCP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OPENSSL_SYS_NETWARE
|
#if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||||
static int wsa_init_done=0;
|
static int wsa_init_done=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -156,7 +160,7 @@ static void ssl_sock_cleanup(void)
|
|||||||
WSACleanup();
|
WSACleanup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#elif defined(OPENSSL_SYS_NETWARE)
|
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||||
static void sock_cleanup(void)
|
static void sock_cleanup(void)
|
||||||
{
|
{
|
||||||
if (wsa_init_done)
|
if (wsa_init_done)
|
||||||
@ -199,7 +203,7 @@ static int ssl_sock_init(void)
|
|||||||
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopHookProc);
|
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopHookProc);
|
||||||
#endif /* OPENSSL_SYS_WIN16 */
|
#endif /* OPENSSL_SYS_WIN16 */
|
||||||
}
|
}
|
||||||
#elif defined(OPENSSL_SYS_NETWARE)
|
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||||
WORD wVerReq;
|
WORD wVerReq;
|
||||||
WSADATA wsaData;
|
WSADATA wsaData;
|
||||||
int err;
|
int err;
|
||||||
@ -398,7 +402,7 @@ redoit:
|
|||||||
ret=accept(acc_sock,(struct sockaddr *)&from,(void *)&len);
|
ret=accept(acc_sock,(struct sockaddr *)&from,(void *)&len);
|
||||||
if (ret == INVALID_SOCKET)
|
if (ret == INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE)
|
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
|
||||||
i=WSAGetLastError();
|
i=WSAGetLastError();
|
||||||
BIO_printf(bio_err,"accept error %d\n",i);
|
BIO_printf(bio_err,"accept error %d\n",i);
|
||||||
#else
|
#else
|
||||||
|
29
apps/smime.c
29
apps/smime.c
@ -145,6 +145,10 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (!strcmp (*args, "-des"))
|
else if (!strcmp (*args, "-des"))
|
||||||
cipher = EVP_des_cbc();
|
cipher = EVP_des_cbc();
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
else if (!strcmp (*args, "-seed"))
|
||||||
|
cipher = EVP_seed_cbc();
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
else if (!strcmp (*args, "-rc2-40"))
|
else if (!strcmp (*args, "-rc2-40"))
|
||||||
cipher = EVP_rc2_40_cbc();
|
cipher = EVP_rc2_40_cbc();
|
||||||
@ -160,6 +164,14 @@ 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();
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
else if (!strcmp(*args,"-camellia128"))
|
||||||
|
cipher = EVP_camellia_128_cbc();
|
||||||
|
else if (!strcmp(*args,"-camellia192"))
|
||||||
|
cipher = EVP_camellia_192_cbc();
|
||||||
|
else if (!strcmp(*args,"-camellia256"))
|
||||||
|
cipher = EVP_camellia_256_cbc();
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp (*args, "-text"))
|
else if (!strcmp (*args, "-text"))
|
||||||
flags |= PKCS7_TEXT;
|
flags |= PKCS7_TEXT;
|
||||||
@ -384,9 +396,9 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else if (operation == SMIME_DECRYPT)
|
else if (operation == SMIME_DECRYPT)
|
||||||
{
|
{
|
||||||
if (!recipfile)
|
if (!recipfile && !keyfile)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err, "No recipient certificate and key specified\n");
|
BIO_printf(bio_err, "No recipient certificate or key specified\n");
|
||||||
badarg = 1;
|
badarg = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -415,6 +427,9 @@ int MAIN(int argc, char **argv)
|
|||||||
BIO_printf (bio_err, "-des3 encrypt with triple DES\n");
|
BIO_printf (bio_err, "-des3 encrypt with triple DES\n");
|
||||||
BIO_printf (bio_err, "-des encrypt with DES\n");
|
BIO_printf (bio_err, "-des encrypt with DES\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf (bio_err, "-seed encrypt with SEED\n");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
BIO_printf (bio_err, "-rc2-40 encrypt with RC2-40 (default)\n");
|
BIO_printf (bio_err, "-rc2-40 encrypt with RC2-40 (default)\n");
|
||||||
BIO_printf (bio_err, "-rc2-64 encrypt with RC2-64\n");
|
BIO_printf (bio_err, "-rc2-64 encrypt with RC2-64\n");
|
||||||
@ -423,6 +438,10 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
|
BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
|
||||||
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
|
BIO_printf (bio_err, " encrypt PEM output with cbc aes\n");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
|
||||||
|
BIO_printf (bio_err, " encrypt PEM output with cbc camellia\n");
|
||||||
#endif
|
#endif
|
||||||
BIO_printf (bio_err, "-nointern don't search certificates in message for signer\n");
|
BIO_printf (bio_err, "-nointern don't search certificates in message for signer\n");
|
||||||
BIO_printf (bio_err, "-nosigs don't verify message signature\n");
|
BIO_printf (bio_err, "-nosigs don't verify message signature\n");
|
||||||
@ -638,12 +657,6 @@ int MAIN(int argc, char **argv)
|
|||||||
if ((flags & PKCS7_DETACHED) && (outformat == FORMAT_SMIME))
|
if ((flags & PKCS7_DETACHED) && (outformat == FORMAT_SMIME))
|
||||||
flags |= PKCS7_STREAM;
|
flags |= PKCS7_STREAM;
|
||||||
p7 = PKCS7_sign(signer, key, other, in, flags);
|
p7 = PKCS7_sign(signer, key, other, in, flags);
|
||||||
/* Don't need to rewind for partial signing */
|
|
||||||
if (!(flags & PKCS7_STREAM) && (BIO_reset(in) != 0))
|
|
||||||
{
|
|
||||||
BIO_printf(bio_err, "Can't rewind input file\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
251
apps/speed.c
251
apps/speed.c
@ -164,6 +164,9 @@
|
|||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
#include <openssl/camellia.h>
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_MD2
|
#ifndef OPENSSL_NO_MD2
|
||||||
#include <openssl/md2.h>
|
#include <openssl/md2.h>
|
||||||
#endif
|
#endif
|
||||||
@ -198,6 +201,9 @@
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
#include <openssl/idea.h>
|
#include <openssl/idea.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
#include <openssl/seed.h>
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_BF
|
#ifndef OPENSSL_NO_BF
|
||||||
#include <openssl/blowfish.h>
|
#include <openssl/blowfish.h>
|
||||||
#endif
|
#endif
|
||||||
@ -269,7 +275,7 @@ static void print_result(int alg,int run_no,int count,double time_used);
|
|||||||
static int do_multi(int multi);
|
static int do_multi(int multi);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ALGOR_NUM 21
|
#define ALGOR_NUM 28
|
||||||
#define SIZE_NUM 5
|
#define SIZE_NUM 5
|
||||||
#define RSA_NUM 4
|
#define RSA_NUM 4
|
||||||
#define DSA_NUM 3
|
#define DSA_NUM 3
|
||||||
@ -279,16 +285,27 @@ static int do_multi(int multi);
|
|||||||
|
|
||||||
static const char *names[ALGOR_NUM]={
|
static const char *names[ALGOR_NUM]={
|
||||||
"md2","mdc2","md4","md5","hmac(md5)","sha1","rmd160","rc4",
|
"md2","mdc2","md4","md5","hmac(md5)","sha1","rmd160","rc4",
|
||||||
"des cbc","des ede3","idea cbc",
|
"des cbc","des ede3","idea cbc","seed cbc",
|
||||||
"rc2 cbc","rc5-32/12 cbc","blowfish cbc","cast cbc",
|
"rc2 cbc","rc5-32/12 cbc","blowfish cbc","cast cbc",
|
||||||
"aes-128 cbc","aes-192 cbc","aes-256 cbc","evp","sha256","sha512"};
|
"aes-128 cbc","aes-192 cbc","aes-256 cbc",
|
||||||
|
"camellia-128 cbc","camellia-192 cbc","camellia-256 cbc",
|
||||||
|
"evp","sha256","sha512",
|
||||||
|
"aes-128 ige","aes-192 ige","aes-256 ige"};
|
||||||
static double results[ALGOR_NUM][SIZE_NUM];
|
static double results[ALGOR_NUM][SIZE_NUM];
|
||||||
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
|
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
|
||||||
static double rsa_results[RSA_NUM][2];
|
static double rsa_results[RSA_NUM][2];
|
||||||
static double dsa_results[DSA_NUM][2];
|
static double dsa_results[DSA_NUM][2];
|
||||||
|
#ifndef OPENSSL_NO_ECDSA
|
||||||
static double ecdsa_results[EC_NUM][2];
|
static double ecdsa_results[EC_NUM][2];
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_ECDH
|
||||||
static double ecdh_results[EC_NUM][1];
|
static double ecdh_results[EC_NUM][1];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(OPENSSL_NO_DSA) && !(defined(OPENSSL_NO_ECDSA) && defined(OPENSSL_NO_ECDH))
|
||||||
|
static const char rnd_seed[] = "string to make the random number generator think it has entropy";
|
||||||
|
static int rnd_fake = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SIGALRM
|
#ifdef SIGALRM
|
||||||
#if defined(__STDC__) || defined(sgi) || defined(_AIX)
|
#if defined(__STDC__) || defined(sgi) || defined(_AIX)
|
||||||
@ -448,6 +465,7 @@ static double Time_F(int s)
|
|||||||
#endif /* if defined(OPENSSL_SYS_NETWARE) */
|
#endif /* if defined(OPENSSL_SYS_NETWARE) */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef OPENSSL_NO_ECDH
|
||||||
static const int KDF1_SHA1_len = 20;
|
static const int KDF1_SHA1_len = 20;
|
||||||
static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
|
static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
|
||||||
{
|
{
|
||||||
@ -459,8 +477,9 @@ static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
|
|||||||
return SHA1(in, inlen, out);
|
return SHA1(in, inlen, out);
|
||||||
#else
|
#else
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
#endif /* OPENSSL_NO_SHA */
|
||||||
}
|
}
|
||||||
|
#endif /* OPENSSL_NO_ECDH */
|
||||||
|
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
@ -518,6 +537,9 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
IDEA_KEY_SCHEDULE idea_ks;
|
IDEA_KEY_SCHEDULE idea_ks;
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
SEED_KEY_SCHEDULE seed_ks;
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_BF
|
#ifndef OPENSSL_NO_BF
|
||||||
BF_KEY bf_ks;
|
BF_KEY bf_ks;
|
||||||
#endif
|
#endif
|
||||||
@ -527,6 +549,7 @@ int MAIN(int argc, char **argv)
|
|||||||
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
|
||||||
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,
|
||||||
@ -536,13 +559,25 @@ int MAIN(int argc, char **argv)
|
|||||||
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
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
static const unsigned char ckey24[24]=
|
||||||
|
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
|
||||||
|
static const unsigned char ckey32[32]=
|
||||||
|
{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
|
||||||
|
0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
|
||||||
|
0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
|
||||||
|
0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
#define MAX_BLOCK_SIZE 128
|
#define MAX_BLOCK_SIZE 128
|
||||||
#else
|
#else
|
||||||
#define MAX_BLOCK_SIZE 64
|
#define MAX_BLOCK_SIZE 64
|
||||||
#endif
|
#endif
|
||||||
unsigned char DES_iv[8];
|
unsigned char DES_iv[8];
|
||||||
unsigned char iv[MAX_BLOCK_SIZE/8];
|
unsigned char iv[2*MAX_BLOCK_SIZE/8];
|
||||||
#ifndef OPENSSL_NO_DES
|
#ifndef OPENSSL_NO_DES
|
||||||
DES_cblock *buf_as_des_cblock = NULL;
|
DES_cblock *buf_as_des_cblock = NULL;
|
||||||
static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0};
|
static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0};
|
||||||
@ -555,6 +590,9 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
AES_KEY aes_ks1, aes_ks2, aes_ks3;
|
AES_KEY aes_ks1, aes_ks2, aes_ks3;
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3;
|
||||||
|
#endif
|
||||||
#define D_MD2 0
|
#define D_MD2 0
|
||||||
#define D_MDC2 1
|
#define D_MDC2 1
|
||||||
#define D_MD4 2
|
#define D_MD4 2
|
||||||
@ -566,16 +604,23 @@ int MAIN(int argc, char **argv)
|
|||||||
#define D_CBC_DES 8
|
#define D_CBC_DES 8
|
||||||
#define D_EDE3_DES 9
|
#define D_EDE3_DES 9
|
||||||
#define D_CBC_IDEA 10
|
#define D_CBC_IDEA 10
|
||||||
#define D_CBC_RC2 11
|
#define D_CBC_SEED 11
|
||||||
#define D_CBC_RC5 12
|
#define D_CBC_RC2 12
|
||||||
#define D_CBC_BF 13
|
#define D_CBC_RC5 13
|
||||||
#define D_CBC_CAST 14
|
#define D_CBC_BF 14
|
||||||
#define D_CBC_128_AES 15
|
#define D_CBC_CAST 15
|
||||||
#define D_CBC_192_AES 16
|
#define D_CBC_128_AES 16
|
||||||
#define D_CBC_256_AES 17
|
#define D_CBC_192_AES 17
|
||||||
#define D_EVP 18
|
#define D_CBC_256_AES 18
|
||||||
#define D_SHA256 19
|
#define D_CBC_128_CML 19
|
||||||
#define D_SHA512 20
|
#define D_CBC_192_CML 20
|
||||||
|
#define D_CBC_256_CML 21
|
||||||
|
#define D_EVP 22
|
||||||
|
#define D_SHA256 23
|
||||||
|
#define D_SHA512 24
|
||||||
|
#define D_IGE_128_AES 25
|
||||||
|
#define D_IGE_192_AES 26
|
||||||
|
#define D_IGE_256_AES 27
|
||||||
double d=0.0;
|
double d=0.0;
|
||||||
long c[ALGOR_NUM][SIZE_NUM];
|
long c[ALGOR_NUM][SIZE_NUM];
|
||||||
#define R_DSA_512 0
|
#define R_DSA_512 0
|
||||||
@ -693,8 +738,12 @@ int MAIN(int argc, char **argv)
|
|||||||
|
|
||||||
int rsa_doit[RSA_NUM];
|
int rsa_doit[RSA_NUM];
|
||||||
int dsa_doit[DSA_NUM];
|
int dsa_doit[DSA_NUM];
|
||||||
|
#ifndef OPENSSL_NO_ECDSA
|
||||||
int ecdsa_doit[EC_NUM];
|
int ecdsa_doit[EC_NUM];
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_ECDH
|
||||||
int ecdh_doit[EC_NUM];
|
int ecdh_doit[EC_NUM];
|
||||||
|
#endif
|
||||||
int doit[ALGOR_NUM];
|
int doit[ALGOR_NUM];
|
||||||
int pr_header=0;
|
int pr_header=0;
|
||||||
const EVP_CIPHER *evp_cipher=NULL;
|
const EVP_CIPHER *evp_cipher=NULL;
|
||||||
@ -912,6 +961,15 @@ int MAIN(int argc, char **argv)
|
|||||||
if (strcmp(*argv,"aes-128-cbc") == 0) doit[D_CBC_128_AES]=1;
|
if (strcmp(*argv,"aes-128-cbc") == 0) doit[D_CBC_128_AES]=1;
|
||||||
else if (strcmp(*argv,"aes-192-cbc") == 0) doit[D_CBC_192_AES]=1;
|
else if (strcmp(*argv,"aes-192-cbc") == 0) doit[D_CBC_192_AES]=1;
|
||||||
else if (strcmp(*argv,"aes-256-cbc") == 0) doit[D_CBC_256_AES]=1;
|
else if (strcmp(*argv,"aes-256-cbc") == 0) doit[D_CBC_256_AES]=1;
|
||||||
|
else if (strcmp(*argv,"aes-128-ige") == 0) doit[D_IGE_128_AES]=1;
|
||||||
|
else if (strcmp(*argv,"aes-192-ige") == 0) doit[D_IGE_192_AES]=1;
|
||||||
|
else if (strcmp(*argv,"aes-256-ige") == 0) doit[D_IGE_256_AES]=1;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
if (strcmp(*argv,"camellia-128-cbc") == 0) doit[D_CBC_128_CML]=1;
|
||||||
|
else if (strcmp(*argv,"camellia-192-cbc") == 0) doit[D_CBC_192_CML]=1;
|
||||||
|
else if (strcmp(*argv,"camellia-256-cbc") == 0) doit[D_CBC_256_CML]=1;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
@ -955,6 +1013,11 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"idea") == 0) doit[D_CBC_IDEA]=1;
|
else if (strcmp(*argv,"idea") == 0) doit[D_CBC_IDEA]=1;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
if (strcmp(*argv,"seed-cbc") == 0) doit[D_CBC_SEED]=1;
|
||||||
|
else if (strcmp(*argv,"seed") == 0) doit[D_CBC_SEED]=1;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_BF
|
#ifndef OPENSSL_NO_BF
|
||||||
if (strcmp(*argv,"bf-cbc") == 0) doit[D_CBC_BF]=1;
|
if (strcmp(*argv,"bf-cbc") == 0) doit[D_CBC_BF]=1;
|
||||||
else if (strcmp(*argv,"blowfish") == 0) doit[D_CBC_BF]=1;
|
else if (strcmp(*argv,"blowfish") == 0) doit[D_CBC_BF]=1;
|
||||||
@ -984,6 +1047,15 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
if (strcmp(*argv,"camellia") == 0)
|
||||||
|
{
|
||||||
|
doit[D_CBC_128_CML]=1;
|
||||||
|
doit[D_CBC_192_CML]=1;
|
||||||
|
doit[D_CBC_256_CML]=1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
if (strcmp(*argv,"rsa") == 0)
|
if (strcmp(*argv,"rsa") == 0)
|
||||||
{
|
{
|
||||||
@ -1091,6 +1163,9 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf(bio_err,"idea-cbc ");
|
BIO_printf(bio_err,"idea-cbc ");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err,"seed-cbc ");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
BIO_printf(bio_err,"rc2-cbc ");
|
BIO_printf(bio_err,"rc2-cbc ");
|
||||||
#endif
|
#endif
|
||||||
@ -1100,7 +1175,7 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_BF
|
#ifndef OPENSSL_NO_BF
|
||||||
BIO_printf(bio_err,"bf-cbc");
|
BIO_printf(bio_err,"bf-cbc");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_RC2) || \
|
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_SEED) || !defined(OPENSSL_NO_RC2) || \
|
||||||
!defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_RC5)
|
!defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_RC5)
|
||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
#endif
|
#endif
|
||||||
@ -1109,6 +1184,11 @@ int MAIN(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err,"aes-128-cbc aes-192-cbc aes-256-cbc ");
|
BIO_printf(bio_err,"aes-128-cbc aes-192-cbc aes-256-cbc ");
|
||||||
|
BIO_printf(bio_err,"aes-128-ige aes-192-ige aes-256-ige ");
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err,"\n");
|
||||||
|
BIO_printf(bio_err,"camellia-128-cbc camellia-192-cbc camellia-256-cbc ");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC4
|
#ifndef OPENSSL_NO_RC4
|
||||||
BIO_printf(bio_err,"rc4");
|
BIO_printf(bio_err,"rc4");
|
||||||
@ -1138,6 +1218,9 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
BIO_printf(bio_err,"idea ");
|
BIO_printf(bio_err,"idea ");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
BIO_printf(bio_err,"seed ");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
BIO_printf(bio_err,"rc2 ");
|
BIO_printf(bio_err,"rc2 ");
|
||||||
#endif
|
#endif
|
||||||
@ -1147,15 +1230,19 @@ int MAIN(int argc, char **argv)
|
|||||||
#ifndef OPENSSL_NO_AES
|
#ifndef OPENSSL_NO_AES
|
||||||
BIO_printf(bio_err,"aes ");
|
BIO_printf(bio_err,"aes ");
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
BIO_printf(bio_err,"camellia ");
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
BIO_printf(bio_err,"rsa ");
|
BIO_printf(bio_err,"rsa ");
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_BF
|
#ifndef OPENSSL_NO_BF
|
||||||
BIO_printf(bio_err,"blowfish");
|
BIO_printf(bio_err,"blowfish");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_RC2) || \
|
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_SEED) || \
|
||||||
!defined(OPENSSL_NO_DES) || !defined(OPENSSL_NO_RSA) || \
|
!defined(OPENSSL_NO_RC2) || !defined(OPENSSL_NO_DES) || \
|
||||||
!defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_AES)
|
!defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_BF) || \
|
||||||
|
!defined(OPENSSL_NO_AES) || !defined(OPENSSL_NO_CAMELLIA)
|
||||||
BIO_printf(bio_err,"\n");
|
BIO_printf(bio_err,"\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1249,9 +1336,17 @@ int MAIN(int argc, char **argv)
|
|||||||
AES_set_encrypt_key(key24,192,&aes_ks2);
|
AES_set_encrypt_key(key24,192,&aes_ks2);
|
||||||
AES_set_encrypt_key(key32,256,&aes_ks3);
|
AES_set_encrypt_key(key32,256,&aes_ks3);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
Camellia_set_key(key16,128,&camellia_ks1);
|
||||||
|
Camellia_set_key(ckey24,192,&camellia_ks2);
|
||||||
|
Camellia_set_key(ckey32,256,&camellia_ks3);
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
idea_set_encrypt_key(key16,&idea_ks);
|
idea_set_encrypt_key(key16,&idea_ks);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
SEED_set_key(key16,&seed_ks);
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC4
|
#ifndef OPENSSL_NO_RC4
|
||||||
RC4_set_key(&rc4_ks,16,key16);
|
RC4_set_key(&rc4_ks,16,key16);
|
||||||
#endif
|
#endif
|
||||||
@ -1295,6 +1390,7 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_CBC_DES][0]=count;
|
c[D_CBC_DES][0]=count;
|
||||||
c[D_EDE3_DES][0]=count/3;
|
c[D_EDE3_DES][0]=count/3;
|
||||||
c[D_CBC_IDEA][0]=count;
|
c[D_CBC_IDEA][0]=count;
|
||||||
|
c[D_CBC_SEED][0]=count;
|
||||||
c[D_CBC_RC2][0]=count;
|
c[D_CBC_RC2][0]=count;
|
||||||
c[D_CBC_RC5][0]=count;
|
c[D_CBC_RC5][0]=count;
|
||||||
c[D_CBC_BF][0]=count;
|
c[D_CBC_BF][0]=count;
|
||||||
@ -1302,8 +1398,14 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_CBC_128_AES][0]=count;
|
c[D_CBC_128_AES][0]=count;
|
||||||
c[D_CBC_192_AES][0]=count;
|
c[D_CBC_192_AES][0]=count;
|
||||||
c[D_CBC_256_AES][0]=count;
|
c[D_CBC_256_AES][0]=count;
|
||||||
|
c[D_CBC_128_CML][0]=count;
|
||||||
|
c[D_CBC_192_CML][0]=count;
|
||||||
|
c[D_CBC_256_CML][0]=count;
|
||||||
c[D_SHA256][0]=count;
|
c[D_SHA256][0]=count;
|
||||||
c[D_SHA512][0]=count;
|
c[D_SHA512][0]=count;
|
||||||
|
c[D_IGE_128_AES][0]=count;
|
||||||
|
c[D_IGE_192_AES][0]=count;
|
||||||
|
c[D_IGE_256_AES][0]=count;
|
||||||
|
|
||||||
for (i=1; i<SIZE_NUM; i++)
|
for (i=1; i<SIZE_NUM; i++)
|
||||||
{
|
{
|
||||||
@ -1327,6 +1429,7 @@ int MAIN(int argc, char **argv)
|
|||||||
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;
|
||||||
c[D_CBC_IDEA][i]=c[D_CBC_IDEA][i-1]*l0/l1;
|
c[D_CBC_IDEA][i]=c[D_CBC_IDEA][i-1]*l0/l1;
|
||||||
|
c[D_CBC_SEED][i]=c[D_CBC_SEED][i-1]*l0/l1;
|
||||||
c[D_CBC_RC2][i]=c[D_CBC_RC2][i-1]*l0/l1;
|
c[D_CBC_RC2][i]=c[D_CBC_RC2][i-1]*l0/l1;
|
||||||
c[D_CBC_RC5][i]=c[D_CBC_RC5][i-1]*l0/l1;
|
c[D_CBC_RC5][i]=c[D_CBC_RC5][i-1]*l0/l1;
|
||||||
c[D_CBC_BF][i]=c[D_CBC_BF][i-1]*l0/l1;
|
c[D_CBC_BF][i]=c[D_CBC_BF][i-1]*l0/l1;
|
||||||
@ -1334,6 +1437,12 @@ int MAIN(int argc, char **argv)
|
|||||||
c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]*l0/l1;
|
c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]*l0/l1;
|
||||||
c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]*l0/l1;
|
c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]*l0/l1;
|
||||||
c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]*l0/l1;
|
c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]*l0/l1;
|
||||||
|
c[D_CBC_128_CML][i]=c[D_CBC_128_CML][i-1]*l0/l1;
|
||||||
|
c[D_CBC_192_CML][i]=c[D_CBC_192_CML][i-1]*l0/l1;
|
||||||
|
c[D_CBC_256_CML][i]=c[D_CBC_256_CML][i-1]*l0/l1;
|
||||||
|
c[D_IGE_128_AES][i]=c[D_IGE_128_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;
|
||||||
}
|
}
|
||||||
#ifndef OPENSSL_NO_RSA
|
#ifndef OPENSSL_NO_RSA
|
||||||
rsa_c[R_RSA_512][0]=count/2000;
|
rsa_c[R_RSA_512][0]=count/2000;
|
||||||
@ -1727,6 +1836,93 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (doit[D_IGE_128_AES])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_IGE_128_AES],c[D_IGE_128_AES][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_IGE_128_AES][j]); count++)
|
||||||
|
AES_ige_encrypt(buf,buf2,
|
||||||
|
(unsigned long)lengths[j],&aes_ks1,
|
||||||
|
iv,AES_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_IGE_128_AES,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (doit[D_IGE_192_AES])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_IGE_192_AES],c[D_IGE_192_AES][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_IGE_192_AES][j]); count++)
|
||||||
|
AES_ige_encrypt(buf,buf2,
|
||||||
|
(unsigned long)lengths[j],&aes_ks2,
|
||||||
|
iv,AES_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_IGE_192_AES,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (doit[D_IGE_256_AES])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_IGE_256_AES],c[D_IGE_256_AES][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_IGE_256_AES][j]); count++)
|
||||||
|
AES_ige_encrypt(buf,buf2,
|
||||||
|
(unsigned long)lengths[j],&aes_ks3,
|
||||||
|
iv,AES_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_IGE_256_AES,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_CAMELLIA
|
||||||
|
if (doit[D_CBC_128_CML])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_CBC_128_CML],c[D_CBC_128_CML][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_CBC_128_CML][j]); count++)
|
||||||
|
Camellia_cbc_encrypt(buf,buf,
|
||||||
|
(unsigned long)lengths[j],&camellia_ks1,
|
||||||
|
iv,CAMELLIA_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_CBC_128_CML,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (doit[D_CBC_192_CML])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_CBC_192_CML],c[D_CBC_192_CML][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_CBC_192_CML][j]); count++)
|
||||||
|
Camellia_cbc_encrypt(buf,buf,
|
||||||
|
(unsigned long)lengths[j],&camellia_ks2,
|
||||||
|
iv,CAMELLIA_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_CBC_192_CML,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (doit[D_CBC_256_CML])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_CBC_256_CML],c[D_CBC_256_CML][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_CBC_256_CML][j]); count++)
|
||||||
|
Camellia_cbc_encrypt(buf,buf,
|
||||||
|
(unsigned long)lengths[j],&camellia_ks3,
|
||||||
|
iv,CAMELLIA_ENCRYPT);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_CBC_256_CML,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_IDEA
|
#ifndef OPENSSL_NO_IDEA
|
||||||
if (doit[D_CBC_IDEA])
|
if (doit[D_CBC_IDEA])
|
||||||
@ -1744,6 +1940,21 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_SEED
|
||||||
|
if (doit[D_CBC_SEED])
|
||||||
|
{
|
||||||
|
for (j=0; j<SIZE_NUM; j++)
|
||||||
|
{
|
||||||
|
print_message(names[D_CBC_SEED],c[D_CBC_SEED][j],lengths[j]);
|
||||||
|
Time_F(START);
|
||||||
|
for (count=0,run=1; COND(c[D_CBC_SEED][j]); count++)
|
||||||
|
SEED_cbc_encrypt(buf,buf,
|
||||||
|
(unsigned long)lengths[j],&seed_ks,iv,1);
|
||||||
|
d=Time_F(STOP);
|
||||||
|
print_result(D_CBC_SEED,j,count,d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_RC2
|
#ifndef OPENSSL_NO_RC2
|
||||||
if (doit[D_CBC_RC2])
|
if (doit[D_CBC_RC2])
|
||||||
{
|
{
|
||||||
@ -2506,6 +2717,7 @@ static void print_result(int alg,int run_no,int count,double time_used)
|
|||||||
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
results[alg][run_no]=((double)count)/time_used*lengths[run_no];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_FORK
|
||||||
static char *sstrsep(char **string, const char *delim)
|
static char *sstrsep(char **string, const char *delim)
|
||||||
{
|
{
|
||||||
char isdelim[256];
|
char isdelim[256];
|
||||||
@ -2537,7 +2749,6 @@ static char *sstrsep(char **string, const char *delim)
|
|||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_FORK
|
|
||||||
static int do_multi(int multi)
|
static int do_multi(int multi)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
15
apps/x509.c
15
apps/x509.c
@ -73,8 +73,12 @@
|
|||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
#ifndef OPENSSL_NO_RSA
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_NO_DSA
|
||||||
#include <openssl/dsa.h>
|
#include <openssl/dsa.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#undef PROG
|
#undef PROG
|
||||||
#define PROG x509_main
|
#define PROG x509_main
|
||||||
@ -110,6 +114,7 @@ static const char *x509_usage[]={
|
|||||||
" -alias - output certificate alias\n",
|
" -alias - output certificate alias\n",
|
||||||
" -noout - no certificate output\n",
|
" -noout - no certificate output\n",
|
||||||
" -ocspid - print OCSP hash values for the subject name and public key\n",
|
" -ocspid - print OCSP hash values for the subject name and public key\n",
|
||||||
|
" -ocspurl - print OCSP Responder URL(s)\n",
|
||||||
" -trustout - output a \"trusted\" certificate\n",
|
" -trustout - output a \"trusted\" certificate\n",
|
||||||
" -clrtrust - clear all trusted purposes\n",
|
" -clrtrust - clear all trusted purposes\n",
|
||||||
" -clrreject - clear all rejected purposes\n",
|
" -clrreject - clear all rejected purposes\n",
|
||||||
@ -175,6 +180,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int next_serial=0;
|
int next_serial=0;
|
||||||
int subject_hash=0,issuer_hash=0,ocspid=0;
|
int subject_hash=0,issuer_hash=0,ocspid=0;
|
||||||
int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0;
|
int noout=0,sign_flag=0,CA_flag=0,CA_createserial=0,email=0;
|
||||||
|
int ocsp_uri=0;
|
||||||
int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0;
|
int trustout=0,clrtrust=0,clrreject=0,aliasout=0,clrext=0;
|
||||||
int C=0;
|
int C=0;
|
||||||
int x509req=0,days=DEF_DAYS,modulus=0,pubkey=0;
|
int x509req=0,days=DEF_DAYS,modulus=0,pubkey=0;
|
||||||
@ -374,6 +380,8 @@ int MAIN(int argc, char **argv)
|
|||||||
C= ++num;
|
C= ++num;
|
||||||
else if (strcmp(*argv,"-email") == 0)
|
else if (strcmp(*argv,"-email") == 0)
|
||||||
email= ++num;
|
email= ++num;
|
||||||
|
else if (strcmp(*argv,"-ocsp_uri") == 0)
|
||||||
|
ocsp_uri= ++num;
|
||||||
else if (strcmp(*argv,"-serial") == 0)
|
else if (strcmp(*argv,"-serial") == 0)
|
||||||
serial= ++num;
|
serial= ++num;
|
||||||
else if (strcmp(*argv,"-next_serial") == 0)
|
else if (strcmp(*argv,"-next_serial") == 0)
|
||||||
@ -727,11 +735,14 @@ bad:
|
|||||||
ASN1_INTEGER_free(ser);
|
ASN1_INTEGER_free(ser);
|
||||||
BIO_puts(out, "\n");
|
BIO_puts(out, "\n");
|
||||||
}
|
}
|
||||||
else if (email == i)
|
else if ((email == i) || (ocsp_uri == i))
|
||||||
{
|
{
|
||||||
int j;
|
int j;
|
||||||
STACK *emlst;
|
STACK *emlst;
|
||||||
emlst = X509_get1_email(x);
|
if (email == i)
|
||||||
|
emlst = X509_get1_email(x);
|
||||||
|
else
|
||||||
|
emlst = X509_get1_ocsp(x);
|
||||||
for (j = 0; j < sk_num(emlst); j++)
|
for (j = 0; j < sk_num(emlst); j++)
|
||||||
BIO_printf(STDout, "%s\n", sk_value(emlst, j));
|
BIO_printf(STDout, "%s\n", sk_value(emlst, j));
|
||||||
X509_email_free(emlst);
|
X509_email_free(emlst);
|
||||||
|
4
certs/README.RootCerts
Normal file
4
certs/README.RootCerts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
The OpenSSL project does not (any longer) include root CA certificates.
|
||||||
|
|
||||||
|
Please check out the FAQ:
|
||||||
|
* How can I set up a bundle of commercial root CA certificates?
|
@ -1,19 +0,0 @@
|
|||||||
issuer= CN=5R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
notBefore=Mar 22 08:55:51 2000 GMT
|
|
||||||
notAfter=Mar 22 08:55:51 2005 GMT
|
|
||||||
subject= CN=5R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICaDCCAdSgAwIBAgIDDIOqMAoGBiskAwMBAgUAMG8xCzAJBgNVBAYTAkRFMT0w
|
|
||||||
OwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21tdW5pa2F0
|
|
||||||
aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjVSLUNBIDE6UE4w
|
|
||||||
IhgPMjAwMDAzMjIwODU1NTFaGA8yMDA1MDMyMjA4NTU1MVowbzELMAkGA1UEBhMC
|
|
||||||
REUxPTA7BgNVBAoUNFJlZ3VsaWVydW5nc2JlaMhvcmRlIGbIdXIgVGVsZWtvbW11
|
|
||||||
bmlrYXRpb24gdW5kIFBvc3QxITAMBgcCggYBCgcUEwExMBEGA1UEAxQKNVItQ0Eg
|
|
||||||
MTpQTjCBoTANBgkqhkiG9w0BAQEFAAOBjwAwgYsCgYEAih5BUycfBpqKhU8RDsaS
|
|
||||||
vV5AtzWeXQRColL9CH3t0DKnhjKAlJ8iccFtJNv+d3bh8bb9sh0maRSo647xP7hs
|
|
||||||
HTjKgTE4zM5BYNfXvST79OtcMgAzrnDiGjQIIWv8xbfV1MqxxdtZJygrwzRMb9jG
|
|
||||||
CAGoJEymoyzAMNG7tSdBWnUCBQDAAAABoxIwEDAOBgNVHQ8BAf8EBAMCAQYwCgYG
|
|
||||||
KyQDAwECBQADgYEAOaK8ihVSBUcL2IdVBxZYYUKwMz5m7H3zqhN8W9w+iafWudH6
|
|
||||||
b+aahkbENEwzg3C3v5g8nze7v7ssacQze657LHjP+e7ksUDIgcS4R1pU2eN16bjS
|
|
||||||
P/qGPF3rhrIEHoK5nJULkjkZYTtNiOvmQ/+G70TXDi3Os/TwLlWRvu+7YLM=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,19 +0,0 @@
|
|||||||
issuer= CN=6R-Ca 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
notBefore=Feb 1 09:52:17 2001 GMT
|
|
||||||
notAfter=Jun 1 09:52:17 2005 GMT
|
|
||||||
subject= CN=6R-Ca 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICaDCCAdSgAwIBAgIDMtGNMAoGBiskAwMBAgUAMG8xCzAJBgNVBAYTAkRFMT0w
|
|
||||||
OwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21tdW5pa2F0
|
|
||||||
aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjZSLUNhIDE6UE4w
|
|
||||||
IhgPMjAwMTAyMDEwOTUyMTdaGA8yMDA1MDYwMTA5NTIxN1owbzELMAkGA1UEBhMC
|
|
||||||
REUxPTA7BgNVBAoUNFJlZ3VsaWVydW5nc2JlaMhvcmRlIGbIdXIgVGVsZWtvbW11
|
|
||||||
bmlrYXRpb24gdW5kIFBvc3QxITAMBgcCggYBCgcUEwExMBEGA1UEAxQKNlItQ2Eg
|
|
||||||
MTpQTjCBoTANBgkqhkiG9w0BAQEFAAOBjwAwgYsCgYEAg6KrFSTNXKqe+2GKGeW2
|
|
||||||
wTmbVeflNkp5H/YxA9K1zmEn5XjKm0S0jH4Wfms6ipPlURVaFwTfnB1s++AnJAWf
|
|
||||||
mayaE9BP/pdIY6WtZGgW6aZc32VDMCMKPWyBNyagsJVDmzlakIA5cXBVa7Xqqd3P
|
|
||||||
ew8i2feMnQXcqHfDv02CW88CBQDAAAABoxIwEDAOBgNVHQ8BAf8EBAMCAQYwCgYG
|
|
||||||
KyQDAwECBQADgYEAOkqkUwdaTCt8wcJLA2zLuOwL5ADHMWLhv6gr5zEF+VckA6qe
|
|
||||||
IVLVf8e7fYlRmzQd+5OJcGglCQJLGT+ZplI3Mjnrd4plkoTNKV4iOzBcvJD7K4tn
|
|
||||||
XPvs9wCFcC7QU7PLvc1FDsAlr7e4wyefZRDL+wbqNfI7QZTSF1ubLd9AzeQ=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICajCCAdMCBDGA0QUwDQYJKoZIhvcNAQEEBQAwfTELMAkGA1UEBhMCQ2ExDzAN
|
|
||||||
BgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmlsaXR5IEFjY2VwdGVkMR8w
|
|
||||||
HQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRwwGgYDVQQDExNFbnRydXN0
|
|
||||||
IERlbW8gV2ViIENBMB4XDTk2MDQyNjEzMzUwMVoXDTA2MDQyNjEzMzUwMVowfTEL
|
|
||||||
MAkGA1UEBhMCQ2ExDzANBgNVBAcTBk5lcGVhbjEeMBwGA1UECxMVTm8gTGlhYmls
|
|
||||||
aXR5IEFjY2VwdGVkMR8wHQYDVQQKExZGb3IgRGVtbyBQdXJwb3NlcyBPbmx5MRww
|
|
||||||
GgYDVQQDExNFbnRydXN0IERlbW8gV2ViIENBMIGdMA0GCSqGSIb3DQEBAQUAA4GL
|
|
||||||
ADCBhwKBgQCaroS7O1DA0hm4IefNYU1cx/nqOmzEnk291d1XqznDeF4wEgakbkCc
|
|
||||||
zTKxK791yNpXG5RmngqH7cygDRTHZJ6mfCRn0wGC+AI00F2vYTGqPGRQL1N3lZT0
|
|
||||||
YDKFC0SQeMMjFIZ1aeQigroFQnHo0VB3zWIMpNkka8PY9lxHZAmWwQIBAzANBgkq
|
|
||||||
hkiG9w0BAQQFAAOBgQBAx0UMVA1s54lMQyXjMX5kj99FJN5itb8bK1Rk+cegPQPF
|
|
||||||
cWO9SEWyEjjBjIkjjzAwBkaEszFsNGxemxtXvwjIm1xEUMTVlPEWTs2qnDvAUA9W
|
|
||||||
YqhWbhH0toGT36236QAsqCZ76rbTRVSSX2BHyJwJMG2tCRv7kRJ//NIgxj3H4w==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
Tims test GCI CA
|
|
||||||
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIB8DCCAZoCAQAwDQYJKoZIhvcNAQEEBQAwgYIxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2RldmVsb3BtZW50MRkwFwYDVQQDExBD
|
|
||||||
cnlwdFNvZnQgRGV2IENBMB4XDTk3MDMyMjEzMzQwNFoXDTk4MDMyMjEzMzQwNFow
|
|
||||||
gYIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhC
|
|
||||||
cmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxFDASBgNVBAsTC2Rl
|
|
||||||
dmVsb3BtZW50MRkwFwYDVQQDExBDcnlwdFNvZnQgRGV2IENBMFwwDQYJKoZIhvcN
|
|
||||||
AQEBBQADSwAwSAJBAOAOAqogG5QwAmLhzyO4CoRnx/wVy4NZP4dxJy83O1EnL0rw
|
|
||||||
OdsamJKvPOLHgSXo3gDu9uVyvCf/QJmZAmC5ml8CAwEAATANBgkqhkiG9w0BAQQF
|
|
||||||
AANBADRRS/GVdd7rAqRW6SdmgLJduOU2yq3avBu99kRqbp9A/dLu6r6jU+eP4oOA
|
|
||||||
TfdbFZtAAD2Hx9jUtY3tfdrJOb8=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICVjCCAgACAQAwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAkFVMRMwEQYD
|
|
||||||
VQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5
|
|
||||||
cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsTI1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9O
|
|
||||||
IEFVVEhPUklUSUVTMTQwMgYDVQQDEytaRVJPIFZBTFVFIENBIC0gREVNT05TVFJB
|
|
||||||
VElPTiBQVVJQT1NFUyBPTkxZMB4XDTk3MDQwMzEzMjI1NFoXDTk4MDQwMzEzMjI1
|
|
||||||
NFowgbUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH
|
|
||||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxLDAqBgNVBAsT
|
|
||||||
I1dPUlRITEVTUyBDRVJUSUZJQ0FUSU9OIEFVVEhPUklUSUVTMTQwMgYDVQQDEyta
|
|
||||||
RVJPIFZBTFVFIENBIC0gREVNT05TVFJBVElPTiBQVVJQT1NFUyBPTkxZMFwwDQYJ
|
|
||||||
KoZIhvcNAQEBBQADSwAwSAJBAOZ7T7yqP/tyspcko3yPY1y0Cm2EmwNvzW4QgVXR
|
|
||||||
Fjs3HmJ4xtSpXdo6mwcGezL3Abt/aQXaxv9PU8xt+Jr0OFUCAwEAATANBgkqhkiG
|
|
||||||
9w0BAQQFAANBAOQpYmGgyCqCy1OljgJhCqQOu627oVlHzK1L+t9vBaMfn40AVUR4
|
|
||||||
WzQVWO31KTgi5vTK1U+3h46fgUWqQ0h+6rU=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,18 +0,0 @@
|
|||||||
subject=/O=VeriSign, Inc/OU=www.verisign.com/repository/TestCPS Incorp. By Ref. Liab. LTD./OU=For VeriSign authorized testing only. No assurances (C)VS1997
|
|
||||||
notBefore=Mar 4 00:00:00 1997 GMT
|
|
||||||
notAfter=Mar 4 23:59:59 2025 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICTTCCAfcCEEdoCqpuXxnoK27q7d58Qc4wDQYJKoZIhvcNAQEEBQAwgakxFjAU
|
|
||||||
BgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52ZXJpc2lnbi5jb20v
|
|
||||||
cmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBMaWFiLiBMVEQuMUYw
|
|
||||||
RAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0aW5nIG9ubHkuIE5v
|
|
||||||
IGFzc3VyYW5jZXMgKEMpVlMxOTk3MB4XDTk3MDMwNDAwMDAwMFoXDTI1MDMwNDIz
|
|
||||||
NTk1OVowgakxFjAUBgNVBAoTDVZlcmlTaWduLCBJbmMxRzBFBgNVBAsTPnd3dy52
|
|
||||||
ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9UZXN0Q1BTIEluY29ycC4gQnkgUmVmLiBM
|
|
||||||
aWFiLiBMVEQuMUYwRAYDVQQLEz1Gb3IgVmVyaVNpZ24gYXV0aG9yaXplZCB0ZXN0
|
|
||||||
aW5nIG9ubHkuIE5vIGFzc3VyYW5jZXMgKEMpVlMxOTk3MFwwDQYJKoZIhvcNAQEB
|
|
||||||
BQADSwAwSAJBAMak6xImJx44jMKcbkACy5/CyMA2fqXK4PlzTtCxRq5tFkDzne7s
|
|
||||||
cI8oFK/J+gFZNE3bjidDxf07O3JOYG9RGx8CAwEAATANBgkqhkiG9w0BAQQFAANB
|
|
||||||
ADT523tENOKrEheZFpsJx1UUjPrG7TwYc/C4NBHrZI4gZJcKVFIfNulftVS6UMYW
|
|
||||||
ToLEMaUojc3DuNXHG21PDG8=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
|
||||||
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9CYW5rRW5n
|
|
||||||
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
|
||||||
aW9uMRMwEQYDVQQDEwpiYW5rZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBiYW5r
|
|
||||||
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
|
||||||
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
|
||||||
BAoTD0JhbmtFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
|
||||||
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmJhbmtlbmdpbmUxIDAeBgkqhkiG9w0B
|
|
||||||
CQEWEWNhQGJhbmtlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEA14LoTUAl1/hEy+Kh1kLHiBdW2zD3V4IhM7xxTVKsYsIH56nr69ATTIxU
|
|
||||||
P36eRzeZ137qt1AxHFjDCidk3m1Ul6l59ProPexdslLLM2npM3f2cteg+toyiYiS
|
|
||||||
EJKjyzIu1xF1j9qzGkymSY/4DsXLZNk9FaczxMk/Ooc6Os1M3AverL4VG4rYIb6f
|
|
||||||
eR32cIKJ9Q1fGuyKk7ipq1XQfPW8a8TgZdbHbe7U9Gk3iasGMHHvpR9Ep3mGbgdT
|
|
||||||
uQ98SBEuIwe1BUCGg/MXpVy48MNXfAMotBgGw4pl9yqSjMni2FB+E9Q9DHFs2RgX
|
|
||||||
MqzKuo8zcPxKx2kZ6Arj8+27dw2clQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4IBAQBauupHX9EhpC/r57d6b5kkeWvognxIP9//TO4iw3qb
|
|
||||||
zIXEkPXmJmwVzlzoKJWqiya+aw19SP0+G6CzsFOBo/9ehmz+hZ8bhYX4MjlWzX5u
|
|
||||||
Tnkhz172j9fOBUmrTVPkcRIs6zjCD5PQAGoBPP1/Zdy2N36lZ0U7lg07Opirj/yJ
|
|
||||||
PSJeM2j0fwIFAroiVckvdT0BVwB6S/cPaAQGPghbbr1YGSmYrMriSv825ILJUfxz
|
|
||||||
rJYunGR9FiY9Ob7+jwJwiZMS4CxSPktutxr/3hOvr1+ALS7IcVakhhA3PuZAJbdH
|
|
||||||
FRclR9qMM8aBnBZmf+Uv3K3uhT+UBzzY654U9Yi1JYnA
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
|
||||||
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9DZXJ0RW5n
|
|
||||||
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
|
||||||
aW9uMRMwEQYDVQQDEwpjZXJ0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBjZXJ0
|
|
||||||
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
|
||||||
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
|
||||||
BAoTD0NlcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
|
||||||
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmNlcnRlbmdpbmUxIDAeBgkqhkiG9w0B
|
|
||||||
CQEWEWNhQGNlcnRlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEA7aTXURShaeVt9u/dP3Q2dVib3jTCZvEyc6yfpGgaYWewXWuP4HOSfI4h
|
|
||||||
GZblbpl+dzJc6RjhR+pguIRtbT5FJB8SJGjRqoujBEOQOxtVtc2fjM9Dqh0iOvMW
|
|
||||||
WS6buxHG55GVrHAQaO5HXEScKQBa9ZyNmpSXPTEBrDMej1OAGOkc524/TZrgFPF4
|
|
||||||
AiJLLkxCcP8NuzUKlW3WzNMSSoCtjkUKy4wjSLlAWCFM0T9Df6/+Z8ZUQTzHoKCD
|
|
||||||
ncH5Qnynd7DlOwKQ2JwwxRhYGiGVTUN0GUq7qA11kW3+vnbFesKQXoF6o2PVx9s2
|
|
||||||
YXviI2NXXUjZ0pVnsnFCc45Pm8XojwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4IBAQBP/aHOKJ00Akzc9HWM1X30hlWZFBaQi4pqD4Uhk8+p
|
|
||||||
KzzwFP5DRLBOz8TYBbtdXrS6hxVMr2sqWmhVkuyepWhHZazKGyHY/y0FbOXsewAV
|
|
||||||
1QxxSyx7ve89pCKv4/w0rQcP916iHc8Y/TCpmz7eITa3GId+8H/XTaBi8GBp9X9O
|
|
||||||
w8m25FmEB1NT+eJwefvfdKowjy4tSorKdW/eJspxNuTSRGmUy8G71W5dYvgpAlx6
|
|
||||||
mdnHyzxEGvRYNNI2bS0ifXgbEFNWqSas9q34ea5KOpkJu8T/KyXfSb6rPOsBSb0t
|
|
||||||
wMowwGtCVH2C4Lw/8zo0EjhMpTOsPaub408PrZ+NQ2bl
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,34 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIF3TCCA8WgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
|
||||||
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9Gb3J0RW5n
|
|
||||||
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
|
||||||
aW9uMRMwEQYDVQQDEwpmb3J0ZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBmb3J0
|
|
||||||
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
|
||||||
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
|
||||||
BAoTD0ZvcnRFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
|
||||||
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCmZvcnRlbmdpbmUxIDAeBgkqhkiG9w0B
|
|
||||||
CQEWEWNhQGZvcnRlbmdpbmUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
|
||||||
CgKCAgEAyr7GbpwDxx1v3EYbo0gcO+ligEhlDqG2e7u/AbWGoVAqc8+q6auUJUtz
|
|
||||||
4i7oh0yNadu1o9kpXW+znkgO0zlrgjGskqqMO1ooppzTJdFy/P8gR6x1Iuv3kWtX
|
|
||||||
OuzwPPEjv09LWlhyJsN+oU4ztTVf07I0Q9zYupcoDQ58XKRheI9KdDB2DYSmxywA
|
|
||||||
WSLQwIeG0Qa7gvokeQlpkgkEC7viEecJ3752KXBJHnh7As51mxnlpmG6sDy67Eli
|
|
||||||
HDw5tHETRqbtnscGBjskGQBqR5xt7+QnnthZrN8HJHDoa9zgGephwizhkL44lXLF
|
|
||||||
YK9W5XhFbblw2c+mAcHkokRiwD7CPeIoyD2a/Jcw3n5hegKTlNhd4BFGVF6JR7gF
|
|
||||||
OFk2QfHXit5uthsij9Xhl7WAgQUqLgggD9MphqPf4nY66OZUJV9ZsmB+Qfp8UizB
|
|
||||||
0WAOegactKVyRqHtRa+KIEXQXNtZgjcmMk9CYkP0nIbKtgKXaH6+9VMHNOryCnFE
|
|
||||||
7pSsuPUkypncFWCHGSeiFO3w4w4J4csltxBADQzxfRu5KZnlToQN7bVpI/Q31tVX
|
|
||||||
E5bjrJcq6Oj/OTqZ3ID+OqbkUdAg0ggjRKcTgxnLHd/AbMzJ6PsclDDf7cLs0WSl
|
|
||||||
xMxQR/z5bNST1rNtT9rsiv2TOhfvCBxO9AOjBioO8PLO032HTNECAwEAAaMQMA4w
|
|
||||||
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEAVyBpPWfT2VOyvVpslGKx
|
|
||||||
8h0+CWP8cilygGRtZJ5dAJzc//1REAHdvK+TgZ4Foz3dqHhXI+RNN0FpzuWaYMjW
|
|
||||||
ZTS0kAmcOQuGY1Oo4PGlPHI21pNz29oFDTJr0ZmLBJ4JKVsE2soJg55jdk9MZHA7
|
|
||||||
K//7HH9RsmrWZOE5DZDlrxp6+naixhMwnlPKKisIy9GNZUPqGdUWABMdB/BUVVNl
|
|
||||||
NU5TtWpIXUClMd8a+eoKcItBeYXowkHOBpinPkDX3clFDIUfWiw0Ro08s8SrrFqR
|
|
||||||
8Szwbrj52Xv1RM56oGqCjnkvJctxihODV7NcpxoAFjIZokDom0q6zPrrTUsLFQov
|
|
||||||
Plovc3w5hmALiDMshaTvE1nm3Psn4yQ+FlRE8epTZrQiIGypZkZC6lcz0mYawueW
|
|
||||||
cThYWGFhVG4ktQzOjjNRsNxopW+W7cF1zQTxiWUDnxIKSj7gtdQ2jiubxEEhfVag
|
|
||||||
r8DMtAccNVTZVURpGi56TptOOuotrTqqC+2GviW4hlxvdvmuQN0OlXlUwzz2Trxc
|
|
||||||
FamNnuA54lZw/8arLtxsFmHrcnPw53+1spumLD0S5UkxHNu40h6LIVpZz3H+0rLz
|
|
||||||
uFofTfiyMjcfK2AyHQTgUCbsrvgNuLDQUbyFGVchdFUkhztX3DhEVnxnnrpY4BVj
|
|
||||||
QdTqWIvw7lGlSuDCjxEQAOc=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBqDELMAkGA1UEBhMCQ0Ex
|
|
||||||
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRgwFgYDVQQKEw9NYWlsRW5n
|
|
||||||
aW5lIEluYy4xKTAnBgNVBAsTIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IERpdmlz
|
|
||||||
aW9uMRMwEQYDVQQDEwptYWlsZW5naW5lMSAwHgYJKoZIhvcNAQkBFhFjYUBtYWls
|
|
||||||
ZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBaMIGoMQsw
|
|
||||||
CQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xGDAWBgNV
|
|
||||||
BAoTD01haWxFbmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRo
|
|
||||||
b3JpdHkgRGl2aXNpb24xEzARBgNVBAMTCm1haWxlbmdpbmUxIDAeBgkqhkiG9w0B
|
|
||||||
CQEWEWNhQG1haWxlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEAqXmfsU+lx+NFmn6tN17RTOyaddHqLnr/3rzEDIyT9TN+tF9TG7jmK7lJ
|
|
||||||
Jrj5arQ3nTFaLF8JuND2U1z/cLPw6/TX+1tE3v3CNUDSjaisyUDiUyp3TE8hMMMz
|
|
||||||
zfZQn0JsGgNhhWxqyzjhRQGtKL4+xtn8VsF/8zGgZYke7nlmVKz/FslDFTnNoodL
|
|
||||||
BAEGiu9JQS9qqpbSs20NdZ6LXPL2A4iTjnsNFBW3jIMVIn/JVVyaycU7ue2oFviD
|
|
||||||
vLNpkVZcR7A+jjIdIumOc5VSF0y7y74cQC5YwkR2mLK7UBYDK6NCY3ta/C4M8NsM
|
|
||||||
0FpmvRl0+A1ivZtVwqI98dxDtp7HeQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0G
|
|
||||||
CSqGSIb3DQEBBQUAA4IBAQAjfNn5BCzxylBDakFQGWKE/P43PRibMOEzfd7+DzbY
|
|
||||||
WIekoz3i00DwoH3b6j4gwlDJRAOq4dF6/Pt/uBOHDo/op+ef+9ErmKPd+ehXN9h3
|
|
||||||
7QbccTgz7DtVwA4iRlDRLru+JuXzT+OsCHuFZMOLJ+KD2JAGh3W68JjdcLkrlcpt
|
|
||||||
AU0wc5aOHPPfEBdIah8y8QtNzXRVzoBt8zzvgCARkXxTS2u/9QaXR1hML0JtDgQS
|
|
||||||
SdZ6Kd8SN6yzqxD+buYD5sOfJmjBF/n3lqFHNMHnnGXy2TAXZtIAWzffU3A0cGPB
|
|
||||||
N6FZ026a86HbF1X4k+xszhbJu/ikczyuWnCJIg3fTYSD
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID6TCCAtGgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UEBhMCQ0Ex
|
|
||||||
CzAJBgNVBAgTAk9OMRAwDgYDVQQHEwdUb3JvbnRvMRowGAYDVQQKExFUcmFkZXJF
|
|
||||||
bmdpbmUgSW5jLjEpMCcGA1UECxMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRGl2
|
|
||||||
aXNpb24xFTATBgNVBAMTDHRyYWRlcmVuZ2luZTEiMCAGCSqGSIb3DQEJARYTY2FA
|
|
||||||
dHJhZGVyZW5naW5lLmNvbTAeFw05ODAxMDEwMDAwMDBaFw0zODAxMTcwMDAwMDBa
|
|
||||||
MIGuMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8x
|
|
||||||
GjAYBgNVBAoTEVRyYWRlckVuZ2luZSBJbmMuMSkwJwYDVQQLEyBDZXJ0aWZpY2F0
|
|
||||||
aW9uIEF1dGhvcml0eSBEaXZpc2lvbjEVMBMGA1UEAxMMdHJhZGVyZW5naW5lMSIw
|
|
||||||
IAYJKoZIhvcNAQkBFhNjYUB0cmFkZXJlbmdpbmUuY29tMIIBIjANBgkqhkiG9w0B
|
|
||||||
AQEFAAOCAQ8AMIIBCgKCAQEAzyX5QE+5SN+zgNn1v3zp9HmP4hQOWW8WuEVItZVP
|
|
||||||
9bt/xj5NeJd1kyPL/SqnF2qHcL3o/74r0Ga55aKHniwKYgQTlp5ELGfQ568QQeN9
|
|
||||||
xNIHtUXeStI9zCNZyZC+4YqObdMR/ivKA/WsLfUVMl2lV5JzJJz1BOE0gKEYiEyz
|
|
||||||
gIq5oLzkP/mOXoHRvWSZD2D0eHYIO7ovV2epVFK7g7p+dC4QoeIUEli+GF/Myg88
|
|
||||||
dV/qmi+Sybck2RLPXa8Nh27/ETVQ7kE1Eafmx7EyCqIhG+5lwJAy3HwHUBwAYuzj
|
|
||||||
iuZz5lD8aQmr8SKuvy3eOH9SVN5wh3YBlrNGwTStkESVLwIDAQABoxAwDjAMBgNV
|
|
||||||
HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAWOPAUhZd3x9EQiFJcuxFTMd9q
|
|
||||||
axgcriCzJsM6D96sYGko9xTeLhX/lr1bliVYI5AlupoLXAdMzGHJkOgaTirKjQXr
|
|
||||||
F9nymDdUWKe3TmwGob5016nQlH7qRKvGO3hka0rOGRK2U/2JT/4Qp8iH/DFi6cyM
|
|
||||||
uP0q8n64SAkxZXLzUuFQXqf7U/SNjzb9XJQEIAdjp7eYd3Qb4jDsDcX0FrKMF1aV
|
|
||||||
r0dCDnS7am7WTXPYCDGdSkPgEHEtLYIYH3lZp5sKdVZ9wl4F0WNFkRWRUr7AXPjw
|
|
||||||
50uLmUNmKCd8JZLMGA1TRNSTi7U9EcrWt0OkMWm74T2WVnAgNsDv2WrWsGfj
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,59 +0,0 @@
|
|||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 3 (0x2)
|
|
||||||
Serial Number: 1 (0x1)
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
|
|
||||||
Validity
|
|
||||||
Not Before: Apr 2 17:35:53 1997 GMT
|
|
||||||
Not After : Apr 2 17:35:53 1998 GMT
|
|
||||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsa
|
|
||||||
RSA Public Key: (512 bit)
|
|
||||||
Modulus (512 bit):
|
|
||||||
00:82:75:ba:f6:d1:60:b5:f9:15:b3:6a:dd:29:8f:
|
|
||||||
8b:a4:6f:1a:88:e0:50:43:40:0b:79:41:d5:d3:16:
|
|
||||||
44:7d:74:65:17:42:06:52:0b:e9:50:c8:10:cd:24:
|
|
||||||
e2:ae:8d:22:30:73:e6:b4:b7:93:1f:e5:6e:a2:ae:
|
|
||||||
49:11:a5:c9:45
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
X509v3 extensions:
|
|
||||||
X509v3 Authority Key Identifier:
|
|
||||||
0.........z.."p......e..
|
|
||||||
X509v3 Subject Key Identifier:
|
|
||||||
..~r..:..B.44fu......3
|
|
||||||
X509v3 Key Usage: critical
|
|
||||||
....
|
|
||||||
X509v3 Certificate Policies: critical
|
|
||||||
0.0...*...
|
|
||||||
X509v3 Subject Alternative Name:
|
|
||||||
0!..secude-support@darmstadt.gmd.de
|
|
||||||
X509v3 Issuer Alternative Name:
|
|
||||||
0I..ice-tel-ca@darmstadt.gmd.de.*http://www.darmstadt.gmd.de/ice-tel/euroca
|
|
||||||
X509v3 Basic Constraints: critical
|
|
||||||
0....
|
|
||||||
X509v3 CRL Distribution Points:
|
|
||||||
0200...,.*http://www.darmstadt.gmd.de/ice-tel/euroca
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
17:a2:88:b7:99:5a:05:41:e4:13:34:67:e6:1f:3e:26:ec:4b:
|
|
||||||
69:f9:3e:28:22:be:9d:1c:ab:41:6f:0c:00:85:fe:45:74:f6:
|
|
||||||
98:f0:ce:9b:65:53:4a:50:42:c7:d4:92:bd:d7:a2:a8:3d:98:
|
|
||||||
88:73:cd:60:28:79:a3:fc:48:7a
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICzDCCAnagAwIBAgIBATANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
|
|
||||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
|
||||||
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzU1M1oXDTk4MDQwMjE3MzU1M1owXDEhMB8G
|
|
||||||
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
|
|
||||||
aWZpY2F0aW9uIEF1dGhvcml0eTESMBAGA1UEBxMJRGFybXN0YWR0MFkwCgYEVQgB
|
|
||||||
AQICAgADSwAwSAJBAIJ1uvbRYLX5FbNq3SmPi6RvGojgUENAC3lB1dMWRH10ZRdC
|
|
||||||
BlIL6VDIEM0k4q6NIjBz5rS3kx/lbqKuSRGlyUUCAwEAAaOCATgwggE0MB8GA1Ud
|
|
||||||
IwQYMBaAFIr3yNUOx3ro1yJw4AuJ1bbsZbzPMB0GA1UdDgQWBBR+cvL4OoacQog0
|
|
||||||
NGZ1w9T80aIRMzAOBgNVHQ8BAf8EBAMCAfYwFAYDVR0gAQH/BAowCDAGBgQqAwQF
|
|
||||||
MCoGA1UdEQQjMCGBH3NlY3VkZS1zdXBwb3J0QGRhcm1zdGFkdC5nbWQuZGUwUgYD
|
|
||||||
VR0SBEswSYEbaWNlLXRlbC1jYUBkYXJtc3RhZHQuZ21kLmRlhipodHRwOi8vd3d3
|
|
||||||
LmRhcm1zdGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2EwDwYDVR0TAQH/BAUwAwEB
|
|
||||||
/zA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vd3d3LmRhcm1zdGFkdC5nbWQuZGUv
|
|
||||||
aWNlLXRlbC9ldXJvY2EwDQYJKoZIhvcNAQEEBQADQQAXooi3mVoFQeQTNGfmHz4m
|
|
||||||
7Etp+T4oIr6dHKtBbwwAhf5FdPaY8M6bZVNKUELH1JK916KoPZiIc81gKHmj/Eh6
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,48 +0,0 @@
|
|||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 3 (0x2)
|
|
||||||
Serial Number: 0 (0x0)
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority
|
|
||||||
Validity
|
|
||||||
Not Before: Apr 2 17:33:36 1997 GMT
|
|
||||||
Not After : Apr 2 17:33:36 1998 GMT
|
|
||||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsa
|
|
||||||
RSA Public Key: (512 bit)
|
|
||||||
Modulus (512 bit):
|
|
||||||
00:80:3e:eb:ae:47:a9:fe:10:54:0b:81:8b:9c:2b:
|
|
||||||
82:ab:3a:61:36:65:8b:f3:73:9f:ac:ac:7a:15:a7:
|
|
||||||
13:8f:b4:c4:ba:a3:0f:bc:a5:58:8d:cc:b1:93:31:
|
|
||||||
9e:81:9e:8c:19:61:86:fa:52:73:54:d1:97:76:22:
|
|
||||||
e7:c7:9f:41:cd
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
X509v3 extensions:
|
|
||||||
X509v3 Subject Key Identifier:
|
|
||||||
........z.."p......e..
|
|
||||||
X509v3 Key Usage: critical
|
|
||||||
....
|
|
||||||
X509v3 Subject Alternative Name:
|
|
||||||
0I.*http://www.darmstadt.gmd.de/ice-tel/euroca..ice-tel-ca@darmstadt.gmd.de
|
|
||||||
X509v3 Basic Constraints: critical
|
|
||||||
0....
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
76:69:61:db:b7:cf:8b:06:9e:d8:8c:96:53:d2:4d:a8:23:a6:
|
|
||||||
03:44:e8:8f:24:a5:c0:84:a8:4b:77:d4:2d:2b:7d:37:91:67:
|
|
||||||
f2:2c:ce:02:31:4c:6b:cc:ce:f2:68:a6:11:11:ab:7d:88:b8:
|
|
||||||
7e:22:9f:25:06:60:bd:79:30:3d
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICFjCCAcCgAwIBAgIBADANBgkqhkiG9w0BAQQFADBIMSEwHwYDVQQKExhFdXJv
|
|
||||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
|
||||||
QXV0aG9yaXR5MB4XDTk3MDQwMjE3MzMzNloXDTk4MDQwMjE3MzMzNlowSDEhMB8G
|
|
||||||
A1UEChMYRXVyb3BlYW4gSUNFLVRFTCBwcm9qZWN0MSMwIQYDVQQLExpWMy1DZXJ0
|
|
||||||
aWZpY2F0aW9uIEF1dGhvcml0eTBZMAoGBFUIAQECAgIAA0sAMEgCQQCAPuuuR6n+
|
|
||||||
EFQLgYucK4KrOmE2ZYvzc5+srHoVpxOPtMS6ow+8pViNzLGTMZ6BnowZYYb6UnNU
|
|
||||||
0Zd2IufHn0HNAgMBAAGjgZcwgZQwHQYDVR0OBBYEFIr3yNUOx3ro1yJw4AuJ1bbs
|
|
||||||
ZbzPMA4GA1UdDwEB/wQEAwIB9jBSBgNVHREESzBJhipodHRwOi8vd3d3LmRhcm1z
|
|
||||||
dGFkdC5nbWQuZGUvaWNlLXRlbC9ldXJvY2GBG2ljZS10ZWwtY2FAZGFybXN0YWR0
|
|
||||||
LmdtZC5kZTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA0EAdmlh27fP
|
|
||||||
iwae2IyWU9JNqCOmA0TojySlwISoS3fULSt9N5Fn8izOAjFMa8zO8mimERGrfYi4
|
|
||||||
fiKfJQZgvXkwPQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,63 +0,0 @@
|
|||||||
Certificate:
|
|
||||||
Data:
|
|
||||||
Version: 3 (0x2)
|
|
||||||
Serial Number: 1 (0x1)
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
Issuer: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt
|
|
||||||
Validity
|
|
||||||
Not Before: Apr 2 17:35:59 1997 GMT
|
|
||||||
Not After : Apr 2 17:35:59 1998 GMT
|
|
||||||
Subject: O=European ICE-TEL project, OU=V3-Certification Authority, L=Darmstadt, CN=USER
|
|
||||||
Subject Public Key Info:
|
|
||||||
Public Key Algorithm: rsa
|
|
||||||
RSA Public Key: (512 bit)
|
|
||||||
Modulus (512 bit):
|
|
||||||
00:a8:a8:53:63:49:1b:93:c3:c3:0b:6c:88:11:55:
|
|
||||||
de:7e:6a:e2:f9:52:a0:dc:69:25:c4:c8:bf:55:e1:
|
|
||||||
31:a8:ce:e4:a9:29:85:99:8a:15:9a:de:f6:2f:e1:
|
|
||||||
b4:50:5f:5e:04:75:a6:f4:76:dc:3c:0e:39:dc:3a:
|
|
||||||
be:3e:a4:61:8b
|
|
||||||
Exponent: 65537 (0x10001)
|
|
||||||
X509v3 extensions:
|
|
||||||
X509v3 Authority Key Identifier:
|
|
||||||
0...~r..:..B.44fu......3
|
|
||||||
X509v3 Subject Key Identifier:
|
|
||||||
...... .*...1.*.......
|
|
||||||
X509v3 Key Usage: critical
|
|
||||||
....
|
|
||||||
X509v3 Certificate Policies: critical
|
|
||||||
0.0...*...0.......
|
|
||||||
X509v3 Subject Alternative Name:
|
|
||||||
0:..user@darmstadt.gmd.de.!http://www.darmstadt.gmd.de/~user
|
|
||||||
X509v3 Issuer Alternative Name:
|
|
||||||
0....gmdca@gmd.de..http://www.gmd.de..saturn.darmstadt.gmd.de.\1!0...U.
|
|
||||||
..European ICE-TEL project1#0!..U....V3-Certification Authority1.0...U....Darmstadt..141.12.62.26
|
|
||||||
X509v3 Basic Constraints: critical
|
|
||||||
0.
|
|
||||||
X509v3 CRL Distribution Points:
|
|
||||||
0.0.......gmdca@gmd.de
|
|
||||||
Signature Algorithm: md5WithRSAEncryption
|
|
||||||
69:0c:e1:b7:a7:f2:d8:fb:e8:69:c0:13:cd:37:ad:21:06:22:
|
|
||||||
4d:e8:c6:db:f1:04:0b:b7:e0:b3:d6:0c:81:03:ce:c3:6a:3e:
|
|
||||||
c7:e7:24:24:a4:92:64:c2:83:83:06:42:53:0e:6f:09:1e:84:
|
|
||||||
9a:f7:6f:63:9b:94:99:83:d6:a4
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDTzCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBcMSEwHwYDVQQKExhFdXJv
|
|
||||||
cGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24g
|
|
||||||
QXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHQwHhcNOTcwNDAyMTczNTU5WhcN
|
|
||||||
OTgwNDAyMTczNTU5WjBrMSEwHwYDVQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2pl
|
|
||||||
Y3QxIzAhBgNVBAsTGlYzLUNlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQH
|
|
||||||
EwlEYXJtc3RhZHQxDTALBgNVBAMTBFVTRVIwWTAKBgRVCAEBAgICAANLADBIAkEA
|
|
||||||
qKhTY0kbk8PDC2yIEVXefmri+VKg3GklxMi/VeExqM7kqSmFmYoVmt72L+G0UF9e
|
|
||||||
BHWm9HbcPA453Dq+PqRhiwIDAQABo4IBmDCCAZQwHwYDVR0jBBgwFoAUfnLy+DqG
|
|
||||||
nEKINDRmdcPU/NGiETMwHQYDVR0OBBYEFJfc4B8gjSoRmLUx4Sq/ucIYiMrPMA4G
|
|
||||||
A1UdDwEB/wQEAwIB8DAcBgNVHSABAf8EEjAQMAYGBCoDBAUwBgYECQgHBjBDBgNV
|
|
||||||
HREEPDA6gRV1c2VyQGRhcm1zdGFkdC5nbWQuZGWGIWh0dHA6Ly93d3cuZGFybXN0
|
|
||||||
YWR0LmdtZC5kZS9+dXNlcjCBsQYDVR0SBIGpMIGmgQxnbWRjYUBnbWQuZGWGEWh0
|
|
||||||
dHA6Ly93d3cuZ21kLmRlghdzYXR1cm4uZGFybXN0YWR0LmdtZC5kZaRcMSEwHwYD
|
|
||||||
VQQKExhFdXJvcGVhbiBJQ0UtVEVMIHByb2plY3QxIzAhBgNVBAsTGlYzLUNlcnRp
|
|
||||||
ZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQHEwlEYXJtc3RhZHSHDDE0MS4xMi42
|
|
||||||
Mi4yNjAMBgNVHRMBAf8EAjAAMB0GA1UdHwQWMBQwEqAQoA6BDGdtZGNhQGdtZC5k
|
|
||||||
ZTANBgkqhkiG9w0BAQQFAANBAGkM4ben8tj76GnAE803rSEGIk3oxtvxBAu34LPW
|
|
||||||
DIEDzsNqPsfnJCSkkmTCg4MGQlMObwkehJr3b2OblJmD1qQ=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,19 +0,0 @@
|
|||||||
issuer= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
notBefore=Jan 21 16:04:53 1999 GMT
|
|
||||||
notAfter=Jan 21 16:04:53 2004 GMT
|
|
||||||
subject= CN=4R-CA 1:PN+0.2.262.1.10.7.20=#130131,O=Regulierungsbeh\C3\88orde f\C3\88ur Telekommunikation und Post,C=DE
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICZzCCAdOgAwIBAgIEOwVn1DAKBgYrJAMDAQIFADBvMQswCQYDVQQGEwJERTE9
|
|
||||||
MDsGA1UEChQ0UmVndWxpZXJ1bmdzYmVoyG9yZGUgZsh1ciBUZWxla29tbXVuaWth
|
|
||||||
dGlvbiB1bmQgUG9zdDEhMAwGBwKCBgEKBxQTATEwEQYDVQQDFAo0Ui1DQSAxOlBO
|
|
||||||
MCIYDzE5OTkwMTIxMTYwNDUzWhgPMjAwNDAxMjExNjA0NTNaMG8xCzAJBgNVBAYT
|
|
||||||
AkRFMT0wOwYDVQQKFDRSZWd1bGllcnVuZ3NiZWjIb3JkZSBmyHVyIFRlbGVrb21t
|
|
||||||
dW5pa2F0aW9uIHVuZCBQb3N0MSEwDAYHAoIGAQoHFBMBMTARBgNVBAMUCjRSLUNB
|
|
||||||
IDE6UE4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGAjzHbq2asUlqeWbXTQHso
|
|
||||||
aVF6YIPVH3c/B2cbuy9HJ/lnE6x0asOzM2DGDqi47xkdAxPc0LZ0fxO87rkmz7xs
|
|
||||||
jJObnVrMXpyUSDSp5Y0wqKJdsFdr6mGFOQZteIti8AJnr8xMkwnWVyuOlEXsFe1h
|
|
||||||
5gxwQXrOcPinE6qu1t/3PmECBMAAAAGjEjAQMA4GA1UdDwEB/wQEAwIBBjAKBgYr
|
|
||||||
JAMDAQIFAAOBgQA+RdocBmA2VV9E5aKPBcp01tdZAvvW9Tve3docArVKR/4/yvSX
|
|
||||||
Z+wvzzk+uu4qBp49HN3nqPYMrzbTmjBFu4ce5fkZ7dHF0W1sSBL0rox5z36Aq2re
|
|
||||||
JjfEOEmSnNe0+opuh4FSVOssXblXTE8lEQU0FhhItgDx2ADnWZibaxLG4w==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,15 +0,0 @@
|
|||||||
-----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-----
|
|
@ -1,19 +0,0 @@
|
|||||||
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-----
|
|
@ -1,19 +0,0 @@
|
|||||||
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-----
|
|
@ -1,18 +0,0 @@
|
|||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 2 Public Primary Certification Authority
|
|
||||||
notBefore=Jan 29 00:00:00 1996 GMT
|
|
||||||
notAfter=Jan 7 23:59:59 2004 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICPTCCAaYCEQC6WslMBTuS1qe2307QU5INMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
|
||||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
|
||||||
c3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
|
||||||
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
|
||||||
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMiBQdWJsaWMgUHJp
|
|
||||||
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
|
||||||
jQAwgYkCgYEAtlqLow1qI4OAa885h/QhEzMGTCWi7VUSl8WngLn6g8EgoPovFQ18
|
|
||||||
oWBrfnks+gYPOq72G2+x0v8vKFJfg31LxHq3+GYfgFT8t8KOWUoUV0bRmpO+QZED
|
|
||||||
uxWAk1zr58wIbD8+s0r8/0tsI9VQgiZEGY4jw3HqGSRHBJ51v8imAB8CAwEAATAN
|
|
||||||
BgkqhkiG9w0BAQIFAAOBgQC2AB+TV6QHp0DOZUA/VV7t7/pUSaUw1iF8YYfug5ML
|
|
||||||
v7Qz8pisnwa/TqjOFIFMywROWMPPX+5815pvy0GKt3+BuP+EYcYnQ2UdDOyxAArd
|
|
||||||
G6S7x3ggKLKi3TaVLuFUT79guXdoEZkj6OpS6KoATmdOu5C1RZtG644W78QzWzM9
|
|
||||||
1Q==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,18 +0,0 @@
|
|||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
notBefore=Jan 29 00:00:00 1996 GMT
|
|
||||||
notAfter=Jan 7 23:59:59 2004 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICPTCCAaYCEQDknv3zOugOz6URPhmkJAIyMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
|
|
||||||
BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
|
|
||||||
c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
|
|
||||||
NjAxMjkwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
|
|
||||||
VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp
|
|
||||||
bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
|
|
||||||
jQAwgYkCgYEAyVxZnvIbigEUtBDfBEDb41evakVAj4QMC9Ez2dkRz+4CWB8l9yqo
|
|
||||||
RAWq7AMfeH+ek7maAKojfdashaJjRcdyJ8z0TMZ1cdI5709C8HXfCpDGjiBvmA/4
|
|
||||||
rCNfcCk2pMmG57GaIMtTpYXnPb59mv4kRTPcdhXtD6JxZExlLoFoRacCAwEAATAN
|
|
||||||
BgkqhkiG9w0BAQIFAAOBgQBhcOwvP579K+ZoVCGwZ3kIDCCWMYoNer62Jt95LCJp
|
|
||||||
STbjl3diYaIy13pUITa6Ask05yXaRDWw0lyAXbOU+Pms7qRgdSoflUkjsUp89LNH
|
|
||||||
ciFbfperVKxi513srpvSybIk+4Kt6WcVS7qqpvCXoPawl1cAyAw8CaCCBLpB2veZ
|
|
||||||
pA==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,19 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
|
|
||||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
|
||||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
|
||||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
|
|
||||||
MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
|
|
||||||
MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
|
|
||||||
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
|
|
||||||
dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
|
|
||||||
cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
|
|
||||||
DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
|
|
||||||
gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
|
|
||||||
yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
|
|
||||||
L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
|
|
||||||
EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
|
|
||||||
7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
|
|
||||||
QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
|
|
||||||
qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,19 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
|
|
||||||
FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
|
|
||||||
VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
|
|
||||||
biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
|
|
||||||
dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
|
|
||||||
MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
|
|
||||||
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
|
|
||||||
A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
|
|
||||||
b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
|
|
||||||
cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
|
|
||||||
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
|
|
||||||
VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
|
|
||||||
ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
|
|
||||||
uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
|
|
||||||
9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
|
|
||||||
hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
|
|
||||||
pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,17 +0,0 @@
|
|||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 1 Public Primary Certification Authority
|
|
||||||
notBefore=Jan 29 00:00:00 1996 GMT
|
|
||||||
notAfter=Jan 7 23:59:59 2020 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICPDCCAaUCEDJQM89Q0VbzXIGtZVxPyCUwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
|
||||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
|
||||||
cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
|
||||||
MDEyOTAwMDAwMFoXDTIwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
|
||||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmlt
|
|
||||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0f
|
|
||||||
zGVuDLDQVoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHi
|
|
||||||
TkVWaR94AoDa3EeRKbs2yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0G
|
|
||||||
CSqGSIb3DQEBAgUAA4GBAEtEZmBoZOSYG/OwcuaViXzde7OVwB0u2NgZ0C00PcZQ
|
|
||||||
mhCGjKo/O6gE/DdSlcPZydvN8oYGxLEb8IKIMEKOF1AcZHq4PplJdJf8rAJD+5YM
|
|
||||||
VgQlDHx8h50kp9jwMim1pN9dokzFFjKoQvZFprY2ueC/ZTaTwtLXa9zeWdaiNfhF
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,17 +0,0 @@
|
|||||||
subject=/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
|
|
||||||
notBefore=Jan 29 00:00:00 1996 GMT
|
|
||||||
notAfter=Aug 1 23:59:59 2028 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
|
||||||
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
|
||||||
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
|
||||||
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
|
||||||
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
|
||||||
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
|
||||||
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
|
||||||
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
|
||||||
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
|
||||||
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
|
||||||
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
|
||||||
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,17 +0,0 @@
|
|||||||
subject=/C=US/O=RSA Data Security, Inc./OU=Secure Server Certification Authority
|
|
||||||
notBefore=Nov 9 00:00:00 1994 GMT
|
|
||||||
notAfter=Jan 7 23:59:59 2010 GMT
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
|
|
||||||
A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
|
|
||||||
VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
|
|
||||||
MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
|
|
||||||
BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
|
|
||||||
dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
|
|
||||||
ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
|
|
||||||
0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
|
|
||||||
uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
|
|
||||||
hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
|
|
||||||
YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
|
|
||||||
1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
|
|
||||||
-----END CERTIFICATE-----
|
|
@ -1,23 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMC
|
|
||||||
VVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBD
|
|
||||||
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9v
|
|
||||||
dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDAxMDExMTY0MTI4WhcNMjEwMTE0
|
|
||||||
MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSww
|
|
||||||
KgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0G
|
|
||||||
A1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEi
|
|
||||||
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n13
|
|
||||||
5zHCLielTWi5MbqNQ1mXx3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHE
|
|
||||||
SxP9cMIlrCL1dQu3U+SlK93OvRw6esP3E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4O
|
|
||||||
JgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5OEL8pahbSCOz6+MlsoCu
|
|
||||||
ltQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4jsNtlAHCE
|
|
||||||
AQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMB
|
|
||||||
AAGjYTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcB
|
|
||||||
CzAyMDAGCCsGAQUFBwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRw
|
|
||||||
b2xpY3kwDQYJKoZIhvcNAQEFBQADggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo
|
|
||||||
7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrvm+0fazbuSCUlFLZWohDo7qd/
|
|
||||||
0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0ROhPs7fpvcmR7
|
|
||||||
nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
|
|
||||||
x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ
|
|
||||||
33ZwmVxwQ023tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
|
|
||||||
-----END CERTIFICATE-----
|
|
136
config
136
config
@ -84,7 +84,7 @@ if [ "x$XREL" != "x" ]; then
|
|||||||
4.2)
|
4.2)
|
||||||
echo "whatever-whatever-unixware1"; exit 0
|
echo "whatever-whatever-unixware1"; exit 0
|
||||||
;;
|
;;
|
||||||
5)
|
5*)
|
||||||
case "x${VERSION}" in
|
case "x${VERSION}" in
|
||||||
# We hardcode i586 in place of ${MACHINE} for the
|
# We hardcode i586 in place of ${MACHINE} for the
|
||||||
# following reason. The catch is that even though Pentium
|
# following reason. The catch is that even though Pentium
|
||||||
@ -93,8 +93,7 @@ if [ "x$XREL" != "x" ]; then
|
|||||||
# with i386 is that it makes ./config pass 386 to
|
# with i386 is that it makes ./config pass 386 to
|
||||||
# ./Configure, which in turn makes make generate
|
# ./Configure, which in turn makes make generate
|
||||||
# inefficient SHA-1 (for this moment) code.
|
# inefficient SHA-1 (for this moment) code.
|
||||||
x7*) echo "i586-sco-unixware7"; exit 0 ;;
|
x[678]*) echo "i586-sco-unixware7"; exit 0 ;;
|
||||||
x8*) echo "i586-unkn-OpenUNIX${VERSION}"; exit 0 ;;
|
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -407,7 +406,7 @@ if [ "$GCCVER" != "" ]; then
|
|||||||
CC=gcc
|
CC=gcc
|
||||||
# then strip off whatever prefix egcs prepends the number with...
|
# then strip off whatever prefix egcs prepends the number with...
|
||||||
# Hopefully, this will work for any future prefixes as well.
|
# Hopefully, this will work for any future prefixes as well.
|
||||||
GCCVER=`echo $GCCVER | sed 's/^[a-zA-Z]*\-//'`
|
GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
|
||||||
# Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
|
# Since gcc 3.1 gcc --version behaviour has changed. gcc -dumpversion
|
||||||
# does give us what we want though, so we use that. We just just the
|
# does give us what we want though, so we use that. We just just the
|
||||||
# major and minor version numbers.
|
# major and minor version numbers.
|
||||||
@ -452,8 +451,6 @@ if [ "$SYSTEM" = "SunOS" ]; then
|
|||||||
echo " patch #107357-01 or later applied."
|
echo " patch #107357-01 or later applied."
|
||||||
sleep 5
|
sleep 5
|
||||||
fi
|
fi
|
||||||
elif [ "$CC" = "cc" -a $CCVER -gt 0 ]; then
|
|
||||||
CC=sc3
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -504,20 +501,7 @@ case "$GUESSOS" in
|
|||||||
OUT="irix-mips3-$CC"
|
OUT="irix-mips3-$CC"
|
||||||
;;
|
;;
|
||||||
mips4-sgi-irix64)
|
mips4-sgi-irix64)
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
OUT="irix64-mips4-$CC"
|
||||||
echo " invoke './Configure irix64-mips4-$CC' *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
|
|
||||||
#CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
|
||||||
#CPU=${CPU:-0}
|
|
||||||
#if [ $CPU -ge 5000 ]; then
|
|
||||||
# options="$options -mips4"
|
|
||||||
#else
|
|
||||||
# options="$options -mips3"
|
|
||||||
#fi
|
|
||||||
OUT="irix-mips3-$CC"
|
|
||||||
;;
|
;;
|
||||||
ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
|
ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
|
||||||
ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
|
ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
|
||||||
@ -537,25 +521,12 @@ case "$GUESSOS" in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
ppc64-*-linux2)
|
ppc64-*-linux2)
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
OUT="linux-ppc64"
|
||||||
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
|
|
||||||
OUT="linux-ppc"
|
|
||||||
;;
|
;;
|
||||||
ppc-*-linux2) OUT="linux-ppc" ;;
|
ppc-*-linux2) OUT="linux-ppc" ;;
|
||||||
ia64-*-linux?) OUT="linux-ia64" ;;
|
ia64-*-linux?) OUT="linux-ia64" ;;
|
||||||
sparc64-*-linux2)
|
sparc64-*-linux2)
|
||||||
echo "WARNING! If you *know* that your GNU C supports 64-bit/V9 ABI"
|
OUT="linux64-sparcv9" ;;
|
||||||
echo " and wish to build 64-bit library, then you have to"
|
|
||||||
echo " invoke './Configure linux64-sparcv9' *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
|
|
||||||
OUT="linux-sparcv9" ;;
|
|
||||||
sparc-*-linux2)
|
sparc-*-linux2)
|
||||||
KARCH=`awk '/^type/{print$3;exit(0);}' /proc/cpuinfo`
|
KARCH=`awk '/^type/{print$3;exit(0);}' /proc/cpuinfo`
|
||||||
case ${KARCH:-sun4} in
|
case ${KARCH:-sun4} in
|
||||||
@ -588,53 +559,38 @@ case "$GUESSOS" in
|
|||||||
OUT="linux-generic32" ;;
|
OUT="linux-generic32" ;;
|
||||||
arm*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
arm*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||||
arm*l-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
arm*l-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
||||||
s390*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;;
|
sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||||
|
sh*-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
|
||||||
|
m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
|
||||||
|
s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;;
|
||||||
|
s390x-*-linux2) OUT="linux-s390x" ;;
|
||||||
x86_64-*-linux?) OUT="linux-x86_64" ;;
|
x86_64-*-linux?) OUT="linux-x86_64" ;;
|
||||||
*86-*-linux2) OUT="linux-elf"
|
*86-*-linux2) OUT="linux-elf"
|
||||||
if [ "$GCCVER" -gt 28 ]; then
|
if [ "$GCCVER" -gt 28 ]; then
|
||||||
if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
|
if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
|
||||||
options="$options -mcpu=pentium"
|
options="$options -march=pentium"
|
||||||
fi
|
fi
|
||||||
if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then
|
if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then
|
||||||
options="$options -mcpu=pentiumpro"
|
options="$options -march=pentiumpro"
|
||||||
fi
|
fi
|
||||||
if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then
|
if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then
|
||||||
options="$options -mcpu=k6"
|
options="$options -march=k6"
|
||||||
fi
|
fi
|
||||||
fi ;;
|
fi ;;
|
||||||
*-*-linux1) OUT="linux-aout" ;;
|
*-*-linux1) OUT="linux-aout" ;;
|
||||||
*-*-linux2) OUT="linux-generic32" ;;
|
*-*-linux2) OUT="linux-generic32" ;;
|
||||||
sun4u*-*-solaris2)
|
sun4[uv]*-*-solaris2)
|
||||||
OUT="solaris-sparcv9-$CC"
|
OUT="solaris-sparcv9-$CC"
|
||||||
ISA64=`(isalist) 2>/dev/null | grep sparcv9`
|
ISA64=`(isalist) 2>/dev/null | grep sparcv9`
|
||||||
if [ "$ISA64" != "" ]; then
|
if [ "$ISA64" != "" ]; then
|
||||||
if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
|
if [ "$CC" = "cc" -a $CCVER -ge 50 ]; then
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
OUT="solaris64-sparcv9-cc"
|
||||||
echo " invoke './Configure solaris64-sparcv9-cc' *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
|
|
||||||
elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then
|
elif [ "$CC" = "gcc" -a "$GCC_ARCH" = "-m64" ]; then
|
||||||
# $GCC_ARCH denotes default ABI chosen by compiler driver
|
# $GCC_ARCH denotes default ABI chosen by compiler driver
|
||||||
# (first one found on the $PATH). I assume that user
|
# (first one found on the $PATH). I assume that user
|
||||||
# expects certain consistency with the rest of his builds
|
# expects certain consistency with the rest of his builds
|
||||||
# and therefore switch over to 64-bit. <appro>
|
# and therefore switch over to 64-bit. <appro>
|
||||||
OUT="solaris64-sparcv9-gcc"
|
OUT="solaris64-sparcv9-gcc"
|
||||||
echo "WARNING! If you wish to build 32-bit library, then you have to"
|
|
||||||
echo " invoke './Configure solaris-sparcv9-gcc' *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
|
|
||||||
elif [ "$GCC_ARCH" = "-m32" ]; then
|
|
||||||
echo "NOTICE! If you *know* that your GNU C supports 64-bit/V9 ABI"
|
|
||||||
echo " and wish to build 64-bit library, then you have to"
|
|
||||||
echo " invoke './Configure solaris64-sparcv9-gcc' *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
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -654,13 +610,20 @@ case "$GUESSOS" in
|
|||||||
;;
|
;;
|
||||||
*-*-sunos4) OUT="sunos-$CC" ;;
|
*-*-sunos4) OUT="sunos-$CC" ;;
|
||||||
|
|
||||||
*86*-*-bsdi4) OUT="bsdi-elf-gcc"; options="$options no-sse2" ;;
|
*86*-*-bsdi4) OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;;
|
||||||
alpha*-*-*bsd*) OUT="BSD-generic64; options="$options -DL_ENDIAN" ;;
|
alpha*-*-*bsd*) OUT="BSD-generic64"; options="$options -DL_ENDIAN" ;;
|
||||||
powerpc64-*-*bsd*) OUT="BSD-generic64; options="$options -DB_ENDIAN" ;;
|
powerpc64-*-*bsd*) OUT="BSD-generic64"; options="$options -DB_ENDIAN" ;;
|
||||||
sparc64-*-*bsd*) OUT="BSD-sparc64" ;;
|
sparc64-*-*bsd*) OUT="BSD-sparc64" ;;
|
||||||
ia64-*-*bsd*) OUT="BSD-ia64" ;;
|
ia64-*-*bsd*) OUT="BSD-ia64" ;;
|
||||||
amd64-*-*bsd*) OUT="BSD-x86_64" ;;
|
amd64-*-*bsd*) OUT="BSD-x86_64" ;;
|
||||||
*86*-*-*bsd*) case "`(file -L /usr/lib/libc.so.*) 2>/dev/null`" in
|
*86*-*-*bsd*) # mimic ld behaviour when it's looking for libc...
|
||||||
|
if [ -L /usr/lib/libc.so ]; then # [Free|Net]BSD
|
||||||
|
libc=/usr/lib/libc.so
|
||||||
|
else # OpenBSD
|
||||||
|
# ld searches for highest libc.so.* and so do we
|
||||||
|
libc=`(ls /usr/lib/libc.so.* | tail -1) 2>/dev/null`
|
||||||
|
fi
|
||||||
|
case "`(file -L $libc) 2>/dev/null`" in
|
||||||
*ELF*) OUT="BSD-x86-elf" ;;
|
*ELF*) OUT="BSD-x86-elf" ;;
|
||||||
*) OUT="BSD-x86"; options="$options no-sse2" ;;
|
*) OUT="BSD-x86"; options="$options no-sse2" ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
@ -668,16 +631,15 @@ case "$GUESSOS" in
|
|||||||
|
|
||||||
*-*-osf) OUT="osf1-alpha-cc" ;;
|
*-*-osf) OUT="osf1-alpha-cc" ;;
|
||||||
*-*-tru64) OUT="tru64-alpha-cc" ;;
|
*-*-tru64) OUT="tru64-alpha-cc" ;;
|
||||||
*-*-OpenUNIX*)
|
*-*-[Uu]nix[Ww]are7)
|
||||||
if [ "$CC" = "gcc" ]; then
|
if [ "$CC" = "gcc" ]; then
|
||||||
OUT="OpenUNIX-8-gcc"
|
OUT="unixware-7-gcc" ; options="$options no-sse2"
|
||||||
else
|
else
|
||||||
OUT="OpenUNIX-8"
|
OUT="unixware-7" ; options="$options no-sse2 -D__i386__"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*-*-[Uu]nix[Ww]are7) OUT="unixware-7" ;;
|
*-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0"; options="$options no-sse2 no-sha512" ;;
|
||||||
*-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0" ;;
|
*-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1"; options="$options no-sse2 no-sha512" ;;
|
||||||
*-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1" ;;
|
|
||||||
*-*-vos)
|
*-*-vos)
|
||||||
options="$options no-threads no-shared no-asm no-dso"
|
options="$options no-threads no-shared no-asm no-dso"
|
||||||
EXE=".pm"
|
EXE=".pm"
|
||||||
@ -695,28 +657,16 @@ case "$GUESSOS" in
|
|||||||
CPU_VERSION=${CPU_VERSION:-0}
|
CPU_VERSION=${CPU_VERSION:-0}
|
||||||
# See <sys/unistd.h> for further info on CPU_VERSION.
|
# See <sys/unistd.h> for further info on CPU_VERSION.
|
||||||
if [ $CPU_VERSION -ge 768 ]; then # IA-64 CPU
|
if [ $CPU_VERSION -ge 768 ]; then # IA-64 CPU
|
||||||
echo "WARNING! 64-bit ABI is the default configured ABI on HP-UXi."
|
|
||||||
echo " If you wish to build 32-bit library, the you have to"
|
|
||||||
echo " invoke './Configure hpux-ia64-cc' *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
|
|
||||||
OUT="hpux64-ia64-cc"
|
OUT="hpux64-ia64-cc"
|
||||||
elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
|
elif [ $CPU_VERSION -ge 532 ]; then # PA-RISC 2.x CPU
|
||||||
OUT=${OUT:-"hpux-parisc2-${CC}"}
|
OUT=${OUT:-"hpux-parisc2-${CC}"}
|
||||||
if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
|
if [ $KERNEL_BITS -eq 64 -a "$CC" = "cc" ]; then
|
||||||
echo "WARNING! If you wish to build 64-bit library then you have to"
|
OUT="hpux64-parisc2-${CC}"
|
||||||
echo " invoke './Configure hpux64-parisc2-cc' *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
|
fi
|
||||||
elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU
|
elif [ $CPU_VERSION -ge 528 ]; then # PA-RISC 1.1+ CPU
|
||||||
OUT="hpux-parisc-${CC}
|
OUT="hpux-parisc-${CC}"
|
||||||
elif [ $CPU_VERSION -ge 523 ]; then # PA-RISC 1.0 CPU
|
elif [ $CPU_VERSION -ge 523 ]; then # PA-RISC 1.0 CPU
|
||||||
OUT="hpux-parisc-${CC}
|
OUT="hpux-parisc-${CC}"
|
||||||
else # Motorola(?) CPU
|
else # Motorola(?) CPU
|
||||||
OUT="hpux-$CC"
|
OUT="hpux-$CC"
|
||||||
fi
|
fi
|
||||||
@ -734,14 +684,14 @@ case "$GUESSOS" in
|
|||||||
else
|
else
|
||||||
OUT="aix-cc"
|
OUT="aix-cc"
|
||||||
if [ $KERNEL_BITS -eq 64 ]; then
|
if [ $KERNEL_BITS -eq 64 ]; then
|
||||||
echo "WARNING! If you wish to build 64-bit kit, then you have to"
|
OUT="aix64-cc"
|
||||||
echo " invoke './Configure aix64-cc' *manually*."
|
|
||||||
if [ "$TEST" = "false" -a -t 1 ]; then
|
|
||||||
echo " You have ~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
|
fi
|
||||||
fi
|
fi
|
||||||
|
if (lsattr -E -O -l `lsdev -c processor|awk '{print$1;exit}'` | grep -i powerpc) >/dev/null 2>&1; then
|
||||||
|
: # this applies even to Power3 and later, as they return PowerPC_POWER[345]
|
||||||
|
else
|
||||||
|
options="$options no-asm"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
# these are all covered by the catchall below
|
# these are all covered by the catchall below
|
||||||
# *-dgux) OUT="dgux" ;;
|
# *-dgux) OUT="dgux" ;;
|
||||||
@ -766,7 +716,7 @@ esac
|
|||||||
# options="$options -DATALLA"
|
# options="$options -DATALLA"
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
# gcc < 2.8 does not support -mcpu=ultrasparc
|
# gcc < 2.8 does not support -march=ultrasparc
|
||||||
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
|
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
|
||||||
then
|
then
|
||||||
echo "WARNING! Falling down to 'solaris-sparcv8-gcc'."
|
echo "WARNING! Falling down to 'solaris-sparcv8-gcc'."
|
||||||
@ -786,7 +736,7 @@ case "$GUESSOS" in
|
|||||||
i386-*) options="$options 386" ;;
|
i386-*) options="$options 386" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
for i in bf cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 aes ripemd rsa sha
|
for i in aes bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha
|
||||||
do
|
do
|
||||||
if [ ! -d crypto/$i ]
|
if [ ! -d crypto/$i ]
|
||||||
then
|
then
|
||||||
|
147
crypto/Makefile
147
crypto/Makefile
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# SSLeay/crypto/Makefile
|
# OpenSSL/crypto/Makefile
|
||||||
#
|
#
|
||||||
|
|
||||||
DIR= crypto
|
DIR= crypto
|
||||||
@ -15,6 +15,11 @@ MAKEFILE= Makefile
|
|||||||
RM= rm -f
|
RM= rm -f
|
||||||
AR= ar r
|
AR= ar r
|
||||||
|
|
||||||
|
RECURSIVE_MAKE= [ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \
|
||||||
|
(cd $$i && echo "making $$target in $(DIR)/$$i..." && \
|
||||||
|
$(MAKE) -e TOP=../.. DIR=$$i INCLUDES='${INCLUDES}' $$target ) || exit 1; \
|
||||||
|
done;
|
||||||
|
|
||||||
PEX_LIBS=
|
PEX_LIBS=
|
||||||
EX_LIBS=
|
EX_LIBS=
|
||||||
|
|
||||||
@ -24,20 +29,12 @@ AFLAGS=$(ASFLAGS)
|
|||||||
|
|
||||||
LIBS=
|
LIBS=
|
||||||
|
|
||||||
SDIRS= objects \
|
|
||||||
md2 md4 md5 sha mdc2 hmac ripemd \
|
|
||||||
des rc2 rc4 rc5 idea bf cast \
|
|
||||||
bn ec rsa dsa ecdsa ecdh dh dso engine aes \
|
|
||||||
buffer bio stack lhash rand err \
|
|
||||||
evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
|
|
||||||
store pqueue
|
|
||||||
|
|
||||||
GENERAL=Makefile README crypto-lib.com install.com
|
GENERAL=Makefile README crypto-lib.com install.com
|
||||||
|
|
||||||
LIB= $(TOP)/libcrypto.a
|
LIB= $(TOP)/libcrypto.a
|
||||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
SHARED_LIB= libcrypto$(SHLIB_EXT)
|
||||||
LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c
|
LIBSRC= cryptlib.c dyn_lck.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c o_init.c fips_err.c
|
||||||
LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o $(CPUID_OBJ)
|
LIBOBJ= cryptlib.o dyn_lck.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o o_init.o fips_err.o $(CPUID_OBJ)
|
||||||
|
|
||||||
SRC= $(LIBSRC)
|
SRC= $(LIBSRC)
|
||||||
|
|
||||||
@ -50,31 +47,7 @@ ALL= $(GENERAL) $(SRC) $(HEADER)
|
|||||||
top:
|
top:
|
||||||
@(cd ..; $(MAKE) DIRS=$(DIR) all)
|
@(cd ..; $(MAKE) DIRS=$(DIR) all)
|
||||||
|
|
||||||
all: shared
|
all: lib
|
||||||
|
|
||||||
BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
|
|
||||||
CC='${CC}' CFLAG='${CFLAG}' \
|
|
||||||
AS='${CC}' ASFLAG='${CFLAG} -c' \
|
|
||||||
AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
|
|
||||||
SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/lib' \
|
|
||||||
INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' \
|
|
||||||
MAKEDEPEND='$$(TOP)/util/domd $$(TOP) -MD $(MAKEDEPPROG)'\
|
|
||||||
DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
|
|
||||||
MAKEDEPPROG='${MAKEDEPPROG}' \
|
|
||||||
LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)" \
|
|
||||||
KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
|
|
||||||
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_ASM_OBJ='${AES_ASM_OBJ}' \
|
|
||||||
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}' \
|
|
||||||
THIS=$${THIS:-$@}
|
|
||||||
|
|
||||||
buildinf.h: ../Makefile
|
buildinf.h: ../Makefile
|
||||||
( echo "#ifndef MK1MF_BUILD"; \
|
( echo "#ifndef MK1MF_BUILD"; \
|
||||||
@ -103,39 +76,30 @@ ia64cpuid.s: ia64cpuid.S
|
|||||||
$(CC) $(CFLAGS) -E ia64cpuid.S > $@
|
$(CC) $(CFLAGS) -E ia64cpuid.S > $@
|
||||||
|
|
||||||
testapps:
|
testapps:
|
||||||
[ -z "$(THIS)" ] || ( if echo ${SDIRS} | fgrep ' des '; \
|
[ -z "$(THIS)" ] || ( if echo ${SDIRS} | fgrep ' des '; \
|
||||||
then cd des && $(MAKE) des; fi )
|
then cd des && $(MAKE) -e des; fi )
|
||||||
[ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) testapps );
|
[ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) -e testapps );
|
||||||
@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
|
@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
|
||||||
|
|
||||||
subdirs:
|
subdirs:
|
||||||
@for i in $(SDIRS) ;\
|
@target=all; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making all in crypto/$$i..." && \
|
|
||||||
$(MAKE) $(BUILDENV) INCLUDES='${INCLUDES}' all ) || exit 1; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
files:
|
files:
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
||||||
@for i in $(SDIRS) ;\
|
@target=files; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making 'files' in crypto/$$i..." && \
|
|
||||||
$(MAKE) files ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
links:
|
links:
|
||||||
@$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
|
@$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
|
||||||
@$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
|
@$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
|
||||||
@$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
|
@$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
|
||||||
@for i in $(SDIRS); do \
|
@target=links; $(RECURSIVE_MAKE)
|
||||||
(cd $$i && echo "making links in crypto/$$i..." && \
|
|
||||||
$(MAKE) links ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
lib: $(LIBOBJ)
|
# lib: and $(LIB): are splitted to avoid end-less loop
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
lib: buildinf.h $(LIB) subdirs
|
||||||
$(RANLIB) $(LIB) || echo Never mind.
|
|
||||||
@touch lib
|
@touch lib
|
||||||
|
$(LIB): $(LIBOBJ)
|
||||||
|
$(ARX) $(LIB) $(LIBOBJ)
|
||||||
|
$(RANLIB) $(LIB) || echo Never mind.
|
||||||
|
|
||||||
shared: buildinf.h lib subdirs
|
shared: buildinf.h lib subdirs
|
||||||
if [ -n "$(SHARED_LIBS)" ]; then \
|
if [ -n "$(SHARED_LIBS)" ]; then \
|
||||||
@ -143,19 +107,7 @@ shared: buildinf.h lib subdirs
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
libs:
|
libs:
|
||||||
@for i in $(SDIRS) ;\
|
@target=lib; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making libs in crypto/$$i..." && \
|
|
||||||
$(MAKE) lib );
|
|
||||||
done;
|
|
||||||
|
|
||||||
tests:
|
|
||||||
@[ -z "$(THIS)" ] || (for i in $(SDIRS) ;\
|
|
||||||
do \
|
|
||||||
(cd $$i && echo "making tests in crypto/$$i..." && \
|
|
||||||
$(MAKE) tests ); \
|
|
||||||
done; )
|
|
||||||
@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
@[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
|
@[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
|
||||||
@ -164,47 +116,26 @@ install:
|
|||||||
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
|
||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
|
||||||
done;
|
done;
|
||||||
@for i in $(SDIRS) ;\
|
@target=install; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making install in crypto/$$i..." && \
|
|
||||||
$(MAKE) install ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
@for i in $(SDIRS) ;\
|
@target=lint; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making lint in crypto/$$i..." && \
|
|
||||||
$(MAKE) lint ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
[ -z "$(THIS)" -o -f buildinf.h ] || touch buildinf.h # fake buildinf.h if it does not exist
|
@[ -z "$(THIS)" -o -f buildinf.h ] || touch buildinf.h # fake buildinf.h if it does not exist
|
||||||
[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
|
@[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
|
||||||
[ -z "$(THIS)" -o -s buildinf.h ] || rm buildinf.h
|
@[ -z "$(THIS)" -o -s buildinf.h ] || rm buildinf.h
|
||||||
@[ -z "$(THIS)" ] || (set -e; \
|
@[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
|
||||||
for i in $(SDIRS) ; do \
|
|
||||||
( cd $$i && echo "making depend in crypto/$$i..." && \
|
|
||||||
$(MAKE) INCLUDES='${INCLUDES}' depend \
|
|
||||||
); \
|
|
||||||
done; )
|
|
||||||
@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
|
@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f buildinf.h *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
rm -f buildinf.h *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
|
||||||
@for i in $(SDIRS) ;\
|
@target=clean; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making clean in crypto/$$i..." && \
|
|
||||||
$(MAKE) clean ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
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)
|
||||||
@for i in $(SDIRS) ;\
|
@target=dclean; $(RECURSIVE_MAKE)
|
||||||
do \
|
|
||||||
(cd $$i && echo "making dclean in crypto/$$i..." && \
|
|
||||||
$(MAKE) dclean ); \
|
|
||||||
done;
|
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
|
|
||||||
@ -228,6 +159,13 @@ cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
cversion.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
cversion.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||||
cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
|
cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
|
||||||
cversion.o: cryptlib.h cversion.c
|
cversion.o: cryptlib.h cversion.c
|
||||||
|
dyn_lck.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||||
|
dyn_lck.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
|
dyn_lck.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||||
|
dyn_lck.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
|
dyn_lck.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||||
|
dyn_lck.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||||
|
dyn_lck.o: dyn_lck.c
|
||||||
ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
|
ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
|
||||||
ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||||
ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
@ -236,6 +174,13 @@ ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
|||||||
ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||||
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
||||||
ex_data.o: ex_data.c
|
ex_data.o: ex_data.c
|
||||||
|
fips_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||||
|
fips_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||||
|
fips_err.o: ../include/openssl/fips.h ../include/openssl/lhash.h
|
||||||
|
fips_err.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||||
|
fips_err.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
|
||||||
|
fips_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h fips_err.c
|
||||||
|
fips_err.o: fips_err.h
|
||||||
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
|
||||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
|
||||||
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||||
@ -256,6 +201,12 @@ mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
|
|||||||
mem_dbg.o: mem_dbg.c
|
mem_dbg.o: mem_dbg.c
|
||||||
o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
|
||||||
o_dir.o: LPdir_unix.c o_dir.c o_dir.h
|
o_dir.o: LPdir_unix.c o_dir.c o_dir.h
|
||||||
|
o_init.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
|
||||||
|
o_init.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||||
|
o_init.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||||
|
o_init.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
||||||
|
o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||||
|
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/e_os2.h ../include/openssl/opensslconf.h o_time.c
|
||||||
|
@ -23,8 +23,10 @@ TEST=
|
|||||||
APPS=
|
APPS=
|
||||||
|
|
||||||
LIB=$(TOP)/libcrypto.a
|
LIB=$(TOP)/libcrypto.a
|
||||||
LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c aes_ctr.c
|
LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c \
|
||||||
LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o $(AES_ASM_OBJ)
|
aes_ctr.c aes_ige.c aes_wrap.c
|
||||||
|
LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o aes_ige.o aes_wrap.o \
|
||||||
|
$(AES_ASM_OBJ)
|
||||||
|
|
||||||
SRC= $(LIBSRC)
|
SRC= $(LIBSRC)
|
||||||
|
|
||||||
@ -39,7 +41,7 @@ top:
|
|||||||
all: lib
|
all: lib
|
||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(ARX) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB) || echo Never mind.
|
$(RANLIB) $(LIB) || echo Never mind.
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
@ -55,6 +57,11 @@ ax86-cof.s: asm/aes-586.pl ../perlasm/x86asm.pl
|
|||||||
ax86-out.s: asm/aes-586.pl ../perlasm/x86asm.pl
|
ax86-out.s: asm/aes-586.pl ../perlasm/x86asm.pl
|
||||||
(cd asm; $(PERL) aes-586.pl a.out $(CFLAGS) $(PROCESSOR) > ../$@)
|
(cd asm; $(PERL) aes-586.pl a.out $(CFLAGS) $(PROCESSOR) > ../$@)
|
||||||
|
|
||||||
|
aes-x86_64.s: asm/aes-x86_64.pl
|
||||||
|
$(PERL) asm/aes-x86_64.pl $@
|
||||||
|
# GNU make "catch all"
|
||||||
|
aes-%.s: asm/aes-%.pl; $(PERL) $< $(CFLAGS) > $@
|
||||||
|
|
||||||
files:
|
files:
|
||||||
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
|
||||||
|
|
||||||
@ -103,6 +110,13 @@ aes_ctr.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
|||||||
aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c aes_locl.h
|
aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c aes_locl.h
|
||||||
aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
|
||||||
aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
|
aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.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/e_os2.h ../../include/openssl/err.h
|
||||||
|
aes_ige.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||||
|
aes_ige.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||||
|
aes_ige.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||||
|
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
|
||||||
|
@ -66,6 +66,10 @@
|
|||||||
#define AES_MAXNR 14
|
#define AES_MAXNR 14
|
||||||
#define AES_BLOCK_SIZE 16
|
#define AES_BLOCK_SIZE 16
|
||||||
|
|
||||||
|
#ifdef OPENSSL_FIPS
|
||||||
|
#define FIPS_AES_SIZE_T int
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -119,6 +123,23 @@ void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
unsigned char ecount_buf[AES_BLOCK_SIZE],
|
unsigned char ecount_buf[AES_BLOCK_SIZE],
|
||||||
unsigned int *num);
|
unsigned int *num);
|
||||||
|
|
||||||
|
/* For IGE, see also http://www.links.org/files/openssl-ige.pdf */
|
||||||
|
/* NB: the IV is _two_ blocks long */
|
||||||
|
void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
|
const unsigned long length, const AES_KEY *key,
|
||||||
|
unsigned char *ivec, const int enc);
|
||||||
|
/* NB: the IV is _four_ blocks long */
|
||||||
|
void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
|
const unsigned long length, const AES_KEY *key,
|
||||||
|
const AES_KEY *key2, const unsigned char *ivec,
|
||||||
|
const int enc);
|
||||||
|
|
||||||
|
int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
|
||||||
|
unsigned char *out,
|
||||||
|
const unsigned char *in, unsigned int inlen);
|
||||||
|
int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
|
||||||
|
unsigned char *out,
|
||||||
|
const unsigned char *in, unsigned int inlen);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include "aes_locl.h"
|
#include "aes_locl.h"
|
||||||
|
|
||||||
|
#if !defined(OPENSSL_FIPS_AES_ASM)
|
||||||
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
const unsigned long length, const AES_KEY *key,
|
const unsigned long length, const AES_KEY *key,
|
||||||
unsigned char *ivec, const int enc) {
|
unsigned char *ivec, const int enc) {
|
||||||
@ -129,3 +130,4 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
@ -37,6 +37,10 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
|
#ifdef OPENSSL_FIPS
|
||||||
|
#include <openssl/fips.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "aes_locl.h"
|
#include "aes_locl.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -44,22 +48,14 @@ 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];
|
||||||
Te3[x] = S [x].[01, 01, 03, 02];
|
Te3[x] = S [x].[01, 01, 03, 02];
|
||||||
Te4[x] = S [x].[01, 01, 01, 01];
|
|
||||||
|
|
||||||
Td0[x] = Si[x].[0e, 09, 0d, 0b];
|
Td0[x] = Si[x].[0e, 09, 0d, 0b];
|
||||||
Td1[x] = Si[x].[0b, 0e, 09, 0d];
|
Td1[x] = Si[x].[0b, 0e, 09, 0d];
|
||||||
Td2[x] = Si[x].[0d, 0b, 0e, 09];
|
Td2[x] = Si[x].[0d, 0b, 0e, 09];
|
||||||
Td3[x] = Si[x].[09, 0d, 0b, 0e];
|
Td3[x] = Si[x].[09, 0d, 0b, 0e];
|
||||||
Td4[x] = Si[x].[01, 01, 01, 01];
|
Td4[x] = Si[x].[01];
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef AES_ASM
|
|
||||||
extern const u32 AES_Te[5][256];
|
|
||||||
#define Te0 AES_Te[0]
|
|
||||||
#define Te1 AES_Te[1]
|
|
||||||
#define Te2 AES_Te[2]
|
|
||||||
#define Te3 AES_Te[3]
|
|
||||||
#else
|
|
||||||
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,
|
||||||
@ -324,81 +320,7 @@ static const u32 Te3[256] = {
|
|||||||
0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
|
0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
|
||||||
0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
|
0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
static const u32 Te4[256] = {
|
|
||||||
0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
|
|
||||||
0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
|
|
||||||
0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
|
|
||||||
0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
|
|
||||||
0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
|
|
||||||
0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
|
|
||||||
0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
|
|
||||||
0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
|
|
||||||
0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
|
|
||||||
0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
|
|
||||||
0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
|
|
||||||
0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
|
|
||||||
0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
|
|
||||||
0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
|
|
||||||
0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
|
|
||||||
0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
|
|
||||||
0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
|
|
||||||
0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
|
|
||||||
0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
|
|
||||||
0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
|
|
||||||
0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
|
|
||||||
0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
|
|
||||||
0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
|
|
||||||
0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
|
|
||||||
0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
|
|
||||||
0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
|
|
||||||
0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
|
|
||||||
0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
|
|
||||||
0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
|
|
||||||
0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
|
|
||||||
0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
|
|
||||||
0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
|
|
||||||
0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
|
|
||||||
0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
|
|
||||||
0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
|
|
||||||
0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
|
|
||||||
0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
|
|
||||||
0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
|
|
||||||
0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
|
|
||||||
0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
|
|
||||||
0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
|
|
||||||
0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
|
|
||||||
0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
|
|
||||||
0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
|
|
||||||
0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
|
|
||||||
0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
|
|
||||||
0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
|
|
||||||
0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
|
|
||||||
0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
|
|
||||||
0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
|
|
||||||
0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
|
|
||||||
0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
|
|
||||||
0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
|
|
||||||
0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
|
|
||||||
0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
|
|
||||||
0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
|
|
||||||
0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
|
|
||||||
0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
|
|
||||||
0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
|
|
||||||
0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
|
|
||||||
0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
|
|
||||||
0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
|
|
||||||
0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
|
|
||||||
0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef AES_ASM
|
|
||||||
extern const u32 AES_Td[5][256];
|
|
||||||
#define Td0 AES_Td[0]
|
|
||||||
#define Td1 AES_Td[1]
|
|
||||||
#define Td2 AES_Td[2]
|
|
||||||
#define Td3 AES_Td[3]
|
|
||||||
#else
|
|
||||||
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,
|
||||||
@ -663,72 +585,39 @@ static const u32 Td3[256] = {
|
|||||||
0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
|
0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
|
||||||
0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
|
0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
|
||||||
};
|
};
|
||||||
#endif
|
static const u8 Td4[256] = {
|
||||||
static const u32 Td4[256] = {
|
0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
|
||||||
0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
|
0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
|
||||||
0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
|
0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
|
||||||
0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
|
0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
|
||||||
0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
|
0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
|
||||||
0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
|
0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
|
||||||
0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
|
0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
|
||||||
0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
|
0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
|
||||||
0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
|
0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
|
||||||
0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
|
0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
|
||||||
0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
|
0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
|
||||||
0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
|
0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
|
||||||
0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
|
0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
|
||||||
0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
|
0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
|
||||||
0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
|
0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
|
||||||
0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
|
0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
|
||||||
0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
|
0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
|
||||||
0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
|
0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
|
||||||
0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
|
0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
|
||||||
0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
|
0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
|
||||||
0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
|
0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
|
||||||
0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
|
0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
|
||||||
0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
|
0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
|
||||||
0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
|
0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
|
||||||
0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
|
0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
|
||||||
0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
|
0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
|
||||||
0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
|
0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
|
||||||
0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
|
0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
|
||||||
0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
|
0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
|
||||||
0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
|
0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
|
||||||
0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
|
0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
|
||||||
0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
|
0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
|
||||||
0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
|
|
||||||
0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
|
|
||||||
0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
|
|
||||||
0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
|
|
||||||
0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
|
|
||||||
0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
|
|
||||||
0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
|
|
||||||
0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
|
|
||||||
0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
|
|
||||||
0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
|
|
||||||
0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
|
|
||||||
0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
|
|
||||||
0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
|
|
||||||
0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
|
|
||||||
0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
|
|
||||||
0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
|
|
||||||
0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
|
|
||||||
0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
|
|
||||||
0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
|
|
||||||
0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
|
|
||||||
0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
|
|
||||||
0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
|
|
||||||
0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
|
|
||||||
0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
|
|
||||||
0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
|
|
||||||
0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
|
|
||||||
0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
|
|
||||||
0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
|
|
||||||
0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
|
|
||||||
0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
|
|
||||||
0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
|
|
||||||
0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
|
|
||||||
0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
|
|
||||||
};
|
};
|
||||||
static const u32 rcon[] = {
|
static const u32 rcon[] = {
|
||||||
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
0x01000000, 0x02000000, 0x04000000, 0x08000000,
|
||||||
@ -746,6 +635,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
|
#ifdef OPENSSL_FIPS
|
||||||
|
FIPS_selftest_check();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!userKey || !key)
|
if (!userKey || !key)
|
||||||
return -1;
|
return -1;
|
||||||
if (bits != 128 && bits != 192 && bits != 256)
|
if (bits != 128 && bits != 192 && bits != 256)
|
||||||
@ -768,10 +661,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[3];
|
temp = rk[3];
|
||||||
rk[4] = rk[0] ^
|
rk[4] = rk[0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(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];
|
||||||
@ -788,10 +681,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 5];
|
temp = rk[ 5];
|
||||||
rk[ 6] = rk[ 0] ^
|
rk[ 6] = rk[ 0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(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];
|
||||||
@ -810,10 +703,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
while (1) {
|
while (1) {
|
||||||
temp = rk[ 7];
|
temp = rk[ 7];
|
||||||
rk[ 8] = rk[ 0] ^
|
rk[ 8] = rk[ 0] ^
|
||||||
(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
|
(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
|
||||||
(Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 8) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(temp ) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp ) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(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];
|
||||||
@ -823,10 +716,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
}
|
}
|
||||||
temp = rk[11];
|
temp = rk[11];
|
||||||
rk[12] = rk[ 4] ^
|
rk[12] = rk[ 4] ^
|
||||||
(Te4[(temp >> 24) ] & 0xff000000) ^
|
(Te2[(temp >> 24) ] & 0xff000000) ^
|
||||||
(Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(temp >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(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];
|
||||||
@ -865,25 +758,25 @@ int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
|
|||||||
for (i = 1; i < (key->rounds); i++) {
|
for (i = 1; i < (key->rounds); i++) {
|
||||||
rk += 4;
|
rk += 4;
|
||||||
rk[0] =
|
rk[0] =
|
||||||
Td0[Te4[(rk[0] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[0] >> 24) ] & 0xff] ^
|
||||||
Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[0] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te4[(rk[0] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[0] ) & 0xff] & 0xff];
|
||||||
rk[1] =
|
rk[1] =
|
||||||
Td0[Te4[(rk[1] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[1] >> 24) ] & 0xff] ^
|
||||||
Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[1] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te4[(rk[1] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[1] ) & 0xff] & 0xff];
|
||||||
rk[2] =
|
rk[2] =
|
||||||
Td0[Te4[(rk[2] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[2] >> 24) ] & 0xff] ^
|
||||||
Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[2] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te4[(rk[2] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[2] ) & 0xff] & 0xff];
|
||||||
rk[3] =
|
rk[3] =
|
||||||
Td0[Te4[(rk[3] >> 24) ] & 0xff] ^
|
Td0[Te1[(rk[3] >> 24) ] & 0xff] ^
|
||||||
Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
|
Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
|
||||||
Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^
|
Td2[Te1[(rk[3] >> 8) & 0xff] & 0xff] ^
|
||||||
Td3[Te4[(rk[3] ) & 0xff] & 0xff];
|
Td3[Te1[(rk[3] ) & 0xff] & 0xff];
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1051,31 +944,31 @@ void AES_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
* map cipher state to byte array block:
|
* map cipher state to byte array block:
|
||||||
*/
|
*/
|
||||||
s0 =
|
s0 =
|
||||||
(Te4[(t0 >> 24) ] & 0xff000000) ^
|
(Te2[(t0 >> 24) ] & 0xff000000) ^
|
||||||
(Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t2 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(t3 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t3 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[0];
|
rk[0];
|
||||||
PUTU32(out , s0);
|
PUTU32(out , s0);
|
||||||
s1 =
|
s1 =
|
||||||
(Te4[(t1 >> 24) ] & 0xff000000) ^
|
(Te2[(t1 >> 24) ] & 0xff000000) ^
|
||||||
(Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t3 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(t0 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t0 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[1];
|
rk[1];
|
||||||
PUTU32(out + 4, s1);
|
PUTU32(out + 4, s1);
|
||||||
s2 =
|
s2 =
|
||||||
(Te4[(t2 >> 24) ] & 0xff000000) ^
|
(Te2[(t2 >> 24) ] & 0xff000000) ^
|
||||||
(Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t0 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(t1 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t1 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[2];
|
rk[2];
|
||||||
PUTU32(out + 8, s2);
|
PUTU32(out + 8, s2);
|
||||||
s3 =
|
s3 =
|
||||||
(Te4[(t3 >> 24) ] & 0xff000000) ^
|
(Te2[(t3 >> 24) ] & 0xff000000) ^
|
||||||
(Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
|
(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
|
||||||
(Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
|
(Te0[(t1 >> 8) & 0xff] & 0x0000ff00) ^
|
||||||
(Te4[(t2 ) & 0xff] & 0x000000ff) ^
|
(Te1[(t2 ) & 0xff] & 0x000000ff) ^
|
||||||
rk[3];
|
rk[3];
|
||||||
PUTU32(out + 12, s3);
|
PUTU32(out + 12, s3);
|
||||||
}
|
}
|
||||||
@ -1242,31 +1135,31 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
|
|||||||
* map cipher state to byte array block:
|
* map cipher state to byte array block:
|
||||||
*/
|
*/
|
||||||
s0 =
|
s0 =
|
||||||
(Td4[(t0 >> 24) ] & 0xff000000) ^
|
(Td4[(t0 >> 24) ] << 24) ^
|
||||||
(Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
|
(Td4[(t3 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
|
(Td4[(t2 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t1 ) & 0xff] & 0x000000ff) ^
|
(Td4[(t1 ) & 0xff]) ^
|
||||||
rk[0];
|
rk[0];
|
||||||
PUTU32(out , s0);
|
PUTU32(out , s0);
|
||||||
s1 =
|
s1 =
|
||||||
(Td4[(t1 >> 24) ] & 0xff000000) ^
|
(Td4[(t1 >> 24) ] << 24) ^
|
||||||
(Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
|
(Td4[(t0 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
|
(Td4[(t3 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t2 ) & 0xff] & 0x000000ff) ^
|
(Td4[(t2 ) & 0xff]) ^
|
||||||
rk[1];
|
rk[1];
|
||||||
PUTU32(out + 4, s1);
|
PUTU32(out + 4, s1);
|
||||||
s2 =
|
s2 =
|
||||||
(Td4[(t2 >> 24) ] & 0xff000000) ^
|
(Td4[(t2 >> 24) ] << 24) ^
|
||||||
(Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
|
(Td4[(t1 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
|
(Td4[(t0 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t3 ) & 0xff] & 0x000000ff) ^
|
(Td4[(t3 ) & 0xff]) ^
|
||||||
rk[2];
|
rk[2];
|
||||||
PUTU32(out + 8, s2);
|
PUTU32(out + 8, s2);
|
||||||
s3 =
|
s3 =
|
||||||
(Td4[(t3 >> 24) ] & 0xff000000) ^
|
(Td4[(t3 >> 24) ] << 24) ^
|
||||||
(Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
|
(Td4[(t2 >> 16) & 0xff] << 16) ^
|
||||||
(Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
|
(Td4[(t1 >> 8) & 0xff] << 8) ^
|
||||||
(Td4[(t0 ) & 0xff] & 0x000000ff) ^
|
(Td4[(t0 ) & 0xff]) ^
|
||||||
rk[3];
|
rk[3];
|
||||||
PUTU32(out + 12, s3);
|
PUTU32(out + 12, s3);
|
||||||
}
|
}
|
||||||
|
323
crypto/aes/aes_ige.c
Normal file
323
crypto/aes/aes_ige.c
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */
|
||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2006 The OpenSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||||
|
*
|
||||||
|
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||||
|
* endorse or promote products derived from this software without
|
||||||
|
* prior written permission. For written permission, please contact
|
||||||
|
* openssl-core@openssl.org.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "OpenSSL"
|
||||||
|
* nor may "OpenSSL" appear in their names without prior written
|
||||||
|
* permission of the OpenSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cryptlib.h"
|
||||||
|
|
||||||
|
#include <openssl/aes.h>
|
||||||
|
#include "aes_locl.h"
|
||||||
|
|
||||||
|
#define N_WORDS (AES_BLOCK_SIZE / sizeof(unsigned long))
|
||||||
|
typedef struct {
|
||||||
|
unsigned long data[N_WORDS];
|
||||||
|
} aes_block_t;
|
||||||
|
|
||||||
|
/* XXX: probably some better way to do this */
|
||||||
|
#if defined(__i386__) || defined(__x86_64__)
|
||||||
|
#define UNALIGNED_MEMOPS_ARE_FAST 1
|
||||||
|
#else
|
||||||
|
#define UNALIGNED_MEMOPS_ARE_FAST 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNALIGNED_MEMOPS_ARE_FAST
|
||||||
|
#define load_block(d, s) (d) = *(const aes_block_t *)(s)
|
||||||
|
#define store_block(d, s) *(aes_block_t *)(d) = (s)
|
||||||
|
#else
|
||||||
|
#define load_block(d, s) memcpy((d).data, (s), AES_BLOCK_SIZE)
|
||||||
|
#define store_block(d, s) memcpy((d), (s).data, AES_BLOCK_SIZE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* N.B. The IV for this mode is _twice_ the block size */
|
||||||
|
|
||||||
|
void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
|
const unsigned long length, const AES_KEY *key,
|
||||||
|
unsigned char *ivec, const int enc)
|
||||||
|
{
|
||||||
|
unsigned long n;
|
||||||
|
unsigned long len;
|
||||||
|
|
||||||
|
OPENSSL_assert(in && out && key && ivec);
|
||||||
|
OPENSSL_assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
|
||||||
|
OPENSSL_assert((length%AES_BLOCK_SIZE) == 0);
|
||||||
|
|
||||||
|
len = length / AES_BLOCK_SIZE;
|
||||||
|
|
||||||
|
if (AES_ENCRYPT == enc)
|
||||||
|
{
|
||||||
|
if (in != out &&
|
||||||
|
(UNALIGNED_MEMOPS_ARE_FAST || ((size_t)in|(size_t)out|(size_t)ivec)%sizeof(long)==0))
|
||||||
|
{
|
||||||
|
aes_block_t *ivp = (aes_block_t *)ivec;
|
||||||
|
aes_block_t *iv2p = (aes_block_t *)(ivec + AES_BLOCK_SIZE);
|
||||||
|
|
||||||
|
while (len)
|
||||||
|
{
|
||||||
|
aes_block_t *inp = (aes_block_t *)in;
|
||||||
|
aes_block_t *outp = (aes_block_t *)out;
|
||||||
|
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
outp->data[n] = inp->data[n] ^ ivp->data[n];
|
||||||
|
AES_encrypt((unsigned char *)outp->data, (unsigned char *)outp->data, key);
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
outp->data[n] ^= iv2p->data[n];
|
||||||
|
ivp = outp;
|
||||||
|
iv2p = inp;
|
||||||
|
--len;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
memcpy(ivec, ivp->data, AES_BLOCK_SIZE);
|
||||||
|
memcpy(ivec + AES_BLOCK_SIZE, iv2p->data, AES_BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aes_block_t tmp, tmp2;
|
||||||
|
aes_block_t iv;
|
||||||
|
aes_block_t iv2;
|
||||||
|
|
||||||
|
load_block(iv, ivec);
|
||||||
|
load_block(iv2, ivec + AES_BLOCK_SIZE);
|
||||||
|
|
||||||
|
while (len)
|
||||||
|
{
|
||||||
|
load_block(tmp, in);
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
tmp2.data[n] = tmp.data[n] ^ iv.data[n];
|
||||||
|
AES_encrypt((unsigned char *)tmp2.data, (unsigned char *)tmp2.data, key);
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
tmp2.data[n] ^= iv2.data[n];
|
||||||
|
store_block(out, tmp2);
|
||||||
|
iv = tmp2;
|
||||||
|
iv2 = tmp;
|
||||||
|
--len;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
memcpy(ivec, iv.data, AES_BLOCK_SIZE);
|
||||||
|
memcpy(ivec + AES_BLOCK_SIZE, iv2.data, AES_BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (in != out &&
|
||||||
|
(UNALIGNED_MEMOPS_ARE_FAST || ((size_t)in|(size_t)out|(size_t)ivec)%sizeof(long)==0))
|
||||||
|
{
|
||||||
|
aes_block_t *ivp = (aes_block_t *)ivec;
|
||||||
|
aes_block_t *iv2p = (aes_block_t *)(ivec + AES_BLOCK_SIZE);
|
||||||
|
|
||||||
|
while (len)
|
||||||
|
{
|
||||||
|
aes_block_t tmp;
|
||||||
|
aes_block_t *inp = (aes_block_t *)in;
|
||||||
|
aes_block_t *outp = (aes_block_t *)out;
|
||||||
|
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
tmp.data[n] = inp->data[n] ^ iv2p->data[n];
|
||||||
|
AES_decrypt((unsigned char *)tmp.data, (unsigned char *)outp->data, key);
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
outp->data[n] ^= ivp->data[n];
|
||||||
|
ivp = inp;
|
||||||
|
iv2p = outp;
|
||||||
|
--len;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
memcpy(ivec, ivp->data, AES_BLOCK_SIZE);
|
||||||
|
memcpy(ivec + AES_BLOCK_SIZE, iv2p->data, AES_BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aes_block_t tmp, tmp2;
|
||||||
|
aes_block_t iv;
|
||||||
|
aes_block_t iv2;
|
||||||
|
|
||||||
|
load_block(iv, ivec);
|
||||||
|
load_block(iv2, ivec + AES_BLOCK_SIZE);
|
||||||
|
|
||||||
|
while (len)
|
||||||
|
{
|
||||||
|
load_block(tmp, in);
|
||||||
|
tmp2 = tmp;
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
tmp.data[n] ^= iv2.data[n];
|
||||||
|
AES_decrypt((unsigned char *)tmp.data, (unsigned char *)tmp.data, key);
|
||||||
|
for(n=0 ; n < N_WORDS; ++n)
|
||||||
|
tmp.data[n] ^= iv.data[n];
|
||||||
|
store_block(out, tmp);
|
||||||
|
iv = tmp2;
|
||||||
|
iv2 = tmp;
|
||||||
|
--len;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
memcpy(ivec, iv.data, AES_BLOCK_SIZE);
|
||||||
|
memcpy(ivec + AES_BLOCK_SIZE, iv2.data, AES_BLOCK_SIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note that its effectively impossible to do biIGE in anything other
|
||||||
|
* than a single pass, so no provision is made for chaining.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* N.B. The IV for this mode is _four times_ the block size */
|
||||||
|
|
||||||
|
void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
|
||||||
|
const unsigned long length, const AES_KEY *key,
|
||||||
|
const AES_KEY *key2, const unsigned char *ivec,
|
||||||
|
const int enc)
|
||||||
|
{
|
||||||
|
unsigned long n;
|
||||||
|
unsigned long len = length;
|
||||||
|
unsigned char tmp[AES_BLOCK_SIZE];
|
||||||
|
unsigned char tmp2[AES_BLOCK_SIZE];
|
||||||
|
unsigned char tmp3[AES_BLOCK_SIZE];
|
||||||
|
unsigned char prev[AES_BLOCK_SIZE];
|
||||||
|
const unsigned char *iv;
|
||||||
|
const unsigned char *iv2;
|
||||||
|
|
||||||
|
OPENSSL_assert(in && out && key && ivec);
|
||||||
|
OPENSSL_assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
|
||||||
|
OPENSSL_assert((length%AES_BLOCK_SIZE) == 0);
|
||||||
|
|
||||||
|
if (AES_ENCRYPT == enc)
|
||||||
|
{
|
||||||
|
/* XXX: Do a separate case for when in != out (strictly should
|
||||||
|
check for overlap, too) */
|
||||||
|
|
||||||
|
/* First the forward pass */
|
||||||
|
iv = ivec;
|
||||||
|
iv2 = ivec + AES_BLOCK_SIZE;
|
||||||
|
while (len >= AES_BLOCK_SIZE)
|
||||||
|
{
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] = in[n] ^ iv[n];
|
||||||
|
AES_encrypt(out, out, key);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] ^= iv2[n];
|
||||||
|
iv = out;
|
||||||
|
memcpy(prev, in, AES_BLOCK_SIZE);
|
||||||
|
iv2 = prev;
|
||||||
|
len -= AES_BLOCK_SIZE;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* And now backwards */
|
||||||
|
iv = ivec + AES_BLOCK_SIZE*2;
|
||||||
|
iv2 = ivec + AES_BLOCK_SIZE*3;
|
||||||
|
len = length;
|
||||||
|
while(len >= AES_BLOCK_SIZE)
|
||||||
|
{
|
||||||
|
out -= AES_BLOCK_SIZE;
|
||||||
|
/* XXX: reduce copies by alternating between buffers */
|
||||||
|
memcpy(tmp, out, AES_BLOCK_SIZE);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] ^= iv[n];
|
||||||
|
/* hexdump(stdout, "out ^ iv", out, AES_BLOCK_SIZE); */
|
||||||
|
AES_encrypt(out, out, key);
|
||||||
|
/* hexdump(stdout,"enc", out, AES_BLOCK_SIZE); */
|
||||||
|
/* hexdump(stdout,"iv2", iv2, AES_BLOCK_SIZE); */
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] ^= iv2[n];
|
||||||
|
/* hexdump(stdout,"out", out, AES_BLOCK_SIZE); */
|
||||||
|
iv = out;
|
||||||
|
memcpy(prev, tmp, AES_BLOCK_SIZE);
|
||||||
|
iv2 = prev;
|
||||||
|
len -= AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* First backwards */
|
||||||
|
iv = ivec + AES_BLOCK_SIZE*2;
|
||||||
|
iv2 = ivec + AES_BLOCK_SIZE*3;
|
||||||
|
in += length;
|
||||||
|
out += length;
|
||||||
|
while (len >= AES_BLOCK_SIZE)
|
||||||
|
{
|
||||||
|
in -= AES_BLOCK_SIZE;
|
||||||
|
out -= AES_BLOCK_SIZE;
|
||||||
|
memcpy(tmp, in, AES_BLOCK_SIZE);
|
||||||
|
memcpy(tmp2, in, AES_BLOCK_SIZE);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
tmp[n] ^= iv2[n];
|
||||||
|
AES_decrypt(tmp, out, key);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] ^= iv[n];
|
||||||
|
memcpy(tmp3, tmp2, AES_BLOCK_SIZE);
|
||||||
|
iv = tmp3;
|
||||||
|
iv2 = out;
|
||||||
|
len -= AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* And now forwards */
|
||||||
|
iv = ivec;
|
||||||
|
iv2 = ivec + AES_BLOCK_SIZE;
|
||||||
|
len = length;
|
||||||
|
while (len >= AES_BLOCK_SIZE)
|
||||||
|
{
|
||||||
|
memcpy(tmp, out, AES_BLOCK_SIZE);
|
||||||
|
memcpy(tmp2, out, AES_BLOCK_SIZE);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
tmp[n] ^= iv2[n];
|
||||||
|
AES_decrypt(tmp, out, key);
|
||||||
|
for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
|
||||||
|
out[n] ^= iv[n];
|
||||||
|
memcpy(tmp3, tmp2, AES_BLOCK_SIZE);
|
||||||
|
iv = tmp3;
|
||||||
|
iv2 = out;
|
||||||
|
len -= AES_BLOCK_SIZE;
|
||||||
|
in += AES_BLOCK_SIZE;
|
||||||
|
out += AES_BLOCK_SIZE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -62,7 +62,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
|
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
|
||||||
# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
|
# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
|
||||||
# define GETU32(p) SWAP(*((u32 *)(p)))
|
# define GETU32(p) SWAP(*((u32 *)(p)))
|
||||||
# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
|
# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include "aes_locl.h"
|
#include "aes_locl.h"
|
||||||
|
|
||||||
const char *AES_version="AES" OPENSSL_VERSION_PTEXT;
|
const char AES_version[]="AES" OPENSSL_VERSION_PTEXT;
|
||||||
|
|
||||||
const char *AES_options(void) {
|
const char *AES_options(void) {
|
||||||
#ifdef FULL_UNROLL
|
#ifdef FULL_UNROLL
|
||||||
|
259
crypto/aes/aes_wrap.c
Normal file
259
crypto/aes/aes_wrap.c
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
/* crypto/aes/aes_wrap.c */
|
||||||
|
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||||
|
* project.
|
||||||
|
*/
|
||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2008 The OpenSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||||
|
* endorse or promote products derived from this software without
|
||||||
|
* prior written permission. For written permission, please contact
|
||||||
|
* licensing@OpenSSL.org.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "OpenSSL"
|
||||||
|
* nor may "OpenSSL" appear in their names without prior written
|
||||||
|
* permission of the OpenSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cryptlib.h"
|
||||||
|
#include <openssl/aes.h>
|
||||||
|
#include <openssl/bio.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,
|
||||||
|
unsigned char *out,
|
||||||
|
const unsigned char *in, unsigned int inlen)
|
||||||
|
{
|
||||||
|
unsigned char *A, B[16], *R;
|
||||||
|
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 & 0xff) >> 8);
|
||||||
|
A[5] ^= (unsigned char)((t & 0xff) >> 16);
|
||||||
|
A[4] ^= (unsigned char)((t & 0xff) >> 24);
|
||||||
|
}
|
||||||
|
memcpy(R, B + 8, 8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(out, A, 8);
|
||||||
|
return inlen + 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
|
||||||
|
unsigned char *out,
|
||||||
|
const unsigned char *in, unsigned int inlen)
|
||||||
|
{
|
||||||
|
unsigned char *A, B[16], *R;
|
||||||
|
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 & 0xff) >> 8);
|
||||||
|
A[5] ^= (unsigned char)((t & 0xff) >> 16);
|
||||||
|
A[4] ^= (unsigned char)((t & 0xff) >> 24);
|
||||||
|
}
|
||||||
|
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
|
@ -6,7 +6,7 @@
|
|||||||
# forms are granted according to the OpenSSL license.
|
# forms are granted according to the OpenSSL license.
|
||||||
# ====================================================================
|
# ====================================================================
|
||||||
#
|
#
|
||||||
# Version 3.4.
|
# Version 3.6.
|
||||||
#
|
#
|
||||||
# You might fail to appreciate this module performance from the first
|
# You might fail to appreciate this module performance from the first
|
||||||
# try. If compared to "vanilla" linux-ia32-icc target, i.e. considered
|
# try. If compared to "vanilla" linux-ia32-icc target, i.e. considered
|
||||||
@ -66,6 +66,13 @@
|
|||||||
# stack. This unfortunately has rather strong impact on small block CBC
|
# stack. This unfortunately has rather strong impact on small block CBC
|
||||||
# performance, ~2x deterioration on 16-byte block if compared to 3.3.
|
# performance, ~2x deterioration on 16-byte block if compared to 3.3.
|
||||||
#
|
#
|
||||||
|
# Version 3.5 checks if there is L1 cache aliasing between user-supplied
|
||||||
|
# key schedule and S-boxes and abstains from copying the former if
|
||||||
|
# there is no. This allows end-user to consciously retain small block
|
||||||
|
# performance by aligning key schedule in specific manner.
|
||||||
|
#
|
||||||
|
# Version 3.6 compresses Td4 to 256 bytes and prefetches it in ECB.
|
||||||
|
#
|
||||||
# Current ECB performance numbers for 128-bit key in CPU cycles per
|
# Current ECB performance numbers for 128-bit key in CPU cycles per
|
||||||
# processed byte [measure commonly used by AES benchmarkers] are:
|
# processed byte [measure commonly used by AES benchmarkers] are:
|
||||||
#
|
#
|
||||||
@ -505,28 +512,27 @@ sub declast()
|
|||||||
if($i==3) { &mov ($key,&DWP(12,"esp")); }
|
if($i==3) { &mov ($key,&DWP(12,"esp")); }
|
||||||
else { &mov ($out,$s[0]); }
|
else { &mov ($out,$s[0]); }
|
||||||
&and ($out,0xFF);
|
&and ($out,0xFF);
|
||||||
&mov ($out,&DWP(2048,$td,$out,4));
|
&movz ($out,&BP(2048,$td,$out,1));
|
||||||
&and ($out,0x000000ff);
|
|
||||||
|
|
||||||
if ($i==3) { $tmp=$s[1]; }
|
if ($i==3) { $tmp=$s[1]; }
|
||||||
&movz ($tmp,&HB($s[1]));
|
&movz ($tmp,&HB($s[1]));
|
||||||
&mov ($tmp,&DWP(2048,$td,$tmp,4));
|
&movz ($tmp,&BP(2048,$td,$tmp,1));
|
||||||
&and ($tmp,0x0000ff00);
|
&shl ($tmp,8);
|
||||||
&xor ($out,$tmp);
|
&xor ($out,$tmp);
|
||||||
|
|
||||||
if ($i==3) { $tmp=$s[2]; &mov ($s[1],$acc); }
|
if ($i==3) { $tmp=$s[2]; &mov ($s[1],$acc); }
|
||||||
else { mov ($tmp,$s[2]); }
|
else { mov ($tmp,$s[2]); }
|
||||||
&shr ($tmp,16);
|
&shr ($tmp,16);
|
||||||
&and ($tmp,0xFF);
|
&and ($tmp,0xFF);
|
||||||
&mov ($tmp,&DWP(2048,$td,$tmp,4));
|
&movz ($tmp,&BP(2048,$td,$tmp,1));
|
||||||
&and ($tmp,0x00ff0000);
|
&shl ($tmp,16);
|
||||||
&xor ($out,$tmp);
|
&xor ($out,$tmp);
|
||||||
|
|
||||||
if ($i==3) { $tmp=$s[3]; &mov ($s[2],&DWP(8,"esp")); }
|
if ($i==3) { $tmp=$s[3]; &mov ($s[2],&DWP(8,"esp")); }
|
||||||
else { &mov ($tmp,$s[3]); }
|
else { &mov ($tmp,$s[3]); }
|
||||||
&shr ($tmp,24);
|
&shr ($tmp,24);
|
||||||
&mov ($tmp,&DWP(2048,$td,$tmp,4));
|
&movz ($tmp,&BP(2048,$td,$tmp,1));
|
||||||
&and ($tmp,0xff000000);
|
&shl ($tmp,24);
|
||||||
&xor ($out,$tmp);
|
&xor ($out,$tmp);
|
||||||
if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
|
if ($i<2) { &mov (&DWP(4+4*$i,"esp"),$out); }
|
||||||
if ($i==3) { &mov ($s[3],&DWP(4,"esp")); }
|
if ($i==3) { &mov ($s[3],&DWP(4,"esp")); }
|
||||||
@ -687,70 +693,38 @@ sub declast()
|
|||||||
&_data_word(0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664);
|
&_data_word(0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664);
|
||||||
&_data_word(0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0);
|
&_data_word(0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0);
|
||||||
#Td4:
|
#Td4:
|
||||||
&data_word(0x52525252, 0x09090909, 0x6a6a6a6a, 0xd5d5d5d5);
|
&data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
|
||||||
&data_word(0x30303030, 0x36363636, 0xa5a5a5a5, 0x38383838);
|
&data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
|
||||||
&data_word(0xbfbfbfbf, 0x40404040, 0xa3a3a3a3, 0x9e9e9e9e);
|
&data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
|
||||||
&data_word(0x81818181, 0xf3f3f3f3, 0xd7d7d7d7, 0xfbfbfbfb);
|
&data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
|
||||||
&data_word(0x7c7c7c7c, 0xe3e3e3e3, 0x39393939, 0x82828282);
|
&data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
|
||||||
&data_word(0x9b9b9b9b, 0x2f2f2f2f, 0xffffffff, 0x87878787);
|
&data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
|
||||||
&data_word(0x34343434, 0x8e8e8e8e, 0x43434343, 0x44444444);
|
&data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
|
||||||
&data_word(0xc4c4c4c4, 0xdededede, 0xe9e9e9e9, 0xcbcbcbcb);
|
&data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
|
||||||
&data_word(0x54545454, 0x7b7b7b7b, 0x94949494, 0x32323232);
|
&data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
|
||||||
&data_word(0xa6a6a6a6, 0xc2c2c2c2, 0x23232323, 0x3d3d3d3d);
|
&data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
|
||||||
&data_word(0xeeeeeeee, 0x4c4c4c4c, 0x95959595, 0x0b0b0b0b);
|
&data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
|
||||||
&data_word(0x42424242, 0xfafafafa, 0xc3c3c3c3, 0x4e4e4e4e);
|
&data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
|
||||||
&data_word(0x08080808, 0x2e2e2e2e, 0xa1a1a1a1, 0x66666666);
|
&data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
|
||||||
&data_word(0x28282828, 0xd9d9d9d9, 0x24242424, 0xb2b2b2b2);
|
&data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
|
||||||
&data_word(0x76767676, 0x5b5b5b5b, 0xa2a2a2a2, 0x49494949);
|
&data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
|
||||||
&data_word(0x6d6d6d6d, 0x8b8b8b8b, 0xd1d1d1d1, 0x25252525);
|
&data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
|
||||||
&data_word(0x72727272, 0xf8f8f8f8, 0xf6f6f6f6, 0x64646464);
|
&data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
|
||||||
&data_word(0x86868686, 0x68686868, 0x98989898, 0x16161616);
|
&data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
|
||||||
&data_word(0xd4d4d4d4, 0xa4a4a4a4, 0x5c5c5c5c, 0xcccccccc);
|
&data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
|
||||||
&data_word(0x5d5d5d5d, 0x65656565, 0xb6b6b6b6, 0x92929292);
|
&data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
|
||||||
&data_word(0x6c6c6c6c, 0x70707070, 0x48484848, 0x50505050);
|
&data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
|
||||||
&data_word(0xfdfdfdfd, 0xedededed, 0xb9b9b9b9, 0xdadadada);
|
&data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
|
||||||
&data_word(0x5e5e5e5e, 0x15151515, 0x46464646, 0x57575757);
|
&data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
|
||||||
&data_word(0xa7a7a7a7, 0x8d8d8d8d, 0x9d9d9d9d, 0x84848484);
|
&data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
|
||||||
&data_word(0x90909090, 0xd8d8d8d8, 0xabababab, 0x00000000);
|
&data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
|
||||||
&data_word(0x8c8c8c8c, 0xbcbcbcbc, 0xd3d3d3d3, 0x0a0a0a0a);
|
&data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
|
||||||
&data_word(0xf7f7f7f7, 0xe4e4e4e4, 0x58585858, 0x05050505);
|
&data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
|
||||||
&data_word(0xb8b8b8b8, 0xb3b3b3b3, 0x45454545, 0x06060606);
|
&data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
|
||||||
&data_word(0xd0d0d0d0, 0x2c2c2c2c, 0x1e1e1e1e, 0x8f8f8f8f);
|
&data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
|
||||||
&data_word(0xcacacaca, 0x3f3f3f3f, 0x0f0f0f0f, 0x02020202);
|
&data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
|
||||||
&data_word(0xc1c1c1c1, 0xafafafaf, 0xbdbdbdbd, 0x03030303);
|
&data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
|
||||||
&data_word(0x01010101, 0x13131313, 0x8a8a8a8a, 0x6b6b6b6b);
|
&data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
|
||||||
&data_word(0x3a3a3a3a, 0x91919191, 0x11111111, 0x41414141);
|
|
||||||
&data_word(0x4f4f4f4f, 0x67676767, 0xdcdcdcdc, 0xeaeaeaea);
|
|
||||||
&data_word(0x97979797, 0xf2f2f2f2, 0xcfcfcfcf, 0xcececece);
|
|
||||||
&data_word(0xf0f0f0f0, 0xb4b4b4b4, 0xe6e6e6e6, 0x73737373);
|
|
||||||
&data_word(0x96969696, 0xacacacac, 0x74747474, 0x22222222);
|
|
||||||
&data_word(0xe7e7e7e7, 0xadadadad, 0x35353535, 0x85858585);
|
|
||||||
&data_word(0xe2e2e2e2, 0xf9f9f9f9, 0x37373737, 0xe8e8e8e8);
|
|
||||||
&data_word(0x1c1c1c1c, 0x75757575, 0xdfdfdfdf, 0x6e6e6e6e);
|
|
||||||
&data_word(0x47474747, 0xf1f1f1f1, 0x1a1a1a1a, 0x71717171);
|
|
||||||
&data_word(0x1d1d1d1d, 0x29292929, 0xc5c5c5c5, 0x89898989);
|
|
||||||
&data_word(0x6f6f6f6f, 0xb7b7b7b7, 0x62626262, 0x0e0e0e0e);
|
|
||||||
&data_word(0xaaaaaaaa, 0x18181818, 0xbebebebe, 0x1b1b1b1b);
|
|
||||||
&data_word(0xfcfcfcfc, 0x56565656, 0x3e3e3e3e, 0x4b4b4b4b);
|
|
||||||
&data_word(0xc6c6c6c6, 0xd2d2d2d2, 0x79797979, 0x20202020);
|
|
||||||
&data_word(0x9a9a9a9a, 0xdbdbdbdb, 0xc0c0c0c0, 0xfefefefe);
|
|
||||||
&data_word(0x78787878, 0xcdcdcdcd, 0x5a5a5a5a, 0xf4f4f4f4);
|
|
||||||
&data_word(0x1f1f1f1f, 0xdddddddd, 0xa8a8a8a8, 0x33333333);
|
|
||||||
&data_word(0x88888888, 0x07070707, 0xc7c7c7c7, 0x31313131);
|
|
||||||
&data_word(0xb1b1b1b1, 0x12121212, 0x10101010, 0x59595959);
|
|
||||||
&data_word(0x27272727, 0x80808080, 0xecececec, 0x5f5f5f5f);
|
|
||||||
&data_word(0x60606060, 0x51515151, 0x7f7f7f7f, 0xa9a9a9a9);
|
|
||||||
&data_word(0x19191919, 0xb5b5b5b5, 0x4a4a4a4a, 0x0d0d0d0d);
|
|
||||||
&data_word(0x2d2d2d2d, 0xe5e5e5e5, 0x7a7a7a7a, 0x9f9f9f9f);
|
|
||||||
&data_word(0x93939393, 0xc9c9c9c9, 0x9c9c9c9c, 0xefefefef);
|
|
||||||
&data_word(0xa0a0a0a0, 0xe0e0e0e0, 0x3b3b3b3b, 0x4d4d4d4d);
|
|
||||||
&data_word(0xaeaeaeae, 0x2a2a2a2a, 0xf5f5f5f5, 0xb0b0b0b0);
|
|
||||||
&data_word(0xc8c8c8c8, 0xebebebeb, 0xbbbbbbbb, 0x3c3c3c3c);
|
|
||||||
&data_word(0x83838383, 0x53535353, 0x99999999, 0x61616161);
|
|
||||||
&data_word(0x17171717, 0x2b2b2b2b, 0x04040404, 0x7e7e7e7e);
|
|
||||||
&data_word(0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626);
|
|
||||||
&data_word(0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363);
|
|
||||||
&data_word(0x55555555, 0x21212121, 0x0c0c0c0c, 0x7d7d7d7d);
|
|
||||||
&function_end_B("_x86_AES_decrypt");
|
&function_end_B("_x86_AES_decrypt");
|
||||||
|
|
||||||
# void AES_decrypt (const void *inp,void *out,const AES_KEY *key);
|
# void AES_decrypt (const void *inp,void *out,const AES_KEY *key);
|
||||||
@ -770,6 +744,18 @@ sub declast()
|
|||||||
&blindpop("ebp");
|
&blindpop("ebp");
|
||||||
&lea ("ebp",&DWP(&label("AES_Td")."-".&label("pic_point"),"ebp"));
|
&lea ("ebp",&DWP(&label("AES_Td")."-".&label("pic_point"),"ebp"));
|
||||||
|
|
||||||
|
# prefetch Td4
|
||||||
|
&lea ("ebp",&DWP(2048+128,"ebp"));
|
||||||
|
&mov ($s0,&DWP(0-128,"ebp"));
|
||||||
|
&mov ($s1,&DWP(32-128,"ebp"));
|
||||||
|
&mov ($s2,&DWP(64-128,"ebp"));
|
||||||
|
&mov ($s3,&DWP(96-128,"ebp"));
|
||||||
|
&mov ($s0,&DWP(128-128,"ebp"));
|
||||||
|
&mov ($s1,&DWP(160-128,"ebp"));
|
||||||
|
&mov ($s2,&DWP(192-128,"ebp"));
|
||||||
|
&mov ($s3,&DWP(224-128,"ebp"));
|
||||||
|
&lea ("ebp",&DWP(-2048-128,"ebp"));
|
||||||
|
|
||||||
&mov ($s0,&DWP(0,$acc)); # load input data
|
&mov ($s0,&DWP(0,$acc)); # load input data
|
||||||
&mov ($s1,&DWP(4,$acc));
|
&mov ($s1,&DWP(4,$acc));
|
||||||
&mov ($s2,&DWP(8,$acc));
|
&mov ($s2,&DWP(8,$acc));
|
||||||
@ -805,6 +791,7 @@ my $_ivp=&DWP(36,"esp"); #copy of wparam(4)
|
|||||||
my $_tmp=&DWP(40,"esp"); #volatile variable
|
my $_tmp=&DWP(40,"esp"); #volatile variable
|
||||||
my $ivec=&DWP(44,"esp"); #ivec[16]
|
my $ivec=&DWP(44,"esp"); #ivec[16]
|
||||||
my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
||||||
|
my $mark=&DWP(60+240,"esp"); #copy of aes_key->rounds
|
||||||
|
|
||||||
&public_label("AES_Te");
|
&public_label("AES_Te");
|
||||||
&public_label("AES_Td");
|
&public_label("AES_Td");
|
||||||
@ -865,18 +852,27 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&mov ($_key,$s3); # save copy of key
|
&mov ($_key,$s3); # save copy of key
|
||||||
&mov ($_ivp,$acc); # save copy of ivp
|
&mov ($_ivp,$acc); # save copy of ivp
|
||||||
|
|
||||||
|
&mov ($mark,0); # copy of aes_key->rounds = 0;
|
||||||
if ($compromise) {
|
if ($compromise) {
|
||||||
&cmp ($s2,$compromise);
|
&cmp ($s2,$compromise);
|
||||||
&jb (&label("skip_ecopy"));
|
&jb (&label("skip_ecopy"));
|
||||||
}
|
}
|
||||||
# copy key schedule to stack
|
# do we copy key schedule to stack?
|
||||||
&mov ("ecx",244/4);
|
&mov ($s1 eq "ebx" ? $s1 : "",$s3);
|
||||||
|
&mov ($s2 eq "ecx" ? $s2 : "",244/4);
|
||||||
|
&sub ($s1,"ebp");
|
||||||
&mov ("esi",$s3);
|
&mov ("esi",$s3);
|
||||||
|
&and ($s1,0xfff);
|
||||||
&lea ("edi",$aes_key);
|
&lea ("edi",$aes_key);
|
||||||
&mov ($_key,"edi");
|
&cmp ($s1,2048);
|
||||||
|
&jb (&label("do_ecopy"));
|
||||||
|
&cmp ($s1,4096-244);
|
||||||
|
&jb (&label("skip_ecopy"));
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689A5F3); # rep movsd
|
&set_label("do_ecopy");
|
||||||
&set_label("skip_ecopy") if ($compromise);
|
&mov ($_key,"edi");
|
||||||
|
&data_word(0xA5F3F689); # rep movsd
|
||||||
|
&set_label("skip_ecopy");
|
||||||
|
|
||||||
&mov ($acc,$s0);
|
&mov ($acc,$s0);
|
||||||
&mov ($key,16);
|
&mov ($key,16);
|
||||||
@ -942,18 +938,16 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&mov (&DWP(8,$acc),$s2);
|
&mov (&DWP(8,$acc),$s2);
|
||||||
&mov (&DWP(12,$acc),$s3);
|
&mov (&DWP(12,$acc),$s3);
|
||||||
|
|
||||||
|
&cmp ($mark,0); # was the key schedule copied?
|
||||||
&mov ("edi",$_key);
|
&mov ("edi",$_key);
|
||||||
&mov ("esp",$_esp);
|
&je (&label("skip_ezero"));
|
||||||
if ($compromise) {
|
|
||||||
&cmp (&wparam(2),$compromise);
|
|
||||||
&jb (&label("skip_ezero"));
|
|
||||||
}
|
|
||||||
# zero copy of key schedule
|
# zero copy of key schedule
|
||||||
&mov ("ecx",240/4);
|
&mov ("ecx",240/4);
|
||||||
&xor ("eax","eax");
|
&xor ("eax","eax");
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689ABF3); # rep stosd
|
&data_word(0xABF3F689); # rep stosd
|
||||||
&set_label("skip_ezero") if ($compromise);
|
&set_label("skip_ezero")
|
||||||
|
&mov ("esp",$_esp);
|
||||||
&popf ();
|
&popf ();
|
||||||
&set_label("enc_out");
|
&set_label("enc_out");
|
||||||
&function_end_A();
|
&function_end_A();
|
||||||
@ -961,14 +955,15 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
|
|
||||||
&align (4);
|
&align (4);
|
||||||
&set_label("enc_tail");
|
&set_label("enc_tail");
|
||||||
&push ($key eq "edi" ? $key : ""); # push ivp
|
&mov ($s0,$key eq "edi" ? $key : "");
|
||||||
&mov ($key,$_out); # load out
|
&mov ($key,$_out); # load out
|
||||||
|
&push ($s0); # push ivp
|
||||||
&mov ($s1,16);
|
&mov ($s1,16);
|
||||||
&sub ($s1,$s2);
|
&sub ($s1,$s2);
|
||||||
&cmp ($key,$acc); # compare with inp
|
&cmp ($key,$acc); # compare with inp
|
||||||
&je (&label("enc_in_place"));
|
&je (&label("enc_in_place"));
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689A4F3); # rep movsb # copy input
|
&data_word(0xA4F3F689); # rep movsb # copy input
|
||||||
&jmp (&label("enc_skip_in_place"));
|
&jmp (&label("enc_skip_in_place"));
|
||||||
&set_label("enc_in_place");
|
&set_label("enc_in_place");
|
||||||
&lea ($key,&DWP(0,$key,$s2));
|
&lea ($key,&DWP(0,$key,$s2));
|
||||||
@ -976,7 +971,7 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&mov ($s2,$s1);
|
&mov ($s2,$s1);
|
||||||
&xor ($s0,$s0);
|
&xor ($s0,$s0);
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689AAF3); # rep stosb # zero tail
|
&data_word(0xAAF3F689); # rep stosb # zero tail
|
||||||
&pop ($key); # pop ivp
|
&pop ($key); # pop ivp
|
||||||
|
|
||||||
&mov ($acc,$_out); # output as input
|
&mov ($acc,$_out); # output as input
|
||||||
@ -996,10 +991,10 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
|
|
||||||
# ... and make sure it doesn't alias with AES_Td modulo 4096
|
# ... and make sure it doesn't alias with AES_Td modulo 4096
|
||||||
&mov ($s0,"ebp");
|
&mov ($s0,"ebp");
|
||||||
&lea ($s1,&DWP(3072,"ebp"));
|
&lea ($s1,&DWP(2048+256,"ebp"));
|
||||||
&mov ($s3,$key);
|
&mov ($s3,$key);
|
||||||
&and ($s0,0xfff); # s = %ebp&0xfff
|
&and ($s0,0xfff); # s = %ebp&0xfff
|
||||||
&and ($s1,0xfff); # e = (%ebp+3072)&0xfff
|
&and ($s1,0xfff); # e = (%ebp+2048+256)&0xfff
|
||||||
&and ($s3,0xfff); # p = %esp&0xfff
|
&and ($s3,0xfff); # p = %esp&0xfff
|
||||||
|
|
||||||
&cmp ($s3,$s1); # if (p>=e) %esp =- (p-e);
|
&cmp ($s3,$s1); # if (p>=e) %esp =- (p-e);
|
||||||
@ -1030,21 +1025,30 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&mov ($_key,$s3); # save copy of key
|
&mov ($_key,$s3); # save copy of key
|
||||||
&mov ($_ivp,$acc); # save copy of ivp
|
&mov ($_ivp,$acc); # save copy of ivp
|
||||||
|
|
||||||
|
&mov ($mark,0); # copy of aes_key->rounds = 0;
|
||||||
if ($compromise) {
|
if ($compromise) {
|
||||||
&cmp ($s2,$compromise);
|
&cmp ($s2,$compromise);
|
||||||
&jb (&label("skip_dcopy"));
|
&jb (&label("skip_dcopy"));
|
||||||
}
|
}
|
||||||
# copy key schedule to stack
|
# do we copy key schedule to stack?
|
||||||
&mov ("ecx",244/4);
|
&mov ($s1 eq "ebx" ? $s1 : "",$s3);
|
||||||
|
&mov ($s2 eq "ecx" ? $s2 : "",244/4);
|
||||||
|
&sub ($s1,"ebp");
|
||||||
&mov ("esi",$s3);
|
&mov ("esi",$s3);
|
||||||
|
&and ($s1,0xfff);
|
||||||
&lea ("edi",$aes_key);
|
&lea ("edi",$aes_key);
|
||||||
&mov ($_key,"edi");
|
&cmp ($s1,2048+256);
|
||||||
|
&jb (&label("do_dcopy"));
|
||||||
|
&cmp ($s1,4096-244);
|
||||||
|
&jb (&label("skip_dcopy"));
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689A5F3); # rep movsd
|
&set_label("do_dcopy");
|
||||||
&set_label("skip_dcopy") if ($compromise);
|
&mov ($_key,"edi");
|
||||||
|
&data_word(0xA5F3F689); # rep movsd
|
||||||
|
&set_label("skip_dcopy");
|
||||||
|
|
||||||
&mov ($acc,$s0);
|
&mov ($acc,$s0);
|
||||||
&mov ($key,24);
|
&mov ($key,18);
|
||||||
&align (4);
|
&align (4);
|
||||||
&set_label("prefetch_td");
|
&set_label("prefetch_td");
|
||||||
&mov ($s0,&DWP(0,"ebp"));
|
&mov ($s0,&DWP(0,"ebp"));
|
||||||
@ -1054,7 +1058,7 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&lea ("ebp",&DWP(128,"ebp"));
|
&lea ("ebp",&DWP(128,"ebp"));
|
||||||
&dec ($key);
|
&dec ($key);
|
||||||
&jnz (&label("prefetch_td"));
|
&jnz (&label("prefetch_td"));
|
||||||
&sub ("ebp",3072);
|
&sub ("ebp",2048+256);
|
||||||
|
|
||||||
&cmp ($acc,$_out);
|
&cmp ($acc,$_out);
|
||||||
&je (&label("dec_in_place")); # in-place processing...
|
&je (&label("dec_in_place")); # in-place processing...
|
||||||
@ -1121,7 +1125,7 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&lea ($s2 eq "ecx" ? $s2 : "",&DWP(16,$acc));
|
&lea ($s2 eq "ecx" ? $s2 : "",&DWP(16,$acc));
|
||||||
&mov ($acc eq "esi" ? $acc : "",$key);
|
&mov ($acc eq "esi" ? $acc : "",$key);
|
||||||
&mov ($key eq "edi" ? $key : "",$_out); # load out
|
&mov ($key eq "edi" ? $key : "",$_out); # load out
|
||||||
&data_word(0xF689A4F3); # rep movsb # copy output
|
&data_word(0xA4F3F689); # rep movsb # copy output
|
||||||
&mov ($key,$_inp); # use inp as temp ivp
|
&mov ($key,$_inp); # use inp as temp ivp
|
||||||
&jmp (&label("dec_end"));
|
&jmp (&label("dec_end"));
|
||||||
|
|
||||||
@ -1188,22 +1192,20 @@ my $aes_key=&DWP(60,"esp"); #copy of aes_key
|
|||||||
&lea ($key,&DWP(0,$key,$s2));
|
&lea ($key,&DWP(0,$key,$s2));
|
||||||
&lea ($acc,&DWP(16,$acc,$s2));
|
&lea ($acc,&DWP(16,$acc,$s2));
|
||||||
&neg ($s2 eq "ecx" ? $s2 : "");
|
&neg ($s2 eq "ecx" ? $s2 : "");
|
||||||
&data_word(0xF689A4F3); # rep movsb # restore tail
|
&data_word(0xA4F3F689); # rep movsb # restore tail
|
||||||
|
|
||||||
&align (4);
|
&align (4);
|
||||||
&set_label("dec_out");
|
&set_label("dec_out");
|
||||||
|
&cmp ($mark,0); # was the key schedule copied?
|
||||||
&mov ("edi",$_key);
|
&mov ("edi",$_key);
|
||||||
&mov ("esp",$_esp);
|
&je (&label("skip_dzero"));
|
||||||
if ($compromise) {
|
|
||||||
&cmp (&wparam(2),$compromise);
|
|
||||||
&jb (&label("skip_dzero"));
|
|
||||||
}
|
|
||||||
# zero copy of key schedule
|
# zero copy of key schedule
|
||||||
&mov ("ecx",240/4);
|
&mov ("ecx",240/4);
|
||||||
&xor ("eax","eax");
|
&xor ("eax","eax");
|
||||||
&align (4);
|
&align (4);
|
||||||
&data_word(0xF689ABF3); # rep stosd
|
&data_word(0xABF3F689); # rep stosd
|
||||||
&set_label("skip_dzero") if ($compromise);
|
&set_label("skip_dzero")
|
||||||
|
&mov ("esp",$_esp);
|
||||||
&popf ();
|
&popf ();
|
||||||
&function_end("AES_cbc_encrypt");
|
&function_end("AES_cbc_encrypt");
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user