Compare commits
843 Commits
OpenSSL-en
...
OpenSSL-en
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5a9c441c6e | ||
![]() |
d69d8b5ffa | ||
![]() |
9aef355cf0 | ||
![]() |
11f3f9f4a1 | ||
![]() |
ef9088c9ec | ||
![]() |
422830e17b | ||
![]() |
ac0d075faa | ||
![]() |
53195ba215 | ||
![]() |
6b4580887e | ||
![]() |
4c37da8051 | ||
![]() |
381798377e | ||
![]() |
ffade5fb96 | ||
![]() |
0294674b44 | ||
![]() |
771c8a7ce5 | ||
![]() |
a307eeba84 | ||
![]() |
1fbc936cca | ||
![]() |
ac63f88790 | ||
![]() |
ecfb406f1e | ||
![]() |
eb272ac0b0 | ||
![]() |
63c43dcc59 | ||
![]() |
8562801137 | ||
![]() |
5d8094143e | ||
![]() |
bb6dcb54f9 | ||
![]() |
0a3ea5d34a | ||
![]() |
a5e4c0bb9e | ||
![]() |
df9badad4c | ||
![]() |
cad4b840c8 | ||
![]() |
37a92e9ce4 | ||
![]() |
1896ce3558 | ||
![]() |
c4af8daf34 | ||
![]() |
0357422d14 | ||
![]() |
b4ac8b1e0a | ||
![]() |
adccc4cc7e | ||
![]() |
bbc89d2e1f | ||
![]() |
d3ee37c5d9 | ||
![]() |
1e6c9fc26f | ||
![]() |
3d4bb90138 | ||
![]() |
f51cf14b85 | ||
![]() |
194dd04699 | ||
![]() |
14f7ee4916 | ||
![]() |
a29d78e90b | ||
![]() |
5b054c6955 | ||
![]() |
10654d3a74 | ||
![]() |
6017e604f8 | ||
![]() |
3837491174 | ||
![]() |
86a921af06 | ||
![]() |
616df35633 | ||
![]() |
e44fcedadf | ||
![]() |
6f8f443170 | ||
![]() |
d18af3f37e | ||
![]() |
48fe4d6233 | ||
![]() |
7b8250053b | ||
![]() |
251cb4cfed | ||
![]() |
24a93e6cdd | ||
![]() |
40e15f9d78 | ||
![]() |
b4f682d32f | ||
![]() |
83d0e5e512 | ||
![]() |
c540bd2851 | ||
![]() |
4e20b1a656 | ||
![]() |
cc5ba6a7b6 | ||
![]() |
0396479dec | ||
![]() |
e34cfcf7e1 | ||
![]() |
1358835050 | ||
![]() |
754d494bef | ||
![]() |
6ad0776236 | ||
![]() |
ca7fcc65ef | ||
![]() |
42909e3968 | ||
![]() |
c108108028 | ||
![]() |
5451e0d924 | ||
![]() |
4ea3855514 | ||
![]() |
20a9b1a7cf | ||
![]() |
156e85578d | ||
![]() |
b28ec12420 | ||
![]() |
bb62a8b0c5 | ||
![]() |
a75d8bebd2 | ||
![]() |
b72ff47037 | ||
![]() |
a2b03690a8 | ||
![]() |
abb48d5a5f | ||
![]() |
0e99546424 | ||
![]() |
bd9e2e4c53 | ||
![]() |
ff612904d2 | ||
![]() |
429cf462d0 | ||
![]() |
c62b26fdc6 | ||
![]() |
e0a9ba9c3c | ||
![]() |
2dc769a1c1 | ||
![]() |
4f98cbabde | ||
![]() |
98499135d7 | ||
![]() |
3285076c8e | ||
![]() |
3b4cfea688 | ||
![]() |
de10f6900d | ||
![]() |
adfe54b7be | ||
![]() |
b576337e8b | ||
![]() |
4de633dd5f | ||
![]() |
91f29a38a0 | ||
![]() |
1d5bd6cf71 | ||
![]() |
226cc7ded4 | ||
![]() |
e869d4bd32 | ||
![]() |
60428dbf0a | ||
![]() |
70d70a3c81 | ||
![]() |
f1f25544e0 | ||
![]() |
2e0db07627 | ||
![]() |
58fc62296f | ||
![]() |
df9cc1535e | ||
![]() |
c4b36ff474 | ||
![]() |
f418f8c17c | ||
![]() |
5277d7cb7c | ||
![]() |
0657bf9c14 | ||
![]() |
5b438e9b0f | ||
![]() |
7b4c588f58 | ||
![]() |
1d00800e88 | ||
![]() |
774530f412 | ||
![]() |
fb171e534e | ||
![]() |
7d7db13e67 | ||
![]() |
45abac85a9 | ||
![]() |
24b8dc9a55 | ||
![]() |
d8c79c7f72 | ||
![]() |
3a12ce0137 | ||
![]() |
9bd35f6376 | ||
![]() |
62763f682b | ||
![]() |
38e3c5815c | ||
![]() |
f8fe20e0d9 | ||
![]() |
65e8167079 | ||
![]() |
757a8b4621 | ||
![]() |
5cac59b6c1 | ||
![]() |
bad4058574 | ||
![]() |
d8c2adae57 | ||
![]() |
786e0c2424 | ||
![]() |
794103d285 | ||
![]() |
c454dbcd32 | ||
![]() |
f3a3106807 | ||
![]() |
62dc5aad06 | ||
![]() |
45ecfb1973 | ||
![]() |
f23478c314 | ||
![]() |
3d2e469cfa | ||
![]() |
bf401a2aef | ||
![]() |
06a2b07bb0 | ||
![]() |
8700e7b3cf | ||
![]() |
7f19d42e9d | ||
![]() |
d7bbd31efe | ||
![]() |
fafc7f9875 | ||
![]() |
d88a26c489 | ||
![]() |
64b48877fa | ||
![]() |
b31cc2d9f7 | ||
![]() |
f196522159 | ||
![]() |
4ff18c8c3e | ||
![]() |
db4a465974 | ||
![]() |
3cdc8ad07a | ||
![]() |
cd9bed6d1d | ||
![]() |
2c1571b4ff | ||
![]() |
6767a53669 | ||
![]() |
ba93fd6a38 | ||
![]() |
d7c06e9ec7 | ||
![]() |
386828d029 | ||
![]() |
d339187b1a | ||
![]() |
61fca8b69b | ||
![]() |
bb5ea36b96 | ||
![]() |
e3a9164073 | ||
![]() |
f85c9904c6 | ||
![]() |
48bf4aae24 | ||
![]() |
6231576088 | ||
![]() |
4270144b39 | ||
![]() |
5031a89dc3 | ||
![]() |
bbd1c84e6e | ||
![]() |
a2cf08cc23 | ||
![]() |
d3a73875e2 | ||
![]() |
41d2a336ee | ||
![]() |
627774fd87 | ||
![]() |
a5bc1e8568 | ||
![]() |
c38171ba1f | ||
![]() |
bb3ee8e75d | ||
![]() |
32654e792b | ||
![]() |
19f2192136 | ||
![]() |
1961b327eb | ||
![]() |
2ae87d465e | ||
![]() |
e3ef8d2e6b | ||
![]() |
65a87c7d01 | ||
![]() |
72e3c20c14 | ||
![]() |
ec0f19597e | ||
![]() |
fa2b8db499 | ||
![]() |
1aa0d94781 | ||
![]() |
dc644fe229 | ||
![]() |
47ddf355b4 | ||
![]() |
941181ec0f | ||
![]() |
d399fdf877 | ||
![]() |
487550b61d | ||
![]() |
35618bf6ad | ||
![]() |
460fe31f0c | ||
![]() |
14565bedaf | ||
![]() |
02cc82ff8a | ||
![]() |
38f3b3e29c | ||
![]() |
4dc719fc37 | ||
![]() |
48f2ef8d00 | ||
![]() |
be1bd9239f | ||
![]() |
b8feddae71 | ||
![]() |
a9daa46758 | ||
![]() |
569afce4b0 | ||
![]() |
a9aa3d580c | ||
![]() |
56a6ccc84f | ||
![]() |
03c4d82fa1 | ||
![]() |
7ab1a39181 | ||
![]() |
56dde3ebe6 | ||
![]() |
6525ced540 | ||
![]() |
32d0ad41a4 | ||
![]() |
e28e42a549 | ||
![]() |
ff055b5c89 | ||
![]() |
d8770f3ece | ||
![]() |
4981372d03 | ||
![]() |
3ebac273f5 | ||
![]() |
5af18f65f4 | ||
![]() |
a9b34991d9 | ||
![]() |
bc36ee6227 | ||
![]() |
f2bc668429 | ||
![]() |
8120813066 | ||
![]() |
7242cd8f8f | ||
![]() |
12c2fe8d53 | ||
![]() |
28143c66e1 | ||
![]() |
335c4f0966 | ||
![]() |
5003a61b9f | ||
![]() |
7bd51947e5 | ||
![]() |
4901b41653 | ||
![]() |
74cd365b03 | ||
![]() |
2affbab9fc | ||
![]() |
cf1b7d9664 | ||
![]() |
649c5a2b09 | ||
![]() |
07247321c6 | ||
![]() |
0c43540433 | ||
![]() |
acba75c59d | ||
![]() |
267a1927eb | ||
![]() |
b0c8638650 | ||
![]() |
b36c170d1b | ||
![]() |
934397ec66 | ||
![]() |
0f8631495d | ||
![]() |
95ffe86dbc | ||
![]() |
87b79c3ef3 | ||
![]() |
52d160d85d | ||
![]() |
54ff1e6ae5 | ||
![]() |
a6b7ffddac | ||
![]() |
f30d34f3a8 | ||
![]() |
84a2173797 | ||
![]() |
52b621db88 | ||
![]() |
a6ed5dd674 | ||
![]() |
1417f2dccb | ||
![]() |
f2e5ca84d4 | ||
![]() |
36fafffae2 | ||
![]() |
cdc7b8cc60 | ||
![]() |
720235eeec | ||
![]() |
8e495e4ac7 | ||
![]() |
2afbd6fa08 | ||
![]() |
f282ca7413 | ||
![]() |
67c1801924 | ||
![]() |
46a58ab946 | ||
![]() |
94fcd01349 | ||
![]() |
9a04387362 | ||
![]() |
282d8b1c38 | ||
![]() |
41ecaba97e | ||
![]() |
96dfab9e0e | ||
![]() |
1b65ce7db3 | ||
![]() |
7b9cb4a224 | ||
![]() |
bc2dfde4b3 | ||
![]() |
ec9dc137e7 | ||
![]() |
620cea37e0 | ||
![]() |
c15e036398 | ||
![]() |
ccb08f98ae | ||
![]() |
e306892994 | ||
![]() |
836f996010 | ||
![]() |
1613c4d3bf | ||
![]() |
b5f6d9dc6e | ||
![]() |
c063f2c5ec | ||
![]() |
c47c619680 | ||
![]() |
93cd57a578 | ||
![]() |
49ce63cd7c | ||
![]() |
b3f2e399d2 | ||
![]() |
8c950429a9 | ||
![]() |
c2bf70a27c | ||
![]() |
9235adbf47 | ||
![]() |
a71b5abfa4 | ||
![]() |
928cc3a6de | ||
![]() |
466e4249ab | ||
![]() |
9fbc45b159 | ||
![]() |
792e2ce7f4 | ||
![]() |
3952584571 | ||
![]() |
a5d2acfc79 | ||
![]() |
35ed8cb8b6 | ||
![]() |
7edc5ed90a | ||
![]() |
420125f996 | ||
![]() |
57e7d3ce15 | ||
![]() |
a8ebe4697e | ||
![]() |
deb2c1a1c5 | ||
![]() |
d4219c485b | ||
![]() |
73fc98a7bf | ||
![]() |
259810e05b | ||
![]() |
171cc53a96 | ||
![]() |
9eea2be6f1 | ||
![]() |
69a03c1799 | ||
![]() |
4327aae816 | ||
![]() |
741a9690df | ||
![]() |
e24e40657f | ||
![]() |
448361a86c | ||
![]() |
26e083ccb7 | ||
![]() |
4978361212 | ||
![]() |
247c1361f3 | ||
![]() |
1618bc7921 | ||
![]() |
1b843d3c69 | ||
![]() |
0bc6597d4d | ||
![]() |
2b916952a8 | ||
![]() |
02e4fbed3d | ||
![]() |
7403c34b0b | ||
![]() |
9022f2403b | ||
![]() |
08f3f07212 | ||
![]() |
8cbceba610 | ||
![]() |
88ce56f8c1 | ||
![]() |
664d83bb23 | ||
![]() |
8cff6331c9 | ||
![]() |
cd6aa710b5 | ||
![]() |
903872d65e | ||
![]() |
16a44ae7e9 | ||
![]() |
739423fceb | ||
![]() |
78f3a2aad7 | ||
![]() |
b847024026 | ||
![]() |
50d5199120 | ||
![]() |
9020b86250 | ||
![]() |
a342cc5a70 | ||
![]() |
67c3cf0675 | ||
![]() |
9a875a3574 | ||
![]() |
a43cf9fae9 | ||
![]() |
9ae9c221de | ||
![]() |
4256650d68 | ||
![]() |
ae0665b8f1 | ||
![]() |
75802000c8 | ||
![]() |
325ae88efb | ||
![]() |
a25b265d27 | ||
![]() |
d0a8af61b1 | ||
![]() |
e58d808a4c | ||
![]() |
751b5e8ff2 | ||
![]() |
36f74d60b3 | ||
![]() |
9756da13dd | ||
![]() |
893b76c544 | ||
![]() |
b5a6f0a92d | ||
![]() |
ba8e28248f | ||
![]() |
bfcec27d61 | ||
![]() |
8e8972bb68 | ||
![]() |
57108f0ad5 | ||
![]() |
73758d435b | ||
![]() |
90f63e8f83 | ||
![]() |
e8af92fcb1 | ||
![]() |
361ef5f4dc | ||
![]() |
b3466895e6 | ||
![]() |
81f169e95c | ||
![]() |
a068630a20 | ||
![]() |
dfebac32c0 | ||
![]() |
ab5db00717 | ||
![]() |
6308af199d | ||
![]() |
8e5b6314ef | ||
![]() |
b4b1bdd5d3 | ||
![]() |
5782ceb298 | ||
![]() |
cc85ec447b | ||
![]() |
c67cdb50d2 | ||
![]() |
af5473c45a | ||
![]() |
f2c46006e7 | ||
![]() |
69e42952e1 | ||
![]() |
adf87b2df5 | ||
![]() |
40753f760d | ||
![]() |
d199858e89 | ||
![]() |
10a2975a27 | ||
![]() |
9b4dc8308f | ||
![]() |
b93642c5cc | ||
![]() |
a5435e8b29 | ||
![]() |
72e2d9138c | ||
![]() |
1dd080bca4 | ||
![]() |
f648590991 | ||
![]() |
a14280d41e | ||
![]() |
91b842c972 | ||
![]() |
eddf82a36a | ||
![]() |
673b3fde82 | ||
![]() |
a87e50a945 | ||
![]() |
b62a0c4cab | ||
![]() |
c06648f7f0 | ||
![]() |
cd56182b41 | ||
![]() |
65a22e8e4d | ||
![]() |
cbf0f45f90 | ||
![]() |
b2293b1e9b | ||
![]() |
04e53c273f | ||
![]() |
599c03530a | ||
![]() |
56a67adb64 | ||
![]() |
28e5428d5d | ||
![]() |
3c91484052 | ||
![]() |
98d517c5da | ||
![]() |
18602745de | ||
![]() |
ad2e032049 | ||
![]() |
601140b363 | ||
![]() |
e02cc10ea4 | ||
![]() |
b5524a3ac3 | ||
![]() |
0c61e299b3 | ||
![]() |
0b33bc65cd | ||
![]() |
0f5fa24a7c | ||
![]() |
8e96183506 | ||
![]() |
a8312c0e24 | ||
![]() |
bf0d176e48 | ||
![]() |
ec5add8784 | ||
![]() |
856d456a71 | ||
![]() |
7f2113a2d5 | ||
![]() |
97f56446a3 | ||
![]() |
5d92be8cc6 | ||
![]() |
e102a3dcfd | ||
![]() |
ecbe07817a | ||
![]() |
71db02813c | ||
![]() |
a6574c21eb | ||
![]() |
26da3e65ac | ||
![]() |
21cd437886 | ||
![]() |
f09628e42f | ||
![]() |
6f346c7115 | ||
![]() |
d8ecc56c9d | ||
![]() |
4e1209ebf8 | ||
![]() |
78d3b819f0 | ||
![]() |
200b24e391 | ||
![]() |
1690c2b26e | ||
![]() |
701adceb12 | ||
![]() |
3f07fe09b5 | ||
![]() |
f86c5c9ac7 | ||
![]() |
66a0def81b | ||
![]() |
73e92de577 | ||
![]() |
09ab755c55 | ||
![]() |
ec558b6548 | ||
![]() |
037a9f9c1a | ||
![]() |
29e1fdf3f2 | ||
![]() |
28ddfc61dc | ||
![]() |
725c88879c | ||
![]() |
a0aae68cf6 | ||
![]() |
57d2f21782 | ||
![]() |
895959b736 | ||
![]() |
3c07b4c2ee | ||
![]() |
1cc0b0a66a | ||
![]() |
beb23252a6 | ||
![]() |
3ba25ee86a | ||
![]() |
0be35f5c51 | ||
![]() |
60f7492646 | ||
![]() |
1456d1860e | ||
![]() |
5755cab49d | ||
![]() |
975842f9fb | ||
![]() |
126fe085db | ||
![]() |
123d24d600 | ||
![]() |
3880cd35ad | ||
![]() |
cb38052b3a | ||
![]() |
f640ee90c3 | ||
![]() |
09f4278d25 | ||
![]() |
1f47ec53a2 | ||
![]() |
959f67d6a4 | ||
![]() |
b2e7419a1d | ||
![]() |
6546fdfaf8 | ||
![]() |
3a3ca1d474 | ||
![]() |
7522254b48 | ||
![]() |
f1a6a0d4dd | ||
![]() |
9c67ab2f26 | ||
![]() |
1a7b2d33f4 | ||
![]() |
6e2dad1cc7 | ||
![]() |
2c0d10123e | ||
![]() |
3ac82faae5 | ||
![]() |
c08523d862 | ||
![]() |
137e601277 | ||
![]() |
09f4bd2a39 | ||
![]() |
2fc0d1f15e | ||
![]() |
2a86064f95 | ||
![]() |
016d7d250a | ||
![]() |
2c15d426b9 | ||
![]() |
bdcfe1d165 | ||
![]() |
3b28dbce7e | ||
![]() |
5a4fbc69c3 | ||
![]() |
7e7c8952b5 | ||
![]() |
de487514ae | ||
![]() |
06db4253e2 | ||
![]() |
4ce7894c4a | ||
![]() |
36f554d43c | ||
![]() |
8d28d5f81b | ||
![]() |
53b407da84 | ||
![]() |
765e531159 | ||
![]() |
de282fe3ba | ||
![]() |
36ac656a1b | ||
![]() |
2aff7727f7 | ||
![]() |
cc93ae3ef4 | ||
![]() |
34d69d3b23 | ||
![]() |
daea0ff8a9 | ||
![]() |
448701473a | ||
![]() |
572f0017d5 | ||
![]() |
df2c442a6d | ||
![]() |
23e2947cc8 | ||
![]() |
44b51ca36c | ||
![]() |
bbf848ce8d | ||
![]() |
d0fa136ce2 | ||
![]() |
15156cce0e | ||
![]() |
9d6b1ce644 | ||
![]() |
66ebbb6a56 | ||
![]() |
c5e48d8b01 | ||
![]() |
8dea52fa42 | ||
![]() |
f7356b677b | ||
![]() |
80d89e6a6a | ||
![]() |
bc5f2740d2 | ||
![]() |
aa66eba7c8 | ||
![]() |
f27b45d237 | ||
![]() |
3bb4736289 | ||
![]() |
bac685417a | ||
![]() |
1a4d6400ae | ||
![]() |
322006dcb1 | ||
![]() |
db01d55671 | ||
![]() |
0a52d38b31 | ||
![]() |
902d1051b1 | ||
![]() |
f67868ff4c | ||
![]() |
a6576c56dd | ||
![]() |
240f516939 | ||
![]() |
ef8f14a882 | ||
![]() |
aecb0b018f | ||
![]() |
e4d56bab5b | ||
![]() |
1435ccfba1 | ||
![]() |
d766a23deb | ||
![]() |
b1e21f8fac | ||
![]() |
9347ba487c | ||
![]() |
c28500900e | ||
![]() |
e4c5391ddb | ||
![]() |
0c34556cbd | ||
![]() |
b50118ca3e | ||
![]() |
a57ecb95f6 | ||
![]() |
428a55a0fe | ||
![]() |
cc74659fcc | ||
![]() |
90e7ce363a | ||
![]() |
a47b505e37 | ||
![]() |
9f49524331 | ||
![]() |
6a2347ee45 | ||
![]() |
e5164b7041 | ||
![]() |
ebff44b83a | ||
![]() |
c0e7c3aab9 | ||
![]() |
733777275b | ||
![]() |
f1919c3df9 | ||
![]() |
97b1719583 | ||
![]() |
b0dc680f71 | ||
![]() |
addb309ad6 | ||
![]() |
152a689cf9 | ||
![]() |
35a99b6380 | ||
![]() |
dfa46e502d | ||
![]() |
c21c35e6a4 | ||
![]() |
b26f84cbbd | ||
![]() |
0dba0613ea | ||
![]() |
e0c875081e | ||
![]() |
ea1b7fe6d4 | ||
![]() |
db88223baa | ||
![]() |
d29b63bc9b | ||
![]() |
1946cd8bc2 | ||
![]() |
111482cf2e | ||
![]() |
52a1bab2d9 | ||
![]() |
0826c85f4c | ||
![]() |
385d81380c | ||
![]() |
862e973b50 | ||
![]() |
2efff10cfa | ||
![]() |
33479d275a | ||
![]() |
3e7a6396ed | ||
![]() |
5a12df5c40 | ||
![]() |
b5a25a430a | ||
![]() |
592c784ffe | ||
![]() |
17e757478a | ||
![]() |
a023052580 | ||
![]() |
4b757c830d | ||
![]() |
9b7a552f4b | ||
![]() |
8df788c97f | ||
![]() |
12cfcc128c | ||
![]() |
f9b3bff6f7 | ||
![]() |
fc2e05c2d5 | ||
![]() |
b2993bdea1 | ||
![]() |
470fa98f8a | ||
![]() |
de6e207db6 | ||
![]() |
1363155145 | ||
![]() |
db5bda670f | ||
![]() |
0ae485dc07 | ||
![]() |
19cda70045 | ||
![]() |
4751717cd8 | ||
![]() |
bd68b6b1f6 | ||
![]() |
cd9b7d7c35 | ||
![]() |
058123afb6 | ||
![]() |
a4614bf06d | ||
![]() |
23f80f46a4 | ||
![]() |
c4438dc0e5 | ||
![]() |
04ca16890b | ||
![]() |
20f88b9bd4 | ||
![]() |
25439b76ad | ||
![]() |
3465dd3853 | ||
![]() |
ac445acf69 | ||
![]() |
77ac92d00a | ||
![]() |
73c2522c7c | ||
![]() |
6b5d39e82d | ||
![]() |
cd2eebfd64 | ||
![]() |
06676624fc | ||
![]() |
ef8b601789 | ||
![]() |
01e62900c7 | ||
![]() |
d50f1bdfac | ||
![]() |
38b40c624c | ||
![]() |
eb1f1b0a34 | ||
![]() |
a9376dbff9 | ||
![]() |
14697d9d6d | ||
![]() |
c6a926d9e2 | ||
![]() |
c1db5bfc08 | ||
![]() |
429b8162c6 | ||
![]() |
0dd2254d76 | ||
![]() |
03a0848922 | ||
![]() |
9161672950 | ||
![]() |
a08bcccc67 | ||
![]() |
bdec3c5323 | ||
![]() |
53d286797c | ||
![]() |
b6cafbd7d8 | ||
![]() |
499e167fda | ||
![]() |
0135e33511 | ||
![]() |
f2cc7559dd | ||
![]() |
fe8686ba4b | ||
![]() |
4aa69fe0b6 | ||
![]() |
b984cd2b01 | ||
![]() |
adcc64cd9e | ||
![]() |
c94b6de017 | ||
![]() |
000e21779c | ||
![]() |
f1d6f64c8e | ||
![]() |
d79cab27a5 | ||
![]() |
24b44446e2 | ||
![]() |
87739b2c53 | ||
![]() |
c782089611 | ||
![]() |
265592b99a | ||
![]() |
077ff61eef | ||
![]() |
dcbd0d74d5 | ||
![]() |
1ec0a3862e | ||
![]() |
946cd9a540 | ||
![]() |
0ac87024e3 | ||
![]() |
7abe830501 | ||
![]() |
5acaa49504 | ||
![]() |
535b9b5724 | ||
![]() |
78a0c1f18d | ||
![]() |
6cc5e19d47 | ||
![]() |
7e0c5264e7 | ||
![]() |
73343ac38a | ||
![]() |
d53d271728 | ||
![]() |
37fc8c3747 | ||
![]() |
01412ec600 | ||
![]() |
c4f3542abf | ||
![]() |
c799770060 | ||
![]() |
cd26e6c79d | ||
![]() |
4e773226f5 | ||
![]() |
646d56956b | ||
![]() |
0cc1115643 | ||
![]() |
257341b5b4 | ||
![]() |
83f2571782 | ||
![]() |
baa257f1ed | ||
![]() |
e06cc57118 | ||
![]() |
0450d28759 | ||
![]() |
7f56097c65 | ||
![]() |
7396958515 | ||
![]() |
3c758be86e | ||
![]() |
227385b719 | ||
![]() |
f7a059316f | ||
![]() |
b1d6e3f551 | ||
![]() |
db70a3fd6e | ||
![]() |
28fd5c60de | ||
![]() |
cbd48ba626 | ||
![]() |
67d93e6f49 | ||
![]() |
afb83c45e6 | ||
![]() |
43fcc1b096 | ||
![]() |
d5695a26a6 | ||
![]() |
8bfc8f934f | ||
![]() |
ef02b10a16 | ||
![]() |
803e4e93d4 | ||
![]() |
60b8607727 | ||
![]() |
159564ae9f | ||
![]() |
cd1bf28e2c | ||
![]() |
74e10aa58b | ||
![]() |
5f524accc1 | ||
![]() |
451e60e99f | ||
![]() |
89c16ab53e | ||
![]() |
820aaa5fc5 | ||
![]() |
993ea851f5 | ||
![]() |
305db17b5f | ||
![]() |
6a8ba34f9d | ||
![]() |
f777408fc5 | ||
![]() |
2984b0ae24 | ||
![]() |
3d6001f7b9 | ||
![]() |
f6a8898fc3 | ||
![]() |
757e392d4e | ||
![]() |
2f9f0c72de | ||
![]() |
cb4ae6c0d3 | ||
![]() |
359fd02fec | ||
![]() |
e1a8ac495b | ||
![]() |
0b5806b5f5 | ||
![]() |
ccb9643f02 | ||
![]() |
7f7b8d6871 | ||
![]() |
bb7e632aef | ||
![]() |
55d892e373 | ||
![]() |
f971ccb264 | ||
![]() |
a4aba800d9 | ||
![]() |
669cefdd35 | ||
![]() |
7be7c2eda5 | ||
![]() |
8de2910b5c | ||
![]() |
74489a3668 | ||
![]() |
e06433d9ba | ||
![]() |
e0bf5c11ea | ||
![]() |
58f0f52e67 | ||
![]() |
55b3c877c7 | ||
![]() |
bbbc96a87e | ||
![]() |
5e4ca4220e | ||
![]() |
e5828cd46f | ||
![]() |
7081f3bd89 | ||
![]() |
0413ba429c | ||
![]() |
29c1f0615b | ||
![]() |
10e473e930 | ||
![]() |
e7ef1a561a | ||
![]() |
458d356db9 | ||
![]() |
020fc820dc | ||
![]() |
bc8a9f1f0f | ||
![]() |
6b77e6d7f3 | ||
![]() |
361c7f2b52 | ||
![]() |
9f6fe8dbe7 | ||
![]() |
ee78e1fc8b | ||
![]() |
864170286a | ||
![]() |
02af65b347 | ||
![]() |
2f13ee21ea | ||
![]() |
1d833a9910 | ||
![]() |
11c0f1201c | ||
![]() |
69e7805f54 | ||
![]() |
e264cfe17a | ||
![]() |
8224b0cbe5 | ||
![]() |
15d52ddb55 | ||
![]() |
d48f487e2c | ||
![]() |
ce23b0f73e | ||
![]() |
d313047f63 | ||
![]() |
d1855cc7af | ||
![]() |
14c6d27d63 | ||
![]() |
dcea8e12e2 | ||
![]() |
26b264795d | ||
![]() |
501ebf16b6 | ||
![]() |
815c83f70a | ||
![]() |
92125ffaec | ||
![]() |
7db2fcaa81 | ||
![]() |
7d09713d09 | ||
![]() |
3aba98e787 | ||
![]() |
32d862ede4 | ||
![]() |
a44f26d5c9 | ||
![]() |
3e126d3610 | ||
![]() |
5660eb489e | ||
![]() |
7c155330de | ||
![]() |
8bb4ad88d8 | ||
![]() |
eb64730b9c | ||
![]() |
34a1488220 | ||
![]() |
5270e7025e | ||
![]() |
1df586bec2 | ||
![]() |
551e5990d2 | ||
![]() |
d9efa3616a | ||
![]() |
51c8dc37dd | ||
![]() |
28967cf079 | ||
![]() |
a2bbe59401 | ||
![]() |
421cb50b2d | ||
![]() |
0fa504b68d | ||
![]() |
705bfcf8e7 | ||
![]() |
4fb40db932 | ||
![]() |
9dd0463852 | ||
![]() |
5cb5715f97 | ||
![]() |
e9a583aa26 | ||
![]() |
f3f316f13f | ||
![]() |
99b1aaf2ec | ||
![]() |
53400da75c | ||
![]() |
2b59a6ac14 | ||
![]() |
48d89b560c | ||
![]() |
b5a43800ef | ||
![]() |
0fd44e2ddb | ||
![]() |
0a2221f9ad | ||
![]() |
567f17cfe0 | ||
![]() |
627ec355d8 | ||
![]() |
c80abb148d | ||
![]() |
4184a78761 | ||
![]() |
bbdc9c98a8 | ||
![]() |
11b62699a1 | ||
![]() |
14a74a21f0 | ||
![]() |
c8cda405e7 | ||
![]() |
befb3e7a4d | ||
![]() |
c6f1787bbd | ||
![]() |
9bd3bd227f | ||
![]() |
d0ef53bd2d | ||
![]() |
8d3f155a66 | ||
![]() |
ef0ab7f94f | ||
![]() |
bf55ece1c1 | ||
![]() |
51754ec835 | ||
![]() |
1bc5dd3efc | ||
![]() |
0ded1638ba | ||
![]() |
71d525c9f6 | ||
![]() |
757ab9b506 | ||
![]() |
3ab5651112 | ||
![]() |
82ce0b2308 | ||
![]() |
a22fb399cb | ||
![]() |
8df8f27513 | ||
![]() |
cde70093ac | ||
![]() |
5f97f508e4 | ||
![]() |
868af8e4be | ||
![]() |
553615f500 | ||
![]() |
924046ce75 | ||
![]() |
e100946038 | ||
![]() |
9e2c0f41d7 | ||
![]() |
5ef67042f9 | ||
![]() |
53fe8d5be5 | ||
![]() |
5209202f3b | ||
![]() |
8c23788dd1 | ||
![]() |
ef76e3dbda | ||
![]() |
7ba839bfe2 | ||
![]() |
d2dcf4f40d | ||
![]() |
75a382bd90 | ||
![]() |
5b0a0544f2 | ||
![]() |
a0ec9cf6d5 | ||
![]() |
e9ebf346c4 | ||
![]() |
73701c27b3 | ||
![]() |
8ca533e378 | ||
![]() |
d0c9858914 | ||
![]() |
4ef897d1fc | ||
![]() |
356c06c776 | ||
![]() |
ef71cb6daf | ||
![]() |
2e7e3d6ce9 | ||
![]() |
a269d312da | ||
![]() |
a87aa87bcc | ||
![]() |
6df3553255 | ||
![]() |
2eaad87f36 | ||
![]() |
b7af080fb1 | ||
![]() |
3a0afe1eed | ||
![]() |
086a32d754 | ||
![]() |
544ebbceb4 | ||
![]() |
6d0dcbedb1 | ||
![]() |
19a5e404cb | ||
![]() |
88aeb646bd | ||
![]() |
46b1b91309 | ||
![]() |
be054868a1 | ||
![]() |
0acc90e5f7 | ||
![]() |
4e20a4e688 | ||
![]() |
9ef9e78520 | ||
![]() |
e3f527177b | ||
![]() |
393e826ec3 | ||
![]() |
f09a419c6a | ||
![]() |
f4bdbfea66 | ||
![]() |
f00ba75c69 | ||
![]() |
c5e8580e7b | ||
![]() |
16221173c8 | ||
![]() |
0e8f2fdfdd | ||
![]() |
fec8c79a7e | ||
![]() |
56245be46d | ||
![]() |
eb206eb8be | ||
![]() |
fda05b2155 | ||
![]() |
8c4ab6d5ae | ||
![]() |
8fdec3e558 |
285
CHANGES
285
CHANGES
@@ -2,6 +2,291 @@
|
|||||||
OpenSSL CHANGES
|
OpenSSL CHANGES
|
||||||
_______________
|
_______________
|
||||||
|
|
||||||
|
Changes between 0.9.6 and 0.9.6a [5 Apr 2001]
|
||||||
|
|
||||||
|
*) Fix a couple of memory leaks in PKCS7_dataDecode()
|
||||||
|
[Steve Henson, reported by Heyun Zheng <hzheng@atdsprint.com>]
|
||||||
|
|
||||||
|
*) Change Configure and Makefiles to provide EXE_EXT, which will contain
|
||||||
|
the default extension for executables, if any. Also, make the perl
|
||||||
|
scripts that use symlink() to test if it really exists and use "cp"
|
||||||
|
if it doesn't. All this made OpenSSL compilable and installable in
|
||||||
|
CygWin.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix for asn1_GetSequence() for indefinite length constructed data.
|
||||||
|
If SEQUENCE is length is indefinite just set c->slen to the total
|
||||||
|
amount of data available.
|
||||||
|
[Steve Henson, reported by shige@FreeBSD.org]
|
||||||
|
[This change does not apply to 0.9.7.]
|
||||||
|
|
||||||
|
*) Change bctest to avoid here-documents inside command substitution
|
||||||
|
(workaround for FreeBSD /bin/sh bug).
|
||||||
|
For compatibility with Ultrix, avoid shell functions (introduced
|
||||||
|
in the bctest version that searches along $PATH).
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Rename 'des_encrypt' to 'des_encrypt1'. This avoids the clashes
|
||||||
|
with des_encrypt() defined on some operating systems, like Solaris
|
||||||
|
and UnixWare.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Check the result of RSA-CRT (see D. Boneh, R. DeMillo, R. Lipton:
|
||||||
|
On the Importance of Eliminating Errors in Cryptographic
|
||||||
|
Computations, J. Cryptology 14 (2001) 2, 101-119,
|
||||||
|
http://theory.stanford.edu/~dabo/papers/faults.ps.gz).
|
||||||
|
[Ulf Moeller]
|
||||||
|
|
||||||
|
*) MIPS assembler BIGNUM division bug fix.
|
||||||
|
[Andy Polyakov]
|
||||||
|
|
||||||
|
*) Disabled incorrect Alpha assembler code.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix PKCS#7 decode routines so they correctly update the length
|
||||||
|
after reading an EOC for the EXPLICIT tag.
|
||||||
|
[Steve Henson]
|
||||||
|
[This change does not apply to 0.9.7.]
|
||||||
|
|
||||||
|
*) Fix bug in PKCS#12 key generation routines. This was triggered
|
||||||
|
if a 3DES key was generated with a 0 initial byte. Include
|
||||||
|
PKCS12_BROKEN_KEYGEN compilation option to retain the old
|
||||||
|
(but broken) behaviour.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Enhance bctest to search for a working bc along $PATH and print
|
||||||
|
it when found.
|
||||||
|
[Tim Rice <tim@multitalents.net> via Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix memory leaks in err.c: free err_data string if necessary;
|
||||||
|
don't write to the wrong index in ERR_set_error_data.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Implement ssl23_peek (analogous to ssl23_read), which previously
|
||||||
|
did not exist.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Replace rdtsc with _emit statements for VC++ version 5.
|
||||||
|
[Jeremy Cooper <jeremy@baymoo.org>]
|
||||||
|
|
||||||
|
*) Make it possible to reuse SSLv2 sessions.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) In copy_email() check for >= 0 as a return value for
|
||||||
|
X509_NAME_get_index_by_NID() since 0 is a valid index.
|
||||||
|
[Steve Henson reported by Massimiliano Pala <madwolf@opensca.org>]
|
||||||
|
|
||||||
|
*) Avoid coredump with unsupported or invalid public keys by checking if
|
||||||
|
X509_get_pubkey() fails in PKCS7_verify(). Fix memory leak when
|
||||||
|
PKCS7_verify() fails with non detached data.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Don't use getenv in library functions when run as setuid/setgid.
|
||||||
|
New function OPENSSL_issetugid().
|
||||||
|
[Ulf Moeller]
|
||||||
|
|
||||||
|
*) Avoid false positives in memory leak detection code (crypto/mem_dbg.c)
|
||||||
|
due to incorrect handling of multi-threading:
|
||||||
|
|
||||||
|
1. Fix timing glitch in the MemCheck_off() portion of CRYPTO_mem_ctrl().
|
||||||
|
|
||||||
|
2. Fix logical glitch in is_MemCheck_on() aka CRYPTO_is_mem_check_on().
|
||||||
|
|
||||||
|
3. Count how many times MemCheck_off() has been called so that
|
||||||
|
nested use can be treated correctly. This also avoids
|
||||||
|
inband-signalling in the previous code (which relied on the
|
||||||
|
assumption that thread ID 0 is impossible).
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Add "-rand" option also to s_client and s_server.
|
||||||
|
[Lutz Jaenicke]
|
||||||
|
|
||||||
|
*) Fix CPU detection on Irix 6.x.
|
||||||
|
[Kurt Hockenbury <khockenb@stevens-tech.edu> and
|
||||||
|
"Bruce W. Forsberg" <bruce.forsberg@baesystems.com>]
|
||||||
|
|
||||||
|
*) Fix X509_NAME bug which produced incorrect encoding if X509_NAME
|
||||||
|
was empty.
|
||||||
|
[Steve Henson]
|
||||||
|
[This change does not apply to 0.9.7.]
|
||||||
|
|
||||||
|
*) Use the cached encoding of an X509_NAME structure rather than
|
||||||
|
copying it. This is apparently the reason for the libsafe "errors"
|
||||||
|
but the code is actually correct.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Add new function BN_rand_range(), and fix DSA_sign_setup() to prevent
|
||||||
|
Bleichenbacher's DSA attack.
|
||||||
|
Extend BN_[pseudo_]rand: As before, top=1 forces the highest two bits
|
||||||
|
to be set and top=0 forces the highest bit to be set; top=-1 is new
|
||||||
|
and leaves the highest bit random.
|
||||||
|
[Ulf Moeller, Bodo Moeller]
|
||||||
|
|
||||||
|
*) In the NCONF_...-based implementations for CONF_... queries
|
||||||
|
(crypto/conf/conf_lib.c), if the input LHASH is NULL, avoid using
|
||||||
|
a temporary CONF structure with the data component set to NULL
|
||||||
|
(which gives segmentation faults in lh_retrieve).
|
||||||
|
Instead, use NULL for the CONF pointer in CONF_get_string and
|
||||||
|
CONF_get_number (which may use environment variables) and directly
|
||||||
|
return NULL from CONF_get_section.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Fix potential buffer overrun for EBCDIC.
|
||||||
|
[Ulf Moeller]
|
||||||
|
|
||||||
|
*) Tolerate nonRepudiation as being valid for S/MIME signing and certSign
|
||||||
|
keyUsage if basicConstraints absent for a CA.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Make SMIME_write_PKCS7() write mail header values with a format that
|
||||||
|
is more generally accepted (no spaces before the semicolon), since
|
||||||
|
some programs can't parse those values properly otherwise. Also make
|
||||||
|
sure BIO's that break lines after each write do not create invalid
|
||||||
|
headers.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Make the CRL encoding routines work with empty SEQUENCE OF. The
|
||||||
|
macros previously used would not encode an empty SEQUENCE OF
|
||||||
|
and break the signature.
|
||||||
|
[Steve Henson]
|
||||||
|
[This change does not apply to 0.9.7.]
|
||||||
|
|
||||||
|
*) Zero the premaster secret after deriving the master secret in
|
||||||
|
DH ciphersuites.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Add some EVP_add_digest_alias registrations (as found in
|
||||||
|
OpenSSL_add_all_digests()) to SSL_library_init()
|
||||||
|
aka OpenSSL_add_ssl_algorithms(). This provides improved
|
||||||
|
compatibility with peers using X.509 certificates
|
||||||
|
with unconventional AlgorithmIdentifier OIDs.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Fix for Irix with NO_ASM.
|
||||||
|
["Bruce W. Forsberg" <bruce.forsberg@baesystems.com>]
|
||||||
|
|
||||||
|
*) ./config script fixes.
|
||||||
|
[Ulf Moeller, Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix 'openssl passwd -1'.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Change PKCS12_key_gen_asc() so it can cope with non null
|
||||||
|
terminated strings whose length is passed in the passlen
|
||||||
|
parameter, for example from PEM callbacks. This was done
|
||||||
|
by adding an extra length parameter to asc2uni().
|
||||||
|
[Steve Henson, reported by <oddissey@samsung.co.kr>]
|
||||||
|
|
||||||
|
*) Fix C code generated by 'openssl dsaparam -C': If a BN_bin2bn
|
||||||
|
call failed, free the DSA structure.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Fix to uni2asc() to cope with zero length Unicode strings.
|
||||||
|
These are present in some PKCS#12 files.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
|
*) Increase s2->wbuf allocation by one byte in ssl2_new (ssl/s2_lib.c).
|
||||||
|
Otherwise do_ssl_write (ssl/s2_pkt.c) will write beyond buffer limits
|
||||||
|
when writing a 32767 byte record.
|
||||||
|
[Bodo Moeller; problem reported by Eric Day <eday@concentric.net>]
|
||||||
|
|
||||||
|
*) In RSA_eay_public_{en,ed}crypt and RSA_eay_mod_exp (rsa_eay.c),
|
||||||
|
obtain lock CRYPTO_LOCK_RSA before setting rsa->_method_mod_{n,p,q}.
|
||||||
|
|
||||||
|
(RSA objects have a reference count access to which is protected
|
||||||
|
by CRYPTO_LOCK_RSA [see rsa_lib.c, s3_srvr.c, ssl_cert.c, ssl_rsa.c],
|
||||||
|
so they are meant to be shared between threads.)
|
||||||
|
[Bodo Moeller, Geoff Thorpe; original patch submitted by
|
||||||
|
"Reddie, Steven" <Steven.Reddie@ca.com>]
|
||||||
|
|
||||||
|
*) Fix a deadlock in CRYPTO_mem_leaks().
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Use better test patterns in bntest.
|
||||||
|
[Ulf M<>ller]
|
||||||
|
|
||||||
|
*) rand_win.c fix for Borland C.
|
||||||
|
[Ulf M<>ller]
|
||||||
|
|
||||||
|
*) BN_rshift bugfix for n == 0.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Add a 'bctest' script that checks for some known 'bc' bugs
|
||||||
|
so that 'make test' does not abort just because 'bc' is broken.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Store verify_result within SSL_SESSION also for client side to
|
||||||
|
avoid potential security hole. (Re-used sessions on the client side
|
||||||
|
always resulted in verify_result==X509_V_OK, not using the original
|
||||||
|
result of the server certificate verification.)
|
||||||
|
[Lutz Jaenicke]
|
||||||
|
|
||||||
|
*) Fix ssl3_pending: If the record in s->s3->rrec is not of type
|
||||||
|
SSL3_RT_APPLICATION_DATA, return 0.
|
||||||
|
Similarly, change ssl2_pending to return 0 if SSL_in_init(s) is true.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Fix SSL_peek:
|
||||||
|
Both ssl2_peek and ssl3_peek, which were totally broken in earlier
|
||||||
|
releases, have been re-implemented by renaming the previous
|
||||||
|
implementations of ssl2_read and ssl3_read to ssl2_read_internal
|
||||||
|
and ssl3_read_internal, respectively, and adding 'peek' parameters
|
||||||
|
to them. The new ssl[23]_{read,peek} functions are calls to
|
||||||
|
ssl[23]_read_internal with the 'peek' flag set appropriately.
|
||||||
|
A 'peek' parameter has also been added to ssl3_read_bytes, which
|
||||||
|
does the actual work for ssl3_read_internal.
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Initialise "ex_data" member of RSA/DSA/DH structures prior to calling
|
||||||
|
the method-specific "init()" handler. Also clean up ex_data after
|
||||||
|
calling the method-specific "finish()" handler. Previously, this was
|
||||||
|
happening the other way round.
|
||||||
|
[Geoff Thorpe]
|
||||||
|
|
||||||
|
*) Increase BN_CTX_NUM (the number of BIGNUMs in a BN_CTX) to 16.
|
||||||
|
The previous value, 12, was not always sufficient for BN_mod_exp().
|
||||||
|
[Bodo Moeller]
|
||||||
|
|
||||||
|
*) Make sure that shared libraries get the internal name engine with
|
||||||
|
the full version number and not just 0. This should mark the
|
||||||
|
shared libraries as not backward compatible. Of course, this should
|
||||||
|
be changed again when we can guarantee backward binary compatibility.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix typo in get_cert_by_subject() in by_dir.c
|
||||||
|
[Jean-Marc Desperrier <jean-marc.desperrier@certplus.com>]
|
||||||
|
|
||||||
|
*) Rework the system to generate shared libraries:
|
||||||
|
|
||||||
|
- Make note of the expected extension for the shared libraries and
|
||||||
|
if there is a need for symbolic links from for example libcrypto.so.0
|
||||||
|
to libcrypto.so.0.9.7. There is extended info in Configure for
|
||||||
|
that.
|
||||||
|
|
||||||
|
- Make as few rebuilds of the shared libraries as possible.
|
||||||
|
|
||||||
|
- Still avoid linking the OpenSSL programs with the shared libraries.
|
||||||
|
|
||||||
|
- When installing, install the shared libraries separately from the
|
||||||
|
static ones.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Fix SSL_CTX_set_read_ahead macro to actually use its argument.
|
||||||
|
|
||||||
|
Copy SSL_CTX's read_ahead flag to SSL object directly in SSL_new
|
||||||
|
and not in SSL_clear because the latter is also used by the
|
||||||
|
accept/connect functions; previously, the settings made by
|
||||||
|
SSL_set_read_ahead would be lost during the handshake.
|
||||||
|
[Bodo Moeller; problems reported by Anders Gertz <gertz@epact.se>]
|
||||||
|
|
||||||
|
*) Correct util/mkdef.pl to be selective about disabled algorithms.
|
||||||
|
Previously, it would create entries for disableed algorithms no
|
||||||
|
matter what.
|
||||||
|
[Richard Levitte]
|
||||||
|
|
||||||
|
*) Added several new manual pages for SSL_* function.
|
||||||
|
[Lutz Jaenicke]
|
||||||
|
|
||||||
Changes between 0.9.5a and 0.9.6 [24 Sep 2000]
|
Changes between 0.9.5a and 0.9.6 [24 Sep 2000]
|
||||||
|
|
||||||
*) In ssl23_get_client_hello, generate an error message when faced
|
*) In ssl23_get_client_hello, generate an error message when faced
|
||||||
|
152
Configure
152
Configure
@@ -98,6 +98,11 @@ my $x86_elf_asm="asm/bn86-elf.o asm/co86-elf.o:asm/dx86-elf.o asm/yx86-elf.o:asm
|
|||||||
my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
|
my $x86_out_asm="asm/bn86-out.o asm/co86-out.o:asm/dx86-out.o asm/yx86-out.o:asm/bx86-out.o:asm/mx86-out.o:asm/sx86-out.o:asm/cx86-out.o:asm/rx86-out.o:asm/rm86-out.o:asm/r586-out.o";
|
||||||
my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
|
my $x86_bsdi_asm="asm/bn86bsdi.o asm/co86bsdi.o:asm/dx86bsdi.o asm/yx86bsdi.o:asm/bx86bsdi.o:asm/mx86bsdi.o:asm/sx86bsdi.o:asm/cx86bsdi.o:asm/rx86bsdi.o:asm/rm86bsdi.o:asm/r586bsdi.o";
|
||||||
|
|
||||||
|
my $mips3_irix_asm="asm/mips3.o::::::::";
|
||||||
|
# There seems to be boundary faults in asm/alpha.s.
|
||||||
|
#my $alpha_asm="asm/alpha.o::::::::";
|
||||||
|
my $alpha_asm="::::::::";
|
||||||
|
|
||||||
# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
|
# -DB_ENDIAN slows things down on a sparc for md5, but helps sha1.
|
||||||
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
|
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
|
||||||
|
|
||||||
@@ -136,32 +141,32 @@ 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 -DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_sol_asm}:dlfcn:solaris-shared:-fPIC",
|
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_sol_asm}:dlfcn:gnu-shared:-fPIC:.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::::::::::dlfcn:solaris-shared:-fPIC",
|
"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::::::::::dlfcn:gnu-shared:-fPIC:.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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC",
|
"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:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC",
|
"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
|
# gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
|
||||||
# but keep the assembler modules.
|
# but keep the assembler modules.
|
||||||
"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC",
|
"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:gnu-shared:-fPIC:.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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC",
|
"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:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC",
|
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Solaris with Sun C setups
|
#### SPARC Solaris with Sun C setups
|
||||||
# DO NOT use /xO[34] on sparc with SC3.0. It is broken, and will not pass the tests
|
# DO NOT use /xO[34] on sparc with SC3.0. It is broken, and will not pass the tests
|
||||||
"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC",
|
"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
# 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::::::::::dlfcn:solaris-shared:-KPIC",
|
"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::::::::::dlfcn:solaris-shared:-KPIC:.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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC",
|
"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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC",
|
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC",
|
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:.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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC",
|
"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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.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 -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC",
|
"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 -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
#### SPARC Linux setups
|
#### SPARC Linux setups
|
||||||
"linux-sparcv7","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::",
|
"linux-sparcv7","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::",
|
||||||
@@ -187,11 +192,11 @@ my %table=(
|
|||||||
# 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-[g]cc' manually.
|
# './Configure irix-[g]cc' manually.
|
||||||
# -mips4 flag is added by ./config when appropriate.
|
# -mips4 flag is added by ./config when appropriate.
|
||||||
"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:asm/mips3.o::",
|
"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_irix_asm}",
|
||||||
"irix-mips3-cc", "cc:-n32 -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:asm/mips3.o::",
|
"irix-mips3-cc", "cc:-n32 -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_irix_asm}",
|
||||||
# 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:asm/mips3.o::",
|
"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_irix_asm}",
|
||||||
"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:asm/mips3.o::",
|
"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_irix_asm}",
|
||||||
|
|
||||||
#### Unified HP-UX ANSI C configs.
|
#### Unified HP-UX ANSI C configs.
|
||||||
# Special notes:
|
# Special notes:
|
||||||
@@ -271,10 +276,10 @@ my %table=(
|
|||||||
# Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
|
# Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
|
||||||
# the new compiler
|
# the new compiler
|
||||||
# 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
|
||||||
"alpha-gcc","gcc:-O3::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:asm/alpha.o:::::::::dlfcn:true64-shared",
|
"alpha-gcc","gcc:-O3::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${alpha_asm}:dlfcn:tru64-shared::.so",
|
||||||
"alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared",
|
"alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared::.so",
|
||||||
"alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:asm/alpha.o:::::::::dlfcn:true64-shared",
|
"alpha164-cc", "cc:-std1 -tune host -fast -readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared::.so",
|
||||||
"FreeBSD-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2:::",
|
"FreeBSD-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.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:
|
||||||
@@ -289,31 +294,32 @@ my %table=(
|
|||||||
#
|
#
|
||||||
# <appro@fy.chalmers.se>
|
# <appro@fy.chalmers.se>
|
||||||
#
|
#
|
||||||
"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::",
|
"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:asm/alpha.o::",
|
"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::",
|
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||||
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:asm/alpha.o::",
|
"linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
|
||||||
|
|
||||||
# assembler versions -- currently defunct:
|
# assembler versions -- currently defunct:
|
||||||
##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:asm/alpha.o::",
|
##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${alpha_asm}",
|
||||||
|
|
||||||
# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
|
# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
|
||||||
# bn86-elf.o file file since it is hand tweaked assembler.
|
# bn86-elf.o file file since it is hand tweaked assembler.
|
||||||
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
"linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -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","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",
|
"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",
|
||||||
"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",
|
"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-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 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
||||||
"linux-mips", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown)::BN_LLONG:::",
|
"linux-mips", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown)::BN_LLONG:::",
|
||||||
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::",
|
"linux-ppc", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::",
|
||||||
"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::",
|
"linux-m68k", "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::",
|
||||||
|
"linux-s390", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::",
|
||||||
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown)::SIXTY_FOUR_BIT_LONG::",
|
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::(unknown)::SIXTY_FOUR_BIT_LONG::",
|
||||||
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
|
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:::",
|
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:",
|
"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"FreeBSD-elf", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
"FreeBSD", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
|
||||||
"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::(unknown)::RSA_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_bsdi_asm}",
|
"bsdi-gcc", "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::(unknown)::RSA_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_bsdi_asm}",
|
||||||
"bsdi-elf-gcc", "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"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)",
|
||||||
"nextstep", "cc:-O -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
"nextstep", "cc:-O -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
# NCR MP-RAS UNIX ver 02.03.01
|
# NCR MP-RAS UNIX ver 02.03.01
|
||||||
@@ -323,18 +329,27 @@ my %table=(
|
|||||||
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown)::${x86_gcc_des} ${x86_gcc_opts}:",
|
"qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown)::${x86_gcc_des} ${x86_gcc_opts}:",
|
||||||
|
|
||||||
# Linux on ARM
|
# Linux on ARM
|
||||||
"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC",
|
"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
# UnixWare 2.0
|
# UnixWare 2.0x fails destest with -O
|
||||||
"unixware-2.0","cc:-O -DFILIO_H::(unknown):-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:::",
|
"unixware-2.0","cc:-DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
"unixware-2.0-pentium","cc:-O -DFILIO_H -Kpentium -Kthread::(unknown):-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
"unixware-2.0-pentium","cc:-DFILIO_H -Kpentium::-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
|
||||||
|
# UnixWare 2.1
|
||||||
|
"unixware-2.1","cc:-O -DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
|
||||||
|
"unixware-2.1-pentium","cc:-O -DFILIO_H -Kpentium::-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
"unixware-2.1-p6","cc:-O -DFILIO_H -Kp6::-Kthread:-lsocket -lnsl -lx:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
|
||||||
# UnixWare 7
|
# UnixWare 7
|
||||||
"unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread:-lsocket -lnsl:MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
"unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread:-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
"unixware-7-pentium","cc:-O -DFILIO_H -Kalloca -Kpentium::-Kthread:-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
"unixware-7-pentium_pro","cc:-O -DFILIO_H -Kalloca -Kpentium_pro::-Kthread:-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}::",
|
||||||
|
|
||||||
# IBM's AIX.
|
# IBM's AIX.
|
||||||
"aix-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR:::",
|
"aix-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR:::",
|
||||||
"aix-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR:::",
|
"aix-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR:::",
|
||||||
|
"aix43-cc", "cc:-O -DAIX -DB_ENDIAN -qmaxmem=16384::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:",
|
||||||
|
"aix43-gcc", "gcc:-O3 -DAIX -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR::::::::::dlfcn:",
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cray T90 (SDSC)
|
# Cray T90 (SDSC)
|
||||||
@@ -361,12 +376,16 @@ my %table=(
|
|||||||
|
|
||||||
# DGUX, 88100.
|
# DGUX, 88100.
|
||||||
"dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::RC4_INDEX DES_UNROLL:::",
|
"dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::RC4_INDEX DES_UNROLL:::",
|
||||||
"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::",
|
"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX DES_UNROLL:::",
|
||||||
"dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown):-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
"dgux-R4-x86-gcc", "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown):-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
|
||||||
|
|
||||||
|
# SCO 3 - Tim Rice <tim@multitalents.net>
|
||||||
|
"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 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the
|
||||||
# SCO cc.
|
# SCO cc.
|
||||||
"sco5-cc", "cc:::(unknown):-lsocket:${x86_gcc_des} ${x86_gcc_opts}:::", # des options?
|
"sco5-cc", "cc:::(unknown):-lsocket:${x86_gcc_des} ${x86_gcc_opts}:::", # des options?
|
||||||
|
"sco5-cc-pentium", "cc:-Kpentium::(unknown):-lsocket:${x86_gcc_des} ${x86_gcc_opts}:::", # des options?
|
||||||
"sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ...
|
"sco5-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ...
|
||||||
|
|
||||||
# Sinix/ReliantUNIX RM400
|
# Sinix/ReliantUNIX RM400
|
||||||
@@ -406,10 +425,10 @@ my %table=(
|
|||||||
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown)::::::",
|
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown)::::::",
|
||||||
|
|
||||||
# Some OpenBSD from Bob Beck <beck@obtuse.com>
|
# Some OpenBSD from Bob Beck <beck@obtuse.com>
|
||||||
"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:::",
|
"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"OpenBSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn",
|
"OpenBSD-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL:::",
|
"OpenBSD", "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",
|
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||||
|
|
||||||
##### MacOS X (a.k.a. Rhapsody) setup
|
##### MacOS X (a.k.a. Rhapsody) setup
|
||||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
|
||||||
@@ -424,6 +443,7 @@ my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
|
|||||||
|
|
||||||
my $prefix="";
|
my $prefix="";
|
||||||
my $openssldir="";
|
my $openssldir="";
|
||||||
|
my $exe_ext="";
|
||||||
my $install_prefix="";
|
my $install_prefix="";
|
||||||
my $no_threads=0;
|
my $no_threads=0;
|
||||||
my $no_shared=1;
|
my $no_shared=1;
|
||||||
@@ -451,10 +471,10 @@ my $md5_obj="";
|
|||||||
my $sha1_obj="";
|
my $sha1_obj="";
|
||||||
my $rmd160_obj="";
|
my $rmd160_obj="";
|
||||||
my $processor="";
|
my $processor="";
|
||||||
my $ranlib;
|
my $default_ranlib;
|
||||||
my $perl;
|
my $perl;
|
||||||
|
|
||||||
$ranlib=&which("ranlib") or $ranlib="true";
|
$default_ranlib= &which("ranlib") or $default_ranlib="true";
|
||||||
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
|
||||||
or $perl="perl";
|
or $perl="perl";
|
||||||
|
|
||||||
@@ -640,6 +660,7 @@ print "Configuring for $target\n";
|
|||||||
|
|
||||||
my $IsWindows=scalar grep /^$target$/,@WinTargets;
|
my $IsWindows=scalar grep /^$target$/,@WinTargets;
|
||||||
|
|
||||||
|
$exe_ext=".exe" if ($target eq "CygWin32");
|
||||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
|
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
|
||||||
$prefix=$openssldir if $prefix eq "";
|
$prefix=$openssldir if $prefix eq "";
|
||||||
|
|
||||||
@@ -653,8 +674,8 @@ $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /^\//;
|
|||||||
print "IsWindows=$IsWindows\n";
|
print "IsWindows=$IsWindows\n";
|
||||||
|
|
||||||
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
|
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,my $bn_obj,my $des_obj,my $bf_obj,
|
||||||
$md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag)=
|
$md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,my $shared_extension,my $ranlib)=
|
||||||
split(/\s*:\s*/,$table{$target} . ":" x 22 , -1);
|
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||||
$cflags="$flags$cflags" if ($flags ne "");
|
$cflags="$flags$cflags" if ($flags ne "");
|
||||||
|
|
||||||
# The DSO code currently always implements all functions so that no
|
# The DSO code currently always implements all functions so that no
|
||||||
@@ -729,17 +750,27 @@ if ($threads)
|
|||||||
}
|
}
|
||||||
|
|
||||||
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
|
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
|
||||||
my $shared_mark1 = "";
|
my $shared_mark = "";
|
||||||
my $shared_mark2 = "";
|
if ($shared_target ne "")
|
||||||
if ($shared_cflag ne "")
|
|
||||||
{
|
{
|
||||||
$cflags = "$shared_cflag $cflags";
|
if ($shared_cflag ne "")
|
||||||
|
{
|
||||||
|
$cflags = "$shared_cflag $cflags";
|
||||||
|
}
|
||||||
if (!$no_shared)
|
if (!$no_shared)
|
||||||
{
|
{
|
||||||
$shared_mark1 = ".shlib-clean.";
|
#$shared_mark = "\$(SHARED_LIBS)";
|
||||||
$shared_mark2 = ".shlib.";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$no_shared = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ranlib eq "")
|
||||||
|
{
|
||||||
|
$ranlib = $default_ranlib;
|
||||||
|
}
|
||||||
|
|
||||||
#my ($bn1)=split(/\s+/,$bn_obj);
|
#my ($bn1)=split(/\s+/,$bn_obj);
|
||||||
#$bn1 = "" unless defined $bn1;
|
#$bn1 = "" unless defined $bn1;
|
||||||
@@ -821,6 +852,7 @@ while (<IN>)
|
|||||||
s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/;
|
s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/;
|
||||||
s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
|
s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
|
||||||
s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/;
|
s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/;
|
||||||
|
s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
|
||||||
s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
|
s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
|
||||||
s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
|
s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
|
||||||
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
|
s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
|
||||||
@@ -831,6 +863,7 @@ while (<IN>)
|
|||||||
s/^CFLAG=.*$/CFLAG= $cflags/;
|
s/^CFLAG=.*$/CFLAG= $cflags/;
|
||||||
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
|
s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
|
||||||
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
|
||||||
|
s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
|
||||||
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
|
||||||
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
s/^DES_ENC=.*$/DES_ENC= $des_obj/;
|
||||||
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
|
||||||
@@ -844,9 +877,9 @@ while (<IN>)
|
|||||||
s/^RANLIB=.*/RANLIB= $ranlib/;
|
s/^RANLIB=.*/RANLIB= $ranlib/;
|
||||||
s/^PERL=.*/PERL= $perl/;
|
s/^PERL=.*/PERL= $perl/;
|
||||||
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
|
||||||
s/^SHLIB_MARK1=.*/SHLIB_MARK1=$shared_mark1/;
|
s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
|
||||||
s/^SHLIB_MARK2=.*/SHLIB_MARK2=$shared_mark2/;
|
s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
|
||||||
s/^LIBS=.*/LIBS=libcrypto\.so\* libssl\.so\*/ if (!$no_shared);
|
s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.so.\$(SHLIB_MAJOR) .so/ if ($shared_extension ne "" && $shared_extension !~ /^\.s[ol]$/);
|
||||||
print OUT $_."\n";
|
print OUT $_."\n";
|
||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
@@ -1133,8 +1166,9 @@ sub print_table_entry
|
|||||||
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,
|
(my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,
|
||||||
my $bn_obj,my $des_obj,my $bf_obj,
|
my $bn_obj,my $des_obj,my $bf_obj,
|
||||||
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
|
my $md5_obj,my $sha1_obj,my $cast_obj,my $rc4_obj,my $rmd160_obj,
|
||||||
my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag)=
|
my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,
|
||||||
split(/\s*:\s*/,$table{$target} . ":" x 22 , -1);
|
my $shared_extension,my $ranlib)=
|
||||||
|
split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
|
||||||
|
|
||||||
print <<EOF
|
print <<EOF
|
||||||
|
|
||||||
@@ -1157,5 +1191,7 @@ sub print_table_entry
|
|||||||
\$dso_scheme = $dso_scheme
|
\$dso_scheme = $dso_scheme
|
||||||
\$shared_target= $shared_target
|
\$shared_target= $shared_target
|
||||||
\$shared_cflag = $shared_cflag
|
\$shared_cflag = $shared_cflag
|
||||||
|
\$shared_extension = $shared_extension
|
||||||
|
\$ranlib = $ranlib
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
423
FAQ
423
FAQ
@@ -1,20 +1,22 @@
|
|||||||
OpenSSL - Frequently Asked Questions
|
OpenSSL - Frequently Asked Questions
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
|
[MISC] Miscellaneous questions
|
||||||
|
|
||||||
* Which is the current version of OpenSSL?
|
* Which is the current version of OpenSSL?
|
||||||
* Where is the documentation?
|
* Where is the documentation?
|
||||||
* How can I contact the OpenSSL developers?
|
* How can I contact the OpenSSL developers?
|
||||||
* Do I need patent licenses to use OpenSSL?
|
|
||||||
* Is OpenSSL thread-safe?
|
|
||||||
* Why do I get a "PRNG not seeded" error message?
|
|
||||||
* Why does the linker complain about undefined symbols?
|
|
||||||
* Where can I get a compiled version of OpenSSL?
|
* Where can I get a compiled version of OpenSSL?
|
||||||
* I've compiled a program under Windows and it crashes: why?
|
* Why aren't tools like 'autoconf' and 'libtool' used?
|
||||||
* How do I read or write a DER encoded buffer using the ASN1 functions?
|
|
||||||
* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
|
[LEGAL] Legal questions
|
||||||
* I've called <some function> and it fails, why?
|
|
||||||
* I just get a load of numbers for the error output, what do they mean?
|
* Do I need patent licenses to use OpenSSL?
|
||||||
* Why do I get errors about unknown algorithms?
|
* Can I use OpenSSL with GPL software?
|
||||||
|
|
||||||
|
[USER] Questions on using the OpenSSL applications
|
||||||
|
|
||||||
|
* Why do I get a "PRNG not seeded" error message?
|
||||||
* How do I create certificates or certificate requests?
|
* How do I create certificates or certificate requests?
|
||||||
* Why can't I create certificate requests?
|
* Why can't I create certificate requests?
|
||||||
* Why does <SSL program> fail with a certificate verify error?
|
* Why does <SSL program> fail with a certificate verify error?
|
||||||
@@ -22,17 +24,38 @@ OpenSSL - Frequently Asked Questions
|
|||||||
* How can I create DSA certificates?
|
* How can I create DSA certificates?
|
||||||
* Why can't I make an SSL connection using a DSA certificate?
|
* Why can't I make an SSL connection using a DSA certificate?
|
||||||
* How can I remove the passphrase on a private key?
|
* How can I remove the passphrase on a private key?
|
||||||
* Why can't the OpenSSH configure script detect OpenSSL?
|
* Why can't I use OpenSSL certificates with SSL client authentication?
|
||||||
|
* Why does my browser give a warning about a mismatched hostname?
|
||||||
|
|
||||||
|
[BUILD] Questions about building and testing OpenSSL
|
||||||
|
|
||||||
|
* Why does the linker complain about undefined symbols?
|
||||||
* Why does the OpenSSL test fail with "bc: command not found"?
|
* Why does the OpenSSL test fail with "bc: command not found"?
|
||||||
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
|
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
|
||||||
* Why does the OpenSSL compilation fail on Alpha True64 Unix?
|
* Why does the OpenSSL compilation fail on Alpha True64 Unix?
|
||||||
* Why does the OpenSSL compilation fail with "ar: command not found"?
|
* Why does the OpenSSL compilation fail with "ar: command not found"?
|
||||||
|
* Why does the OpenSSL compilation fail on Win32 with VC++?
|
||||||
|
|
||||||
|
[PROG] Questions about programming with OpenSSL
|
||||||
|
|
||||||
|
* Is OpenSSL thread-safe?
|
||||||
|
* I've compiled a program under Windows and it crashes: why?
|
||||||
|
* How do I read or write a DER encoded buffer using the ASN1 functions?
|
||||||
|
* I've tried using <M_some_evil_pkcs12_macro> and I get errors why?
|
||||||
|
* I've called <some function> and it fails, why?
|
||||||
|
* I just get a load of numbers for the error output, what do they mean?
|
||||||
|
* Why do I get errors about unknown algorithms?
|
||||||
|
* Why can't the OpenSSH configure script detect OpenSSL?
|
||||||
|
* Can I use OpenSSL's SSL library with non-blocking I/O?
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
|
[MISC] ========================================================================
|
||||||
|
|
||||||
* 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.6 was released on September 24th, 2000.
|
OpenSSL 0.9.6a was released on April 5th, 2001.
|
||||||
|
|
||||||
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:
|
||||||
@@ -78,6 +101,27 @@ OpenSSL. Information on the OpenSSL mailing lists is available from
|
|||||||
<URL: http://www.openssl.org>.
|
<URL: http://www.openssl.org>.
|
||||||
|
|
||||||
|
|
||||||
|
* Where can I get a compiled version of OpenSSL?
|
||||||
|
|
||||||
|
Some applications that use OpenSSL are distributed in binary form.
|
||||||
|
When using such an application, you don't need to install OpenSSL
|
||||||
|
yourself; the application will include the required parts (e.g. DLLs).
|
||||||
|
|
||||||
|
If you want to install OpenSSL on a Windows system and you don't have
|
||||||
|
a C compiler, read the "Mingw32" section of INSTALL.W32 for information
|
||||||
|
on how to obtain and install the free GNU C compiler.
|
||||||
|
|
||||||
|
A number of Linux and *BSD distributions include OpenSSL.
|
||||||
|
|
||||||
|
|
||||||
|
* Why aren't tools like 'autoconf' and 'libtool' used?
|
||||||
|
|
||||||
|
autoconf will probably be used in future OpenSSL versions. If it was
|
||||||
|
less Unix-centric, it might have been used much earlier.
|
||||||
|
|
||||||
|
|
||||||
|
[LEGAL] =======================================================================
|
||||||
|
|
||||||
* Do I need patent licenses to use OpenSSL?
|
* Do I need patent licenses to use OpenSSL?
|
||||||
|
|
||||||
The patents section of the README file lists patents that may apply to
|
The patents section of the README file lists patents that may apply to
|
||||||
@@ -89,17 +133,25 @@ You can configure OpenSSL so as not to use RC5 and IDEA by using
|
|||||||
./config no-rc5 no-idea
|
./config no-rc5 no-idea
|
||||||
|
|
||||||
|
|
||||||
* Is OpenSSL thread-safe?
|
* Can I use OpenSSL with GPL software?
|
||||||
|
|
||||||
Yes (with limitations: an SSL connection may not concurrently be used
|
On many systems including the major Linux and BSD distributions, yes (the
|
||||||
by multiple threads). On Windows and many Unix systems, OpenSSL
|
GPL does not place restrictions on using libraries that are part of the
|
||||||
automatically uses the multi-threaded versions of the standard
|
normal operating system distribution).
|
||||||
libraries. If your platform is not one of these, consult the INSTALL
|
|
||||||
file.
|
|
||||||
|
|
||||||
Multi-threaded applications must provide two callback functions to
|
On other systems, the situation is less clear. Some GPL software copyright
|
||||||
OpenSSL. This is described in the threads(3) manpage.
|
holders claim that you infringe on their rights if you use OpenSSL with
|
||||||
|
their software on operating systems that don't normally include OpenSSL.
|
||||||
|
|
||||||
|
If you develop open source software that uses OpenSSL, you may find it
|
||||||
|
useful to choose an other license than the GPL, or state explicitely that
|
||||||
|
"This program is released under the GPL with the additional exemption that
|
||||||
|
compiling, linking, and/or using OpenSSL is allowed." If you are using
|
||||||
|
GPL software developed by others, you may want to ask the copyright holder
|
||||||
|
for permission to use their software with OpenSSL.
|
||||||
|
|
||||||
|
|
||||||
|
[USER] ========================================================================
|
||||||
|
|
||||||
* Why do I get a "PRNG not seeded" error message?
|
* Why do I get a "PRNG not seeded" error message?
|
||||||
|
|
||||||
@@ -138,6 +190,101 @@ versions. However, be warned that /dev/random is usually a blocking
|
|||||||
device, which may have some effects on OpenSSL.
|
device, which may have some effects on OpenSSL.
|
||||||
|
|
||||||
|
|
||||||
|
* How do I create certificates or certificate requests?
|
||||||
|
|
||||||
|
Check out the CA.pl(1) manual page. This provides a simple wrapper round
|
||||||
|
the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
|
||||||
|
out the manual pages for the individual utilities and the certificate
|
||||||
|
extensions documentation (currently in doc/openssl.txt).
|
||||||
|
|
||||||
|
|
||||||
|
* Why can't I create certificate requests?
|
||||||
|
|
||||||
|
You typically get the error:
|
||||||
|
|
||||||
|
unable to find 'distinguished_name' in config
|
||||||
|
problems making Certificate Request
|
||||||
|
|
||||||
|
This is because it can't find the configuration file. Check out the
|
||||||
|
DIAGNOSTICS section of req(1) for more information.
|
||||||
|
|
||||||
|
|
||||||
|
* Why does <SSL program> fail with a certificate verify error?
|
||||||
|
|
||||||
|
This problem is usually indicated by log messages saying something like
|
||||||
|
"unable to get local issuer certificate" or "self signed certificate".
|
||||||
|
When a certificate is verified its root CA must be "trusted" by OpenSSL
|
||||||
|
this typically means that the CA certificate must be placed in a directory
|
||||||
|
or file and the relevant program configured to read it. The OpenSSL program
|
||||||
|
'verify' behaves in a similar way and issues similar error messages: check
|
||||||
|
the verify(1) program manual page for more information.
|
||||||
|
|
||||||
|
|
||||||
|
* Why can I only use weak ciphers when I connect to a server using OpenSSL?
|
||||||
|
|
||||||
|
This is almost certainly because you are using an old "export grade" browser
|
||||||
|
which only supports weak encryption. Upgrade your browser to support 128 bit
|
||||||
|
ciphers.
|
||||||
|
|
||||||
|
|
||||||
|
* How can I create DSA certificates?
|
||||||
|
|
||||||
|
Check the CA.pl(1) manual page for a DSA certificate example.
|
||||||
|
|
||||||
|
|
||||||
|
* Why can't I make an SSL connection to a server using a DSA certificate?
|
||||||
|
|
||||||
|
Typically you'll see a message saying there are no shared ciphers when
|
||||||
|
the same setup works fine with an RSA certificate. There are two possible
|
||||||
|
causes. The client may not support connections to DSA servers most web
|
||||||
|
browsers (including Netscape and MSIE) only support connections to servers
|
||||||
|
supporting RSA cipher suites. The other cause is that a set of DH parameters
|
||||||
|
has not been supplied to the server. DH parameters can be created with the
|
||||||
|
dhparam(1) command and loaded using the SSL_CTX_set_tmp_dh() for example:
|
||||||
|
check the source to s_server in apps/s_server.c for an example.
|
||||||
|
|
||||||
|
|
||||||
|
* How can I remove the passphrase on a private key?
|
||||||
|
|
||||||
|
Firstly you should be really *really* sure you want to do this. Leaving
|
||||||
|
a private key unencrypted is a major security risk. If you decide that
|
||||||
|
you do have to do this check the EXAMPLES sections of the rsa(1) and
|
||||||
|
dsa(1) manual pages.
|
||||||
|
|
||||||
|
|
||||||
|
* Why can't I use OpenSSL certificates with SSL client authentication?
|
||||||
|
|
||||||
|
What will typically happen is that when a server requests authentication
|
||||||
|
it will either not include your certificate or tell you that you have
|
||||||
|
no client certificates (Netscape) or present you with an empty list box
|
||||||
|
(MSIE). The reason for this is that when a server requests a client
|
||||||
|
certificate it includes a list of CAs names which it will accept. Browsers
|
||||||
|
will only let you select certificates from the list on the grounds that
|
||||||
|
there is little point presenting a certificate which the server will
|
||||||
|
reject.
|
||||||
|
|
||||||
|
The solution is to add the relevant CA certificate to your servers "trusted
|
||||||
|
CA list". How you do this depends on the server sofware in uses. You can
|
||||||
|
print out the servers list of acceptable CAs using the OpenSSL s_client tool:
|
||||||
|
|
||||||
|
openssl s_client -connect www.some.host:443 -prexit
|
||||||
|
|
||||||
|
If your server only requests certificates on certain URLs then you may need
|
||||||
|
to manually issue an HTTP GET command to get the list when s_client connects:
|
||||||
|
|
||||||
|
GET /some/page/needing/a/certificate.html
|
||||||
|
|
||||||
|
If your CA does not appear in the list then this confirms the problem.
|
||||||
|
|
||||||
|
|
||||||
|
* Why does my browser give a warning about a mismatched hostname?
|
||||||
|
|
||||||
|
Browsers expect the server's hostname to match the value in the commonName
|
||||||
|
(CN) field of the certificate. If it does not then you get a warning.
|
||||||
|
|
||||||
|
|
||||||
|
[BUILD] =======================================================================
|
||||||
|
|
||||||
* Why does the linker complain about undefined symbols?
|
* Why does the linker complain about undefined symbols?
|
||||||
|
|
||||||
Maybe the compilation was interrupted, and make doesn't notice that
|
Maybe the compilation was interrupted, and make doesn't notice that
|
||||||
@@ -162,17 +309,99 @@ If none of these helps, you may want to try using the current snapshot.
|
|||||||
If the problem persists, please submit a bug report.
|
If the problem persists, please submit a bug report.
|
||||||
|
|
||||||
|
|
||||||
* Where can I get a compiled version of OpenSSL?
|
* Why does the OpenSSL test fail with "bc: command not found"?
|
||||||
|
|
||||||
Some applications that use OpenSSL are distributed in binary form.
|
You didn't install "bc", the Unix calculator. If you want to run the
|
||||||
When using such an application, you don't need to install OpenSSL
|
tests, get GNU bc from ftp://ftp.gnu.org or from your OS distributor.
|
||||||
yourself; the application will include the required parts (e.g. DLLs).
|
|
||||||
|
|
||||||
If you want to install OpenSSL on a Windows system and you don't have
|
|
||||||
a C compiler, read the "Mingw32" section of INSTALL.W32 for information
|
|
||||||
on how to obtain and install the free GNU C compiler.
|
|
||||||
|
|
||||||
A number of Linux and *BSD distributions include OpenSSL.
|
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
|
||||||
|
|
||||||
|
On some SCO installations or versions, bc has a bug that gets triggered
|
||||||
|
when you run the test suite (using "make test"). The message returned is
|
||||||
|
"bc: 1 not implemented".
|
||||||
|
|
||||||
|
The best way to deal with this is to find another implementation of bc
|
||||||
|
and compile/install it. GNU bc (see http://www.gnu.org/software/software.html
|
||||||
|
for download instructions) can be safely used, for example.
|
||||||
|
|
||||||
|
|
||||||
|
* Why does the OpenSSL compilation fail on Alpha True64 Unix?
|
||||||
|
|
||||||
|
On some Alpha installations running True64 Unix and Compaq C, the compilation
|
||||||
|
of crypto/sha/sha_dgst.c fails with the message 'Fatal: Insufficient virtual
|
||||||
|
memory to continue compilation.' As far as the tests have shown, this may be
|
||||||
|
a compiler bug. What happens is that it eats up a lot of resident memory
|
||||||
|
to build something, probably a table. The problem is clearly in the
|
||||||
|
optimization code, because if one eliminates optimization completely (-O0),
|
||||||
|
the compilation goes through (and the compiler consumes about 2MB of resident
|
||||||
|
memory instead of 240MB or whatever one's limit is currently).
|
||||||
|
|
||||||
|
There are three options to solve this problem:
|
||||||
|
|
||||||
|
1. set your current data segment size soft limit higher. Experience shows
|
||||||
|
that about 241000 kbytes seems to be enough on an AlphaServer DS10. You do
|
||||||
|
this with the command 'ulimit -Sd nnnnnn', where 'nnnnnn' is the number of
|
||||||
|
kbytes to set the limit to.
|
||||||
|
|
||||||
|
2. If you have a hard limit that is lower than what you need and you can't
|
||||||
|
get it changed, you can compile all of OpenSSL with -O0 as optimization
|
||||||
|
level. This is however not a very nice thing to do for those who expect to
|
||||||
|
get the best result from OpenSSL. A bit more complicated solution is the
|
||||||
|
following:
|
||||||
|
|
||||||
|
----- snip:start -----
|
||||||
|
make DIRS=crypto SDIRS=sha "`grep '^CFLAG=' Makefile.ssl | \
|
||||||
|
sed -e 's/ -O[0-9] / -O0 /'`"
|
||||||
|
rm `ls crypto/*.o crypto/sha/*.o | grep -v 'sha_dgst\.o'`
|
||||||
|
make
|
||||||
|
----- snip:end -----
|
||||||
|
|
||||||
|
This will only compile sha_dgst.c with -O0, the rest with the optimization
|
||||||
|
level chosen by the configuration process. When the above is done, do the
|
||||||
|
test and installation and you're set.
|
||||||
|
|
||||||
|
|
||||||
|
* Why does the OpenSSL compilation fail with "ar: command not found"?
|
||||||
|
|
||||||
|
Getting this message is quite usual on Solaris 2, because Sun has hidden
|
||||||
|
away 'ar' and other development commands in directories that aren't in
|
||||||
|
$PATH by default. One of those directories is '/usr/ccs/bin'. The
|
||||||
|
quickest way to fix this is to do the following (it assumes you use sh
|
||||||
|
or any sh-compatible shell):
|
||||||
|
|
||||||
|
----- snip:start -----
|
||||||
|
PATH=${PATH}:/usr/ccs/bin; export PATH
|
||||||
|
----- snip:end -----
|
||||||
|
|
||||||
|
and then redo the compilation. What you should really do is make sure
|
||||||
|
'/usr/ccs/bin' is permanently in your $PATH, for example through your
|
||||||
|
'.profile' (again, assuming you use a sh-compatible shell).
|
||||||
|
|
||||||
|
|
||||||
|
* Why does the OpenSSL compilation fail on Win32 with VC++?
|
||||||
|
|
||||||
|
Sometimes, you may get reports from VC++ command line (cl) that it
|
||||||
|
can't find standard include files like stdio.h and other weirdnesses.
|
||||||
|
One possible cause is that the environment isn't correctly set up.
|
||||||
|
To solve that problem, one should run VCVARS32.BAT which is found in
|
||||||
|
the 'bin' subdirectory of the VC++ installation directory (somewhere
|
||||||
|
under 'Program Files'). This needs to be done prior to running NMAKE,
|
||||||
|
and the changes are only valid for the current DOS session.
|
||||||
|
|
||||||
|
|
||||||
|
[PROG] ========================================================================
|
||||||
|
|
||||||
|
* Is OpenSSL thread-safe?
|
||||||
|
|
||||||
|
Yes (with limitations: an SSL connection may not concurrently be used
|
||||||
|
by multiple threads). On Windows and many Unix systems, OpenSSL
|
||||||
|
automatically uses the multi-threaded versions of the standard
|
||||||
|
libraries. If your platform is not one of these, consult the INSTALL
|
||||||
|
file.
|
||||||
|
|
||||||
|
Multi-threaded applications must provide two callback functions to
|
||||||
|
OpenSSL. 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?
|
||||||
@@ -259,68 +488,6 @@ is forgetting to load OpenSSL's table of algorithms with
|
|||||||
OpenSSL_add_all_algorithms(). See the manual page for more information.
|
OpenSSL_add_all_algorithms(). See the manual page for more information.
|
||||||
|
|
||||||
|
|
||||||
* How do I create certificates or certificate requests?
|
|
||||||
|
|
||||||
Check out the CA.pl(1) manual page. This provides a simple wrapper round
|
|
||||||
the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
|
|
||||||
out the manual pages for the individual utilities and the certificate
|
|
||||||
extensions documentation (currently in doc/openssl.txt).
|
|
||||||
|
|
||||||
|
|
||||||
* Why can't I create certificate requests?
|
|
||||||
|
|
||||||
You typically get the error:
|
|
||||||
|
|
||||||
unable to find 'distinguished_name' in config
|
|
||||||
problems making Certificate Request
|
|
||||||
|
|
||||||
This is because it can't find the configuration file. Check out the
|
|
||||||
DIAGNOSTICS section of req(1) for more information.
|
|
||||||
|
|
||||||
|
|
||||||
* Why does <SSL program> fail with a certificate verify error?
|
|
||||||
|
|
||||||
This problem is usually indicated by log messages saying something like
|
|
||||||
"unable to get local issuer certificate" or "self signed certificate".
|
|
||||||
When a certificate is verified its root CA must be "trusted" by OpenSSL
|
|
||||||
this typically means that the CA certificate must be placed in a directory
|
|
||||||
or file and the relevant program configured to read it. The OpenSSL program
|
|
||||||
'verify' behaves in a similar way and issues similar error messages: check
|
|
||||||
the verify(1) program manual page for more information.
|
|
||||||
|
|
||||||
|
|
||||||
* Why can I only use weak ciphers when I connect to a server using OpenSSL?
|
|
||||||
|
|
||||||
This is almost certainly because you are using an old "export grade" browser
|
|
||||||
which only supports weak encryption. Upgrade your browser to support 128 bit
|
|
||||||
ciphers.
|
|
||||||
|
|
||||||
|
|
||||||
* How can I create DSA certificates?
|
|
||||||
|
|
||||||
Check the CA.pl(1) manual page for a DSA certificate example.
|
|
||||||
|
|
||||||
|
|
||||||
* Why can't I make an SSL connection to a server using a DSA certificate?
|
|
||||||
|
|
||||||
Typically you'll see a message saying there are no shared ciphers when
|
|
||||||
the same setup works fine with an RSA certificate. There are two possible
|
|
||||||
causes. The client may not support connections to DSA servers most web
|
|
||||||
browsers (including Netscape and MSIE) only support connections to servers
|
|
||||||
supporting RSA cipher suites. The other cause is that a set of DH parameters
|
|
||||||
has not been supplied to the server. DH parameters can be created with the
|
|
||||||
dhparam(1) command and loaded using the SSL_CTX_set_tmp_dh() for example:
|
|
||||||
check the source to s_server in apps/s_server.c for an example.
|
|
||||||
|
|
||||||
|
|
||||||
* How can I remove the passphrase on a private key?
|
|
||||||
|
|
||||||
Firstly you should be really *really* sure you want to do this. Leaving
|
|
||||||
a private key unencrypted is a major security risk. If you decide that
|
|
||||||
you do have to do this check the EXAMPLES sections of the rsa(1) and
|
|
||||||
dsa(1) manual pages.
|
|
||||||
|
|
||||||
|
|
||||||
* Why can't the OpenSSH configure script detect OpenSSL?
|
* Why can't the OpenSSH configure script detect OpenSSL?
|
||||||
|
|
||||||
There is a problem with OpenSSH 1.2.2p1, in that the configure script
|
There is a problem with OpenSSH 1.2.2p1, in that the configure script
|
||||||
@@ -362,71 +529,19 @@ applied to the OpenSSH distribution:
|
|||||||
----- snip:end -----
|
----- snip:end -----
|
||||||
|
|
||||||
|
|
||||||
* Why does the OpenSSL test fail with "bc: command not found"?
|
* Can I use OpenSSL's SSL library with non-blocking I/O?
|
||||||
|
|
||||||
You didn't install "bc", the Unix calculator. If you want to run the
|
Yes; make sure to read the SSL_get_error(3) manual page!
|
||||||
tests, get GNU bc from ftp://ftp.gnu.org or from your OS distributor.
|
|
||||||
|
A pitfall to avoid: Don't assume that SSL_read() will just read from
|
||||||
|
the underlying transport or that SSL_write() will just write to it --
|
||||||
|
it is also possible that SSL_write() cannot do any useful work until
|
||||||
|
there is data to read, or that SSL_read() cannot do anything until it
|
||||||
|
is possible to send data. One reason for this is that the peer may
|
||||||
|
request a new TLS/SSL handshake at any time during the protocol,
|
||||||
|
requiring a bi-directional message exchange; both SSL_read() and
|
||||||
|
SSL_write() will try to continue any pending handshake.
|
||||||
|
|
||||||
|
|
||||||
* Why does the OpenSSL test fail with "bc: 1 no implemented"?
|
===============================================================================
|
||||||
|
|
||||||
On some SCO installations or versions, bc has a bug that gets triggered when
|
|
||||||
you run the test suite (using "make test"). The message returned is "bc:
|
|
||||||
1 not implemented". The best way to deal with this is to find another
|
|
||||||
implementation of bc and compile/install it. For example, GNU bc (see
|
|
||||||
http://www.gnu.org/software/software.html for download instructions) can
|
|
||||||
be safely used.
|
|
||||||
|
|
||||||
|
|
||||||
* Why does the OpenSSL compilation fail on Alpha True64 Unix?
|
|
||||||
|
|
||||||
On some Alpha installations running True64 Unix and Compaq C, the compilation
|
|
||||||
of crypto/sha/sha_dgst.c fails with the message 'Fatal: Insufficient virtual
|
|
||||||
memory to continue compilation.' As far as the tests have shown, this may be
|
|
||||||
a compiler bug. What happens is that it eats up a lot of resident memory
|
|
||||||
to build something, probably a table. The problem is clearly in the
|
|
||||||
optimization code, because if one eliminates optimization completely (-O0),
|
|
||||||
the compilation goes through (and the compiler consumes about 2MB of resident
|
|
||||||
memory instead of 240MB or whatever one's limit is currently).
|
|
||||||
|
|
||||||
There are three options to solve this problem:
|
|
||||||
|
|
||||||
1. set your current data segment size soft limit higher. Experience shows
|
|
||||||
that about 241000 kbytes seems to be enough on an AlphaServer DS10. You do
|
|
||||||
this with the command 'ulimit -Sd nnnnnn', where 'nnnnnn' is the number of
|
|
||||||
kbytes to set the limit to.
|
|
||||||
|
|
||||||
2. If you have a hard limit that is lower than what you need and you can't
|
|
||||||
get it changed, you can compile all of OpenSSL with -O0 as optimization
|
|
||||||
level. This is however not a very nice thing to do for those who expect to
|
|
||||||
get the best result from OpenSSL. A bit more complicated solution is the
|
|
||||||
following:
|
|
||||||
|
|
||||||
----- snip:start -----
|
|
||||||
make DIRS=crypto SDIRS=sha "`grep '^CFLAG=' Makefile.ssl | \
|
|
||||||
sed -e 's/ -O[0-9] / -O0 /'`"
|
|
||||||
rm `ls crypto/*.o crypto/sha/*.o | grep -v 'sha_dgst\.o'`
|
|
||||||
make
|
|
||||||
----- snip:end -----
|
|
||||||
|
|
||||||
This will only compile sha_dgst.c with -O0, the rest with the optimization
|
|
||||||
level chosen by the configuration process. When the above is done, do the
|
|
||||||
test and installation and you're set.
|
|
||||||
|
|
||||||
|
|
||||||
* Why does the OpenSSL compilation fail with "ar: command not found"?
|
|
||||||
|
|
||||||
Getting this message is quite usual on Solaris 2, because Sun has hidden
|
|
||||||
away 'ar' and other development commands in directories that aren't in
|
|
||||||
$PATH by default. One of those directories is '/usr/ccs/bin'. The
|
|
||||||
quickest way to fix this is to do the following (it assumes you use sh
|
|
||||||
or any sh-compatible shell):
|
|
||||||
|
|
||||||
----- snip:start -----
|
|
||||||
PATH=${PATH}:/usr/ccs/bin; export PATH
|
|
||||||
----- snip:end -----
|
|
||||||
|
|
||||||
and then redo the compilation. What you should really do is make sure
|
|
||||||
'/usr/ccs/bin' is permanently in your $PATH, for example through your
|
|
||||||
'.profile' (again, assuming you use a sh-compatible shell).
|
|
||||||
|
|
||||||
|
2
LICENSE
2
LICENSE
@@ -12,7 +12,7 @@
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1998-2001 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
|
||||||
|
180
Makefile.org
180
Makefile.org
@@ -9,6 +9,7 @@ SHLIB_VERSION_NUMBER=
|
|||||||
SHLIB_VERSION_HISTORY=
|
SHLIB_VERSION_HISTORY=
|
||||||
SHLIB_MAJOR=
|
SHLIB_MAJOR=
|
||||||
SHLIB_MINOR=
|
SHLIB_MINOR=
|
||||||
|
SHLIB_EXT=
|
||||||
PLATFORM=dist
|
PLATFORM=dist
|
||||||
OPTIONS=
|
OPTIONS=
|
||||||
CONFIGURE_ARGS=
|
CONFIGURE_ARGS=
|
||||||
@@ -56,8 +57,9 @@ CC= gcc
|
|||||||
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
#CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
||||||
CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
|
||||||
DEPFLAG=
|
DEPFLAG=
|
||||||
PEX_LIBS= -L. -L.. -L../.. -L../../..
|
PEX_LIBS=
|
||||||
EX_LIBS=
|
EX_LIBS=
|
||||||
|
EXE_EXT=
|
||||||
AR=ar r
|
AR=ar r
|
||||||
RANLIB= ranlib
|
RANLIB= ranlib
|
||||||
PERL= perl
|
PERL= perl
|
||||||
@@ -149,14 +151,11 @@ RMD160_ASM_OBJ= asm/rm86-out.o
|
|||||||
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
|
#RMD160_ASM_OBJ= asm/rm86-out.o # a.out, FreeBSD
|
||||||
#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
|
#RMD160_ASM_OBJ= asm/rm86bsdi.o # bsdi
|
||||||
|
|
||||||
# To do special treatment, use "directory names" starting with a period.
|
|
||||||
# When we're prepared to use shared libraries in the programs we link here
|
# When we're prepared to use shared libraries in the programs we link here
|
||||||
# we might have SHLIB_MARK1 get the value ".shlib." and SHLIB_MARK2 be empty,
|
# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
|
||||||
# or have that configurable.
|
SHLIB_MARK=
|
||||||
SHLIB_MARK1=.shlib-clean.
|
|
||||||
SHLIB_MARK2=.shlib.
|
|
||||||
|
|
||||||
DIRS= crypto ssl rsaref $(SHLIB_MARK1) apps test tools $(SHLIB_MARK2)
|
DIRS= crypto ssl rsaref $(SHLIB_MARK) apps test tools
|
||||||
SHLIBDIRS= crypto ssl
|
SHLIBDIRS= crypto ssl
|
||||||
|
|
||||||
# dirs in crypto to build
|
# dirs in crypto to build
|
||||||
@@ -180,7 +179,10 @@ ONEDIRS=out tmp
|
|||||||
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
|
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
|
||||||
WDIRS= windows
|
WDIRS= windows
|
||||||
LIBS= libcrypto.a libssl.a
|
LIBS= libcrypto.a libssl.a
|
||||||
SHARED_LIBS=libcrypto.so libssl.so
|
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
|
||||||
|
SHARED_SSL=libssl$(SHLIB_EXT)
|
||||||
|
SHARED_LIBS=
|
||||||
|
SHARED_LIBS_LINK_EXTS=
|
||||||
|
|
||||||
GENERAL= Makefile
|
GENERAL= Makefile
|
||||||
BASENAME= openssl
|
BASENAME= openssl
|
||||||
@@ -190,108 +192,93 @@ WTARFILE= $(NAME)-win.tar
|
|||||||
EXHEADER= e_os.h e_os2.h
|
EXHEADER= e_os.h e_os2.h
|
||||||
HEADER= e_os.h
|
HEADER= e_os.h
|
||||||
|
|
||||||
all: Makefile.ssl
|
# When we're prepared to use shared libraries in the programs we link here
|
||||||
@need_shlib=true; \
|
# we might remove 'clean-shared' from the targets to perform at this stage
|
||||||
for i in $(DIRS) ;\
|
|
||||||
do \
|
all: clean-shared Makefile.ssl sub_all
|
||||||
if [ "$$i" = ".shlib-clean." ]; then \
|
|
||||||
if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
$(MAKE) clean-shared; \
|
|
||||||
fi; \
|
|
||||||
elif [ "$$i" = ".shlib." ]; then \
|
|
||||||
if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
$(MAKE) $(SHARED_LIBS); \
|
|
||||||
fi; \
|
|
||||||
need_shlib=false; \
|
|
||||||
else \
|
|
||||||
(cd $$i && echo "making all in $$i..." && \
|
|
||||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
|
|
||||||
$(MAKE) $(SHARED_LIBS); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
sub_all:
|
sub_all:
|
||||||
@need_shlib=true; \
|
@for i in $(DIRS); \
|
||||||
for i in $(DIRS) ;\
|
|
||||||
do \
|
do \
|
||||||
if [ "$$i" = ".shlib-clean." ]; then \
|
if [ -d "$$i" ]; then \
|
||||||
if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
$(MAKE) clean-shared; \
|
|
||||||
fi; \
|
|
||||||
elif [ "$$i" = ".shlib." ]; then \
|
|
||||||
if [ "$(SHLIB_TARGET)" != "" ]; then \
|
|
||||||
$(MAKE) $(SHARED_LIBS); \
|
|
||||||
fi; \
|
|
||||||
need_shlib=false; \
|
|
||||||
else \
|
|
||||||
(cd $$i && echo "making all in $$i..." && \
|
(cd $$i && echo "making all in $$i..." && \
|
||||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
|
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' all ) || exit 1; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $$i; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
if $$need_shlib && [ "$(SHLIB_MARK1)" != "" -o "$(SHLIB_MARK1)" != "" ]; then \
|
if echo "$(DIRS)" | \
|
||||||
|
egrep '(^| )(crypto|ssl)( |$$)' > /dev/null 2>&1 && \
|
||||||
|
[ -n "$(SHARED_LIBS)" ]; then \
|
||||||
$(MAKE) $(SHARED_LIBS); \
|
$(MAKE) $(SHARED_LIBS); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
libcrypto.so: libcrypto.a
|
libcrypto$(SHLIB_EXT): libcrypto.a
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
$(MAKE) SHLIBDIRS=crypto $(SHLIB_TARGET); \
|
$(MAKE) SHLIBDIRS=crypto build-shared; \
|
||||||
else \
|
else \
|
||||||
echo "There's no support for shared libraries on this platform" >&2; \
|
echo "There's no support for shared libraries on this platform" >&2; \
|
||||||
fi
|
fi
|
||||||
libssl.so: libcrypto.so libssl.a
|
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
|
||||||
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
@if [ "$(SHLIB_TARGET)" != "" ]; then \
|
||||||
$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \
|
$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
|
||||||
else \
|
else \
|
||||||
echo "There's no support for shared libraries on this platform" >&2; \
|
echo "There's no support for shared libraries on this platform" >&2; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clean-shared:
|
clean-shared:
|
||||||
for i in ${SHLIBDIRS}; do \
|
@for i in $(SHLIBDIRS); do \
|
||||||
rm -f lib$$i.so \
|
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
||||||
lib$$i.so.${SHLIB_MAJOR} \
|
tmp="$(SHARED_LIBS_LINK_EXTS)"; \
|
||||||
lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
|
for j in $${tmp:-x}; do \
|
||||||
|
( set -x; rm -f lib$$i$$j ); \
|
||||||
|
done; \
|
||||||
|
fi; \
|
||||||
|
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
|
||||||
done
|
done
|
||||||
|
|
||||||
linux-shared:
|
link-shared:
|
||||||
libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
@for i in $(SHLIBDIRS); do \
|
||||||
rm -f lib$$i.so \
|
prev=lib$$i$(SHLIB_EXT); \
|
||||||
lib$$i.so.${SHLIB_MAJOR} \
|
if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
|
||||||
lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
|
tmp="$(SHARED_LIBS_LINK_EXTS)"; \
|
||||||
|
for j in $${tmp:-x}; do \
|
||||||
|
( set -x; ln -f -s $$prev lib$$i$$j ); \
|
||||||
|
prev=lib$$i$$j; \
|
||||||
|
done; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
build-shared: clean-shared do_$(SHLIB_TARGET) link-shared
|
||||||
|
|
||||||
|
do_bsd-gcc-shared: do_gnu-shared
|
||||||
|
do_linux-shared: do_gnu-shared
|
||||||
|
do_gnu-shared:
|
||||||
|
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
||||||
( set -x; ${CC} -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
( set -x; ${CC} -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
-Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR} \
|
-Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
-Wl,--whole-archive lib$$i.a \
|
-Wl,--whole-archive lib$$i.a \
|
||||||
-Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
|
-Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
|
||||||
libs="$$libs -L. -l$$i"; \
|
libs="$$libs -l$$i"; \
|
||||||
( set -x; \
|
|
||||||
ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
|
||||||
lib$$i.so.${SHLIB_MAJOR}; \
|
|
||||||
ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so ); \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# This assumes that GNU utilities are *not* used
|
# This assumes that GNU utilities are *not* used
|
||||||
true64-shared:
|
do_tru64-shared:
|
||||||
libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
||||||
( set -x; ${CC} -shared -no_archive -o lib$$i.so \
|
( set -x; ${CC} -shared -no_archive -o lib$$i.so \
|
||||||
-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
|
-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
|
||||||
-all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
|
-all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
|
||||||
libs="$$libs -L. -l$$i"; \
|
libs="$$libs -l$$i"; \
|
||||||
done
|
done
|
||||||
|
|
||||||
# This assumes that GNU utilities are *not* used
|
# This assumes that GNU utilities are *not* used
|
||||||
solaris-shared:
|
do_solaris-shared:
|
||||||
libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
||||||
rm -f lib$$i.so \
|
( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
|
||||||
lib$$i.so.${SHLIB_MAJOR} \
|
set -x; ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
|
-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
( set -x; ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
|
||||||
-h lib$$i.so.${SHLIB_MAJOR} \
|
|
||||||
-z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
|
-z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
|
||||||
libs="$$libs -L. -l$$i"; \
|
libs="$$libs -l$$i"; \
|
||||||
ln -s lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
|
||||||
lib$$i.so.${SHLIB_MAJOR}; \
|
|
||||||
ln -s lib$$i.so.${SHLIB_MAJOR} lib$$i.so; \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
Makefile.ssl: Makefile.org
|
Makefile.ssl: Makefile.org
|
||||||
@@ -306,7 +293,7 @@ clean:
|
|||||||
rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
|
rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making clean in $$i..." && \
|
(cd $$i && echo "making clean in $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
|
||||||
rm -f $(LIBS); \
|
rm -f $(LIBS); \
|
||||||
@@ -327,7 +314,7 @@ files:
|
|||||||
$(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
|
$(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making 'files' in $$i..." && \
|
(cd $$i && echo "making 'files' in $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -338,7 +325,7 @@ 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)
|
||||||
@for i in $(DIRS); do \
|
@for i in $(DIRS); do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making links in $$i..." && \
|
(cd $$i && echo "making links in $$i..." && \
|
||||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' links ) || exit 1; \
|
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PERL='${PERL}' links ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -348,7 +335,7 @@ dclean:
|
|||||||
rm -f *.bak
|
rm -f *.bak
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making dclean in $$i..." && \
|
(cd $$i && echo "making dclean in $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -363,7 +350,7 @@ test: tests
|
|||||||
|
|
||||||
tests: rehash
|
tests: rehash
|
||||||
@(cd test && echo "testing..." && \
|
@(cd test && echo "testing..." && \
|
||||||
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
|
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' EXE_EXT='${EXE_EXT}' tests );
|
||||||
@apps/openssl version -a
|
@apps/openssl version -a
|
||||||
|
|
||||||
report:
|
report:
|
||||||
@@ -372,7 +359,7 @@ report:
|
|||||||
depend:
|
depend:
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making dependencies $$i..." && \
|
(cd $$i && echo "making dependencies $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -381,7 +368,7 @@ depend:
|
|||||||
lint:
|
lint:
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making lint $$i..." && \
|
(cd $$i && echo "making lint $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -390,7 +377,7 @@ lint:
|
|||||||
tags:
|
tags:
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i && echo "making tags $$i..." && \
|
(cd $$i && echo "making tags $$i..." && \
|
||||||
$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
|
$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -452,9 +439,9 @@ install: all install_docs
|
|||||||
done;
|
done;
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
if echo "$$i" | grep -v '^\.'; then \
|
if [ -d "$$i" ]; then \
|
||||||
(cd $$i; echo "installing $$i..."; \
|
(cd $$i; echo "installing $$i..."; \
|
||||||
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' install ); \
|
$(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' install ); \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
@for i in $(LIBS) ;\
|
@for i in $(LIBS) ;\
|
||||||
@@ -466,6 +453,20 @@ install: all install_docs
|
|||||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
|
@if [ -n "$(SHARED_LIBS)" ]; then \
|
||||||
|
tmp="$(SHARED_LIBS)"; \
|
||||||
|
for i in $${tmp:-x}; \
|
||||||
|
do \
|
||||||
|
if [ -f "$$i" ]; then \
|
||||||
|
( echo installing $$i; \
|
||||||
|
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
|
||||||
|
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
|
||||||
|
fi \
|
||||||
|
done; \
|
||||||
|
( here="`pwd`"; \
|
||||||
|
cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
|
||||||
|
make -f $$here/Makefile link-shared ); \
|
||||||
|
fi
|
||||||
|
|
||||||
install_docs:
|
install_docs:
|
||||||
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
@$(PERL) $(TOP)/util/mkdir-p.pl \
|
||||||
@@ -492,11 +493,4 @@ install_docs:
|
|||||||
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
|
> $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
|
||||||
done
|
done
|
||||||
|
|
||||||
shlib: all
|
|
||||||
if [ ! -d shlib_dir ] ; then mkdir shlib_dir ; else rm -f shlib_dir/* ; fi
|
|
||||||
cd shlib_dir ; ar -x ../libcrypto.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libcrypto.so.0.9 \
|
|
||||||
-o ./libcrypto.so.0.9.4 && rm *.o
|
|
||||||
cd shlib_dir ; ar -x ../libssl.a && $(CC) -shared ./*.o -Wl,-soname -Wl,libssl.so.0.9 \
|
|
||||||
-o ./libssl.so.0.9.4 && rm *.o
|
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||||
|
25
NEWS
25
NEWS
@@ -5,6 +5,31 @@
|
|||||||
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.6 and OpenSSL 0.9.6a:
|
||||||
|
|
||||||
|
o Security fix: change behavior of OpenSSL to avoid using
|
||||||
|
environment variables when running as root.
|
||||||
|
o Security fix: check the result of RSA-CRT to reduce the
|
||||||
|
possibility of deducing the private key from an incorrectly
|
||||||
|
calculated signature.
|
||||||
|
o Security fix: prevent Bleichenbacher's DSA attack.
|
||||||
|
o Security fix: Zero the premaster secret after deriving the
|
||||||
|
master secret in DH ciphersuites.
|
||||||
|
o Reimplement SSL_peek(), which had various problems.
|
||||||
|
o Compatibility fix: the function des_encrypt() renamed to
|
||||||
|
des_encrypt1() to avoid clashes with some Unixen libc.
|
||||||
|
o Bug fixes for Win32, HP/UX and Irix.
|
||||||
|
o Bug fixes in BIGNUM, SSL, PKCS#7, PKCS#12, X.509, CONF and
|
||||||
|
memory checking routines.
|
||||||
|
o Bug fixes for RSA operations in threaded enviroments.
|
||||||
|
o Bug fixes in misc. openssl applications.
|
||||||
|
o Remove a few potential memory leaks.
|
||||||
|
o Add tighter checks of BIGNUM routines.
|
||||||
|
o Shared library support has been reworked for generality.
|
||||||
|
o More documentation.
|
||||||
|
o New function BN_rand_range().
|
||||||
|
o Add "-rand" option to openssl s_client and s_server.
|
||||||
|
|
||||||
Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6:
|
Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6:
|
||||||
|
|
||||||
o Some documentation for BIO and SSL libraries.
|
o Some documentation for BIO and SSL libraries.
|
||||||
|
2
README
2
README
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
OpenSSL 0.9.6 [engine] 24 Sep 2000
|
OpenSSL 0.9.6a [engine] 5 Apr 2001
|
||||||
|
|
||||||
Copyright (c) 1998-2000 The OpenSSL Project
|
Copyright (c) 1998-2000 The OpenSSL Project
|
||||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||||
|
30
STATUS
30
STATUS
@@ -1,9 +1,10 @@
|
|||||||
|
|
||||||
OpenSSL STATUS Last modified at
|
OpenSSL STATUS Last modified at
|
||||||
______________ $Date: 2000/09/24 16:04:33 $
|
______________ $Date: 2001/04/05 17:48:02 $
|
||||||
|
|
||||||
DEVELOPMENT STATE
|
DEVELOPMENT STATE
|
||||||
|
|
||||||
|
o OpenSSL 0.9.6a: Released on April 5th, 2001
|
||||||
o OpenSSL 0.9.6: Released on September 24th, 2000
|
o OpenSSL 0.9.6: Released on September 24th, 2000
|
||||||
o OpenSSL 0.9.5a: Released on April 1st, 2000
|
o OpenSSL 0.9.5a: Released on April 1st, 2000
|
||||||
o OpenSSL 0.9.5: Released on February 28th, 2000
|
o OpenSSL 0.9.5: Released on February 28th, 2000
|
||||||
@@ -17,14 +18,13 @@
|
|||||||
|
|
||||||
AVAILABLE PATCHES
|
AVAILABLE PATCHES
|
||||||
|
|
||||||
o CA.pl patch (Damien Miller)
|
|
||||||
|
|
||||||
IN PROGRESS
|
IN PROGRESS
|
||||||
|
|
||||||
o Steve is currently working on (in no particular order):
|
o Steve is currently working on (in no particular order):
|
||||||
ASN1 code redesign, butchery, replacement.
|
ASN1 code redesign, butchery, replacement.
|
||||||
|
OCSP
|
||||||
EVP cipher enhancement.
|
EVP cipher enhancement.
|
||||||
Proper (or at least usable) certificate chain verification.
|
Enhanced certificate chain verification.
|
||||||
Private key, certificate and CRL API and implementation.
|
Private key, certificate and CRL API and implementation.
|
||||||
Developing and bugfixing PKCS#7 (S/MIME code).
|
Developing and bugfixing PKCS#7 (S/MIME code).
|
||||||
Various X509 issues: character sets, certificate request extensions.
|
Various X509 issues: character sets, certificate request extensions.
|
||||||
@@ -33,19 +33,29 @@
|
|||||||
o Richard is currently working on:
|
o Richard is currently working on:
|
||||||
UTIL (a new set of library functions to support some higher level
|
UTIL (a new set of library functions to support some higher level
|
||||||
functionality that is currently missing).
|
functionality that is currently missing).
|
||||||
Dynamic thread-lock support.
|
|
||||||
Shared library support for VMS.
|
Shared library support for VMS.
|
||||||
|
OCSP
|
||||||
|
Kerberos 5 authentication
|
||||||
|
Constification
|
||||||
|
|
||||||
NEEDS PATCH
|
NEEDS PATCH
|
||||||
|
|
||||||
o non-blocking socket on AIX
|
o apps/ca.c: "Sign the certificate?" - "n" creates empty certificate file
|
||||||
o $(PERL) in */Makefile.ssl
|
|
||||||
o "Sign the certificate?" - "n" creates empty certificate file
|
o OpenSSL_0_9_6-stable:
|
||||||
|
#include <openssl/e_os.h> in exported header files is illegal since
|
||||||
|
e_os.h is suitable only for library-internal use.
|
||||||
|
|
||||||
|
o Whenever strncpy is used, make sure the resulting string is NULL-terminated
|
||||||
|
or an error is reported
|
||||||
|
|
||||||
OPEN ISSUES
|
OPEN ISSUES
|
||||||
|
|
||||||
o internal_verify doesn't know about X509.v3 (basicConstraints
|
o crypto/ex_data.c is not really thread-safe and so must be used
|
||||||
CA flag ...)
|
with care (e.g., extra locking where necessary, or don't call
|
||||||
|
CRYPTO_get_ex_new_index once multiple threads exist).
|
||||||
|
The current API is not suitable for everything that it pretends
|
||||||
|
to offer.
|
||||||
|
|
||||||
o The Makefile hierarchy and build mechanism is still not a round thing:
|
o The Makefile hierarchy and build mechanism is still not a round thing:
|
||||||
|
|
||||||
|
@@ -18,6 +18,7 @@ RM= rm -f
|
|||||||
|
|
||||||
PEX_LIBS=
|
PEX_LIBS=
|
||||||
EX_LIBS=
|
EX_LIBS=
|
||||||
|
EXE_EXT=
|
||||||
|
|
||||||
CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
|
CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
|
||||||
|
|
||||||
@@ -32,7 +33,7 @@ PROGRAM= openssl
|
|||||||
|
|
||||||
SCRIPTS=CA.sh CA.pl der_chop
|
SCRIPTS=CA.sh CA.pl der_chop
|
||||||
|
|
||||||
EXE= $(PROGRAM)
|
EXE= $(PROGRAM)$(EXE_EXT)
|
||||||
|
|
||||||
E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
|
E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
|
||||||
ca crl rsa rsautl dsa dsaparam \
|
ca crl rsa rsautl dsa dsaparam \
|
||||||
@@ -77,7 +78,7 @@ top:
|
|||||||
|
|
||||||
all: exe
|
all: exe
|
||||||
|
|
||||||
exe: $(EXE)
|
exe: $(PROGRAM)
|
||||||
|
|
||||||
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
|
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
|
||||||
$(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
|
$(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
|
||||||
|
@@ -177,8 +177,10 @@ long app_RAND_load_files(char *name)
|
|||||||
if (*n == '\0') break;
|
if (*n == '\0') break;
|
||||||
|
|
||||||
egd=RAND_egd(n);
|
egd=RAND_egd(n);
|
||||||
if (egd > 0) tot+=egd;
|
if (egd > 0)
|
||||||
tot+=RAND_load_file(n,-1);
|
tot+=egd;
|
||||||
|
else
|
||||||
|
tot+=RAND_load_file(n,-1);
|
||||||
if (last) break;
|
if (last) break;
|
||||||
}
|
}
|
||||||
if (tot > 512)
|
if (tot > 512)
|
||||||
|
@@ -1 +1 @@
|
|||||||
05
|
07
|
||||||
|
@@ -313,7 +313,7 @@ bad:
|
|||||||
printf("\tdsa->g=BN_bin2bn(dsa%d_g,sizeof(dsa%d_g),NULL);\n",
|
printf("\tdsa->g=BN_bin2bn(dsa%d_g,sizeof(dsa%d_g),NULL);\n",
|
||||||
bits_p,bits_p);
|
bits_p,bits_p);
|
||||||
printf("\tif ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))\n");
|
printf("\tif ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))\n");
|
||||||
printf("\t\treturn(NULL);\n");
|
printf("\t\t{ DSA_free(dsa); return(NULL); }\n");
|
||||||
printf("\treturn(dsa);\n\t}\n");
|
printf("\treturn(dsa);\n\t}\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -272,6 +272,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
while (!done);
|
while (!done);
|
||||||
}
|
}
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
err:
|
err:
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
@@ -315,7 +316,7 @@ static char *md5crypt(const char *passwd, const char *magic, const char *salt)
|
|||||||
strncat(out_buf, "$", 1);
|
strncat(out_buf, "$", 1);
|
||||||
strncat(out_buf, salt, 8);
|
strncat(out_buf, salt, 8);
|
||||||
assert(strlen(out_buf) <= 6 + 8); /* "$apr1$..salt.." */
|
assert(strlen(out_buf) <= 6 + 8); /* "$apr1$..salt.." */
|
||||||
salt_out = out_buf + 6;
|
salt_out = out_buf + 2 + strlen(magic);
|
||||||
salt_len = strlen(salt_out);
|
salt_len = strlen(salt_out);
|
||||||
assert(salt_len <= 8);
|
assert(salt_len <= 8);
|
||||||
|
|
||||||
|
@@ -1 +1 @@
|
|||||||
01
|
07
|
||||||
|
@@ -725,16 +725,15 @@ loop:
|
|||||||
|
|
||||||
if (newreq || x509)
|
if (newreq || x509)
|
||||||
{
|
{
|
||||||
#ifndef NO_DSA
|
|
||||||
if (pkey->type == EVP_PKEY_DSA)
|
|
||||||
digest=EVP_dss1();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (pkey == NULL)
|
if (pkey == NULL)
|
||||||
{
|
{
|
||||||
BIO_printf(bio_err,"you need to specify a private key\n");
|
BIO_printf(bio_err,"you need to specify a private key\n");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
#ifndef NO_DSA
|
||||||
|
if (pkey->type == EVP_PKEY_DSA)
|
||||||
|
digest=EVP_dss1();
|
||||||
|
#endif
|
||||||
if (req == NULL)
|
if (req == NULL)
|
||||||
{
|
{
|
||||||
req=X509_REQ_new();
|
req=X509_REQ_new();
|
||||||
|
@@ -55,6 +55,9 @@
|
|||||||
* Hudson (tjh@cryptsoft.com).
|
* Hudson (tjh@cryptsoft.com).
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef NO_RSA
|
||||||
|
|
||||||
#include "apps.h"
|
#include "apps.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
@@ -313,3 +316,4 @@ static void usage()
|
|||||||
BIO_printf(bio_err, "-hexdump hex dump output\n");
|
BIO_printf(bio_err, "-hexdump hex dump output\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
@@ -79,6 +79,7 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
|
|
||||||
@@ -153,8 +154,8 @@ static void sc_usage(void)
|
|||||||
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
|
BIO_printf(bio_err," -bugs - Switch on all SSL implementation bug workarounds\n");
|
||||||
BIO_printf(bio_err," -cipher - preferred cipher to use, use the 'openssl ciphers'\n");
|
BIO_printf(bio_err," -cipher - preferred cipher to use, use the 'openssl ciphers'\n");
|
||||||
BIO_printf(bio_err," command to see what is available\n");
|
BIO_printf(bio_err," command to see what is available\n");
|
||||||
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
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");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int MAIN(int, char **);
|
int MAIN(int, char **);
|
||||||
@@ -181,6 +182,7 @@ int MAIN(int argc, char **argv)
|
|||||||
int prexit = 0;
|
int prexit = 0;
|
||||||
SSL_METHOD *meth=NULL;
|
SSL_METHOD *meth=NULL;
|
||||||
BIO *sbio;
|
BIO *sbio;
|
||||||
|
char *inrand=NULL;
|
||||||
char *engine_id=NULL;
|
char *engine_id=NULL;
|
||||||
ENGINE *e=NULL;
|
ENGINE *e=NULL;
|
||||||
#ifdef WINDOWS
|
#ifdef WINDOWS
|
||||||
@@ -320,6 +322,11 @@ int MAIN(int argc, char **argv)
|
|||||||
else if (strcmp(*argv,"-nbio") == 0)
|
else if (strcmp(*argv,"-nbio") == 0)
|
||||||
{ c_nbio=1; }
|
{ c_nbio=1; }
|
||||||
#endif
|
#endif
|
||||||
|
else if (strcmp(*argv,"-rand") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
inrand= *(++argv);
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-engine") == 0)
|
else if (strcmp(*argv,"-engine") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -341,7 +348,14 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
app_RAND_load_file(NULL, bio_err, 0);
|
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
|
||||||
|
&& !RAND_status())
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option\n");
|
||||||
|
}
|
||||||
|
if (inrand != NULL)
|
||||||
|
BIO_printf(bio_err,"%ld semi-random bytes loaded\n",
|
||||||
|
app_RAND_load_files(inrand));
|
||||||
|
|
||||||
if (bio_c_out == NULL)
|
if (bio_c_out == NULL)
|
||||||
{
|
{
|
||||||
|
@@ -83,6 +83,7 @@ typedef unsigned int u_int;
|
|||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
|
#include <openssl/rand.h>
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
#include "s_apps.h"
|
#include "s_apps.h"
|
||||||
|
|
||||||
@@ -245,6 +246,7 @@ static void sv_usage(void)
|
|||||||
BIO_printf(bio_err," -bugs - Turn on SSL bug compatibility\n");
|
BIO_printf(bio_err," -bugs - Turn on SSL bug compatibility\n");
|
||||||
BIO_printf(bio_err," -www - Respond to a 'GET /' with a status page\n");
|
BIO_printf(bio_err," -www - Respond to a 'GET /' with a status page\n");
|
||||||
BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
|
BIO_printf(bio_err," -WWW - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>\n");
|
||||||
|
BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
|
||||||
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -415,6 +417,8 @@ int MAIN(int argc, char *argv[])
|
|||||||
int no_tmp_rsa=0,no_dhe=0,nocert=0;
|
int no_tmp_rsa=0,no_dhe=0,nocert=0;
|
||||||
int state=0;
|
int state=0;
|
||||||
SSL_METHOD *meth=NULL;
|
SSL_METHOD *meth=NULL;
|
||||||
|
char *inrand=NULL;
|
||||||
|
char *engine_id=NULL;
|
||||||
ENGINE *e=NULL;
|
ENGINE *e=NULL;
|
||||||
#ifndef NO_DH
|
#ifndef NO_DH
|
||||||
DH *dh=NULL;
|
DH *dh=NULL;
|
||||||
@@ -570,6 +574,11 @@ int MAIN(int argc, char *argv[])
|
|||||||
else if (strcmp(*argv,"-tls1") == 0)
|
else if (strcmp(*argv,"-tls1") == 0)
|
||||||
{ meth=TLSv1_server_method(); }
|
{ meth=TLSv1_server_method(); }
|
||||||
#endif
|
#endif
|
||||||
|
else if (strcmp(*argv,"-rand") == 0)
|
||||||
|
{
|
||||||
|
if (--argc < 1) goto bad;
|
||||||
|
inrand= *(++argv);
|
||||||
|
}
|
||||||
else if (strcmp(*argv,"-engine") == 0)
|
else if (strcmp(*argv,"-engine") == 0)
|
||||||
{
|
{
|
||||||
if (--argc < 1) goto bad;
|
if (--argc < 1) goto bad;
|
||||||
@@ -591,7 +600,14 @@ bad:
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
app_RAND_load_file(NULL, bio_err, 0);
|
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
|
||||||
|
&& !RAND_status())
|
||||||
|
{
|
||||||
|
BIO_printf(bio_err,"warning, not much extra random data, consider using the -rand option\n");
|
||||||
|
}
|
||||||
|
if (inrand != NULL)
|
||||||
|
BIO_printf(bio_err,"%ld semi-random bytes loaded\n",
|
||||||
|
app_RAND_load_files(inrand));
|
||||||
|
|
||||||
if (bio_s_out == NULL)
|
if (bio_s_out == NULL)
|
||||||
{
|
{
|
||||||
@@ -709,7 +725,8 @@ bad:
|
|||||||
|
|
||||||
#ifndef NO_RSA
|
#ifndef NO_RSA
|
||||||
#if 1
|
#if 1
|
||||||
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
if (!no_tmp_rsa)
|
||||||
|
SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
|
||||||
#else
|
#else
|
||||||
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
|
||||||
{
|
{
|
||||||
@@ -1369,15 +1386,29 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
|
|
||||||
/* skip the '/' */
|
/* skip the '/' */
|
||||||
p= &(buf[5]);
|
p= &(buf[5]);
|
||||||
dot=0;
|
|
||||||
|
dot = 1;
|
||||||
for (e=p; *e != '\0'; e++)
|
for (e=p; *e != '\0'; e++)
|
||||||
{
|
{
|
||||||
if (e[0] == ' ') break;
|
if (e[0] == ' ')
|
||||||
if ( (e[0] == '.') &&
|
break;
|
||||||
(strncmp(&(e[-1]),"/../",4) == 0))
|
|
||||||
dot=1;
|
switch (dot)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
dot = (e[0] == '.') ? 2 : 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
dot = (e[0] == '.') ? 3 : 0;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
dot = (e[0] == '/') ? -1 : 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (dot == 0)
|
||||||
|
dot = (e[0] == '/') ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
dot = (dot == 3) || (dot == -1); /* filename contains ".." component */
|
||||||
|
|
||||||
if (*e == '\0')
|
if (*e == '\0')
|
||||||
{
|
{
|
||||||
@@ -1401,9 +1432,11 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* append if a directory lookup */
|
/* append if a directory lookup */
|
||||||
if (e[-1] == '/')
|
if (e[-1] == '/')
|
||||||
strcat(p,"index.html");
|
strcat(p,"index.html");
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if a directory, do the index thang */
|
/* if a directory, do the index thang */
|
||||||
if (stat(p,&st_buf) < 0)
|
if (stat(p,&st_buf) < 0)
|
||||||
@@ -1415,7 +1448,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||||||
}
|
}
|
||||||
if (S_ISDIR(st_buf.st_mode))
|
if (S_ISDIR(st_buf.st_mode))
|
||||||
{
|
{
|
||||||
|
#if 0 /* must check buffer size */
|
||||||
strcat(p,"/index.html");
|
strcat(p,"/index.html");
|
||||||
|
#else
|
||||||
|
BIO_puts(io,text);
|
||||||
|
BIO_printf(io,"'%s' is a directory\r\n",p);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((file=BIO_new_file(p,"r")) == NULL)
|
if ((file=BIO_new_file(p,"r")) == NULL)
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
|
||||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit)
|
subject= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit)
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIB6TCCAVICAQQwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
|
MIIB6TCCAVICAQYwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
|
||||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
|
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
|
||||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTgwNjI5MjM1MjQwWhcNMDAwNjI4
|
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNMDAxMDE2MjIzMTAzWhcNMDMwMTE0
|
||||||
MjM1MjQwWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
|
MjIzMTAzWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
|
||||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl
|
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl
|
||||||
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP
|
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP
|
||||||
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2//
|
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2//
|
||||||
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCVvvfkGSe2GHgDFfmOua4Isjb9
|
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCT0grFQeZaqYb5EYfk20XixZV4
|
||||||
JVhImWMASiOClkZlMESDJjsszg/6+d/W+8TrbObhazpl95FivXBVucbj9dudh7AO
|
GmyAbXMftG1Eo7qGiMhYzRwGNWxEYojf5PZkYZXvSqZ/ZXHXa4g59jK/rJNnaVGM
|
||||||
IZu1h1MAPlyknc9Ud816vz3FejB4qqUoaXjnlkrIgEbr/un7jSS86WOe0hRhwHkJ
|
k+xIX8mxQvlV0n5O9PIha5BX5teZnkHKgL8aKKLKW1BK7YTngsfSzzaeame5iKfz
|
||||||
FUGcPZf9ND22Etc+AQ==
|
itAE+OjGF+PFKbwX8Q==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
-----BEGIN RSA PRIVATE KEY-----
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD
|
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD
|
||||||
|
@@ -865,6 +865,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DSA
|
||||||
dsa_c[R_DSA_512][0]=count/1000;
|
dsa_c[R_DSA_512][0]=count/1000;
|
||||||
dsa_c[R_DSA_512][1]=count/1000/2;
|
dsa_c[R_DSA_512][1]=count/1000/2;
|
||||||
for (i=1; i<DSA_NUM; i++)
|
for (i=1; i<DSA_NUM; i++)
|
||||||
@@ -882,6 +883,7 @@ int MAIN(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define COND(d) (count < (d))
|
#define COND(d) (count < (d))
|
||||||
#define COUNT(d) (d)
|
#define COUNT(d) (d)
|
||||||
@@ -1207,7 +1209,7 @@ int MAIN(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
BIO_printf(bio_err,"RSA verify failure. No RSA verify will be done.\n");
|
BIO_printf(bio_err,"RSA verify failure. No RSA verify will be done.\n");
|
||||||
ERR_print_errors(bio_err);
|
ERR_print_errors(bio_err);
|
||||||
dsa_doit[j] = 0;
|
rsa_doit[j] = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -894,8 +894,10 @@ bad:
|
|||||||
|
|
||||||
BIO_printf(bio_err,"Generating certificate request\n");
|
BIO_printf(bio_err,"Generating certificate request\n");
|
||||||
|
|
||||||
|
#ifndef NO_DSA
|
||||||
if (pk->type == EVP_PKEY_DSA)
|
if (pk->type == EVP_PKEY_DSA)
|
||||||
digest=EVP_dss1();
|
digest=EVP_dss1();
|
||||||
|
#endif
|
||||||
|
|
||||||
rq=X509_to_X509_REQ(x,pk,digest);
|
rq=X509_to_X509_REQ(x,pk,digest);
|
||||||
EVP_PKEY_free(pk);
|
EVP_PKEY_free(pk);
|
||||||
|
50
config
50
config
@@ -49,10 +49,18 @@ if [ "x$XREL" != "x" ]; then
|
|||||||
echo "whatever-whatever-sco5"; exit 0
|
echo "whatever-whatever-sco5"; exit 0
|
||||||
;;
|
;;
|
||||||
4.2MP)
|
4.2MP)
|
||||||
if [ "x$VERSION" = "x2.1.1" ]; then
|
if [ "x$VERSION" = "x2.01" ]; then
|
||||||
|
echo "${MACHINE}-whatever-unixware201"; exit 0
|
||||||
|
elif [ "x$VERSION" = "x2.02" ]; then
|
||||||
|
echo "${MACHINE}-whatever-unixware202"; exit 0
|
||||||
|
elif [ "x$VERSION" = "x2.03" ]; then
|
||||||
|
echo "${MACHINE}-whatever-unixware203"; exit 0
|
||||||
|
elif [ "x$VERSION" = "x2.1.1" ]; then
|
||||||
echo "${MACHINE}-whatever-unixware211"; exit 0
|
echo "${MACHINE}-whatever-unixware211"; exit 0
|
||||||
elif [ "x$VERSION" = "x2.1.2" ]; then
|
elif [ "x$VERSION" = "x2.1.2" ]; then
|
||||||
echo "${MACHINE}-whatever-unixware212"; exit 0
|
echo "${MACHINE}-whatever-unixware212"; exit 0
|
||||||
|
elif [ "x$VERSION" = "x2.1.3" ]; then
|
||||||
|
echo "${MACHINE}-whatever-unixware213"; exit 0
|
||||||
else
|
else
|
||||||
echo "${MACHINE}-whatever-unixware2"; exit 0
|
echo "${MACHINE}-whatever-unixware2"; exit 0
|
||||||
fi
|
fi
|
||||||
@@ -79,6 +87,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
echo "m68k-apple-aux3"; exit 0
|
echo "m68k-apple-aux3"; exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
AIX:[3456789]:4:*)
|
||||||
|
echo "${MACHINE}-ibm-aix43"; exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
AIX:*:[56789]:*)
|
||||||
|
echo "${MACHINE}-ibm-aix43"; exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
AIX:*)
|
AIX:*)
|
||||||
echo "${MACHINE}-ibm-aix"; exit 0
|
echo "${MACHINE}-ibm-aix"; exit 0
|
||||||
;;
|
;;
|
||||||
@@ -168,7 +184,7 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
NetBSD:*:*:*386*)
|
NetBSD:*:*:*386*)
|
||||||
echo "`/usr/sbin/sysctl -n hw.model | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0
|
echo "`(/usr/sbin/sysctl -n hw.model || /sbin/sysctl -n hw.model) | sed 's,.*\(.\)86-class.*,i\186,'`-whatever-netbsd"; exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
NetBSD:*)
|
NetBSD:*)
|
||||||
@@ -393,10 +409,16 @@ case "$GUESSOS" in
|
|||||||
;;
|
;;
|
||||||
mips4-sgi-irix64)
|
mips4-sgi-irix64)
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||||
echo " invoke './Configre irix64-mips4-$CC' *manually*."
|
echo " invoke './Configure irix64-mips4-$CC' *manually*."
|
||||||
echo " Type Ctrl-C if you don't want to continue."
|
echo " Type return if you want to continue, Ctrl-C to abort."
|
||||||
read waste < /dev/tty
|
read waste < /dev/tty
|
||||||
options="$options -mips4"
|
CPU=`(hinv -t cpu) 2>/dev/null | 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"
|
OUT="irix-mips3-$CC"
|
||||||
;;
|
;;
|
||||||
alpha-*-linux2)
|
alpha-*-linux2)
|
||||||
@@ -423,11 +445,11 @@ case "$GUESSOS" in
|
|||||||
#till 64-bit glibc for SPARC is operational:-(
|
#till 64-bit glibc for SPARC is operational:-(
|
||||||
#echo "WARNING! If you wish to build 64-bit library, then you have to"
|
#echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||||
#echo " invoke './Configure linux64-sparcv9' *manually*."
|
#echo " invoke './Configure linux64-sparcv9' *manually*."
|
||||||
#echo " Type Ctrl-C if you don't want to continue."
|
#echo " Type return if you want to continue, Ctrl-C to abort."
|
||||||
#read waste < /dev/tty
|
#read waste < /dev/tty
|
||||||
OUT="linux-sparcv9" ;;
|
OUT="linux-sparcv9" ;;
|
||||||
sparc-*-linux2)
|
sparc-*-linux2)
|
||||||
KARCH=`awk '/type/{print$3}' /proc/cpuinfo`
|
KARCH=`awk '/^type/{print$3}' /proc/cpuinfo`
|
||||||
case ${KARCH:-sun4} in
|
case ${KARCH:-sun4} in
|
||||||
sun4u*) OUT="linux-sparcv9" ;;
|
sun4u*) OUT="linux-sparcv9" ;;
|
||||||
sun4m) OUT="linux-sparcv8" ;;
|
sun4m) OUT="linux-sparcv8" ;;
|
||||||
@@ -435,6 +457,7 @@ case "$GUESSOS" in
|
|||||||
*) OUT="linux-sparcv7" ;;
|
*) OUT="linux-sparcv7" ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
arm*-*-linux2) OUT="linux-elf-arm" ;;
|
arm*-*-linux2) OUT="linux-elf-arm" ;;
|
||||||
|
s390-*-linux2) OUT="linux-s390" ;;
|
||||||
*-*-linux2) OUT="linux-elf" ;;
|
*-*-linux2) OUT="linux-elf" ;;
|
||||||
*-*-linux1) OUT="linux-aout" ;;
|
*-*-linux1) OUT="linux-aout" ;;
|
||||||
sun4u*-*-solaris2)
|
sun4u*-*-solaris2)
|
||||||
@@ -442,7 +465,7 @@ case "$GUESSOS" in
|
|||||||
if [ "$ISA64" != "" -a "$CC" = "cc" -a $CCVER -ge 50 ]; then
|
if [ "$ISA64" != "" -a "$CC" = "cc" -a $CCVER -ge 50 ]; then
|
||||||
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
echo "WARNING! If you wish to build 64-bit library, then you have to"
|
||||||
echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
|
echo " invoke './Configure solaris64-sparcv9-cc' *manually*."
|
||||||
echo " Type Ctrl-C if you don't want to continue."
|
echo " Type return if you want to continue, Ctrl-C to abort."
|
||||||
read waste < /dev/tty
|
read waste < /dev/tty
|
||||||
fi
|
fi
|
||||||
OUT="solaris-sparcv9-$CC" ;;
|
OUT="solaris-sparcv9-$CC" ;;
|
||||||
@@ -466,9 +489,12 @@ case "$GUESSOS" in
|
|||||||
*-*-unixware7) OUT="unixware-7" ;;
|
*-*-unixware7) OUT="unixware-7" ;;
|
||||||
*-*-UnixWare7) OUT="unixware-7" ;;
|
*-*-UnixWare7) OUT="unixware-7" ;;
|
||||||
*-*-Unixware7) OUT="unixware-7" ;;
|
*-*-Unixware7) OUT="unixware-7" ;;
|
||||||
*-*-unixware[1-2]*) OUT="unixware-2.0" ;;
|
*-*-unixware20*) OUT="unixware-2.0" ;;
|
||||||
*-*-UnixWare[1-2]*) OUT="unixware-2.0" ;;
|
*-*-unixware21*) OUT="unixware-2.1" ;;
|
||||||
*-*-Unixware[1-2]*) OUT="unixware-2.0" ;;
|
*-*-UnixWare20*) OUT="unixware-2.0" ;;
|
||||||
|
*-*-UnixWare21*) OUT="unixware-2.1" ;;
|
||||||
|
*-*-Unixware20*) OUT="unixware-2.0" ;;
|
||||||
|
*-*-Unixware21*) OUT="unixware-2.1" ;;
|
||||||
BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
|
BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
|
||||||
RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
|
RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
|
||||||
*-siemens-sysv4) OUT="SINIX" ;;
|
*-siemens-sysv4) OUT="SINIX" ;;
|
||||||
@@ -573,7 +599,7 @@ OUT="$PREFIX$OUT"
|
|||||||
|
|
||||||
$PERL ./Configure LIST | grep "$OUT" > /dev/null
|
$PERL ./Configure LIST | grep "$OUT" > /dev/null
|
||||||
if [ $? = "0" ]; then
|
if [ $? = "0" ]; then
|
||||||
#echo Configuring for $OUT
|
echo Configuring for $OUT
|
||||||
|
|
||||||
if [ "$TEST" = "true" ]; then
|
if [ "$TEST" = "true" ]; then
|
||||||
echo $PERL ./Configure $OUT $options
|
echo $PERL ./Configure $OUT $options
|
||||||
|
@@ -34,8 +34,8 @@ SDIRS= md2 md5 sha mdc2 hmac ripemd \
|
|||||||
GENERAL=Makefile README crypto-lib.com install.com
|
GENERAL=Makefile README crypto-lib.com install.com
|
||||||
|
|
||||||
LIB= $(TOP)/libcrypto.a
|
LIB= $(TOP)/libcrypto.a
|
||||||
LIBSRC= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c
|
LIBSRC= cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c
|
||||||
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o
|
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o
|
||||||
|
|
||||||
SRC= $(LIBSRC)
|
SRC= $(LIBSRC)
|
||||||
|
|
||||||
@@ -90,7 +90,8 @@ links:
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
libs:
|
libs:
|
||||||
@@ -197,3 +198,6 @@ tmdiff.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
|||||||
tmdiff.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
tmdiff.o: ../include/openssl/opensslv.h ../include/openssl/safestack.h
|
||||||
tmdiff.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
tmdiff.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||||
tmdiff.o: ../include/openssl/tmdiff.h cryptlib.h
|
tmdiff.o: ../include/openssl/tmdiff.h cryptlib.h
|
||||||
|
uid.o: ../include/openssl/crypto.h ../include/openssl/opensslv.h
|
||||||
|
uid.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||||
|
uid.o: ../include/openssl/symhacks.h
|
||||||
|
@@ -75,7 +75,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -133,7 +133,7 @@ ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in,
|
|||||||
if(tbl) {
|
if(tbl) {
|
||||||
mask = tbl->mask;
|
mask = tbl->mask;
|
||||||
if(!(tbl->flags & STABLE_NO_MASK)) mask &= global_mask;
|
if(!(tbl->flags & STABLE_NO_MASK)) mask &= global_mask;
|
||||||
ret = ASN1_mbstring_ncopy(out, in, inlen, inform, tbl->mask,
|
ret = ASN1_mbstring_ncopy(out, in, inlen, inform, mask,
|
||||||
tbl->minsize, tbl->maxsize);
|
tbl->minsize, tbl->maxsize);
|
||||||
} else ret = ASN1_mbstring_copy(out, in, inlen, inform, DIRSTRING_TYPE & global_mask);
|
} else ret = ASN1_mbstring_copy(out, in, inlen, inform, DIRSTRING_TYPE & global_mask);
|
||||||
if(ret <= 0) return NULL;
|
if(ret <= 0) return NULL;
|
||||||
|
@@ -301,7 +301,7 @@ int asn1_GetSequence(ASN1_CTX *c, long *length)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
if (c->inf == (1|V_ASN1_CONSTRUCTED))
|
if (c->inf == (1|V_ASN1_CONSTRUCTED))
|
||||||
c->slen= *length+ *(c->pp)-c->p;
|
c->slen= *length;
|
||||||
c->eos=0;
|
c->eos=0;
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
@@ -196,6 +196,9 @@ err:\
|
|||||||
if ((a != NULL) && (sk_##type##_num(a) != 0)) \
|
if ((a != NULL) && (sk_##type##_num(a) != 0)) \
|
||||||
M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
|
M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
|
||||||
|
|
||||||
|
#define M_ASN1_I2D_put_SEQUENCE_opt_ex_type(type,a,f) \
|
||||||
|
if (a) M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
|
||||||
|
|
||||||
#define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
|
#define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
|
||||||
if ((c.slen != 0) && \
|
if ((c.slen != 0) && \
|
||||||
(M_ASN1_next == \
|
(M_ASN1_next == \
|
||||||
@@ -389,6 +392,9 @@ err:\
|
|||||||
if ((a != NULL) && (sk_##type##_num(a) != 0)) \
|
if ((a != NULL) && (sk_##type##_num(a) != 0)) \
|
||||||
M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
|
M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
|
||||||
|
|
||||||
|
#define M_ASN1_I2D_len_SEQUENCE_opt_ex_type(type,a,f) \
|
||||||
|
if (a) M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
|
||||||
|
|
||||||
#define M_ASN1_I2D_len_IMP_SET(a,f,x) \
|
#define M_ASN1_I2D_len_IMP_SET(a,f,x) \
|
||||||
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
|
ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
|
||||||
|
|
||||||
@@ -452,6 +458,15 @@ err:\
|
|||||||
ret+=ASN1_object_size(1,v,mtag); \
|
ret+=ASN1_object_size(1,v,mtag); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define M_ASN1_I2D_len_EXP_SEQUENCE_opt_ex_type(type,a,f,mtag,tag,v) \
|
||||||
|
if (a)\
|
||||||
|
{ \
|
||||||
|
v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \
|
||||||
|
V_ASN1_UNIVERSAL, \
|
||||||
|
IS_SEQUENCE); \
|
||||||
|
ret+=ASN1_object_size(1,v,mtag); \
|
||||||
|
}
|
||||||
|
|
||||||
/* Put Macros */
|
/* Put Macros */
|
||||||
#define M_ASN1_I2D_put(a,f) f(a,&p)
|
#define M_ASN1_I2D_put(a,f) f(a,&p)
|
||||||
|
|
||||||
@@ -536,6 +551,14 @@ err:\
|
|||||||
IS_SEQUENCE); \
|
IS_SEQUENCE); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define M_ASN1_I2D_put_EXP_SEQUENCE_opt_ex_type(type,a,f,mtag,tag,v) \
|
||||||
|
if (a) \
|
||||||
|
{ \
|
||||||
|
ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
|
||||||
|
i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \
|
||||||
|
IS_SEQUENCE); \
|
||||||
|
}
|
||||||
|
|
||||||
#define M_ASN1_I2D_seq_total() \
|
#define M_ASN1_I2D_seq_total() \
|
||||||
r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \
|
r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \
|
||||||
if (pp == NULL) return(r); \
|
if (pp == NULL) return(r); \
|
||||||
|
@@ -307,12 +307,14 @@ PKCS7 *d2i_PKCS7(PKCS7 **a, unsigned char **pp, long length)
|
|||||||
}
|
}
|
||||||
if (Tinf == (1|V_ASN1_CONSTRUCTED))
|
if (Tinf == (1|V_ASN1_CONSTRUCTED))
|
||||||
{
|
{
|
||||||
|
c.q=c.p;
|
||||||
if (!ASN1_check_infinite_end(&c.p,c.slen))
|
if (!ASN1_check_infinite_end(&c.p,c.slen))
|
||||||
{
|
{
|
||||||
c.error=ERR_R_MISSING_ASN1_EOS;
|
c.error=ERR_R_MISSING_ASN1_EOS;
|
||||||
c.line=__LINE__;
|
c.line=__LINE__;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
c.slen-=(c.p-c.q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -71,14 +71,14 @@ int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **pp)
|
|||||||
|
|
||||||
M_ASN1_I2D_len(a->serialNumber,i2d_ASN1_INTEGER);
|
M_ASN1_I2D_len(a->serialNumber,i2d_ASN1_INTEGER);
|
||||||
M_ASN1_I2D_len(a->revocationDate,i2d_ASN1_TIME);
|
M_ASN1_I2D_len(a->revocationDate,i2d_ASN1_TIME);
|
||||||
M_ASN1_I2D_len_SEQUENCE_opt_type(X509_EXTENSION,a->extensions,
|
M_ASN1_I2D_len_SEQUENCE_opt_ex_type(X509_EXTENSION,a->extensions,
|
||||||
i2d_X509_EXTENSION);
|
i2d_X509_EXTENSION);
|
||||||
|
|
||||||
M_ASN1_I2D_seq_total();
|
M_ASN1_I2D_seq_total();
|
||||||
|
|
||||||
M_ASN1_I2D_put(a->serialNumber,i2d_ASN1_INTEGER);
|
M_ASN1_I2D_put(a->serialNumber,i2d_ASN1_INTEGER);
|
||||||
M_ASN1_I2D_put(a->revocationDate,i2d_ASN1_TIME);
|
M_ASN1_I2D_put(a->revocationDate,i2d_ASN1_TIME);
|
||||||
M_ASN1_I2D_put_SEQUENCE_opt_type(X509_EXTENSION,a->extensions,
|
M_ASN1_I2D_put_SEQUENCE_opt_ex_type(X509_EXTENSION,a->extensions,
|
||||||
i2d_X509_EXTENSION);
|
i2d_X509_EXTENSION);
|
||||||
|
|
||||||
M_ASN1_I2D_finish();
|
M_ASN1_I2D_finish();
|
||||||
@@ -121,7 +121,7 @@ int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **pp)
|
|||||||
{ M_ASN1_I2D_len(a->nextUpdate,i2d_ASN1_TIME); }
|
{ M_ASN1_I2D_len(a->nextUpdate,i2d_ASN1_TIME); }
|
||||||
M_ASN1_I2D_len_SEQUENCE_opt_type(X509_REVOKED,a->revoked,
|
M_ASN1_I2D_len_SEQUENCE_opt_type(X509_REVOKED,a->revoked,
|
||||||
i2d_X509_REVOKED);
|
i2d_X509_REVOKED);
|
||||||
M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions,
|
M_ASN1_I2D_len_EXP_SEQUENCE_opt_ex_type(X509_EXTENSION,a->extensions,
|
||||||
i2d_X509_EXTENSION,0,
|
i2d_X509_EXTENSION,0,
|
||||||
V_ASN1_SEQUENCE,v1);
|
V_ASN1_SEQUENCE,v1);
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **pp)
|
|||||||
{ M_ASN1_I2D_put(a->nextUpdate,i2d_ASN1_TIME); }
|
{ M_ASN1_I2D_put(a->nextUpdate,i2d_ASN1_TIME); }
|
||||||
M_ASN1_I2D_put_SEQUENCE_opt_type(X509_REVOKED,a->revoked,
|
M_ASN1_I2D_put_SEQUENCE_opt_type(X509_REVOKED,a->revoked,
|
||||||
i2d_X509_REVOKED);
|
i2d_X509_REVOKED);
|
||||||
M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(X509_EXTENSION,a->extensions,
|
M_ASN1_I2D_put_EXP_SEQUENCE_opt_ex_type(X509_EXTENSION,a->extensions,
|
||||||
i2d_X509_EXTENSION,0,
|
i2d_X509_EXTENSION,0,
|
||||||
V_ASN1_SEQUENCE,v1);
|
V_ASN1_SEQUENCE,v1);
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ X509_CRL_INFO *X509_CRL_INFO_new(void)
|
|||||||
M_ASN1_New(ret->lastUpdate,M_ASN1_UTCTIME_new);
|
M_ASN1_New(ret->lastUpdate,M_ASN1_UTCTIME_new);
|
||||||
ret->nextUpdate=NULL;
|
ret->nextUpdate=NULL;
|
||||||
M_ASN1_New(ret->revoked,sk_X509_REVOKED_new_null);
|
M_ASN1_New(ret->revoked,sk_X509_REVOKED_new_null);
|
||||||
M_ASN1_New(ret->extensions,sk_X509_EXTENSION_new_null);
|
ret->extensions = NULL;
|
||||||
sk_X509_REVOKED_set_cmp_func(ret->revoked,X509_REVOKED_cmp);
|
sk_X509_REVOKED_set_cmp_func(ret->revoked,X509_REVOKED_cmp);
|
||||||
return(ret);
|
return(ret);
|
||||||
M_ASN1_New_Error(ASN1_F_X509_CRL_INFO_NEW);
|
M_ASN1_New_Error(ASN1_F_X509_CRL_INFO_NEW);
|
||||||
|
@@ -141,10 +141,12 @@ static int i2d_X509_NAME_entries(X509_NAME *a)
|
|||||||
}
|
}
|
||||||
size+=i2d_X509_NAME_ENTRY(ne,NULL);
|
size+=i2d_X509_NAME_ENTRY(ne,NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret+=ASN1_object_size(1,size,V_ASN1_SET);
|
|
||||||
if (fe != NULL)
|
if (fe != NULL)
|
||||||
|
{
|
||||||
|
/* SET OF needed only if entries is non empty */
|
||||||
|
ret+=ASN1_object_size(1,size,V_ASN1_SET);
|
||||||
fe->size=size;
|
fe->size=size;
|
||||||
|
}
|
||||||
|
|
||||||
r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE);
|
r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE);
|
||||||
|
|
||||||
|
@@ -44,7 +44,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
# elf
|
# elf
|
||||||
|
@@ -49,7 +49,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
@@ -95,13 +96,13 @@ b_dump.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
|||||||
b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
b_dump.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
||||||
b_dump.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
b_dump.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||||
b_dump.o: ../cryptlib.h
|
b_dump.o: ../cryptlib.h
|
||||||
b_print.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
b_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||||
b_print.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
b_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||||
b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
b_print.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
|
||||||
b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
b_print.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||||
b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
|
b_print.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||||
b_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
b_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||||
b_print.o: ../cryptlib.h
|
b_print.o: ../../include/openssl/symhacks.h ../cryptlib.h
|
||||||
b_sock.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
b_sock.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
|
||||||
b_sock.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
b_sock.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
|
||||||
b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||||
|
@@ -69,6 +69,7 @@
|
|||||||
#ifndef NO_SYS_TYPES_H
|
#ifndef NO_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <openssl/bn.h> /* To get BN_LLONG properly defined */
|
||||||
#include <openssl/bio.h>
|
#include <openssl/bio.h>
|
||||||
|
|
||||||
#ifdef BN_LLONG
|
#ifdef BN_LLONG
|
||||||
|
@@ -113,8 +113,8 @@ int BIO_get_host_ip(const char *str, unsigned char *ip)
|
|||||||
|
|
||||||
/* At this point, we have something that is most probably correct
|
/* At this point, we have something that is most probably correct
|
||||||
in some way, so let's init the socket. */
|
in some way, so let's init the socket. */
|
||||||
if (!BIO_sock_init())
|
if (BIO_sock_init() != 1)
|
||||||
return(0); /* don't generate another error code here */
|
return 0; /* don't generate another error code here */
|
||||||
|
|
||||||
/* If the string actually contained an IP address, we need not do
|
/* If the string actually contained an IP address, we need not do
|
||||||
anything more */
|
anything more */
|
||||||
@@ -519,15 +519,15 @@ int BIO_get_accept_socket(char *host, int bind_mode)
|
|||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
struct sockaddr_in server,client;
|
struct sockaddr_in server,client;
|
||||||
int s= -1,cs;
|
int s=INVALID_SOCKET,cs;
|
||||||
unsigned char ip[4];
|
unsigned char ip[4];
|
||||||
unsigned short port;
|
unsigned short port;
|
||||||
char *str,*e;
|
char *str=NULL,*e;
|
||||||
const char *h,*p;
|
const char *h,*p;
|
||||||
unsigned long l;
|
unsigned long l;
|
||||||
int err_num;
|
int err_num;
|
||||||
|
|
||||||
if (!BIO_sock_init()) return(INVALID_SOCKET);
|
if (BIO_sock_init() != 1) return(INVALID_SOCKET);
|
||||||
|
|
||||||
if ((str=BUF_strdup(host)) == NULL) return(INVALID_SOCKET);
|
if ((str=BUF_strdup(host)) == NULL) return(INVALID_SOCKET);
|
||||||
|
|
||||||
@@ -553,7 +553,7 @@ int BIO_get_accept_socket(char *host, int bind_mode)
|
|||||||
h="*";
|
h="*";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!BIO_get_port(p,&port)) return(INVALID_SOCKET);
|
if (!BIO_get_port(p,&port)) goto err;
|
||||||
|
|
||||||
memset((char *)&server,0,sizeof(server));
|
memset((char *)&server,0,sizeof(server));
|
||||||
server.sin_family=AF_INET;
|
server.sin_family=AF_INET;
|
||||||
@@ -563,7 +563,7 @@ int BIO_get_accept_socket(char *host, int bind_mode)
|
|||||||
server.sin_addr.s_addr=INADDR_ANY;
|
server.sin_addr.s_addr=INADDR_ANY;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!BIO_get_host_ip(h,&(ip[0]))) return(INVALID_SOCKET);
|
if (!BIO_get_host_ip(h,&(ip[0]))) goto err;
|
||||||
l=(unsigned long)
|
l=(unsigned long)
|
||||||
((unsigned long)ip[0]<<24L)|
|
((unsigned long)ip[0]<<24L)|
|
||||||
((unsigned long)ip[1]<<16L)|
|
((unsigned long)ip[1]<<16L)|
|
||||||
|
@@ -68,7 +68,8 @@ bnbug: bnbug.c ../../libcrypto.a top
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
# elf
|
# elf
|
||||||
|
@@ -586,13 +586,13 @@ LEAF(bn_div_3_words)
|
|||||||
ld a0,(a3)
|
ld a0,(a3)
|
||||||
move ta2,a1
|
move ta2,a1
|
||||||
ld a1,-8(a3)
|
ld a1,-8(a3)
|
||||||
move ta3,ra
|
bne a0,a2,.L_bn_div_3_words_proceed
|
||||||
move v1,zero
|
|
||||||
li v0,-1
|
li v0,-1
|
||||||
beq a0,a2,.L_bn_div_3_words_skip_div
|
jr ra
|
||||||
|
.L_bn_div_3_words_proceed:
|
||||||
|
move ta3,ra
|
||||||
bal bn_div_words
|
bal bn_div_words
|
||||||
move ra,ta3
|
move ra,ta3
|
||||||
.L_bn_div_3_words_skip_div:
|
|
||||||
dmultu ta2,v0
|
dmultu ta2,v0
|
||||||
ld t2,-16(a3)
|
ld t2,-16(a3)
|
||||||
move ta0,zero
|
move ta0,zero
|
||||||
|
@@ -1611,7 +1611,7 @@ bn_mul_comba4
|
|||||||
.IMPORT $global$,DATA
|
.IMPORT $global$,DATA
|
||||||
.SPACE $TEXT$
|
.SPACE $TEXT$
|
||||||
.SUBSPA $CODE$
|
.SUBSPA $CODE$
|
||||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
|
.SUBSPA $LIT$,ACCESS=0x2c
|
||||||
C$7
|
C$7
|
||||||
.ALIGN 8
|
.ALIGN 8
|
||||||
.STRINGZ "Division would overflow (%d)\n"
|
.STRINGZ "Division would overflow (%d)\n"
|
||||||
|
@@ -1598,7 +1598,7 @@ bn_mul_comba4
|
|||||||
.IMPORT $global$,DATA
|
.IMPORT $global$,DATA
|
||||||
.SPACE $TEXT$
|
.SPACE $TEXT$
|
||||||
.SUBSPA $CODE$
|
.SUBSPA $CODE$
|
||||||
.SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
|
.SUBSPA $LIT$,ACCESS=0x2c
|
||||||
C$4
|
C$4
|
||||||
.ALIGN 8
|
.ALIGN 8
|
||||||
.STRINGZ "Division would overflow (%d)\n"
|
.STRINGZ "Division would overflow (%d)\n"
|
||||||
|
@@ -239,7 +239,7 @@ typedef struct bignum_st
|
|||||||
} BIGNUM;
|
} BIGNUM;
|
||||||
|
|
||||||
/* Used for temp variables */
|
/* Used for temp variables */
|
||||||
#define BN_CTX_NUM 12
|
#define BN_CTX_NUM 16
|
||||||
#define BN_CTX_NUM_POS 12
|
#define BN_CTX_NUM_POS 12
|
||||||
typedef struct bignum_ctx
|
typedef struct bignum_ctx
|
||||||
{
|
{
|
||||||
@@ -328,6 +328,7 @@ BIGNUM *BN_CTX_get(BN_CTX *ctx);
|
|||||||
void BN_CTX_end(BN_CTX *ctx);
|
void BN_CTX_end(BN_CTX *ctx);
|
||||||
int BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
|
int BN_rand(BIGNUM *rnd, int bits, int top,int bottom);
|
||||||
int BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
|
int BN_pseudo_rand(BIGNUM *rnd, int bits, int top,int bottom);
|
||||||
|
int BN_rand_range(BIGNUM *rnd, BIGNUM *range);
|
||||||
int BN_num_bits(const BIGNUM *a);
|
int BN_num_bits(const BIGNUM *a);
|
||||||
int BN_num_bits_word(BN_ULONG);
|
int BN_num_bits_word(BN_ULONG);
|
||||||
BIGNUM *BN_new(void);
|
BIGNUM *BN_new(void);
|
||||||
@@ -467,6 +468,8 @@ BN_ULONG bn_sub_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int num);
|
|||||||
# define bn_dump(a,b)
|
# define bn_dump(a,b)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int BN_bntest_rand(BIGNUM *rnd, int bits, int top,int bottom);
|
||||||
|
|
||||||
/* BEGIN ERROR CODES */
|
/* BEGIN ERROR CODES */
|
||||||
/* The following lines are auto generated by the script mkerr.pl. Any changes
|
/* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||||
* made after this point may be overwritten when the script is next run.
|
* made after this point may be overwritten when the script is next run.
|
||||||
@@ -493,16 +496,19 @@ BN_ULONG bn_sub_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp,int num);
|
|||||||
#define BN_F_BN_MPI2BN 112
|
#define BN_F_BN_MPI2BN 112
|
||||||
#define BN_F_BN_NEW 113
|
#define BN_F_BN_NEW 113
|
||||||
#define BN_F_BN_RAND 114
|
#define BN_F_BN_RAND 114
|
||||||
|
#define BN_F_BN_RAND_RANGE 122
|
||||||
#define BN_F_BN_USUB 115
|
#define BN_F_BN_USUB 115
|
||||||
|
|
||||||
/* Reason codes. */
|
/* Reason codes. */
|
||||||
#define BN_R_ARG2_LT_ARG3 100
|
#define BN_R_ARG2_LT_ARG3 100
|
||||||
#define BN_R_BAD_RECIPROCAL 101
|
#define BN_R_BAD_RECIPROCAL 101
|
||||||
|
#define BN_R_BIGNUM_TOO_LONG 114
|
||||||
#define BN_R_CALLED_WITH_EVEN_MODULUS 102
|
#define BN_R_CALLED_WITH_EVEN_MODULUS 102
|
||||||
#define BN_R_DIV_BY_ZERO 103
|
#define BN_R_DIV_BY_ZERO 103
|
||||||
#define BN_R_ENCODING_ERROR 104
|
#define BN_R_ENCODING_ERROR 104
|
||||||
#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105
|
#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105
|
||||||
#define BN_R_INVALID_LENGTH 106
|
#define BN_R_INVALID_LENGTH 106
|
||||||
|
#define BN_R_INVALID_RANGE 115
|
||||||
#define BN_R_NOT_INITIALIZED 107
|
#define BN_R_NOT_INITIALIZED 107
|
||||||
#define BN_R_NO_INVERSE 108
|
#define BN_R_NO_INVERSE 108
|
||||||
#define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109
|
#define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109
|
||||||
|
@@ -180,13 +180,13 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
|
|||||||
|
|
||||||
BN_CTX_start(ctx);
|
BN_CTX_start(ctx);
|
||||||
tmp=BN_CTX_get(ctx);
|
tmp=BN_CTX_get(ctx);
|
||||||
tmp->neg=0;
|
|
||||||
snum=BN_CTX_get(ctx);
|
snum=BN_CTX_get(ctx);
|
||||||
sdiv=BN_CTX_get(ctx);
|
sdiv=BN_CTX_get(ctx);
|
||||||
if (dv == NULL)
|
if (dv == NULL)
|
||||||
res=BN_CTX_get(ctx);
|
res=BN_CTX_get(ctx);
|
||||||
else res=dv;
|
else res=dv;
|
||||||
if (res == NULL) goto err;
|
if (sdiv==NULL || res == NULL) goto err;
|
||||||
|
tmp->neg=0;
|
||||||
|
|
||||||
/* First we normalise the numbers */
|
/* First we normalise the numbers */
|
||||||
norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
|
norm_shift=BN_BITS2-((BN_num_bits(divisor))%BN_BITS2);
|
||||||
@@ -237,7 +237,8 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
|
|||||||
for (i=0; i<loop-1; i++)
|
for (i=0; i<loop-1; i++)
|
||||||
{
|
{
|
||||||
BN_ULONG q,l0;
|
BN_ULONG q,l0;
|
||||||
#ifdef BN_DIV3W
|
#if defined(BN_DIV3W) && !defined(NO_ASM)
|
||||||
|
BN_ULONG bn_div_3_words(BN_ULONG*,BN_ULONG,BN_ULONG);
|
||||||
q=bn_div_3_words(wnump,d1,d0);
|
q=bn_div_3_words(wnump,d1,d0);
|
||||||
#else
|
#else
|
||||||
BN_ULONG n0,n1,rem=0;
|
BN_ULONG n0,n1,rem=0;
|
||||||
|
@@ -84,6 +84,7 @@ static ERR_STRING_DATA BN_str_functs[]=
|
|||||||
{ERR_PACK(0,BN_F_BN_MPI2BN,0), "BN_mpi2bn"},
|
{ERR_PACK(0,BN_F_BN_MPI2BN,0), "BN_mpi2bn"},
|
||||||
{ERR_PACK(0,BN_F_BN_NEW,0), "BN_new"},
|
{ERR_PACK(0,BN_F_BN_NEW,0), "BN_new"},
|
||||||
{ERR_PACK(0,BN_F_BN_RAND,0), "BN_rand"},
|
{ERR_PACK(0,BN_F_BN_RAND,0), "BN_rand"},
|
||||||
|
{ERR_PACK(0,BN_F_BN_RAND_RANGE,0), "BN_rand_range"},
|
||||||
{ERR_PACK(0,BN_F_BN_USUB,0), "BN_usub"},
|
{ERR_PACK(0,BN_F_BN_USUB,0), "BN_usub"},
|
||||||
{0,NULL}
|
{0,NULL}
|
||||||
};
|
};
|
||||||
@@ -92,11 +93,13 @@ static ERR_STRING_DATA BN_str_reasons[]=
|
|||||||
{
|
{
|
||||||
{BN_R_ARG2_LT_ARG3 ,"arg2 lt arg3"},
|
{BN_R_ARG2_LT_ARG3 ,"arg2 lt arg3"},
|
||||||
{BN_R_BAD_RECIPROCAL ,"bad reciprocal"},
|
{BN_R_BAD_RECIPROCAL ,"bad reciprocal"},
|
||||||
|
{BN_R_BIGNUM_TOO_LONG ,"bignum too long"},
|
||||||
{BN_R_CALLED_WITH_EVEN_MODULUS ,"called with even modulus"},
|
{BN_R_CALLED_WITH_EVEN_MODULUS ,"called with even modulus"},
|
||||||
{BN_R_DIV_BY_ZERO ,"div by zero"},
|
{BN_R_DIV_BY_ZERO ,"div by zero"},
|
||||||
{BN_R_ENCODING_ERROR ,"encoding error"},
|
{BN_R_ENCODING_ERROR ,"encoding error"},
|
||||||
{BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ,"expand on static bignum data"},
|
{BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ,"expand on static bignum data"},
|
||||||
{BN_R_INVALID_LENGTH ,"invalid length"},
|
{BN_R_INVALID_LENGTH ,"invalid length"},
|
||||||
|
{BN_R_INVALID_RANGE ,"invalid range"},
|
||||||
{BN_R_NOT_INITIALIZED ,"not initialized"},
|
{BN_R_NOT_INITIALIZED ,"not initialized"},
|
||||||
{BN_R_NO_INVERSE ,"no inverse"},
|
{BN_R_NO_INVERSE ,"no inverse"},
|
||||||
{BN_R_TOO_MANY_TEMPORARY_VARIABLES ,"too many temporary variables"},
|
{BN_R_TOO_MANY_TEMPORARY_VARIABLES ,"too many temporary variables"},
|
||||||
|
@@ -62,6 +62,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <limits.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "cryptlib.h"
|
#include "cryptlib.h"
|
||||||
#include "bn_lcl.h"
|
#include "bn_lcl.h"
|
||||||
@@ -319,6 +320,12 @@ BIGNUM *bn_expand2(BIGNUM *b, int words)
|
|||||||
|
|
||||||
if (words > b->dmax)
|
if (words > b->dmax)
|
||||||
{
|
{
|
||||||
|
if (words > (INT_MAX/(4*BN_BITS2)))
|
||||||
|
{
|
||||||
|
BNerr(BN_F_BN_EXPAND2,BN_R_BIGNUM_TOO_LONG);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
bn_check_top(b);
|
bn_check_top(b);
|
||||||
if (BN_get_flags(b,BN_FLG_STATIC_DATA))
|
if (BN_get_flags(b,BN_FLG_STATIC_DATA))
|
||||||
{
|
{
|
||||||
|
@@ -76,7 +76,7 @@ static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
|
|||||||
|
|
||||||
bytes=(bits+7)/8;
|
bytes=(bits+7)/8;
|
||||||
bit=(bits-1)%8;
|
bit=(bits-1)%8;
|
||||||
mask=0xff<<bit;
|
mask=0xff<<(bit+1);
|
||||||
|
|
||||||
buf=(unsigned char *)OPENSSL_malloc(bytes);
|
buf=(unsigned char *)OPENSSL_malloc(bytes);
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
@@ -100,25 +100,48 @@ static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (top)
|
#if 1
|
||||||
|
if (pseudorand == 2)
|
||||||
{
|
{
|
||||||
if (bit == 0)
|
/* generate patterns that are more likely to trigger BN
|
||||||
|
library bugs */
|
||||||
|
int i;
|
||||||
|
unsigned char c;
|
||||||
|
|
||||||
|
for (i = 0; i < bytes; i++)
|
||||||
{
|
{
|
||||||
buf[0]=1;
|
RAND_pseudo_bytes(&c, 1);
|
||||||
buf[1]|=0x80;
|
if (c >= 128 && i > 0)
|
||||||
|
buf[i] = buf[i-1];
|
||||||
|
else if (c < 42)
|
||||||
|
buf[i] = 0;
|
||||||
|
else if (c < 84)
|
||||||
|
buf[i] = 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (top != -1)
|
||||||
|
{
|
||||||
|
if (top)
|
||||||
|
{
|
||||||
|
if (bit == 0)
|
||||||
|
{
|
||||||
|
buf[0]=1;
|
||||||
|
buf[1]|=0x80;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buf[0]|=(3<<(bit-1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
buf[0]|=(3<<(bit-1));
|
buf[0]|=(1<<bit);
|
||||||
buf[0]&= ~(mask<<1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
buf[0] &= ~mask;
|
||||||
{
|
if (bottom) /* set bottom bit if requested */
|
||||||
buf[0]|=(1<<bit);
|
|
||||||
buf[0]&= ~(mask<<1);
|
|
||||||
}
|
|
||||||
if (bottom) /* set bottom bits to whatever odd is */
|
|
||||||
buf[bytes-1]|=1;
|
buf[bytes-1]|=1;
|
||||||
if (!BN_bin2bn(buf,bytes,rnd)) goto err;
|
if (!BN_bin2bn(buf,bytes,rnd)) goto err;
|
||||||
ret=1;
|
ret=1;
|
||||||
@@ -140,3 +163,61 @@ int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom)
|
|||||||
{
|
{
|
||||||
return bnrand(1, rnd, bits, top, bottom);
|
return bnrand(1, rnd, bits, top, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom)
|
||||||
|
{
|
||||||
|
return bnrand(2, rnd, bits, top, bottom);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* random number r: 0 <= r < range */
|
||||||
|
int BN_rand_range(BIGNUM *r, BIGNUM *range)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
|
if (range->neg || BN_is_zero(range))
|
||||||
|
{
|
||||||
|
BNerr(BN_F_BN_RAND_RANGE, BN_R_INVALID_RANGE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
n = BN_num_bits(range); /* n > 0 */
|
||||||
|
|
||||||
|
if (n == 1)
|
||||||
|
{
|
||||||
|
if (!BN_zero(r)) return 0;
|
||||||
|
}
|
||||||
|
else if (BN_is_bit_set(range, n - 2))
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
/* range = 11..._2, so each iteration succeeds with probability >= .75 */
|
||||||
|
if (!BN_rand(r, n, -1, 0)) return 0;
|
||||||
|
}
|
||||||
|
while (BN_cmp(r, range) >= 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* range = 10..._2,
|
||||||
|
* so 3*range (= 11..._2) is exactly one bit longer than range */
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (!BN_rand(r, n + 1, -1, 0)) return 0;
|
||||||
|
/* If r < 3*range, use r := r MOD range
|
||||||
|
* (which is either r, r - range, or r - 2*range).
|
||||||
|
* Otherwise, iterate once more.
|
||||||
|
* Since 3*range = 11..._2, each iteration succeeds with
|
||||||
|
* probability >= .75. */
|
||||||
|
if (BN_cmp(r ,range) >= 0)
|
||||||
|
{
|
||||||
|
if (!BN_sub(r, r, range)) return 0;
|
||||||
|
if (BN_cmp(r, range) >= 0)
|
||||||
|
if (!BN_sub(r, r, range)) return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (BN_cmp(r, range) >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
@@ -172,6 +172,11 @@ int BN_rshift(BIGNUM *r, BIGNUM *a, int n)
|
|||||||
r->neg=a->neg;
|
r->neg=a->neg;
|
||||||
if (bn_wexpand(r,a->top-nw+1) == NULL) return(0);
|
if (bn_wexpand(r,a->top-nw+1) == NULL) return(0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (n == 0)
|
||||||
|
return 1; /* or the copying loop will go berserk */
|
||||||
|
}
|
||||||
|
|
||||||
f= &(a->d[nw]);
|
f= &(a->d[nw]);
|
||||||
t=r->d;
|
t=r->d;
|
||||||
|
@@ -107,11 +107,9 @@ static const char rnd_seed[] = "string to make the random number generator think
|
|||||||
static void message(BIO *out, char *m)
|
static void message(BIO *out, char *m)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "test %s\n", m);
|
fprintf(stderr, "test %s\n", m);
|
||||||
#if defined(linux) || defined(__FreeBSD__) /* can we use GNU bc features? */
|
|
||||||
BIO_puts(out, "print \"test ");
|
BIO_puts(out, "print \"test ");
|
||||||
BIO_puts(out, m);
|
BIO_puts(out, m);
|
||||||
BIO_puts(out, "\\n\"\n");
|
BIO_puts(out, "\\n\"\n");
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
@@ -122,9 +120,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
results = 0;
|
results = 0;
|
||||||
|
|
||||||
RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_rand may fail, and we don't
|
RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime may fail */
|
||||||
* even check its return value
|
|
||||||
* (which we should) */
|
|
||||||
|
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
@@ -253,10 +249,10 @@ int test_add(BIO *bp)
|
|||||||
BN_init(&b);
|
BN_init(&b);
|
||||||
BN_init(&c);
|
BN_init(&c);
|
||||||
|
|
||||||
BN_rand(&a,512,0,0);
|
BN_bntest_rand(&a,512,0,0);
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
BN_rand(&b,450+i,0,0);
|
BN_bntest_rand(&b,450+i,0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
b.neg=rand_neg();
|
b.neg=rand_neg();
|
||||||
if (bp == NULL)
|
if (bp == NULL)
|
||||||
@@ -305,14 +301,14 @@ int test_sub(BIO *bp)
|
|||||||
{
|
{
|
||||||
if (i < num1)
|
if (i < num1)
|
||||||
{
|
{
|
||||||
BN_rand(&a,512,0,0);
|
BN_bntest_rand(&a,512,0,0);
|
||||||
BN_copy(&b,&a);
|
BN_copy(&b,&a);
|
||||||
if (BN_set_bit(&a,i)==0) return(0);
|
if (BN_set_bit(&a,i)==0) return(0);
|
||||||
BN_add_word(&b,i);
|
BN_add_word(&b,i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BN_rand(&b,400+i-num1,0,0);
|
BN_bntest_rand(&b,400+i-num1,0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
b.neg=rand_neg();
|
b.neg=rand_neg();
|
||||||
}
|
}
|
||||||
@@ -362,13 +358,13 @@ int test_div(BIO *bp, BN_CTX *ctx)
|
|||||||
{
|
{
|
||||||
if (i < num1)
|
if (i < num1)
|
||||||
{
|
{
|
||||||
BN_rand(&a,400,0,0);
|
BN_bntest_rand(&a,400,0,0);
|
||||||
BN_copy(&b,&a);
|
BN_copy(&b,&a);
|
||||||
BN_lshift(&a,&a,i);
|
BN_lshift(&a,&a,i);
|
||||||
BN_add_word(&a,i);
|
BN_add_word(&a,i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
BN_rand(&b,50+3*(i-num1),0,0);
|
BN_bntest_rand(&b,50+3*(i-num1),0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
b.neg=rand_neg();
|
b.neg=rand_neg();
|
||||||
if (bp == NULL)
|
if (bp == NULL)
|
||||||
@@ -432,13 +428,13 @@ int test_div_recp(BIO *bp, BN_CTX *ctx)
|
|||||||
{
|
{
|
||||||
if (i < num1)
|
if (i < num1)
|
||||||
{
|
{
|
||||||
BN_rand(&a,400,0,0);
|
BN_bntest_rand(&a,400,0,0);
|
||||||
BN_copy(&b,&a);
|
BN_copy(&b,&a);
|
||||||
BN_lshift(&a,&a,i);
|
BN_lshift(&a,&a,i);
|
||||||
BN_add_word(&a,i);
|
BN_add_word(&a,i);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
BN_rand(&b,50+3*(i-num1),0,0);
|
BN_bntest_rand(&b,50+3*(i-num1),0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
b.neg=rand_neg();
|
b.neg=rand_neg();
|
||||||
BN_RECP_CTX_set(&recp,&b,ctx);
|
BN_RECP_CTX_set(&recp,&b,ctx);
|
||||||
@@ -509,11 +505,11 @@ int test_mul(BIO *bp)
|
|||||||
{
|
{
|
||||||
if (i <= num1)
|
if (i <= num1)
|
||||||
{
|
{
|
||||||
BN_rand(&a,100,0,0);
|
BN_bntest_rand(&a,100,0,0);
|
||||||
BN_rand(&b,100,0,0);
|
BN_bntest_rand(&b,100,0,0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
BN_rand(&b,i-num1,0,0);
|
BN_bntest_rand(&b,i-num1,0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
b.neg=rand_neg();
|
b.neg=rand_neg();
|
||||||
if (bp == NULL)
|
if (bp == NULL)
|
||||||
@@ -562,7 +558,7 @@ int test_sqr(BIO *bp, BN_CTX *ctx)
|
|||||||
|
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
BN_rand(&a,40+i*10,0,0);
|
BN_bntest_rand(&a,40+i*10,0,0);
|
||||||
a.neg=rand_neg();
|
a.neg=rand_neg();
|
||||||
if (bp == NULL)
|
if (bp == NULL)
|
||||||
for (j=0; j<100; j++)
|
for (j=0; j<100; j++)
|
||||||
@@ -613,15 +609,15 @@ int test_mont(BIO *bp, BN_CTX *ctx)
|
|||||||
|
|
||||||
mont=BN_MONT_CTX_new();
|
mont=BN_MONT_CTX_new();
|
||||||
|
|
||||||
BN_rand(&a,100,0,0); /**/
|
BN_bntest_rand(&a,100,0,0); /**/
|
||||||
BN_rand(&b,100,0,0); /**/
|
BN_bntest_rand(&b,100,0,0); /**/
|
||||||
for (i=0; i<num2; i++)
|
for (i=0; i<num2; i++)
|
||||||
{
|
{
|
||||||
int bits = (200*(i+1))/num2;
|
int bits = (200*(i+1))/num2;
|
||||||
|
|
||||||
if (bits == 0)
|
if (bits == 0)
|
||||||
continue;
|
continue;
|
||||||
BN_rand(&n,bits,0,1);
|
BN_bntest_rand(&n,bits,0,1);
|
||||||
BN_MONT_CTX_set(mont,&n,ctx);
|
BN_MONT_CTX_set(mont,&n,ctx);
|
||||||
|
|
||||||
BN_to_montgomery(&A,&a,mont,ctx);
|
BN_to_montgomery(&A,&a,mont,ctx);
|
||||||
@@ -683,10 +679,10 @@ int test_mod(BIO *bp, BN_CTX *ctx)
|
|||||||
d=BN_new();
|
d=BN_new();
|
||||||
e=BN_new();
|
e=BN_new();
|
||||||
|
|
||||||
BN_rand(a,1024,0,0); /**/
|
BN_bntest_rand(a,1024,0,0); /**/
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
BN_rand(b,450+i*10,0,0); /**/
|
BN_bntest_rand(b,450+i*10,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
b->neg=rand_neg();
|
b->neg=rand_neg();
|
||||||
if (bp == NULL)
|
if (bp == NULL)
|
||||||
@@ -732,11 +728,11 @@ int test_mod_mul(BIO *bp, BN_CTX *ctx)
|
|||||||
d=BN_new();
|
d=BN_new();
|
||||||
e=BN_new();
|
e=BN_new();
|
||||||
|
|
||||||
BN_rand(c,1024,0,0); /**/
|
BN_bntest_rand(c,1024,0,0); /**/
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
BN_rand(a,475+i*10,0,0); /**/
|
BN_bntest_rand(a,475+i*10,0,0); /**/
|
||||||
BN_rand(b,425+i*11,0,0); /**/
|
BN_bntest_rand(b,425+i*11,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
b->neg=rand_neg();
|
b->neg=rand_neg();
|
||||||
/* if (bp == NULL)
|
/* if (bp == NULL)
|
||||||
@@ -794,11 +790,11 @@ int test_mod_exp(BIO *bp, BN_CTX *ctx)
|
|||||||
d=BN_new();
|
d=BN_new();
|
||||||
e=BN_new();
|
e=BN_new();
|
||||||
|
|
||||||
BN_rand(c,30,0,1); /* must be odd for montgomery */
|
BN_bntest_rand(c,30,0,1); /* must be odd for montgomery */
|
||||||
for (i=0; i<num2; i++)
|
for (i=0; i<num2; i++)
|
||||||
{
|
{
|
||||||
BN_rand(a,20+i*5,0,0); /**/
|
BN_bntest_rand(a,20+i*5,0,0); /**/
|
||||||
BN_rand(b,2+i,0,0); /**/
|
BN_bntest_rand(b,2+i,0,0); /**/
|
||||||
|
|
||||||
if (!BN_mod_exp(d,a,b,c,ctx))
|
if (!BN_mod_exp(d,a,b,c,ctx))
|
||||||
return(00);
|
return(00);
|
||||||
@@ -848,8 +844,8 @@ int test_exp(BIO *bp, BN_CTX *ctx)
|
|||||||
|
|
||||||
for (i=0; i<num2; i++)
|
for (i=0; i<num2; i++)
|
||||||
{
|
{
|
||||||
BN_rand(a,20+i*5,0,0); /**/
|
BN_bntest_rand(a,20+i*5,0,0); /**/
|
||||||
BN_rand(b,2+i,0,0); /**/
|
BN_bntest_rand(b,2+i,0,0); /**/
|
||||||
|
|
||||||
if (!BN_exp(d,a,b,ctx))
|
if (!BN_exp(d,a,b,ctx))
|
||||||
return(00);
|
return(00);
|
||||||
@@ -899,7 +895,7 @@ int test_lshift(BIO *bp,BN_CTX *ctx,BIGNUM *a_)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
a=BN_new();
|
a=BN_new();
|
||||||
BN_rand(a,200,0,0); /**/
|
BN_bntest_rand(a,200,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
}
|
}
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
@@ -951,7 +947,7 @@ int test_lshift1(BIO *bp)
|
|||||||
b=BN_new();
|
b=BN_new();
|
||||||
c=BN_new();
|
c=BN_new();
|
||||||
|
|
||||||
BN_rand(a,200,0,0); /**/
|
BN_bntest_rand(a,200,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
@@ -995,7 +991,7 @@ int test_rshift(BIO *bp,BN_CTX *ctx)
|
|||||||
e=BN_new();
|
e=BN_new();
|
||||||
BN_one(c);
|
BN_one(c);
|
||||||
|
|
||||||
BN_rand(a,200,0,0); /**/
|
BN_bntest_rand(a,200,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
@@ -1038,7 +1034,7 @@ int test_rshift1(BIO *bp)
|
|||||||
b=BN_new();
|
b=BN_new();
|
||||||
c=BN_new();
|
c=BN_new();
|
||||||
|
|
||||||
BN_rand(a,200,0,0); /**/
|
BN_bntest_rand(a,200,0,0); /**/
|
||||||
a->neg=rand_neg();
|
a->neg=rand_neg();
|
||||||
for (i=0; i<num0; i++)
|
for (i=0; i<num0; i++)
|
||||||
{
|
{
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -47,7 +47,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
# elf
|
# elf
|
||||||
|
@@ -42,7 +42,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -40,7 +40,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -167,6 +167,8 @@ int NCONF_dump_bio(CONF *conf, BIO *out);
|
|||||||
#define CONF_R_MISSING_EQUAL_SIGN 101
|
#define CONF_R_MISSING_EQUAL_SIGN 101
|
||||||
#define CONF_R_NO_CLOSE_BRACE 102
|
#define CONF_R_NO_CLOSE_BRACE 102
|
||||||
#define CONF_R_NO_CONF 105
|
#define CONF_R_NO_CONF 105
|
||||||
|
#define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106
|
||||||
|
#define CONF_R_NO_SECTION 107
|
||||||
#define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
|
#define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
|
||||||
#define CONF_R_VARIABLE_HAS_NO_VALUE 104
|
#define CONF_R_VARIABLE_HAS_NO_VALUE 104
|
||||||
|
|
||||||
|
@@ -87,6 +87,8 @@ static ERR_STRING_DATA CONF_str_reasons[]=
|
|||||||
{CONF_R_MISSING_EQUAL_SIGN ,"missing equal sign"},
|
{CONF_R_MISSING_EQUAL_SIGN ,"missing equal sign"},
|
||||||
{CONF_R_NO_CLOSE_BRACE ,"no close brace"},
|
{CONF_R_NO_CLOSE_BRACE ,"no close brace"},
|
||||||
{CONF_R_NO_CONF ,"no conf"},
|
{CONF_R_NO_CONF ,"no conf"},
|
||||||
|
{CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ,"no conf or environment variable"},
|
||||||
|
{CONF_R_NO_SECTION ,"no section"},
|
||||||
{CONF_R_UNABLE_TO_CREATE_NEW_SECTION ,"unable to create new section"},
|
{CONF_R_UNABLE_TO_CREATE_NEW_SECTION ,"unable to create new section"},
|
||||||
{CONF_R_VARIABLE_HAS_NO_VALUE ,"variable has no value"},
|
{CONF_R_VARIABLE_HAS_NO_VALUE ,"variable has no value"},
|
||||||
{0,NULL}
|
{0,NULL}
|
||||||
|
@@ -131,38 +131,59 @@ LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline)
|
|||||||
|
|
||||||
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section)
|
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section)
|
||||||
{
|
{
|
||||||
CONF ctmp;
|
if (conf == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CONF ctmp;
|
||||||
|
|
||||||
if (default_CONF_method == NULL)
|
if (default_CONF_method == NULL)
|
||||||
default_CONF_method = NCONF_default();
|
default_CONF_method = NCONF_default();
|
||||||
|
|
||||||
default_CONF_method->init(&ctmp);
|
default_CONF_method->init(&ctmp);
|
||||||
ctmp.data = conf;
|
ctmp.data = conf;
|
||||||
return NCONF_get_section(&ctmp, section);
|
return NCONF_get_section(&ctmp, section);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char *CONF_get_string(LHASH *conf,char *group,char *name)
|
char *CONF_get_string(LHASH *conf,char *group,char *name)
|
||||||
{
|
{
|
||||||
CONF ctmp;
|
if (conf == NULL)
|
||||||
|
{
|
||||||
|
return NCONF_get_string(NULL, group, name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CONF ctmp;
|
||||||
|
|
||||||
if (default_CONF_method == NULL)
|
if (default_CONF_method == NULL)
|
||||||
default_CONF_method = NCONF_default();
|
default_CONF_method = NCONF_default();
|
||||||
|
|
||||||
default_CONF_method->init(&ctmp);
|
default_CONF_method->init(&ctmp);
|
||||||
ctmp.data = conf;
|
ctmp.data = conf;
|
||||||
return NCONF_get_string(&ctmp, group, name);
|
return NCONF_get_string(&ctmp, group, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
long CONF_get_number(LHASH *conf,char *group,char *name)
|
long CONF_get_number(LHASH *conf,char *group,char *name)
|
||||||
{
|
{
|
||||||
CONF ctmp;
|
if (conf == NULL)
|
||||||
|
{
|
||||||
|
return NCONF_get_number(NULL, group, name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CONF ctmp;
|
||||||
|
|
||||||
if (default_CONF_method == NULL)
|
if (default_CONF_method == NULL)
|
||||||
default_CONF_method = NCONF_default();
|
default_CONF_method = NCONF_default();
|
||||||
|
|
||||||
default_CONF_method->init(&ctmp);
|
default_CONF_method->init(&ctmp);
|
||||||
ctmp.data = conf;
|
ctmp.data = conf;
|
||||||
return NCONF_get_number(&ctmp, group, name);
|
return NCONF_get_number(&ctmp, group, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CONF_free(LHASH *conf)
|
void CONF_free(LHASH *conf)
|
||||||
@@ -299,27 +320,46 @@ STACK_OF(CONF_VALUE) *NCONF_get_section(CONF *conf,char *section)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (section == NULL)
|
||||||
|
{
|
||||||
|
CONFerr(CONF_F_NCONF_GET_SECTION,CONF_R_NO_SECTION);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return _CONF_get_section_values(conf, section);
|
return _CONF_get_section_values(conf, section);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *NCONF_get_string(CONF *conf,char *group,char *name)
|
char *NCONF_get_string(CONF *conf,char *group,char *name)
|
||||||
{
|
{
|
||||||
|
char *s = _CONF_get_string(conf, group, name);
|
||||||
|
|
||||||
|
/* Since we may get a value from an environment variable even
|
||||||
|
if conf is NULL, let's check the value first */
|
||||||
|
if (s) return s;
|
||||||
|
|
||||||
if (conf == NULL)
|
if (conf == NULL)
|
||||||
{
|
{
|
||||||
CONFerr(CONF_F_NCONF_GET_STRING,CONF_R_NO_CONF);
|
CONFerr(CONF_F_NCONF_GET_STRING,
|
||||||
|
CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
return NULL;
|
||||||
return _CONF_get_string(conf, group, name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long NCONF_get_number(CONF *conf,char *group,char *name)
|
long NCONF_get_number(CONF *conf,char *group,char *name)
|
||||||
{
|
{
|
||||||
|
#if 0 /* As with _CONF_get_string(), we rely on the possibility of finding
|
||||||
|
an environment variable with a suitable name. Unfortunately, there's
|
||||||
|
no way with the current API to see if we found one or not...
|
||||||
|
The meaning of this is that if a number is not found anywhere, it
|
||||||
|
will always default to 0. */
|
||||||
if (conf == NULL)
|
if (conf == NULL)
|
||||||
{
|
{
|
||||||
CONFerr(CONF_F_NCONF_GET_NUMBER,CONF_R_NO_CONF);
|
CONFerr(CONF_F_NCONF_GET_NUMBER,
|
||||||
|
CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return _CONF_get_number(conf, group, name);
|
return _CONF_get_number(conf, group, name);
|
||||||
}
|
}
|
||||||
|
@@ -174,7 +174,7 @@ $!
|
|||||||
$ APPS_DES = "DES/DES,CBC3_ENC"
|
$ APPS_DES = "DES/DES,CBC3_ENC"
|
||||||
$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE"
|
$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE"
|
||||||
$
|
$
|
||||||
$ LIB_ = "cryptlib,mem,mem_dbg,cversion,ex_data,tmdiff,cpt_err"
|
$ LIB_ = "cryptlib,mem,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid"
|
||||||
$ LIB_MD2 = "md2_dgst,md2_one"
|
$ LIB_MD2 = "md2_dgst,md2_one"
|
||||||
$ LIB_MD4 = "md4_dgst,md4_one"
|
$ LIB_MD4 = "md4_dgst,md4_one"
|
||||||
$ LIB_MD5 = "md5_dgst,md5_one"
|
$ LIB_MD5 = "md5_dgst,md5_one"
|
||||||
|
@@ -278,6 +278,8 @@ int CRYPTO_is_mem_check_on(void);
|
|||||||
const char *SSLeay_version(int type);
|
const char *SSLeay_version(int type);
|
||||||
unsigned long SSLeay(void);
|
unsigned long SSLeay(void);
|
||||||
|
|
||||||
|
int OPENSSL_issetugid(void);
|
||||||
|
|
||||||
int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long argl, void *argp,
|
int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long argl, void *argp,
|
||||||
CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
|
CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
|
||||||
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
|
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
|
||||||
|
@@ -57,7 +57,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
des: des.o cbc3_enc.o lib
|
des: des.o cbc3_enc.o lib
|
||||||
|
@@ -20,11 +20,11 @@ $L="edi";
|
|||||||
$R="esi";
|
$R="esi";
|
||||||
|
|
||||||
&external_label("des_SPtrans");
|
&external_label("des_SPtrans");
|
||||||
&des_encrypt("des_encrypt",1);
|
&des_encrypt("des_encrypt1",1);
|
||||||
&des_encrypt("des_encrypt2",0);
|
&des_encrypt("des_encrypt2",0);
|
||||||
&des_encrypt3("des_encrypt3",1);
|
&des_encrypt3("des_encrypt3",1);
|
||||||
&des_encrypt3("des_decrypt3",0);
|
&des_encrypt3("des_decrypt3",0);
|
||||||
&cbc("des_ncbc_encrypt","des_encrypt","des_encrypt",0,4,5,3,5,-1);
|
&cbc("des_ncbc_encrypt","des_encrypt1","des_encrypt1",0,4,5,3,5,-1);
|
||||||
&cbc("des_ede3_cbc_encrypt","des_encrypt3","des_decrypt3",0,6,7,3,4,5);
|
&cbc("des_ede3_cbc_encrypt","des_encrypt3","des_decrypt3",0,6,7,3,4,5);
|
||||||
|
|
||||||
&asm_finish();
|
&asm_finish();
|
||||||
|
@@ -46,7 +46,7 @@ EOF
|
|||||||
$L="edi";
|
$L="edi";
|
||||||
$R="esi";
|
$R="esi";
|
||||||
|
|
||||||
&des_encrypt("des_encrypt",1);
|
&des_encrypt("des_encrypt1",1);
|
||||||
&des_encrypt("des_encrypt2",0);
|
&des_encrypt("des_encrypt2",0);
|
||||||
|
|
||||||
&des_encrypt3("des_encrypt3",1);
|
&des_encrypt3("des_encrypt3",1);
|
||||||
|
@@ -8,7 +8,7 @@ assembler for the inner DES routines in libdes :-).
|
|||||||
|
|
||||||
The file to implement in assembler is des_enc.c. Replace the following
|
The file to implement in assembler is des_enc.c. Replace the following
|
||||||
4 functions
|
4 functions
|
||||||
des_encrypt(DES_LONG data[2],des_key_schedule ks, int encrypt);
|
des_encrypt1(DES_LONG data[2],des_key_schedule ks, int encrypt);
|
||||||
des_encrypt2(DES_LONG data[2],des_key_schedule ks, int encrypt);
|
des_encrypt2(DES_LONG data[2],des_key_schedule ks, int encrypt);
|
||||||
des_encrypt3(DES_LONG data[2],des_key_schedule ks1,ks2,ks3);
|
des_encrypt3(DES_LONG data[2],des_key_schedule ks1,ks2,ks3);
|
||||||
des_decrypt3(DES_LONG data[2],des_key_schedule ks1,ks2,ks3);
|
des_decrypt3(DES_LONG data[2],des_key_schedule ks1,ks2,ks3);
|
||||||
|
@@ -82,7 +82,7 @@ DES_LONG des_cbc_cksum(const unsigned char *in, des_cblock *output,
|
|||||||
|
|
||||||
tin0^=tout0; tin[0]=tin0;
|
tin0^=tout0; tin[0]=tin0;
|
||||||
tin1^=tout1; tin[1]=tin1;
|
tin1^=tout1; tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
||||||
/* fix 15/10/91 eay - thanks to keithr@sco.COM */
|
/* fix 15/10/91 eay - thanks to keithr@sco.COM */
|
||||||
tout0=tin[0];
|
tout0=tin[0];
|
||||||
tout1=tin[1];
|
tout1=tin[1];
|
||||||
|
@@ -82,7 +82,7 @@ void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
c2l(iv,v0); ti[0]=v0;
|
c2l(iv,v0); ti[0]=v0;
|
||||||
c2l(iv,v1); ti[1]=v1;
|
c2l(iv,v1); ti[1]=v1;
|
||||||
des_encrypt(ti,schedule,DES_ENCRYPT);
|
des_encrypt1(ti,schedule,DES_ENCRYPT);
|
||||||
iv = &(*ivec)[0];
|
iv = &(*ivec)[0];
|
||||||
v0=ti[0]; l2c(v0,iv);
|
v0=ti[0]; l2c(v0,iv);
|
||||||
v0=ti[1]; l2c(v0,iv);
|
v0=ti[1]; l2c(v0,iv);
|
||||||
@@ -102,7 +102,7 @@ void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
c2l(iv,v0); ti[0]=v0;
|
c2l(iv,v0); ti[0]=v0;
|
||||||
c2l(iv,v1); ti[1]=v1;
|
c2l(iv,v1); ti[1]=v1;
|
||||||
des_encrypt(ti,schedule,DES_ENCRYPT);
|
des_encrypt1(ti,schedule,DES_ENCRYPT);
|
||||||
iv = &(*ivec)[0];
|
iv = &(*ivec)[0];
|
||||||
v0=ti[0]; l2c(v0,iv);
|
v0=ti[0]; l2c(v0,iv);
|
||||||
v0=ti[1]; l2c(v0,iv);
|
v0=ti[1]; l2c(v0,iv);
|
||||||
|
@@ -100,7 +100,7 @@ void des_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
|
|||||||
l-=n;
|
l-=n;
|
||||||
ti[0]=v0;
|
ti[0]=v0;
|
||||||
ti[1]=v1;
|
ti[1]=v1;
|
||||||
des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
||||||
c2ln(in,d0,d1,n);
|
c2ln(in,d0,d1,n);
|
||||||
in+=n;
|
in+=n;
|
||||||
d0=(d0^ti[0])&mask0;
|
d0=(d0^ti[0])&mask0;
|
||||||
@@ -132,7 +132,7 @@ void des_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
|
|||||||
l-=n;
|
l-=n;
|
||||||
ti[0]=v0;
|
ti[0]=v0;
|
||||||
ti[1]=v1;
|
ti[1]=v1;
|
||||||
des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
||||||
c2ln(in,d0,d1,n);
|
c2ln(in,d0,d1,n);
|
||||||
in+=n;
|
in+=n;
|
||||||
/* 30-08-94 - eay - changed because l>>32 and
|
/* 30-08-94 - eay - changed because l>>32 and
|
||||||
|
@@ -147,14 +147,14 @@ void des_ecb_encrypt(const_des_cblock *input,des_cblock *output,
|
|||||||
Data is a pointer to 2 unsigned long's and ks is the
|
Data is a pointer to 2 unsigned long's and ks is the
|
||||||
des_key_schedule to use. enc, is non zero specifies encryption,
|
des_key_schedule to use. enc, is non zero specifies encryption,
|
||||||
zero if decryption. */
|
zero if decryption. */
|
||||||
void des_encrypt(DES_LONG *data,des_key_schedule ks, int enc);
|
void des_encrypt1(DES_LONG *data,des_key_schedule ks, int enc);
|
||||||
|
|
||||||
/* This functions is the same as des_encrypt() except that the DES
|
/* This functions is the same as des_encrypt1() except that the DES
|
||||||
initial permutation (IP) and final permutation (FP) have been left
|
initial permutation (IP) and final permutation (FP) have been left
|
||||||
out. As for des_encrypt(), you should not use this function.
|
out. As for des_encrypt1(), you should not use this function.
|
||||||
It is used by the routines in the library that implement triple DES.
|
It is used by the routines in the library that implement triple DES.
|
||||||
IP() des_encrypt2() des_encrypt2() des_encrypt2() FP() is the same
|
IP() des_encrypt2() des_encrypt2() des_encrypt2() FP() is the same
|
||||||
as des_encrypt() des_encrypt() des_encrypt() except faster :-). */
|
as des_encrypt1() des_encrypt1() des_encrypt1() except faster :-). */
|
||||||
void des_encrypt2(DES_LONG *data,des_key_schedule ks, int enc);
|
void des_encrypt2(DES_LONG *data,des_key_schedule ks, int enc);
|
||||||
|
|
||||||
void des_encrypt3(DES_LONG *data, des_key_schedule ks1,
|
void des_encrypt3(DES_LONG *data, des_key_schedule ks1,
|
||||||
|
@@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
#include "des_locl.h"
|
#include "des_locl.h"
|
||||||
|
|
||||||
void des_encrypt(DES_LONG *data, des_key_schedule ks, int enc)
|
void des_encrypt1(DES_LONG *data, des_key_schedule ks, int enc)
|
||||||
{
|
{
|
||||||
register DES_LONG l,r,t,u;
|
register DES_LONG l,r,t,u;
|
||||||
#ifdef DES_PTR
|
#ifdef DES_PTR
|
||||||
|
@@ -118,7 +118,7 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#define des_encrypt des_encrypt_u4_cisc_idx
|
#define des_encrypt1 des_encrypt_u4_cisc_idx
|
||||||
#define des_encrypt2 des_encrypt2_u4_cisc_idx
|
#define des_encrypt2 des_encrypt2_u4_cisc_idx
|
||||||
#define des_encrypt3 des_encrypt3_u4_cisc_idx
|
#define des_encrypt3 des_encrypt3_u4_cisc_idx
|
||||||
#define des_decrypt3 des_decrypt3_u4_cisc_idx
|
#define des_decrypt3 des_decrypt3_u4_cisc_idx
|
||||||
@@ -130,11 +130,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_cisc_idx
|
#define des_encrypt1 des_encrypt_u16_cisc_idx
|
||||||
#define des_encrypt2 des_encrypt2_u16_cisc_idx
|
#define des_encrypt2 des_encrypt2_u16_cisc_idx
|
||||||
#define des_encrypt3 des_encrypt3_u16_cisc_idx
|
#define des_encrypt3 des_encrypt3_u16_cisc_idx
|
||||||
#define des_decrypt3 des_decrypt3_u16_cisc_idx
|
#define des_decrypt3 des_decrypt3_u16_cisc_idx
|
||||||
@@ -146,11 +146,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u4_risc1_idx
|
#define des_encrypt1 des_encrypt_u4_risc1_idx
|
||||||
#define des_encrypt2 des_encrypt2_u4_risc1_idx
|
#define des_encrypt2 des_encrypt2_u4_risc1_idx
|
||||||
#define des_encrypt3 des_encrypt3_u4_risc1_idx
|
#define des_encrypt3 des_encrypt3_u4_risc1_idx
|
||||||
#define des_decrypt3 des_decrypt3_u4_risc1_idx
|
#define des_decrypt3 des_decrypt3_u4_risc1_idx
|
||||||
@@ -166,11 +166,11 @@ extern void exit();
|
|||||||
#define DES_RISC2
|
#define DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u4_risc2_idx
|
#define des_encrypt1 des_encrypt_u4_risc2_idx
|
||||||
#define des_encrypt2 des_encrypt2_u4_risc2_idx
|
#define des_encrypt2 des_encrypt2_u4_risc2_idx
|
||||||
#define des_encrypt3 des_encrypt3_u4_risc2_idx
|
#define des_encrypt3 des_encrypt3_u4_risc2_idx
|
||||||
#define des_decrypt3 des_decrypt3_u4_risc2_idx
|
#define des_decrypt3 des_decrypt3_u4_risc2_idx
|
||||||
@@ -182,11 +182,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_risc1_idx
|
#define des_encrypt1 des_encrypt_u16_risc1_idx
|
||||||
#define des_encrypt2 des_encrypt2_u16_risc1_idx
|
#define des_encrypt2 des_encrypt2_u16_risc1_idx
|
||||||
#define des_encrypt3 des_encrypt3_u16_risc1_idx
|
#define des_encrypt3 des_encrypt3_u16_risc1_idx
|
||||||
#define des_decrypt3 des_decrypt3_u16_risc1_idx
|
#define des_decrypt3 des_decrypt3_u16_risc1_idx
|
||||||
@@ -198,11 +198,11 @@ extern void exit();
|
|||||||
#define DES_RISC2
|
#define DES_RISC2
|
||||||
#undef DES_PTR
|
#undef DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_risc2_idx
|
#define des_encrypt1 des_encrypt_u16_risc2_idx
|
||||||
#define des_encrypt2 des_encrypt2_u16_risc2_idx
|
#define des_encrypt2 des_encrypt2_u16_risc2_idx
|
||||||
#define des_encrypt3 des_encrypt3_u16_risc2_idx
|
#define des_encrypt3 des_encrypt3_u16_risc2_idx
|
||||||
#define des_decrypt3 des_decrypt3_u16_risc2_idx
|
#define des_decrypt3 des_decrypt3_u16_risc2_idx
|
||||||
@@ -218,11 +218,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u4_cisc_ptr
|
#define des_encrypt1 des_encrypt_u4_cisc_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u4_cisc_ptr
|
#define des_encrypt2 des_encrypt2_u4_cisc_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u4_cisc_ptr
|
#define des_encrypt3 des_encrypt3_u4_cisc_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u4_cisc_ptr
|
#define des_decrypt3 des_decrypt3_u4_cisc_ptr
|
||||||
@@ -234,11 +234,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_cisc_ptr
|
#define des_encrypt1 des_encrypt_u16_cisc_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u16_cisc_ptr
|
#define des_encrypt2 des_encrypt2_u16_cisc_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u16_cisc_ptr
|
#define des_encrypt3 des_encrypt3_u16_cisc_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u16_cisc_ptr
|
#define des_decrypt3 des_decrypt3_u16_cisc_ptr
|
||||||
@@ -250,11 +250,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u4_risc1_ptr
|
#define des_encrypt1 des_encrypt_u4_risc1_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u4_risc1_ptr
|
#define des_encrypt2 des_encrypt2_u4_risc1_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u4_risc1_ptr
|
#define des_encrypt3 des_encrypt3_u4_risc1_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u4_risc1_ptr
|
#define des_decrypt3 des_decrypt3_u4_risc1_ptr
|
||||||
@@ -270,11 +270,11 @@ extern void exit();
|
|||||||
#define DES_RISC2
|
#define DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u4_risc2_ptr
|
#define des_encrypt1 des_encrypt_u4_risc2_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u4_risc2_ptr
|
#define des_encrypt2 des_encrypt2_u4_risc2_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u4_risc2_ptr
|
#define des_encrypt3 des_encrypt3_u4_risc2_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u4_risc2_ptr
|
#define des_decrypt3 des_decrypt3_u4_risc2_ptr
|
||||||
@@ -286,11 +286,11 @@ extern void exit();
|
|||||||
#undef DES_RISC2
|
#undef DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_risc1_ptr
|
#define des_encrypt1 des_encrypt_u16_risc1_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u16_risc1_ptr
|
#define des_encrypt2 des_encrypt2_u16_risc1_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u16_risc1_ptr
|
#define des_encrypt3 des_encrypt3_u16_risc1_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u16_risc1_ptr
|
#define des_decrypt3 des_decrypt3_u16_risc1_ptr
|
||||||
@@ -302,11 +302,11 @@ extern void exit();
|
|||||||
#define DES_RISC2
|
#define DES_RISC2
|
||||||
#define DES_PTR
|
#define DES_PTR
|
||||||
#undef D_ENCRYPT
|
#undef D_ENCRYPT
|
||||||
#undef des_encrypt
|
#undef des_encrypt1
|
||||||
#undef des_encrypt2
|
#undef des_encrypt2
|
||||||
#undef des_encrypt3
|
#undef des_encrypt3
|
||||||
#undef des_decrypt3
|
#undef des_decrypt3
|
||||||
#define des_encrypt des_encrypt_u16_risc2_ptr
|
#define des_encrypt1 des_encrypt_u16_risc2_ptr
|
||||||
#define des_encrypt2 des_encrypt2_u16_risc2_ptr
|
#define des_encrypt2 des_encrypt2_u16_risc2_ptr
|
||||||
#define des_encrypt3 des_encrypt3_u16_risc2_ptr
|
#define des_encrypt3 des_encrypt3_u16_risc2_ptr
|
||||||
#define des_decrypt3 des_decrypt3_u16_risc2_ptr
|
#define des_decrypt3 des_decrypt3_u16_risc2_ptr
|
||||||
@@ -453,7 +453,7 @@ int main(int argc, char **argv)
|
|||||||
count*=2;
|
count*=2;
|
||||||
Time_F(START);
|
Time_F(START);
|
||||||
for (i=count; i; i--)
|
for (i=count; i; i--)
|
||||||
des_encrypt(data,&(sch[0]),DES_ENCRYPT);
|
des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
} while (d < 3.0);
|
} while (d < 3.0);
|
||||||
ca=count;
|
ca=count;
|
||||||
|
@@ -45,19 +45,19 @@ void main(int argc,char *argv[])
|
|||||||
{
|
{
|
||||||
for (i=0; i<1000; i++) /**/
|
for (i=0; i<1000; i++) /**/
|
||||||
{
|
{
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
GetTSC(s1);
|
GetTSC(s1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
GetTSC(e1);
|
GetTSC(e1);
|
||||||
GetTSC(s2);
|
GetTSC(s2);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
GetTSC(e2);
|
GetTSC(e2);
|
||||||
des_encrypt(&data[0],key,1);
|
des_encrypt1(&data[0],key,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("des %d %d (%d)\n",
|
printf("des %d %d (%d)\n",
|
||||||
|
@@ -114,7 +114,7 @@ void des_ecb_encrypt(const_des_cblock *input, des_cblock *output,
|
|||||||
|
|
||||||
c2l(in,l); ll[0]=l;
|
c2l(in,l); ll[0]=l;
|
||||||
c2l(in,l); ll[1]=l;
|
c2l(in,l); ll[1]=l;
|
||||||
des_encrypt(ll,ks,enc);
|
des_encrypt1(ll,ks,enc);
|
||||||
l=ll[0]; l2c(l,out);
|
l=ll[0]; l2c(l,out);
|
||||||
l=ll[1]; l2c(l,out);
|
l=ll[1]; l2c(l,out);
|
||||||
l=ll[0]=ll[1]=0;
|
l=ll[0]=ll[1]=0;
|
||||||
|
@@ -95,7 +95,7 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
tin[0]=m0;
|
tin[0]=m0;
|
||||||
tin[1]=m1;
|
tin[1]=m1;
|
||||||
des_encrypt(tin,ks3,1);
|
des_encrypt1(tin,ks3,1);
|
||||||
m0=tin[0];
|
m0=tin[0];
|
||||||
m1=tin[1];
|
m1=tin[1];
|
||||||
|
|
||||||
@@ -113,13 +113,13 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
|
|
||||||
tin[0]=tin0;
|
tin[0]=tin0;
|
||||||
tin[1]=tin1;
|
tin[1]=tin1;
|
||||||
des_encrypt(tin,ks1,1);
|
des_encrypt1(tin,ks1,1);
|
||||||
tin[0]^=m0;
|
tin[0]^=m0;
|
||||||
tin[1]^=m1;
|
tin[1]^=m1;
|
||||||
des_encrypt(tin,ks2,0);
|
des_encrypt1(tin,ks2,0);
|
||||||
tin[0]^=m0;
|
tin[0]^=m0;
|
||||||
tin[1]^=m1;
|
tin[1]^=m1;
|
||||||
des_encrypt(tin,ks1,1);
|
des_encrypt1(tin,ks1,1);
|
||||||
tout0=tin[0];
|
tout0=tin[0];
|
||||||
tout1=tin[1];
|
tout1=tin[1];
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
tin[0]=m0;
|
tin[0]=m0;
|
||||||
tin[1]=m1;
|
tin[1]=m1;
|
||||||
des_encrypt(tin,ks3,1);
|
des_encrypt1(tin,ks3,1);
|
||||||
m0=tin[0];
|
m0=tin[0];
|
||||||
m1=tin[1];
|
m1=tin[1];
|
||||||
|
|
||||||
@@ -158,13 +158,13 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
|
|
||||||
tin[0]=tin0;
|
tin[0]=tin0;
|
||||||
tin[1]=tin1;
|
tin[1]=tin1;
|
||||||
des_encrypt(tin,ks1,0);
|
des_encrypt1(tin,ks1,0);
|
||||||
tin[0]^=m0;
|
tin[0]^=m0;
|
||||||
tin[1]^=m1;
|
tin[1]^=m1;
|
||||||
des_encrypt(tin,ks2,1);
|
des_encrypt1(tin,ks2,1);
|
||||||
tin[0]^=m0;
|
tin[0]^=m0;
|
||||||
tin[1]^=m1;
|
tin[1]^=m1;
|
||||||
des_encrypt(tin,ks1,0);
|
des_encrypt1(tin,ks1,0);
|
||||||
tout0=tin[0];
|
tout0=tin[0];
|
||||||
tout1=tin[1];
|
tout1=tin[1];
|
||||||
|
|
||||||
|
@@ -89,7 +89,7 @@ void des_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
|
|||||||
c2l(in,tin1);
|
c2l(in,tin1);
|
||||||
tin0^=tout0; tin[0]=tin0;
|
tin0^=tout0; tin[0]=tin0;
|
||||||
tin1^=tout1; tin[1]=tin1;
|
tin1^=tout1; tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0]; l2c(tout0,out);
|
tout0=tin[0]; l2c(tout0,out);
|
||||||
tout1=tin[1]; l2c(tout1,out);
|
tout1=tin[1]; l2c(tout1,out);
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,7 @@ void des_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
|
|||||||
c2ln(in,tin0,tin1,l+8);
|
c2ln(in,tin0,tin1,l+8);
|
||||||
tin0^=tout0; tin[0]=tin0;
|
tin0^=tout0; tin[0]=tin0;
|
||||||
tin1^=tout1; tin[1]=tin1;
|
tin1^=tout1; tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0]; l2c(tout0,out);
|
tout0=tin[0]; l2c(tout0,out);
|
||||||
tout1=tin[1]; l2c(tout1,out);
|
tout1=tin[1]; l2c(tout1,out);
|
||||||
}
|
}
|
||||||
@@ -116,7 +116,7 @@ void des_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
|
|||||||
{
|
{
|
||||||
c2l(in,tin0); tin[0]=tin0;
|
c2l(in,tin0); tin[0]=tin0;
|
||||||
c2l(in,tin1); tin[1]=tin1;
|
c2l(in,tin1); tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
|
||||||
tout0=tin[0]^xor0;
|
tout0=tin[0]^xor0;
|
||||||
tout1=tin[1]^xor1;
|
tout1=tin[1]^xor1;
|
||||||
l2c(tout0,out);
|
l2c(tout0,out);
|
||||||
@@ -128,7 +128,7 @@ void des_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
|
|||||||
{
|
{
|
||||||
c2l(in,tin0); tin[0]=tin0;
|
c2l(in,tin0); tin[0]=tin0;
|
||||||
c2l(in,tin1); tin[1]=tin1;
|
c2l(in,tin1); tin[1]=tin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
|
||||||
tout0=tin[0]^xor0;
|
tout0=tin[0]^xor0;
|
||||||
tout1=tin[1]^xor1;
|
tout1=tin[1]^xor1;
|
||||||
l2cn(tout0,tout1,out,l+8);
|
l2cn(tout0,tout1,out,l+8);
|
||||||
|
@@ -87,7 +87,7 @@ void des_ofb64_encrypt(register const unsigned char *in,
|
|||||||
{
|
{
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
{
|
{
|
||||||
des_encrypt(ti,schedule,DES_ENCRYPT);
|
des_encrypt1(ti,schedule,DES_ENCRYPT);
|
||||||
dp=d;
|
dp=d;
|
||||||
t=ti[0]; l2c(t,dp);
|
t=ti[0]; l2c(t,dp);
|
||||||
t=ti[1]; l2c(t,dp);
|
t=ti[1]; l2c(t,dp);
|
||||||
|
@@ -101,7 +101,7 @@ void des_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
|
|||||||
{
|
{
|
||||||
ti[0]=v0;
|
ti[0]=v0;
|
||||||
ti[1]=v1;
|
ti[1]=v1;
|
||||||
des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
|
||||||
vv0=ti[0];
|
vv0=ti[0];
|
||||||
vv1=ti[1];
|
vv1=ti[1];
|
||||||
c2ln(in,d0,d1,n);
|
c2ln(in,d0,d1,n);
|
||||||
|
@@ -85,7 +85,7 @@ void des_pcbc_encrypt(const unsigned char *input, unsigned char *output,
|
|||||||
c2ln(in,sin0,sin1,length);
|
c2ln(in,sin0,sin1,length);
|
||||||
tin[0]=sin0^xor0;
|
tin[0]=sin0^xor0;
|
||||||
tin[1]=sin1^xor1;
|
tin[1]=sin1^xor1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0];
|
tout0=tin[0];
|
||||||
tout1=tin[1];
|
tout1=tin[1];
|
||||||
xor0=sin0^tout0;
|
xor0=sin0^tout0;
|
||||||
@@ -103,7 +103,7 @@ void des_pcbc_encrypt(const unsigned char *input, unsigned char *output,
|
|||||||
c2l(in,sin1);
|
c2l(in,sin1);
|
||||||
tin[0]=sin0;
|
tin[0]=sin0;
|
||||||
tin[1]=sin1;
|
tin[1]=sin1;
|
||||||
des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
|
des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
|
||||||
tout0=tin[0]^xor0;
|
tout0=tin[0]^xor0;
|
||||||
tout1=tin[1]^xor1;
|
tout1=tin[1]^xor1;
|
||||||
if (length >= 8)
|
if (length >= 8)
|
||||||
|
@@ -204,7 +204,7 @@ int main(int argc, char **argv)
|
|||||||
count*=2;
|
count*=2;
|
||||||
Time_F(START);
|
Time_F(START);
|
||||||
for (i=count; i; i--)
|
for (i=count; i; i--)
|
||||||
des_encrypt(data,&(sch[0]),DES_ENCRYPT);
|
des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
} while (d < 3.0);
|
} while (d < 3.0);
|
||||||
ca=count;
|
ca=count;
|
||||||
@@ -241,7 +241,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
DES_LONG data[2];
|
DES_LONG data[2];
|
||||||
|
|
||||||
des_encrypt(data,&(sch[0]),DES_ENCRYPT);
|
des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
|
||||||
}
|
}
|
||||||
d=Time_F(STOP);
|
d=Time_F(STOP);
|
||||||
printf("%ld des_encrypt's in %.2f second\n",count,d);
|
printf("%ld des_encrypt's in %.2f second\n",count,d);
|
||||||
|
@@ -138,7 +138,7 @@ void des_xcbc_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
c2l(in,tin1);
|
c2l(in,tin1);
|
||||||
tin0^=tout0^inW0; tin[0]=tin0;
|
tin0^=tout0^inW0; tin[0]=tin0;
|
||||||
tin1^=tout1^inW1; tin[1]=tin1;
|
tin1^=tout1^inW1; tin[1]=tin1;
|
||||||
des_encrypt(tin,schedule,DES_ENCRYPT);
|
des_encrypt1(tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0]^outW0; l2c(tout0,out);
|
tout0=tin[0]^outW0; l2c(tout0,out);
|
||||||
tout1=tin[1]^outW1; l2c(tout1,out);
|
tout1=tin[1]^outW1; l2c(tout1,out);
|
||||||
}
|
}
|
||||||
@@ -147,7 +147,7 @@ void des_xcbc_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
c2ln(in,tin0,tin1,l+8);
|
c2ln(in,tin0,tin1,l+8);
|
||||||
tin0^=tout0^inW0; tin[0]=tin0;
|
tin0^=tout0^inW0; tin[0]=tin0;
|
||||||
tin1^=tout1^inW1; tin[1]=tin1;
|
tin1^=tout1^inW1; tin[1]=tin1;
|
||||||
des_encrypt(tin,schedule,DES_ENCRYPT);
|
des_encrypt1(tin,schedule,DES_ENCRYPT);
|
||||||
tout0=tin[0]^outW0; l2c(tout0,out);
|
tout0=tin[0]^outW0; l2c(tout0,out);
|
||||||
tout1=tin[1]^outW1; l2c(tout1,out);
|
tout1=tin[1]^outW1; l2c(tout1,out);
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ void des_xcbc_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
c2l(in,tin0); tin[0]=tin0^outW0;
|
c2l(in,tin0); tin[0]=tin0^outW0;
|
||||||
c2l(in,tin1); tin[1]=tin1^outW1;
|
c2l(in,tin1); tin[1]=tin1^outW1;
|
||||||
des_encrypt(tin,schedule,DES_DECRYPT);
|
des_encrypt1(tin,schedule,DES_DECRYPT);
|
||||||
tout0=tin[0]^xor0^inW0;
|
tout0=tin[0]^xor0^inW0;
|
||||||
tout1=tin[1]^xor1^inW1;
|
tout1=tin[1]^xor1^inW1;
|
||||||
l2c(tout0,out);
|
l2c(tout0,out);
|
||||||
@@ -175,7 +175,7 @@ void des_xcbc_encrypt(const unsigned char *in, unsigned char *out,
|
|||||||
{
|
{
|
||||||
c2l(in,tin0); tin[0]=tin0^outW0;
|
c2l(in,tin0); tin[0]=tin0^outW0;
|
||||||
c2l(in,tin1); tin[1]=tin1^outW1;
|
c2l(in,tin1); tin[1]=tin1^outW1;
|
||||||
des_encrypt(tin,schedule,DES_DECRYPT);
|
des_encrypt1(tin,schedule,DES_DECRYPT);
|
||||||
tout0=tin[0]^xor0^inW0;
|
tout0=tin[0]^xor0^inW0;
|
||||||
tout1=tin[1]^xor1^inW1;
|
tout1=tin[1]^xor1^inW1;
|
||||||
l2cn(tout0,tout1,out,l+8);
|
l2cn(tout0,tout1,out,l+8);
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -100,7 +100,6 @@ DH_METHOD *DH_OpenSSL(void)
|
|||||||
static int generate_key(DH *dh)
|
static int generate_key(DH *dh)
|
||||||
{
|
{
|
||||||
int ok=0;
|
int ok=0;
|
||||||
unsigned int i;
|
|
||||||
BN_CTX ctx;
|
BN_CTX ctx;
|
||||||
BN_MONT_CTX *mont;
|
BN_MONT_CTX *mont;
|
||||||
BIGNUM *pub_key=NULL,*priv_key=NULL;
|
BIGNUM *pub_key=NULL,*priv_key=NULL;
|
||||||
@@ -109,15 +108,11 @@ static int generate_key(DH *dh)
|
|||||||
|
|
||||||
if (dh->priv_key == NULL)
|
if (dh->priv_key == NULL)
|
||||||
{
|
{
|
||||||
i=dh->length;
|
|
||||||
if (i == 0)
|
|
||||||
{
|
|
||||||
/* Make the number p-1 bits long */
|
|
||||||
i=BN_num_bits(dh->p)-1;
|
|
||||||
}
|
|
||||||
priv_key=BN_new();
|
priv_key=BN_new();
|
||||||
if (priv_key == NULL) goto err;
|
if (priv_key == NULL) goto err;
|
||||||
if (!BN_rand(priv_key,i,0,0)) goto err;
|
do
|
||||||
|
if (!BN_rand_range(priv_key, dh->p)) goto err;
|
||||||
|
while (BN_is_zero(priv_key));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
priv_key=dh->priv_key;
|
priv_key=dh->priv_key;
|
||||||
|
@@ -168,13 +168,13 @@ DH *DH_new_method(ENGINE *engine)
|
|||||||
ret->method_mont_p=NULL;
|
ret->method_mont_p=NULL;
|
||||||
ret->references = 1;
|
ret->references = 1;
|
||||||
ret->flags=meth->flags;
|
ret->flags=meth->flags;
|
||||||
|
CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data);
|
||||||
if ((meth->init != NULL) && !meth->init(ret))
|
if ((meth->init != NULL) && !meth->init(ret))
|
||||||
{
|
{
|
||||||
|
CRYPTO_free_ex_data(dh_meth,ret,&ret->ex_data);
|
||||||
OPENSSL_free(ret);
|
OPENSSL_free(ret);
|
||||||
ret=NULL;
|
ret=NULL;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
CRYPTO_new_ex_data(dh_meth,ret,&ret->ex_data);
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,12 +196,12 @@ void DH_free(DH *r)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CRYPTO_free_ex_data(dh_meth, r, &r->ex_data);
|
|
||||||
|
|
||||||
meth = ENGINE_get_DH(r->engine);
|
meth = ENGINE_get_DH(r->engine);
|
||||||
if(meth->finish) meth->finish(r);
|
if(meth->finish) meth->finish(r);
|
||||||
ENGINE_finish(r->engine);
|
ENGINE_finish(r->engine);
|
||||||
|
|
||||||
|
CRYPTO_free_ex_data(dh_meth, r, &r->ex_data);
|
||||||
|
|
||||||
if (r->p != NULL) BN_clear_free(r->p);
|
if (r->p != NULL) BN_clear_free(r->p);
|
||||||
if (r->g != NULL) BN_clear_free(r->g);
|
if (r->g != NULL) BN_clear_free(r->g);
|
||||||
if (r->q != NULL) BN_clear_free(r->q);
|
if (r->q != NULL) BN_clear_free(r->q);
|
||||||
|
@@ -41,7 +41,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -68,7 +68,6 @@
|
|||||||
int DSA_generate_key(DSA *dsa)
|
int DSA_generate_key(DSA *dsa)
|
||||||
{
|
{
|
||||||
int ok=0;
|
int ok=0;
|
||||||
unsigned int i;
|
|
||||||
BN_CTX *ctx=NULL;
|
BN_CTX *ctx=NULL;
|
||||||
BIGNUM *pub_key=NULL,*priv_key=NULL;
|
BIGNUM *pub_key=NULL,*priv_key=NULL;
|
||||||
|
|
||||||
@@ -81,15 +80,9 @@ int DSA_generate_key(DSA *dsa)
|
|||||||
else
|
else
|
||||||
priv_key=dsa->priv_key;
|
priv_key=dsa->priv_key;
|
||||||
|
|
||||||
i=BN_num_bits(dsa->q);
|
do
|
||||||
for (;;)
|
if (!BN_rand_range(priv_key,dsa->q)) goto err;
|
||||||
{
|
while (BN_is_zero(priv_key));
|
||||||
if (!BN_rand(priv_key,i,0,0))
|
|
||||||
goto err;
|
|
||||||
if (BN_cmp(priv_key,dsa->q) >= 0)
|
|
||||||
BN_sub(priv_key,priv_key,dsa->q);
|
|
||||||
if (!BN_is_zero(priv_key)) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dsa->pub_key == NULL)
|
if (dsa->pub_key == NULL)
|
||||||
{
|
{
|
||||||
|
@@ -173,13 +173,13 @@ DSA *DSA_new_method(ENGINE *engine)
|
|||||||
|
|
||||||
ret->references=1;
|
ret->references=1;
|
||||||
ret->flags=meth->flags;
|
ret->flags=meth->flags;
|
||||||
|
CRYPTO_new_ex_data(dsa_meth,ret,&ret->ex_data);
|
||||||
if ((meth->init != NULL) && !meth->init(ret))
|
if ((meth->init != NULL) && !meth->init(ret))
|
||||||
{
|
{
|
||||||
|
CRYPTO_free_ex_data(dsa_meth,ret,&ret->ex_data);
|
||||||
OPENSSL_free(ret);
|
OPENSSL_free(ret);
|
||||||
ret=NULL;
|
ret=NULL;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
CRYPTO_new_ex_data(dsa_meth,ret,&ret->ex_data);
|
|
||||||
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
@@ -204,12 +204,12 @@ void DSA_free(DSA *r)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CRYPTO_free_ex_data(dsa_meth, r, &r->ex_data);
|
|
||||||
|
|
||||||
meth = ENGINE_get_DSA(r->engine);
|
meth = ENGINE_get_DSA(r->engine);
|
||||||
if(meth->finish) meth->finish(r);
|
if(meth->finish) meth->finish(r);
|
||||||
ENGINE_finish(r->engine);
|
ENGINE_finish(r->engine);
|
||||||
|
|
||||||
|
CRYPTO_free_ex_data(dsa_meth, r, &r->ex_data);
|
||||||
|
|
||||||
if (r->p != NULL) BN_clear_free(r->p);
|
if (r->p != NULL) BN_clear_free(r->p);
|
||||||
if (r->q != NULL) BN_clear_free(r->q);
|
if (r->q != NULL) BN_clear_free(r->q);
|
||||||
if (r->g != NULL) BN_clear_free(r->g);
|
if (r->g != NULL) BN_clear_free(r->g);
|
||||||
|
@@ -180,13 +180,9 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
|
|||||||
kinv=NULL;
|
kinv=NULL;
|
||||||
|
|
||||||
/* Get random k */
|
/* Get random k */
|
||||||
for (;;)
|
do
|
||||||
{
|
if (!BN_rand_range(&k, dsa->q)) goto err;
|
||||||
if (!BN_rand(&k, BN_num_bits(dsa->q), 0, 0)) goto err;
|
while (BN_is_zero(&k));
|
||||||
if (BN_cmp(&k,dsa->q) >= 0)
|
|
||||||
BN_sub(&k,&k,dsa->q);
|
|
||||||
if (!BN_is_zero(&k)) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((dsa->method_mont_p == NULL) && (dsa->flags & DSA_FLAG_CACHE_MONT_P))
|
if ((dsa->method_mont_p == NULL) && (dsa->flags & DSA_FLAG_CACHE_MONT_P))
|
||||||
{
|
{
|
||||||
|
@@ -41,7 +41,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -82,7 +82,7 @@ static int dl_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr);
|
|||||||
static int dl_init(DSO *dso);
|
static int dl_init(DSO *dso);
|
||||||
static int dl_finish(DSO *dso);
|
static int dl_finish(DSO *dso);
|
||||||
#endif
|
#endif
|
||||||
static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg);
|
static long dl_ctrl(DSO *dso, int cmd, long larg, void *parg);
|
||||||
|
|
||||||
static DSO_METHOD dso_meth_dl = {
|
static DSO_METHOD dso_meth_dl = {
|
||||||
"OpenSSL 'dl' shared library method",
|
"OpenSSL 'dl' shared library method",
|
||||||
@@ -111,6 +111,11 @@ DSO_METHOD *DSO_METHOD_dl(void)
|
|||||||
* type so the cast is safe.
|
* type so the cast is safe.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(__hpux)
|
||||||
|
static const char extension[] = ".sl";
|
||||||
|
#else
|
||||||
|
static const char extension[] = ".so";
|
||||||
|
#endif
|
||||||
static int dl_load(DSO *dso, const char *filename)
|
static int dl_load(DSO *dso, const char *filename)
|
||||||
{
|
{
|
||||||
shl_t ptr;
|
shl_t ptr;
|
||||||
@@ -118,12 +123,12 @@ static int dl_load(DSO *dso, const char *filename)
|
|||||||
int len;
|
int len;
|
||||||
|
|
||||||
/* The same comment as in dlfcn_load applies here. bleurgh. */
|
/* The same comment as in dlfcn_load applies here. bleurgh. */
|
||||||
len = strlen(filename);
|
len = strlen(filename) + strlen(extension);
|
||||||
if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
|
if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
|
||||||
(len + 6 < DSO_MAX_TRANSLATED_SIZE) &&
|
(len + 3 < DSO_MAX_TRANSLATED_SIZE) &&
|
||||||
(strstr(filename, "/") == NULL))
|
(strstr(filename, "/") == NULL))
|
||||||
{
|
{
|
||||||
sprintf(translated, "lib%s.so", filename);
|
sprintf(translated, "lib%s%s", filename, extension);
|
||||||
ptr = shl_load(translated, BIND_IMMEDIATE, NULL);
|
ptr = shl_load(translated, BIND_IMMEDIATE, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -187,7 +192,7 @@ static void *dl_bind_var(DSO *dso, const char *symname)
|
|||||||
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_NULL_HANDLE);
|
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_NULL_HANDLE);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
if (shl_findsym(ptr, symname, TYPE_UNDEFINED, &sym) < 0)
|
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0)
|
||||||
{
|
{
|
||||||
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_SYM_FAILURE);
|
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_SYM_FAILURE);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@@ -216,7 +221,7 @@ static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
|
|||||||
DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_NULL_HANDLE);
|
DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_NULL_HANDLE);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
if (shl_findsym(ptr, symname, TYPE_UNDEFINED, &sym) < 0)
|
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0)
|
||||||
{
|
{
|
||||||
DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_SYM_FAILURE);
|
DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_SYM_FAILURE);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@@ -224,7 +229,7 @@ static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
|
|||||||
return((DSO_FUNC_TYPE)sym);
|
return((DSO_FUNC_TYPE)sym);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg)
|
static long dl_ctrl(DSO *dso, int cmd, long larg, void *parg)
|
||||||
{
|
{
|
||||||
if(dso == NULL)
|
if(dso == NULL)
|
||||||
{
|
{
|
||||||
@@ -236,10 +241,10 @@ static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg)
|
|||||||
case DSO_CTRL_GET_FLAGS:
|
case DSO_CTRL_GET_FLAGS:
|
||||||
return dso->flags;
|
return dso->flags;
|
||||||
case DSO_CTRL_SET_FLAGS:
|
case DSO_CTRL_SET_FLAGS:
|
||||||
dso->flags = (int)larg;
|
dso->flags = larg;
|
||||||
return(0);
|
return(0);
|
||||||
case DSO_CTRL_OR_FLAGS:
|
case DSO_CTRL_OR_FLAGS:
|
||||||
dso->flags |= (int)larg;
|
dso->flags |= larg;
|
||||||
return(0);
|
return(0);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@@ -62,7 +62,6 @@
|
|||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
#pragma message disable DOLLARID
|
#pragma message disable DOLLARID
|
||||||
#include <lib$routines.h>
|
#include <lib$routines.h>
|
||||||
#include <libfisdef.h>
|
|
||||||
#include <stsdef.h>
|
#include <stsdef.h>
|
||||||
#include <descrip.h>
|
#include <descrip.h>
|
||||||
#include <starlet.h>
|
#include <starlet.h>
|
||||||
@@ -260,7 +259,8 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym)
|
|||||||
{
|
{
|
||||||
DSO_VMS_INTERNAL *ptr;
|
DSO_VMS_INTERNAL *ptr;
|
||||||
int status;
|
int status;
|
||||||
int flags = LIB$M_FIS_MIXEDCASE;
|
int flags = (1<<4); /* LIB$M_FIS_MIXEDCASE, but this symbol isn't
|
||||||
|
defined in VMS older than 7.0 or so */
|
||||||
struct dsc$descriptor_s symname_dsc;
|
struct dsc$descriptor_s symname_dsc;
|
||||||
*sym = NULL;
|
*sym = NULL;
|
||||||
|
|
||||||
|
@@ -211,7 +211,7 @@ ascii2ebcdic(void *dest, const void *srce, size_t count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else /*CHARSET_EBCDIC*/
|
#else /*CHARSET_EBCDIC*/
|
||||||
#ifdef PEDANTIC
|
#if defined(PEDANTIC) || defined(VMS) || defined(__VMS)
|
||||||
static void *dummy=&dummy;
|
static void *dummy=&dummy;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -230,17 +230,18 @@ EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id,
|
|||||||
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
||||||
if(e->funct_ref == 0)
|
if(e->funct_ref == 0)
|
||||||
{
|
{
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
ENGINEerr(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY,
|
ENGINEerr(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY,
|
||||||
ENGINE_R_NOT_INITIALISED);
|
ENGINE_R_NOT_INITIALISED);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
if (!e->load_privkey)
|
if (!e->load_privkey)
|
||||||
{
|
{
|
||||||
ENGINEerr(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY,
|
ENGINEerr(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY,
|
||||||
ENGINE_R_NO_LOAD_FUNCTION);
|
ENGINE_R_NO_LOAD_FUNCTION);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
|
||||||
pkey = e->load_privkey(key_id, passphrase);
|
pkey = e->load_privkey(key_id, passphrase);
|
||||||
if (!pkey)
|
if (!pkey)
|
||||||
{
|
{
|
||||||
@@ -265,17 +266,18 @@ EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
|
|||||||
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
||||||
if(e->funct_ref == 0)
|
if(e->funct_ref == 0)
|
||||||
{
|
{
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
ENGINEerr(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY,
|
ENGINEerr(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY,
|
||||||
ENGINE_R_NOT_INITIALISED);
|
ENGINE_R_NOT_INITIALISED);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
if (!e->load_pubkey)
|
if (!e->load_pubkey)
|
||||||
{
|
{
|
||||||
ENGINEerr(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY,
|
ENGINEerr(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY,
|
||||||
ENGINE_R_NO_LOAD_FUNCTION);
|
ENGINE_R_NO_LOAD_FUNCTION);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
|
||||||
pkey = e->load_pubkey(key_id, passphrase);
|
pkey = e->load_pubkey(key_id, passphrase);
|
||||||
if (!pkey)
|
if (!pkey)
|
||||||
{
|
{
|
||||||
@@ -286,8 +288,6 @@ EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id,
|
|||||||
return pkey;
|
return pkey;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise a engine type for use (or up its functional reference count
|
|
||||||
* if it's already in use). */
|
|
||||||
int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)())
|
int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)())
|
||||||
{
|
{
|
||||||
if(e == NULL)
|
if(e == NULL)
|
||||||
@@ -298,15 +298,16 @@ int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)())
|
|||||||
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
||||||
if(e->struct_ref == 0)
|
if(e->struct_ref == 0)
|
||||||
{
|
{
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
ENGINEerr(ENGINE_F_ENGINE_CTRL,ENGINE_R_NO_REFERENCE);
|
ENGINEerr(ENGINE_F_ENGINE_CTRL,ENGINE_R_NO_REFERENCE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
if (!e->ctrl)
|
if (!e->ctrl)
|
||||||
{
|
{
|
||||||
ENGINEerr(ENGINE_F_ENGINE_CTRL,ENGINE_R_NO_CONTROL_FUNCTION);
|
ENGINEerr(ENGINE_F_ENGINE_CTRL,ENGINE_R_NO_CONTROL_FUNCTION);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
|
||||||
return e->ctrl(cmd, i, p, f);
|
return e->ctrl(cmd, i, p, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -389,20 +389,18 @@ void ERR_put_error(int lib, int func, int reason, const char *file,
|
|||||||
|
|
||||||
void ERR_clear_error(void)
|
void ERR_clear_error(void)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
ERR_STATE *es;
|
ERR_STATE *es;
|
||||||
|
|
||||||
es=ERR_get_state();
|
es=ERR_get_state();
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* hmm... is this needed */
|
|
||||||
for (i=0; i<ERR_NUM_ERRORS; i++)
|
for (i=0; i<ERR_NUM_ERRORS; i++)
|
||||||
{
|
{
|
||||||
es->err_buffer[i]=0;
|
es->err_buffer[i]=0;
|
||||||
|
err_clear_data(es,i);
|
||||||
es->err_file[i]=NULL;
|
es->err_file[i]=NULL;
|
||||||
es->err_line[i]= -1;
|
es->err_line[i]= -1;
|
||||||
err_clear_data(es,i);
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
es->top=es->bottom=0;
|
es->top=es->bottom=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,7 +462,14 @@ static unsigned long get_error_values(int inc, const char **file, int *line,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data != NULL)
|
if (data == NULL)
|
||||||
|
{
|
||||||
|
if (inc)
|
||||||
|
{
|
||||||
|
err_clear_data(es, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (es->err_data[i] == NULL)
|
if (es->err_data[i] == NULL)
|
||||||
{
|
{
|
||||||
@@ -749,8 +754,9 @@ void ERR_set_error_data(char *data, int flags)
|
|||||||
if (i == 0)
|
if (i == 0)
|
||||||
i=ERR_NUM_ERRORS-1;
|
i=ERR_NUM_ERRORS-1;
|
||||||
|
|
||||||
|
err_clear_data(es,i);
|
||||||
es->err_data[i]=data;
|
es->err_data[i]=data;
|
||||||
es->err_data_flags[es->top]=flags;
|
es->err_data_flags[i]=flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ERR_add_error_data(int num, ...)
|
void ERR_add_error_data(int num, ...)
|
||||||
@@ -759,7 +765,7 @@ void ERR_add_error_data(int num, ...)
|
|||||||
int i,n,s;
|
int i,n,s;
|
||||||
char *str,*p,*a;
|
char *str,*p,*a;
|
||||||
|
|
||||||
s=64;
|
s=80;
|
||||||
str=OPENSSL_malloc(s+1);
|
str=OPENSSL_malloc(s+1);
|
||||||
if (str == NULL) return;
|
if (str == NULL) return;
|
||||||
str[0]='\0';
|
str[0]='\0';
|
||||||
|
@@ -58,7 +58,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -463,12 +463,20 @@ typedef int (EVP_PBE_KEYGEN)(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
|
|||||||
ASN1_TYPE *param, EVP_CIPHER *cipher,
|
ASN1_TYPE *param, EVP_CIPHER *cipher,
|
||||||
EVP_MD *md, int en_de);
|
EVP_MD *md, int en_de);
|
||||||
|
|
||||||
|
#ifndef NO_RSA
|
||||||
#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
|
#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
|
||||||
(char *)(rsa))
|
(char *)(rsa))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DSA
|
||||||
#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
|
#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
|
||||||
(char *)(dsa))
|
(char *)(dsa))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DH
|
||||||
#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\
|
#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\
|
||||||
(char *)(dh))
|
(char *)(dh))
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Add some extra combinations */
|
/* Add some extra combinations */
|
||||||
#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
|
#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
|
||||||
@@ -612,17 +620,29 @@ void BIO_set_cipher(BIO *b,const EVP_CIPHER *c,unsigned char *k,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
EVP_MD *EVP_md_null(void);
|
EVP_MD *EVP_md_null(void);
|
||||||
|
#ifndef NO_MD2
|
||||||
EVP_MD *EVP_md2(void);
|
EVP_MD *EVP_md2(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD4
|
||||||
EVP_MD *EVP_md4(void);
|
EVP_MD *EVP_md4(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD5
|
||||||
EVP_MD *EVP_md5(void);
|
EVP_MD *EVP_md5(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA
|
||||||
EVP_MD *EVP_sha(void);
|
EVP_MD *EVP_sha(void);
|
||||||
EVP_MD *EVP_sha1(void);
|
EVP_MD *EVP_sha1(void);
|
||||||
EVP_MD *EVP_dss(void);
|
EVP_MD *EVP_dss(void);
|
||||||
EVP_MD *EVP_dss1(void);
|
EVP_MD *EVP_dss1(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MDC2
|
||||||
EVP_MD *EVP_mdc2(void);
|
EVP_MD *EVP_mdc2(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RIPEMD
|
||||||
EVP_MD *EVP_ripemd160(void);
|
EVP_MD *EVP_ripemd160(void);
|
||||||
|
#endif
|
||||||
EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
|
EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
|
||||||
|
#ifndef NO_DES
|
||||||
EVP_CIPHER *EVP_des_ecb(void);
|
EVP_CIPHER *EVP_des_ecb(void);
|
||||||
EVP_CIPHER *EVP_des_ede(void);
|
EVP_CIPHER *EVP_des_ede(void);
|
||||||
EVP_CIPHER *EVP_des_ede3(void);
|
EVP_CIPHER *EVP_des_ede3(void);
|
||||||
@@ -636,31 +656,43 @@ EVP_CIPHER *EVP_des_cbc(void);
|
|||||||
EVP_CIPHER *EVP_des_ede_cbc(void);
|
EVP_CIPHER *EVP_des_ede_cbc(void);
|
||||||
EVP_CIPHER *EVP_des_ede3_cbc(void);
|
EVP_CIPHER *EVP_des_ede3_cbc(void);
|
||||||
EVP_CIPHER *EVP_desx_cbc(void);
|
EVP_CIPHER *EVP_desx_cbc(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC4
|
||||||
EVP_CIPHER *EVP_rc4(void);
|
EVP_CIPHER *EVP_rc4(void);
|
||||||
EVP_CIPHER *EVP_rc4_40(void);
|
EVP_CIPHER *EVP_rc4_40(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_IDEA
|
||||||
EVP_CIPHER *EVP_idea_ecb(void);
|
EVP_CIPHER *EVP_idea_ecb(void);
|
||||||
EVP_CIPHER *EVP_idea_cfb(void);
|
EVP_CIPHER *EVP_idea_cfb(void);
|
||||||
EVP_CIPHER *EVP_idea_ofb(void);
|
EVP_CIPHER *EVP_idea_ofb(void);
|
||||||
EVP_CIPHER *EVP_idea_cbc(void);
|
EVP_CIPHER *EVP_idea_cbc(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC2
|
||||||
EVP_CIPHER *EVP_rc2_ecb(void);
|
EVP_CIPHER *EVP_rc2_ecb(void);
|
||||||
EVP_CIPHER *EVP_rc2_cbc(void);
|
EVP_CIPHER *EVP_rc2_cbc(void);
|
||||||
EVP_CIPHER *EVP_rc2_40_cbc(void);
|
EVP_CIPHER *EVP_rc2_40_cbc(void);
|
||||||
EVP_CIPHER *EVP_rc2_64_cbc(void);
|
EVP_CIPHER *EVP_rc2_64_cbc(void);
|
||||||
EVP_CIPHER *EVP_rc2_cfb(void);
|
EVP_CIPHER *EVP_rc2_cfb(void);
|
||||||
EVP_CIPHER *EVP_rc2_ofb(void);
|
EVP_CIPHER *EVP_rc2_ofb(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_BF
|
||||||
EVP_CIPHER *EVP_bf_ecb(void);
|
EVP_CIPHER *EVP_bf_ecb(void);
|
||||||
EVP_CIPHER *EVP_bf_cbc(void);
|
EVP_CIPHER *EVP_bf_cbc(void);
|
||||||
EVP_CIPHER *EVP_bf_cfb(void);
|
EVP_CIPHER *EVP_bf_cfb(void);
|
||||||
EVP_CIPHER *EVP_bf_ofb(void);
|
EVP_CIPHER *EVP_bf_ofb(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_CAST
|
||||||
EVP_CIPHER *EVP_cast5_ecb(void);
|
EVP_CIPHER *EVP_cast5_ecb(void);
|
||||||
EVP_CIPHER *EVP_cast5_cbc(void);
|
EVP_CIPHER *EVP_cast5_cbc(void);
|
||||||
EVP_CIPHER *EVP_cast5_cfb(void);
|
EVP_CIPHER *EVP_cast5_cfb(void);
|
||||||
EVP_CIPHER *EVP_cast5_ofb(void);
|
EVP_CIPHER *EVP_cast5_ofb(void);
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC5
|
||||||
EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
|
EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
|
||||||
EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
|
EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
|
||||||
EVP_CIPHER *EVP_rc5_32_12_16_cfb(void);
|
EVP_CIPHER *EVP_rc5_32_12_16_cfb(void);
|
||||||
EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
|
EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
|
||||||
|
#endif
|
||||||
void OpenSSL_add_all_algorithms(void);
|
void OpenSSL_add_all_algorithms(void);
|
||||||
void OpenSSL_add_all_ciphers(void);
|
void OpenSSL_add_all_ciphers(void);
|
||||||
void OpenSSL_add_all_digests(void);
|
void OpenSSL_add_all_digests(void);
|
||||||
|
@@ -101,7 +101,7 @@ int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long
|
|||||||
ret=idx;
|
ret=idx;
|
||||||
err:
|
err:
|
||||||
MemCheck_on();
|
MemCheck_on();
|
||||||
return(idx);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
|
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -40,7 +40,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -50,7 +50,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
# elf
|
# elf
|
||||||
|
@@ -39,7 +39,8 @@ all: lib
|
|||||||
|
|
||||||
lib: $(LIBOBJ)
|
lib: $(LIBOBJ)
|
||||||
$(AR) $(LIB) $(LIBOBJ)
|
$(AR) $(LIB) $(LIBOBJ)
|
||||||
$(RANLIB) $(LIB)
|
@echo You may get an error following this line. Please ignore.
|
||||||
|
- $(RANLIB) $(LIB)
|
||||||
@touch lib
|
@touch lib
|
||||||
|
|
||||||
files:
|
files:
|
||||||
|
@@ -136,11 +136,11 @@ static void mdc2_body(MDC2_CTX *c, const unsigned char *in, unsigned int len)
|
|||||||
|
|
||||||
des_set_odd_parity(&c->h);
|
des_set_odd_parity(&c->h);
|
||||||
des_set_key_unchecked(&c->h,k);
|
des_set_key_unchecked(&c->h,k);
|
||||||
des_encrypt(d,k,1);
|
des_encrypt1(d,k,1);
|
||||||
|
|
||||||
des_set_odd_parity(&c->hh);
|
des_set_odd_parity(&c->hh);
|
||||||
des_set_key_unchecked(&c->hh,k);
|
des_set_key_unchecked(&c->hh,k);
|
||||||
des_encrypt(dd,k,1);
|
des_encrypt1(dd,k,1);
|
||||||
|
|
||||||
ttin0=tin0^dd[0];
|
ttin0=tin0^dd[0];
|
||||||
ttin1=tin1^dd[1];
|
ttin1=tin1^dd[1];
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user