Compare commits
	
		
			985 Commits
		
	
	
		
			OpenSSL_0_
			...
			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 | ||
| 
						 | 
					47dc5a1321 | ||
| 
						 | 
					16221173c8 | ||
| 
						 | 
					0e8f2fdfdd | ||
| 
						 | 
					fec8c79a7e | ||
| 
						 | 
					56245be46d | ||
| 
						 | 
					3476515195 | ||
| 
						 | 
					eb206eb8be | ||
| 
						 | 
					fda05b2155 | ||
| 
						 | 
					8c4ab6d5ae | ||
| 
						 | 
					8fdec3e558 | ||
| 
						 | 
					e1db7a5e30 | ||
| 
						 | 
					69431c2998 | ||
| 
						 | 
					90d7fc1de4 | ||
| 
						 | 
					bb28bcdf98 | ||
| 
						 | 
					d49da3aa5b | ||
| 
						 | 
					fc55bf3b20 | ||
| 
						 | 
					03dbae0d20 | ||
| 
						 | 
					5a5accdd64 | ||
| 
						 | 
					f1192b7f2e | ||
| 
						 | 
					dbba890cf1 | ||
| 
						 | 
					3f8b90c345 | ||
| 
						 | 
					28a63d3e6f | ||
| 
						 | 
					318e09356b | ||
| 
						 | 
					4839df4061 | ||
| 
						 | 
					6b3a4ffe36 | ||
| 
						 | 
					9cfb6bbd29 | ||
| 
						 | 
					7f6e0a4c09 | ||
| 
						 | 
					6cffb201f3 | ||
| 
						 | 
					4b0f00b7ce | ||
| 
						 | 
					4aa4f333ed | ||
| 
						 | 
					a04cfb72d5 | ||
| 
						 | 
					1cbb729fdc | ||
| 
						 | 
					d176986488 | ||
| 
						 | 
					c759ddd676 | ||
| 
						 | 
					9cfab47b18 | ||
| 
						 | 
					6e3dfc1f3b | ||
| 
						 | 
					ef63568e94 | ||
| 
						 | 
					27f00db152 | ||
| 
						 | 
					a9c33b529e | ||
| 
						 | 
					5deb47f12a | ||
| 
						 | 
					775c289db5 | ||
| 
						 | 
					099f5bfeba | ||
| 
						 | 
					103a604932 | ||
| 
						 | 
					12f49bd79d | ||
| 
						 | 
					4b250a3d25 | ||
| 
						 | 
					c200ff0446 | ||
| 
						 | 
					a7ce1f0514 | ||
| 
						 | 
					4cae3ac371 | ||
| 
						 | 
					63ccddf717 | ||
| 
						 | 
					ce6990739e | ||
| 
						 | 
					42cc160301 | ||
| 
						 | 
					0e61cfff53 | ||
| 
						 | 
					f77600524f | ||
| 
						 | 
					ebcdd0c43e | ||
| 
						 | 
					8de7587e02 | ||
| 
						 | 
					90ac586317 | ||
| 
						 | 
					15c0fb18a2 | ||
| 
						 | 
					f30839ecaa | ||
| 
						 | 
					eb31944f81 | ||
| 
						 | 
					0dcf7fd543 | ||
| 
						 | 
					02539402af | ||
| 
						 | 
					2be9694116 | ||
| 
						 | 
					b46ba9b1bc | ||
| 
						 | 
					8e1ec9fb37 | ||
| 
						 | 
					dc005a7367 | ||
| 
						 | 
					da867a51a0 | ||
| 
						 | 
					25814b9690 | ||
| 
						 | 
					0fc7c5010d | ||
| 
						 | 
					166e1f304b | ||
| 
						 | 
					ef413a7ee8 | ||
| 
						 | 
					dcd4d341e1 | ||
| 
						 | 
					61b337bd22 | ||
| 
						 | 
					06b71aec85 | ||
| 
						 | 
					527cc9841c | ||
| 
						 | 
					6901ba7dc8 | ||
| 
						 | 
					ab13064406 | ||
| 
						 | 
					192295a094 | ||
| 
						 | 
					7dfded5c26 | ||
| 
						 | 
					28b3b4c6e6 | ||
| 
						 | 
					acab12fbe3 | ||
| 
						 | 
					1ba5b1b530 | ||
| 
						 | 
					d786112124 | ||
| 
						 | 
					bdecf23415 | ||
| 
						 | 
					03ef63ba69 | ||
| 
						 | 
					cb9c5dc571 | ||
| 
						 | 
					a6f8bbcad9 | ||
| 
						 | 
					9f10f9beeb | ||
| 
						 | 
					a46229b43f | ||
| 
						 | 
					c7a48d3d00 | ||
| 
						 | 
					9188480827 | ||
| 
						 | 
					2b912846b9 | ||
| 
						 | 
					854067e8e4 | ||
| 
						 | 
					eb2f937b93 | ||
| 
						 | 
					64c4f5732d | ||
| 
						 | 
					f3052a9eee | ||
| 
						 | 
					e1e9ead6fb | ||
| 
						 | 
					5ac85984ec | ||
| 
						 | 
					e11b297730 | ||
| 
						 | 
					48555cf0fc | ||
| 
						 | 
					ae02fc5348 | ||
| 
						 | 
					93e147dd32 | ||
| 
						 | 
					3257904c56 | ||
| 
						 | 
					2a7619d762 | ||
| 
						 | 
					70d03c4f59 | ||
| 
						 | 
					5971d37400 | ||
| 
						 | 
					d813a428a7 | ||
| 
						 | 
					3b2972d8d9 | ||
| 
						 | 
					2165d91196 | ||
| 
						 | 
					fc99c92835 | ||
| 
						 | 
					1dde74f229 | ||
| 
						 | 
					665b5ab5a7 | ||
| 
						 | 
					13232559fc | ||
| 
						 | 
					1b2f8b6e2a | ||
| 
						 | 
					ccd98b43ed | ||
| 
						 | 
					d32e8acf08 | ||
| 
						 | 
					d8c4d0e819 | ||
| 
						 | 
					b215f70a0e | ||
| 
						 | 
					7ed20a2158 | ||
| 
						 | 
					6c62150674 | ||
| 
						 | 
					aa23a57918 | ||
| 
						 | 
					8e2c277353 | ||
| 
						 | 
					f18ef82a9f | ||
| 
						 | 
					cc015c48db | ||
| 
						 | 
					9a4051050c | ||
| 
						 | 
					4c4ea428cc | ||
| 
						 | 
					28e94dc70d | ||
| 
						 | 
					f812743544 | ||
| 
						 | 
					87f3435f78 | ||
| 
						 | 
					86787f93d6 | ||
| 
						 | 
					05d909c549 | ||
| 
						 | 
					d44c7dcf00 | ||
| 
						 | 
					5decfb7002 | ||
| 
						 | 
					50008364a6 | ||
| 
						 | 
					6a1129837a | ||
| 
						 | 
					20ca3d49e7 | ||
| 
						 | 
					f156d5495d | ||
| 
						 | 
					96d7e0ece7 | ||
| 
						 | 
					974e22704d | ||
| 
						 | 
					835475a2d6 | ||
| 
						 | 
					a26f2b5e62 | ||
| 
						 | 
					67e08eb185 | ||
| 
						 | 
					0b4cb28f39 | ||
| 
						 | 
					9c5ed502ee | ||
| 
						 | 
					6111f7408b | ||
| 
						 | 
					b6577e040e | ||
| 
						 | 
					bb51f21728 | ||
| 
						 | 
					0e0e569cbf | ||
| 
						 | 
					71c8e9f1c3 | ||
| 
						 | 
					e759b095d4 | ||
| 
						 | 
					afa0598f06 | 
							
								
								
									
										323
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										323
									
								
								CHANGES
									
									
									
									
									
								
							@@ -2,7 +2,325 @@
 | 
			
		||||
 OpenSSL CHANGES
 | 
			
		||||
 _______________
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.5a and 0.9.6  [xx XXX 2000]
 | 
			
		||||
 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]
 | 
			
		||||
 | 
			
		||||
  *) In ssl23_get_client_hello, generate an error message when faced
 | 
			
		||||
     with an initial SSL 3.0/TLS record that is too small to contain the
 | 
			
		||||
     first two bytes of the ClientHello message, i.e. client_version.
 | 
			
		||||
     (Note that this is a pathologic case that probably has never happened
 | 
			
		||||
     in real life.)  The previous approach was to use the version number
 | 
			
		||||
     from the record header as a substitute; but our protocol choice
 | 
			
		||||
     should not depend on that one because it is not authenticated
 | 
			
		||||
     by the Finished messages.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) More robust randomness gathering functions for Windows.
 | 
			
		||||
     [Jeffrey Altman <jaltman@columbia.edu>]
 | 
			
		||||
 | 
			
		||||
  *) For compatibility reasons if the flag X509_V_FLAG_ISSUER_CHECK is
 | 
			
		||||
     not set then we don't setup the error code for issuer check errors
 | 
			
		||||
     to avoid possibly overwriting other errors which the callback does
 | 
			
		||||
     handle. If an application does set the flag then we assume it knows
 | 
			
		||||
     what it is doing and can handle the new informational codes
 | 
			
		||||
     appropriately.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Fix for a nasty bug in ASN1_TYPE handling. ASN1_TYPE is used for
 | 
			
		||||
     a general "ANY" type, as such it should be able to decode anything
 | 
			
		||||
     including tagged types. However it didn't check the class so it would
 | 
			
		||||
     wrongly interpret tagged types in the same way as their universal
 | 
			
		||||
     counterpart and unknown types were just rejected. Changed so that the
 | 
			
		||||
     tagged and unknown types are handled in the same way as a SEQUENCE:
 | 
			
		||||
     that is the encoding is stored intact. There is also a new type
 | 
			
		||||
     "V_ASN1_OTHER" which is used when the class is not universal, in this
 | 
			
		||||
     case we have no idea what the actual type is so we just lump them all
 | 
			
		||||
     together.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) On VMS, stdout may very well lead to a file that is written to
 | 
			
		||||
     in a record-oriented fashion.  That means that every write() will
 | 
			
		||||
@@ -33,6 +351,7 @@
 | 
			
		||||
 | 
			
		||||
  *) New BIO_shutdown_wr macro, which invokes the BIO_C_SHUTDOWN_WR
 | 
			
		||||
     BIO_ctrl (for BIO pairs).
 | 
			
		||||
     [Bodo M<>ller]
 | 
			
		||||
 | 
			
		||||
  *) Add DSO method for VMS.
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
@@ -266,7 +585,7 @@
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Changes needed for Tandem NSK.
 | 
			
		||||
     [Scott Uroff scott@xypro.com]
 | 
			
		||||
     [Scott Uroff <scott@xypro.com>]
 | 
			
		||||
 | 
			
		||||
  *) Fix SSL 2.0 rollback checking: Due to an off-by-one error in
 | 
			
		||||
     RSA_padding_check_SSLv23(), special padding was never detected
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										171
									
								
								Configure
									
									
									
									
									
								
							
							
						
						
									
										171
									
								
								Configure
									
									
									
									
									
								
							@@ -10,7 +10,7 @@ use strict;
 | 
			
		||||
 | 
			
		||||
# see INSTALL for instructions.
 | 
			
		||||
 | 
			
		||||
my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [rsaref] [no-threads] [no-asm] [no-dso] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
 | 
			
		||||
my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [rsaref] [no-threads] [no-asm] [no-dso] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] os/compiler[:flags]\n";
 | 
			
		||||
 | 
			
		||||
# Options:
 | 
			
		||||
#
 | 
			
		||||
@@ -23,11 +23,20 @@ my $usage="Usage: Configure [no-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-
 | 
			
		||||
#               default).  This needn't be set in advance, you can
 | 
			
		||||
#               just as well use "make INSTALL_PREFIX=/whatever install".
 | 
			
		||||
#
 | 
			
		||||
# no-hw-xxx     do not compile support for specific crypto hardware.
 | 
			
		||||
#               Generic OpenSSL-style methods relating to this support
 | 
			
		||||
#               are always compiled but return NULL if the hardware
 | 
			
		||||
#               support isn't compiled.
 | 
			
		||||
# no-hw         do not compile support for any crypto hardware.
 | 
			
		||||
# rsaref        use RSAref
 | 
			
		||||
# [no-]threads  [don't] try to create a library that is suitable for
 | 
			
		||||
#               multithreaded applications (default is "threads" if we
 | 
			
		||||
#               know how to do it)
 | 
			
		||||
# [no-]shared	[don't] try to create shared libraries when supported.
 | 
			
		||||
#               IT IS NOT RECOMMENDED TO USE "shared"!  Since this is a
 | 
			
		||||
#               development branch, the positions of the ENGINE symbols
 | 
			
		||||
#               in the transfer vector are constantly moving, so binary
 | 
			
		||||
#               backward compatibility can't be guaranteed in any way.
 | 
			
		||||
# no-asm        do not use assembler
 | 
			
		||||
# no-dso        do not compile in any native shared-library methods. This
 | 
			
		||||
#               will ensure that all methods just return NULL.
 | 
			
		||||
@@ -89,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_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.
 | 
			
		||||
# So the md5_locl.h file has an undef B_ENDIAN if sun is defined
 | 
			
		||||
 | 
			
		||||
@@ -127,32 +141,32 @@ my %table=(
 | 
			
		||||
# surrounds it with #APP #NO_APP comment pair which (at least Solaris
 | 
			
		||||
# 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
 | 
			
		||||
# 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
 | 
			
		||||
"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-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-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-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: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:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
 | 
			
		||||
# 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-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-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:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### 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
 | 
			
		||||
"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.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!
 | 
			
		||||
"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-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-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",
 | 
			
		||||
"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",
 | 
			
		||||
"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:.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:.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:.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-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-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:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### 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::",
 | 
			
		||||
@@ -178,11 +192,11 @@ my %table=(
 | 
			
		||||
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
 | 
			
		||||
# './Configure irix-[g]cc' manually.
 | 
			
		||||
# -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-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-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:${mips3_irix_asm}",
 | 
			
		||||
# 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-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-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:${mips3_irix_asm}",
 | 
			
		||||
 | 
			
		||||
#### Unified HP-UX ANSI C configs.
 | 
			
		||||
# Special notes:
 | 
			
		||||
@@ -262,10 +276,10 @@ my %table=(
 | 
			
		||||
# Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
 | 
			
		||||
# the new compiler
 | 
			
		||||
# 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-cc", "cc:-std1 -tune host -O4 -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:asm/alpha.o:::::::::dlfcn:true64-shared",
 | 
			
		||||
"FreeBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2:::",
 | 
			
		||||
"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:${alpha_asm}:dlfcn:tru64-shared::.so",
 | 
			
		||||
"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::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### Alpha Linux with GNU C and Compaq C setups
 | 
			
		||||
# Special notes:
 | 
			
		||||
@@ -280,31 +294,32 @@ my %table=(
 | 
			
		||||
#
 | 
			
		||||
#					<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+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-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+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-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:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}",
 | 
			
		||||
"linux-alpha+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:
 | 
			
		||||
##"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
 | 
			
		||||
# 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-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-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-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::",
 | 
			
		||||
"NetBSD-sparc",	"gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -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:::",
 | 
			
		||||
"NetBSD-x86",	"gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:",
 | 
			
		||||
"FreeBSD-elf",  "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
			
		||||
"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::::::::::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}::::::::::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}: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}",
 | 
			
		||||
"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}:::",
 | 
			
		||||
"nextstep3.3",	"cc:-O3 -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
# NCR MP-RAS UNIX ver 02.03.01
 | 
			
		||||
@@ -314,18 +329,27 @@ my %table=(
 | 
			
		||||
"qnx4",	"cc:-DL_ENDIAN -DTERMIO::(unknown)::${x86_gcc_des} ${x86_gcc_opts}:",
 | 
			
		||||
 | 
			
		||||
# 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.0","cc:-O -DFILIO_H::(unknown):-lsocket -lnsl:${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.0x fails destest with -O
 | 
			
		||||
"unixware-2.0","cc:-DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
"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","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.
 | 
			
		||||
"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:::",
 | 
			
		||||
"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)
 | 
			
		||||
@@ -352,12 +376,16 @@ my %table=(
 | 
			
		||||
 | 
			
		||||
# DGUX, 88100.
 | 
			
		||||
"dgux-R3-gcc",	"gcc:-O3 -fomit-frame-pointer::(unknown)::RC4_INDEX DES_UNROLL:::",
 | 
			
		||||
"dgux-R4-gcc",	"gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX: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}",
 | 
			
		||||
 | 
			
		||||
# 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 cc.
 | 
			
		||||
"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 ...
 | 
			
		||||
 | 
			
		||||
# Sinix/ReliantUNIX RM400
 | 
			
		||||
@@ -397,10 +425,10 @@ my %table=(
 | 
			
		||||
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown)::::::",
 | 
			
		||||
 | 
			
		||||
# 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-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn",
 | 
			
		||||
"OpenBSD",      "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR RC4_INDEX DES_UNROLL:::",
 | 
			
		||||
"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",
 | 
			
		||||
"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: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::::::::::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:::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
##### 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:::",
 | 
			
		||||
@@ -415,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 $openssldir="";
 | 
			
		||||
my $exe_ext="";
 | 
			
		||||
my $install_prefix="";
 | 
			
		||||
my $no_threads=0;
 | 
			
		||||
my $no_shared=1;
 | 
			
		||||
@@ -442,10 +471,10 @@ my $md5_obj="";
 | 
			
		||||
my $sha1_obj="";
 | 
			
		||||
my $rmd160_obj="";
 | 
			
		||||
my $processor="";
 | 
			
		||||
my $ranlib;
 | 
			
		||||
my $default_ranlib;
 | 
			
		||||
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")
 | 
			
		||||
  or $perl="perl";
 | 
			
		||||
 | 
			
		||||
@@ -490,6 +519,18 @@ PROCESS_ARGS:
 | 
			
		||||
			$flags .= "-DNO_ASM ";
 | 
			
		||||
			$openssl_other_defines .= "#define NO_ASM\n";
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^no-hw-(.+)$/)
 | 
			
		||||
			{
 | 
			
		||||
			my $hw=$1;
 | 
			
		||||
			$hw =~ tr/[a-z]/[A-Z]/;
 | 
			
		||||
			$flags .= "-DNO_HW_$hw ";
 | 
			
		||||
			$openssl_other_defines .= "#define NO_HW_$hw\n";
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^no-hw$/)
 | 
			
		||||
			{
 | 
			
		||||
			$flags .= "-DNO_HW ";
 | 
			
		||||
			$openssl_other_defines .= "#define NO_HW\n";
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^no-dso$/)
 | 
			
		||||
			{ $no_dso=1; }
 | 
			
		||||
		elsif (/^no-threads$/)
 | 
			
		||||
@@ -619,6 +660,7 @@ print "Configuring for $target\n";
 | 
			
		||||
 | 
			
		||||
my $IsWindows=scalar grep /^$target$/,@WinTargets;
 | 
			
		||||
 | 
			
		||||
$exe_ext=".exe" if ($target eq "CygWin32");
 | 
			
		||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
 | 
			
		||||
$prefix=$openssldir if $prefix eq "";
 | 
			
		||||
 | 
			
		||||
@@ -632,8 +674,8 @@ $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /^\//;
 | 
			
		||||
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,
 | 
			
		||||
 $md5_obj,$sha1_obj,my $cast_obj,my $rc4_obj,$rmd160_obj,my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag)=
 | 
			
		||||
	split(/\s*:\s*/,$table{$target} . ":" x 22 , -1);
 | 
			
		||||
 $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 30 , -1);
 | 
			
		||||
$cflags="$flags$cflags" if ($flags ne "");
 | 
			
		||||
 | 
			
		||||
# The DSO code currently always implements all functions so that no
 | 
			
		||||
@@ -708,17 +750,27 @@ if ($threads)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
# You will find shlib_mark1 and shlib_mark2 explained in Makefile.org
 | 
			
		||||
my $shared_mark1 = "";
 | 
			
		||||
my $shared_mark2 = "";
 | 
			
		||||
my $shared_mark = "";
 | 
			
		||||
if ($shared_target ne "")
 | 
			
		||||
	{
 | 
			
		||||
	if ($shared_cflag ne "")
 | 
			
		||||
		{
 | 
			
		||||
		$cflags = "$shared_cflag $cflags";
 | 
			
		||||
		}
 | 
			
		||||
	if (!$no_shared)
 | 
			
		||||
		{
 | 
			
		||||
		$shared_mark1 = ".shlib-clean.";
 | 
			
		||||
		$shared_mark2 = ".shlib.";
 | 
			
		||||
		#$shared_mark = "\$(SHARED_LIBS)";
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
else
 | 
			
		||||
	{
 | 
			
		||||
	$no_shared = 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
if ($ranlib eq "")
 | 
			
		||||
	{
 | 
			
		||||
	$ranlib = $default_ranlib;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#my ($bn1)=split(/\s+/,$bn_obj);
 | 
			
		||||
#$bn1 = "" unless defined $bn1;
 | 
			
		||||
@@ -800,6 +852,7 @@ while (<IN>)
 | 
			
		||||
	s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/;
 | 
			
		||||
	s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
 | 
			
		||||
	s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/;
 | 
			
		||||
	s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
 | 
			
		||||
	s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
 | 
			
		||||
	s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
 | 
			
		||||
	s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/;
 | 
			
		||||
@@ -810,6 +863,7 @@ while (<IN>)
 | 
			
		||||
	s/^CFLAG=.*$/CFLAG= $cflags/;
 | 
			
		||||
	s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
 | 
			
		||||
	s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
 | 
			
		||||
	s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
 | 
			
		||||
	s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
 | 
			
		||||
	s/^DES_ENC=.*$/DES_ENC= $des_obj/;
 | 
			
		||||
	s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
 | 
			
		||||
@@ -823,9 +877,9 @@ while (<IN>)
 | 
			
		||||
	s/^RANLIB=.*/RANLIB= $ranlib/;
 | 
			
		||||
	s/^PERL=.*/PERL= $perl/;
 | 
			
		||||
	s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
 | 
			
		||||
	s/^SHLIB_MARK1=.*/SHLIB_MARK1=$shared_mark1/;
 | 
			
		||||
	s/^SHLIB_MARK2=.*/SHLIB_MARK2=$shared_mark2/;
 | 
			
		||||
	s/^LIBS=.*/LIBS=libcrypto\.so\* libssl\.so\*/ if (!$no_shared);
 | 
			
		||||
	s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
 | 
			
		||||
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ 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";
 | 
			
		||||
	}
 | 
			
		||||
close(IN);
 | 
			
		||||
@@ -1112,8 +1166,9 @@ sub print_table_entry
 | 
			
		||||
	(my $cc,my $cflags,my $unistd,my $thread_cflag,my $lflags,my $bn_ops,
 | 
			
		||||
	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 $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag)=
 | 
			
		||||
	split(/\s*:\s*/,$table{$target} . ":" x 22 , -1);
 | 
			
		||||
	my $rc5_obj,my $dso_scheme,my $shared_target,my $shared_cflag,
 | 
			
		||||
	my $shared_extension,my $ranlib)=
 | 
			
		||||
	split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
 | 
			
		||||
			
 | 
			
		||||
	print <<EOF
 | 
			
		||||
 | 
			
		||||
@@ -1136,5 +1191,7 @@ sub print_table_entry
 | 
			
		||||
\$dso_scheme   = $dso_scheme
 | 
			
		||||
\$shared_target= $shared_target
 | 
			
		||||
\$shared_cflag = $shared_cflag
 | 
			
		||||
\$shared_extension = $shared_extension
 | 
			
		||||
\$ranlib       = $ranlib
 | 
			
		||||
EOF
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										423
									
								
								FAQ
									
									
									
									
									
								
							
							
						
						
									
										423
									
								
								FAQ
									
									
									
									
									
								
							@@ -1,20 +1,22 @@
 | 
			
		||||
OpenSSL  -  Frequently Asked Questions
 | 
			
		||||
--------------------------------------
 | 
			
		||||
 | 
			
		||||
[MISC] Miscellaneous questions
 | 
			
		||||
 | 
			
		||||
* Which is the current version of OpenSSL?
 | 
			
		||||
* Where is the documentation?
 | 
			
		||||
* 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?
 | 
			
		||||
* 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 aren't tools like 'autoconf' and 'libtool' used?
 | 
			
		||||
 | 
			
		||||
[LEGAL] Legal questions
 | 
			
		||||
 | 
			
		||||
* Do I need patent licenses to use OpenSSL?
 | 
			
		||||
* 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?
 | 
			
		||||
* Why can't I create certificate requests?
 | 
			
		||||
* Why does <SSL program> fail with a certificate verify error?
 | 
			
		||||
@@ -22,17 +24,38 @@ OpenSSL  -  Frequently Asked Questions
 | 
			
		||||
* How can I create DSA certificates?
 | 
			
		||||
* Why can't I make an SSL connection using a DSA certificate?
 | 
			
		||||
* 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: 1 no implemented"?
 | 
			
		||||
* 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 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?
 | 
			
		||||
 | 
			
		||||
The current version is available from <URL: http://www.openssl.org>.
 | 
			
		||||
OpenSSL 0.9.5a was released on April 1st, 2000.
 | 
			
		||||
OpenSSL 0.9.6a was released on April 5th, 2001.
 | 
			
		||||
 | 
			
		||||
In addition to the current stable release, you can also access daily
 | 
			
		||||
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>.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* 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?
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Is OpenSSL thread-safe?
 | 
			
		||||
* Can I use OpenSSL with GPL software?
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
On many systems including the major Linux and BSD distributions, yes (the
 | 
			
		||||
GPL does not place restrictions on using libraries that are part of the
 | 
			
		||||
normal operating system distribution).
 | 
			
		||||
 | 
			
		||||
Multi-threaded applications must provide two callback functions to
 | 
			
		||||
OpenSSL.  This is described in the threads(3) manpage.
 | 
			
		||||
On other systems, the situation is less clear. Some GPL software copyright
 | 
			
		||||
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?
 | 
			
		||||
 | 
			
		||||
@@ -138,6 +190,101 @@ versions.  However, be warned that /dev/random is usually a blocking
 | 
			
		||||
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?
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* 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.
 | 
			
		||||
When using such an application, you don't need to install OpenSSL
 | 
			
		||||
yourself; the application will include the required parts (e.g. DLLs).
 | 
			
		||||
You didn't install "bc", the Unix calculator.  If you want to run the
 | 
			
		||||
tests, get GNU bc from ftp://ftp.gnu.org or from your OS distributor.
 | 
			
		||||
 | 
			
		||||
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?
 | 
			
		||||
@@ -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.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* 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?
 | 
			
		||||
 | 
			
		||||
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 -----
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* 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
 | 
			
		||||
tests, get GNU bc from ftp://ftp.gnu.org or from your OS distributor.
 | 
			
		||||
Yes; make sure to read the SSL_get_error(3) manual page!
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
===============================================================================
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								INSTALL
									
									
									
									
									
								
							@@ -57,7 +57,10 @@
 | 
			
		||||
 | 
			
		||||
  shared        In addition to the usual static libraries, create shared
 | 
			
		||||
                libraries on platforms where it's supported.  See "Note on
 | 
			
		||||
                shared libraries" below.
 | 
			
		||||
                shared libraries" below.  THIS IS NOT RECOMMENDED!  Since
 | 
			
		||||
                this is a development branch, the positions of the ENGINE
 | 
			
		||||
                symbols in the transfer vector are constantly moving, so
 | 
			
		||||
                binary backward compatibility can't be guaranteed in any way.
 | 
			
		||||
 | 
			
		||||
  no-asm        Do not use assembler code.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -108,8 +108,8 @@
 | 
			
		||||
 | 
			
		||||
 * Compiler installation:
 | 
			
		||||
 | 
			
		||||
   Mingw32 is available from <ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/
 | 
			
		||||
   mingw32/egcs-1.1.2/egcs-1.1.2-mingw32.zip>. GNU make is at
 | 
			
		||||
   Mingw32 is available from <ftp://ftp.xraylith.wisc.edu/pub/khan/
 | 
			
		||||
   gnu-win32/mingw32/gcc-2.95.2/gcc-2.95.2-msvcrt.exe>. GNU make is at
 | 
			
		||||
   <ftp://agnes.dida.physik.uni-essen.de/home/janjaap/mingw32/binaries/
 | 
			
		||||
   make-3.76.1.zip>. Install both of them in C:\egcs-1.1.2 and run
 | 
			
		||||
   C:\egcs-1.1.2\mingw32.bat to set the PATH.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										182
									
								
								Makefile.org
									
									
									
									
									
								
							
							
						
						
									
										182
									
								
								Makefile.org
									
									
									
									
									
								
							@@ -9,6 +9,7 @@ SHLIB_VERSION_NUMBER=
 | 
			
		||||
SHLIB_VERSION_HISTORY=
 | 
			
		||||
SHLIB_MAJOR=
 | 
			
		||||
SHLIB_MINOR=
 | 
			
		||||
SHLIB_EXT=
 | 
			
		||||
PLATFORM=dist
 | 
			
		||||
OPTIONS=
 | 
			
		||||
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= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
 | 
			
		||||
DEPFLAG= 
 | 
			
		||||
PEX_LIBS= -L. -L.. -L../.. -L../../..
 | 
			
		||||
PEX_LIBS= 
 | 
			
		||||
EX_LIBS= 
 | 
			
		||||
EXE_EXT= 
 | 
			
		||||
AR=ar r
 | 
			
		||||
RANLIB= ranlib
 | 
			
		||||
PERL= perl
 | 
			
		||||
@@ -149,21 +151,18 @@ RMD160_ASM_OBJ= asm/rm86-out.o
 | 
			
		||||
#RMD160_ASM_OBJ= asm/rm86-out.o       # a.out, FreeBSD
 | 
			
		||||
#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
 | 
			
		||||
# we might have SHLIB_MARK1 get the value ".shlib." and SHLIB_MARK2 be empty,
 | 
			
		||||
# or have that configurable.
 | 
			
		||||
SHLIB_MARK1=.shlib-clean.
 | 
			
		||||
SHLIB_MARK2=.shlib.
 | 
			
		||||
# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
 | 
			
		||||
SHLIB_MARK=
 | 
			
		||||
 | 
			
		||||
DIRS=   crypto ssl rsaref $(SHLIB_MARK1) apps test tools $(SHLIB_MARK2)
 | 
			
		||||
DIRS=   crypto ssl rsaref $(SHLIB_MARK) apps test tools
 | 
			
		||||
SHLIBDIRS= crypto ssl
 | 
			
		||||
 | 
			
		||||
# dirs in crypto to build
 | 
			
		||||
SDIRS=  \
 | 
			
		||||
	md2 md4 md5 sha mdc2 hmac ripemd \
 | 
			
		||||
	des rc2 rc4 rc5 idea bf cast \
 | 
			
		||||
	bn rsa dsa dh dso \
 | 
			
		||||
	bn rsa dsa dh dso engine \
 | 
			
		||||
	buffer bio stack lhash rand err objects \
 | 
			
		||||
	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
 | 
			
		||||
 | 
			
		||||
@@ -180,7 +179,10 @@ ONEDIRS=out tmp
 | 
			
		||||
EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
 | 
			
		||||
WDIRS=  windows
 | 
			
		||||
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
 | 
			
		||||
BASENAME=       openssl
 | 
			
		||||
@@ -190,108 +192,93 @@ WTARFILE=       $(NAME)-win.tar
 | 
			
		||||
EXHEADER=       e_os.h e_os2.h
 | 
			
		||||
HEADER=         e_os.h
 | 
			
		||||
 | 
			
		||||
all: Makefile.ssl
 | 
			
		||||
	@need_shlib=true; \
 | 
			
		||||
	for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	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
 | 
			
		||||
# When we're prepared to use shared libraries in the programs we link here
 | 
			
		||||
# we might remove 'clean-shared' from the targets to perform at this stage
 | 
			
		||||
 | 
			
		||||
all: clean-shared Makefile.ssl sub_all
 | 
			
		||||
 | 
			
		||||
sub_all:
 | 
			
		||||
	@need_shlib=true; \
 | 
			
		||||
	for i in $(DIRS) ;\
 | 
			
		||||
	@for i in $(DIRS); \
 | 
			
		||||
	do \
 | 
			
		||||
	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 \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(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; \
 | 
			
		||||
	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); \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
libcrypto.so: libcrypto.a
 | 
			
		||||
libcrypto$(SHLIB_EXT): libcrypto.a
 | 
			
		||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=crypto $(SHLIB_TARGET); \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=crypto build-shared; \
 | 
			
		||||
	else \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
			
		||||
	fi
 | 
			
		||||
libssl.so: libcrypto.so libssl.a
 | 
			
		||||
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
 | 
			
		||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-L. -lcrypto' $(SHLIB_TARGET); \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
 | 
			
		||||
	else \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
clean-shared:
 | 
			
		||||
	for i in ${SHLIBDIRS}; do \
 | 
			
		||||
	rm -f lib$$i.so \
 | 
			
		||||
		lib$$i.so.${SHLIB_MAJOR} \
 | 
			
		||||
		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
 | 
			
		||||
	@for i in $(SHLIBDIRS); do \
 | 
			
		||||
		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
 | 
			
		||||
			tmp="$(SHARED_LIBS_LINK_EXTS)"; \
 | 
			
		||||
			for j in $${tmp:-x}; do \
 | 
			
		||||
				( set -x; rm -f lib$$i$$j ); \
 | 
			
		||||
			done; \
 | 
			
		||||
		fi; \
 | 
			
		||||
		( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
linux-shared:
 | 
			
		||||
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
	rm -f lib$$i.so \
 | 
			
		||||
		lib$$i.so.${SHLIB_MAJOR} \
 | 
			
		||||
		lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
 | 
			
		||||
link-shared:
 | 
			
		||||
	@for i in $(SHLIBDIRS); do \
 | 
			
		||||
		prev=lib$$i$(SHLIB_EXT); \
 | 
			
		||||
		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
 | 
			
		||||
			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} \
 | 
			
		||||
		-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,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
 | 
			
		||||
	libs="$$libs -L. -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 ); \
 | 
			
		||||
	libs="$$libs -l$$i"; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
# This assumes that GNU utilities are *not* used
 | 
			
		||||
true64-shared:
 | 
			
		||||
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
do_tru64-shared:
 | 
			
		||||
	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
	( set -x; ${CC}  -shared -no_archive -o lib$$i.so \
 | 
			
		||||
		-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
			
		||||
		-all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
 | 
			
		||||
	libs="$$libs -L. -l$$i"; \
 | 
			
		||||
	libs="$$libs -l$$i"; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
# This assumes that GNU utilities are *not* used
 | 
			
		||||
solaris-shared:
 | 
			
		||||
	libs='${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
	rm -f lib$$i.so \
 | 
			
		||||
		lib$$i.so.${SHLIB_MAJOR} \
 | 
			
		||||
		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} \
 | 
			
		||||
do_solaris-shared:
 | 
			
		||||
	libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
	( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
 | 
			
		||||
	  set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
			
		||||
		-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
			
		||||
		-z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
 | 
			
		||||
	libs="$$libs -L. -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; \
 | 
			
		||||
	libs="$$libs -l$$i"; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making clean in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
 | 
			
		||||
		rm -f $(LIBS); \
 | 
			
		||||
@@ -327,7 +314,7 @@ files:
 | 
			
		||||
	$(PERL) $(TOP)/util/files.pl Makefile.ssl > $(TOP)/MINFO
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making 'files' in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -338,7 +325,7 @@ links:
 | 
			
		||||
	@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
 | 
			
		||||
	@for i in $(DIRS); do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(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; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -348,7 +335,7 @@ dclean:
 | 
			
		||||
	rm -f *.bak
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making dclean in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -363,7 +350,7 @@ test:   tests
 | 
			
		||||
 | 
			
		||||
tests: rehash
 | 
			
		||||
	@(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
 | 
			
		||||
 | 
			
		||||
report:
 | 
			
		||||
@@ -372,7 +359,7 @@ report:
 | 
			
		||||
depend:
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making dependencies $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' DEPFLAG='${DEPFLAG}' depend ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -381,7 +368,7 @@ depend:
 | 
			
		||||
lint:
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making lint $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -390,7 +377,7 @@ lint:
 | 
			
		||||
tags:
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making tags $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' tags ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -452,9 +439,9 @@ install: all install_docs
 | 
			
		||||
	done;
 | 
			
		||||
	@for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if echo "$$i" | grep -v '^\.'; then \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(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; \
 | 
			
		||||
	done
 | 
			
		||||
	@for i in $(LIBS) ;\
 | 
			
		||||
@@ -466,6 +453,20 @@ install: all install_docs
 | 
			
		||||
			chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
 | 
			
		||||
		fi \
 | 
			
		||||
	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:
 | 
			
		||||
	@$(PERL) $(TOP)/util/mkdir-p.pl \
 | 
			
		||||
@@ -492,11 +493,4 @@ install_docs:
 | 
			
		||||
			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/`basename $$i .pod`.$$sec; \
 | 
			
		||||
	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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								NEWS
									
									
									
									
									
								
							@@ -5,6 +5,31 @@
 | 
			
		||||
  This file gives a brief overview of the major changes between each OpenSSL
 | 
			
		||||
  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:
 | 
			
		||||
 | 
			
		||||
      o Some documentation for BIO and SSL libraries.
 | 
			
		||||
@@ -14,7 +39,8 @@
 | 
			
		||||
      o New 'rsautl' application, low level RSA utility.
 | 
			
		||||
      o MD4 now included.
 | 
			
		||||
      o Bugfix for SSL rollback padding check.
 | 
			
		||||
      o Support for external crypto device[1].
 | 
			
		||||
      o Support for external crypto devices [1].
 | 
			
		||||
      o Enhanced EVP interface.
 | 
			
		||||
 | 
			
		||||
    [1] The support for external crypto devices is currently a separate
 | 
			
		||||
        distribution.  See the file README.ENGINE.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								README
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
 | 
			
		||||
 OpenSSL 0.9.6-beta3 (Final beta) 21 Sep 2000
 | 
			
		||||
 OpenSSL 0.9.6a [engine] 5 Apr 2001
 | 
			
		||||
 | 
			
		||||
 Copyright (c) 1998-2000 The OpenSSL Project
 | 
			
		||||
 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
 | 
			
		||||
 
 | 
			
		||||
@@ -52,3 +52,12 @@
 | 
			
		||||
  device, or the built-in crypto routines will be used, just as in the
 | 
			
		||||
  default OpenSSL distribution.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  PROBLEMS
 | 
			
		||||
  ========
 | 
			
		||||
 | 
			
		||||
  It seems like the ENGINE part doesn't work too well with Cryptoswift on
 | 
			
		||||
  Win32.  A quick test done right before the release showed that trying
 | 
			
		||||
  "openssl speed -engine cswift" generated errors.  If the DSO gets enabled,
 | 
			
		||||
  an attempt is made to write at memory address 0x00000002.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										111
									
								
								STATUS
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								STATUS
									
									
									
									
									
								
							@@ -1,89 +1,11 @@
 | 
			
		||||
 | 
			
		||||
  OpenSSL STATUS                           Last modified at
 | 
			
		||||
  ______________                           $Date: 2000/09/20 15:22:02 $
 | 
			
		||||
  ______________                           $Date: 2001/04/05 17:48:02 $
 | 
			
		||||
 | 
			
		||||
  DEVELOPMENT STATE
 | 
			
		||||
 | 
			
		||||
    o  OpenSSL 0.9.6:  Under development (in release cycle)...
 | 
			
		||||
                       Proposed release date September 24, 2000
 | 
			
		||||
                       0.9.6-beta1 is available:
 | 
			
		||||
			OpenBSD-x86 2.7			- failed
 | 
			
		||||
				ftime not supported [FIXED]
 | 
			
		||||
			hpux-parisc-cc 10.20		- passed
 | 
			
		||||
			hpux-parisc-gcc 10.20		- passed
 | 
			
		||||
			hpux-parisc-gcc 11.00		- passed
 | 
			
		||||
			hpux-gcc			- passed
 | 
			
		||||
			hpux-brokengcc			- failed
 | 
			
		||||
				BN_sqr fails in test
 | 
			
		||||
			linux-elf			- passed
 | 
			
		||||
			linux-sparcv7			- passed
 | 
			
		||||
			linux-ppc			- passed
 | 
			
		||||
			Solaris [engine]		- failed
 | 
			
		||||
				speed cswift gives odd errors [FIXED]
 | 
			
		||||
			solaris-sparcv8-gcc		- passed
 | 
			
		||||
			solaris-sparcv9-gcc		- passed
 | 
			
		||||
			solaris-sparcv9-cc		- passed
 | 
			
		||||
			solaris64-sparcv9-cc		- passed
 | 
			
		||||
			sco5-gcc			- passed
 | 
			
		||||
			sco5-cc				- passed
 | 
			
		||||
			FreeBSD				- passed
 | 
			
		||||
			Win32 VC++			- failed
 | 
			
		||||
				PCURSORINFO not defined unless Win2000 [FIXED]
 | 
			
		||||
				RAND_poll() problem on Win2000 [FIXED]
 | 
			
		||||
				DSO method always DSO_METHOD_null [FIXED]
 | 
			
		||||
			CygWin32			- test failed
 | 
			
		||||
			MingW32				- failed
 | 
			
		||||
				thelp32.h
 | 
			
		||||
			aix-gcc (AIX 4.3.2)		- passed
 | 
			
		||||
			VMS/Alpha			- failed
 | 
			
		||||
				Some things were missing [FIXED]
 | 
			
		||||
                       0.9.6-beta2 is available:
 | 
			
		||||
			linux/openbsd (all platforms?)		- mod_exp bug
 | 
			
		||||
			sunos-gcc				- passed
 | 
			
		||||
			aix-gcc					- passed
 | 
			
		||||
			Win32 w/ VC6 or Mingw32			- failed
 | 
			
		||||
				RAND_poll(), a few uninitialised vars [FIXED]
 | 
			
		||||
				RAND_poll() should used LoadLibrary instead of
 | 
			
		||||
					GetModuleHandle [FIXED]
 | 
			
		||||
				Major compilation problem with VC6 on NT.
 | 
			
		||||
					[FIXED]
 | 
			
		||||
				Mingw32 says "175: parse error before `DWORD'"
 | 
			
		||||
					[FIXED?]
 | 
			
		||||
			Win32 w/ CygWin				- success?
 | 
			
		||||
			VMS/Alpha 7.1 (CPQ C 5.6-003, TCP/IP 5.0) - success
 | 
			
		||||
				Just a small warning in dso_vms.c [FIXED]
 | 
			
		||||
			VMS/Alpha 7.2-1 (CPQ 5.6-003, TCP/IP 5.0A) - success
 | 
			
		||||
			VMS/VAX 7.2-1 (CPQ 5.2-003, TCP/IP 5.0) - success
 | 
			
		||||
			hpux-parisc-cc (HP-UX B.11.00)		- success
 | 
			
		||||
			hpux-parisc2-cc	(11.00)			- success
 | 
			
		||||
			hpux64-parisc2-cc (11.00)		- success
 | 
			
		||||
			hpux-parisc1_1-cc (11.00)		- success
 | 
			
		||||
			hpux-parisc-cc (10.20 w/ -ldld)		- success
 | 
			
		||||
			hpux-parisc-gcc (10.20 w/ -ldld)	- success
 | 
			
		||||
			hpux-parisc-cc [engine] (10.20 w/ -ldld)- success
 | 
			
		||||
			hpux-parisc-gcc [endine] (10.20 w/ -ldld)- success
 | 
			
		||||
				All hpux 10.20 targets succeeded provided -ldl
 | 
			
		||||
					has been changed to -ldld.
 | 
			
		||||
			solaris-sparcv9-gcc (2.6/ultra5)	- success
 | 
			
		||||
			[ solaris-sparcv9-cc (SunOS 5.7 SC3.0)	- failed      ]
 | 
			
		||||
			[	Complaints about a number of -x parameters to ]
 | 
			
		||||
			[		the compiler and failed to compile an ]
 | 
			
		||||
			[		assembler file.  Maybe a too old      ]
 | 
			
		||||
			[		compiler? (Yes, apparently:)          ]
 | 
			
		||||
			solaris-sparcv9-cc (SunOS 5.6 SC4.2)	- success
 | 
			
		||||
			FreeBSD (2.2.5-RELEASE)			- success
 | 
			
		||||
			alpha-cc [engine] (OSF1 5.0A)		- success
 | 
			
		||||
			irix-mips3-cc [engine] (Irix 6.2)	- success
 | 
			
		||||
				One has to do the same as for OpenBSD in
 | 
			
		||||
					speed.c [FIXED]
 | 
			
		||||
			aix-cc (3.2.5, cc 1.3.0.44)		- success
 | 
			
		||||
			aix-gcc (3.2.5, gcc 2.8.1)		- success
 | 
			
		||||
				Both first failed to compiled due to ftime().
 | 
			
		||||
					[FIXED]
 | 
			
		||||
			alpha-cc (V4.0E)			- success
 | 
			
		||||
			alpha-gcc (V4.0E, gcc 2.8.1)		- success
 | 
			
		||||
			ultrix-cc (V4.5)			- success
 | 
			
		||||
			ultrix-gcc (V4.5, gcc 2.8.1)		- success
 | 
			
		||||
    o  OpenSSL 0.9.6a: Released on April      5th, 2001
 | 
			
		||||
    o  OpenSSL 0.9.6:  Released on September 24th, 2000
 | 
			
		||||
    o  OpenSSL 0.9.5a: Released on April      1st, 2000
 | 
			
		||||
    o  OpenSSL 0.9.5:  Released on February  28th, 2000
 | 
			
		||||
    o  OpenSSL 0.9.4:  Released on August    09th, 1999
 | 
			
		||||
@@ -96,14 +18,13 @@
 | 
			
		||||
 | 
			
		||||
  AVAILABLE PATCHES
 | 
			
		||||
 | 
			
		||||
    o CA.pl patch (Damien Miller)
 | 
			
		||||
 | 
			
		||||
  IN PROGRESS
 | 
			
		||||
 | 
			
		||||
    o Steve is currently working on (in no particular order):
 | 
			
		||||
        ASN1 code redesign, butchery, replacement.
 | 
			
		||||
        OCSP
 | 
			
		||||
        EVP cipher enhancement.
 | 
			
		||||
        Proper (or at least usable) certificate chain verification.
 | 
			
		||||
        Enhanced certificate chain verification.
 | 
			
		||||
	Private key, certificate and CRL API and implementation.
 | 
			
		||||
	Developing and bugfixing PKCS#7 (S/MIME code).
 | 
			
		||||
        Various X509 issues: character sets, certificate request extensions.
 | 
			
		||||
@@ -112,19 +33,29 @@
 | 
			
		||||
    o Richard is currently working on:
 | 
			
		||||
	UTIL (a new set of library functions to support some higher level
 | 
			
		||||
	      functionality that is currently missing).
 | 
			
		||||
	Dynamic thread-lock support.
 | 
			
		||||
	Shared library support for VMS.
 | 
			
		||||
	OCSP
 | 
			
		||||
	Kerberos 5 authentication
 | 
			
		||||
	Constification
 | 
			
		||||
 | 
			
		||||
  NEEDS PATCH
 | 
			
		||||
 | 
			
		||||
    o  non-blocking socket on AIX
 | 
			
		||||
    o  $(PERL) in */Makefile.ssl
 | 
			
		||||
    o  "Sign the certificate?" - "n" creates empty certificate file
 | 
			
		||||
    o  apps/ca.c: "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
 | 
			
		||||
 | 
			
		||||
    o internal_verify doesn't know about X509.v3 (basicConstraints
 | 
			
		||||
      CA flag ...)
 | 
			
		||||
    o  crypto/ex_data.c is not really thread-safe and so must be used
 | 
			
		||||
       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:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ RM=		rm -f
 | 
			
		||||
 | 
			
		||||
PEX_LIBS=
 | 
			
		||||
EX_LIBS= 
 | 
			
		||||
EXE_EXT= 
 | 
			
		||||
 | 
			
		||||
CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +33,7 @@ PROGRAM= openssl
 | 
			
		||||
 | 
			
		||||
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 \
 | 
			
		||||
	ca crl rsa rsautl dsa dsaparam \
 | 
			
		||||
@@ -77,7 +78,7 @@ top:
 | 
			
		||||
 | 
			
		||||
all:	exe
 | 
			
		||||
 | 
			
		||||
exe:	$(EXE)
 | 
			
		||||
exe:	$(PROGRAM)
 | 
			
		||||
 | 
			
		||||
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
 | 
			
		||||
	$(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
 | 
			
		||||
@@ -209,14 +210,15 @@ ca.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
ca.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
ca.o: ../include/openssl/des.h ../include/openssl/dh.h ../include/openssl/dsa.h
 | 
			
		||||
ca.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
 | 
			
		||||
ca.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
ca.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
ca.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
ca.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
ca.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
ca.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
ca.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
ca.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
ca.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
 | 
			
		||||
ca.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
ca.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
ca.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
ca.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
ca.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
ca.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
ca.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
ca.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
ca.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
ca.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
ca.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -295,14 +297,15 @@ dgst.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
dgst.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
dgst.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
dgst.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
dgst.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
dgst.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
dgst.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
dgst.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
dgst.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
dgst.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
dgst.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
dgst.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
dgst.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
dgst.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
dgst.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
dgst.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
dgst.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
dgst.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
dgst.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
dgst.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
dgst.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
dgst.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
dgst.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -314,14 +317,15 @@ dh.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
dh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
dh.o: ../include/openssl/des.h ../include/openssl/dh.h ../include/openssl/dsa.h
 | 
			
		||||
dh.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
 | 
			
		||||
dh.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
dh.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
dh.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
dh.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
dh.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
dh.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
dh.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
dh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
dh.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
 | 
			
		||||
dh.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
dh.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
dh.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
dh.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
dh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
dh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
dh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
dh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
dh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
dh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
dh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -335,14 +339,15 @@ dsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
dsa.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
dsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
dsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
dsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
dsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
dsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
dsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
dsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
dsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
dsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
dsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
dsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
dsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
dsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
dsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
dsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
dsa.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
dsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
dsa.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
dsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
dsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
dsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -355,14 +360,15 @@ dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
dsaparam.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
dsaparam.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
dsaparam.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
dsaparam.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
dsaparam.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
dsaparam.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
dsaparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
dsaparam.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
dsaparam.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
dsaparam.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
dsaparam.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
dsaparam.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
dsaparam.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
dsaparam.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
dsaparam.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
dsaparam.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
dsaparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -375,20 +381,20 @@ enc.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
enc.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
enc.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
enc.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
enc.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
enc.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
enc.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
enc.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
enc.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
enc.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
enc.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
enc.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
enc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
enc.o: ../include/openssl/sha.h ../include/openssl/stack.h
 | 
			
		||||
enc.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
 | 
			
		||||
enc.o: ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
enc.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
enc.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
enc.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
enc.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
enc.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
enc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
enc.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
enc.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
enc.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
enc.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
enc.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
 | 
			
		||||
enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
errstr.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 | 
			
		||||
errstr.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
 | 
			
		||||
errstr.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
@@ -419,20 +425,20 @@ gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
gendh.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
gendh.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
gendh.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
gendh.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
gendh.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
gendh.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
gendh.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
gendh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
gendh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
gendh.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
gendh.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
 | 
			
		||||
gendh.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
 | 
			
		||||
gendh.o: ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
gendh.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
gendh.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
gendh.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
gendh.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
gendh.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
gendh.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
gendh.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
gendh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
gendh.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
gendh.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
gendh.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
gendh.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
gendh.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
 | 
			
		||||
gendh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
gendsa.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 | 
			
		||||
gendsa.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
 | 
			
		||||
gendsa.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
@@ -440,14 +446,15 @@ gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
gendsa.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
gendsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
gendsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
gendsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
gendsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
gendsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
gendsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
gendsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
gendsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
gendsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
gendsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
gendsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
gendsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
gendsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
gendsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
gendsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
gendsa.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
gendsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
gendsa.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
gendsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
gendsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
gendsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -460,14 +467,15 @@ genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
genrsa.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
genrsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
genrsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
genrsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
genrsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
genrsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
genrsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
genrsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
genrsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
genrsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
genrsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
genrsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
genrsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
genrsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
genrsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
genrsa.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
genrsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
genrsa.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
genrsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
genrsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
genrsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -544,14 +552,15 @@ pkcs12.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
pkcs12.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
pkcs12.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
pkcs12.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
pkcs12.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
pkcs12.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
pkcs12.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
pkcs12.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
pkcs12.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
pkcs12.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
pkcs12.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
pkcs12.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
 | 
			
		||||
pkcs12.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
pkcs12.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
pkcs12.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
pkcs12.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
pkcs12.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
pkcs12.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
pkcs12.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
pkcs12.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
 | 
			
		||||
pkcs12.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
pkcs12.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
pkcs12.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
pkcs12.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -565,14 +574,15 @@ pkcs7.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
pkcs7.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
pkcs7.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
pkcs7.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
pkcs7.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
pkcs7.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
pkcs7.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
pkcs7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
pkcs7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
pkcs7.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
pkcs7.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
pkcs7.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
pkcs7.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
pkcs7.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
pkcs7.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
pkcs7.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
pkcs7.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
pkcs7.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
pkcs7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -585,14 +595,15 @@ pkcs8.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
pkcs8.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
pkcs8.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
pkcs8.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
pkcs8.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
pkcs8.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
pkcs8.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
pkcs8.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
pkcs8.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
pkcs8.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
pkcs8.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
pkcs8.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
 | 
			
		||||
pkcs8.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
pkcs8.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
pkcs8.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
pkcs8.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
pkcs8.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
pkcs8.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
pkcs8.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
pkcs8.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
 | 
			
		||||
pkcs8.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
pkcs8.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
pkcs8.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
pkcs8.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -606,19 +617,19 @@ rand.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
rand.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
rand.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
rand.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
rand.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
rand.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
rand.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
rand.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
rand.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
rand.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
rand.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
rand.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
 | 
			
		||||
rand.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
 | 
			
		||||
rand.o: ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
rand.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
rand.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
rand.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
rand.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
rand.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
rand.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
rand.o: ../include/openssl/opensslv.h ../include/openssl/pkcs7.h
 | 
			
		||||
rand.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
rand.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
rand.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
rand.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
rand.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
 | 
			
		||||
rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h apps.h
 | 
			
		||||
req.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 | 
			
		||||
req.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
 | 
			
		||||
req.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
@@ -626,14 +637,15 @@ req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
req.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
req.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
req.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
req.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
req.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
req.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
req.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
req.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
req.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
req.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
req.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
req.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
req.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
req.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
req.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
req.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
req.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
req.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
req.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
req.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
req.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
req.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -647,14 +659,15 @@ rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
rsa.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
rsa.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
rsa.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
rsa.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
rsa.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
rsa.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
rsa.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
rsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
rsa.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
rsa.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
rsa.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
rsa.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
rsa.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
rsa.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
rsa.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
rsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
rsa.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
rsa.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
rsa.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -667,14 +680,15 @@ rsautl.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
rsautl.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
rsautl.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
rsautl.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
rsautl.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
rsautl.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
rsautl.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
rsautl.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
rsautl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
rsautl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
rsautl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
rsautl.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
rsautl.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
rsautl.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
rsautl.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
rsautl.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
rsautl.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
rsautl.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
rsautl.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
rsautl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
rsautl.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
rsautl.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
rsautl.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
rsautl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -710,14 +724,15 @@ s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
 | 
			
		||||
s_client.o: ../include/openssl/crypto.h ../include/openssl/des.h
 | 
			
		||||
s_client.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 | 
			
		||||
s_client.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
 | 
			
		||||
s_client.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
s_client.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
s_client.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
s_client.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
s_client.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
s_client.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
s_client.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
s_client.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
s_client.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
 | 
			
		||||
s_client.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
s_client.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
s_client.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
s_client.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
s_client.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
s_client.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
s_client.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
s_client.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
s_client.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
s_client.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -734,14 +749,15 @@ s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
 | 
			
		||||
s_server.o: ../include/openssl/crypto.h ../include/openssl/des.h
 | 
			
		||||
s_server.o: ../include/openssl/dh.h ../include/openssl/dsa.h
 | 
			
		||||
s_server.o: ../include/openssl/e_os.h ../include/openssl/e_os.h
 | 
			
		||||
s_server.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
s_server.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
s_server.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
s_server.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
s_server.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
s_server.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
s_server.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
s_server.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
 | 
			
		||||
s_server.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
s_server.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
s_server.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
s_server.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
s_server.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
s_server.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
s_server.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
s_server.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
@@ -828,14 +844,15 @@ smime.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
smime.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
smime.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
smime.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
smime.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
smime.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
smime.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
smime.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
smime.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
smime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
smime.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
smime.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
smime.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
smime.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
smime.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
smime.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
smime.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
smime.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
smime.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
smime.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
smime.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
smime.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
smime.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
smime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -848,20 +865,20 @@ speed.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
speed.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
speed.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
speed.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
speed.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
speed.o: ../include/openssl/hmac.h ../include/openssl/idea.h
 | 
			
		||||
speed.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
speed.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
speed.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
speed.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
speed.o: ../include/openssl/opensslv.h ../include/openssl/pkcs7.h
 | 
			
		||||
speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
speed.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
speed.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
speed.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
 | 
			
		||||
speed.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h ./testdsa.h
 | 
			
		||||
speed.o: ./testrsa.h apps.h
 | 
			
		||||
speed.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
speed.o: ../include/openssl/evp.h ../include/openssl/hmac.h
 | 
			
		||||
speed.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
speed.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
speed.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
speed.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
speed.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
speed.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
 | 
			
		||||
speed.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
 | 
			
		||||
speed.o: ../include/openssl/rc5.h ../include/openssl/ripemd.h
 | 
			
		||||
speed.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
 | 
			
		||||
speed.o: ../include/openssl/sha.h ../include/openssl/stack.h
 | 
			
		||||
speed.o: ../include/openssl/symhacks.h ../include/openssl/x509.h
 | 
			
		||||
speed.o: ../include/openssl/x509_vfy.h ./testdsa.h ./testrsa.h apps.h
 | 
			
		||||
spkac.o: ../include/openssl/asn1.h ../include/openssl/bio.h
 | 
			
		||||
spkac.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
 | 
			
		||||
spkac.o: ../include/openssl/buffer.h ../include/openssl/cast.h
 | 
			
		||||
@@ -869,14 +886,15 @@ spkac.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
spkac.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
spkac.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
spkac.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
spkac.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
spkac.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
spkac.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
spkac.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
spkac.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
spkac.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
spkac.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
spkac.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
spkac.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
spkac.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
spkac.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
spkac.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
spkac.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
spkac.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
spkac.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
spkac.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
spkac.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
spkac.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
spkac.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
spkac.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -889,14 +907,15 @@ verify.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
verify.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
verify.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
verify.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
verify.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
verify.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
verify.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
verify.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
verify.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
verify.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
verify.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
verify.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
verify.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
verify.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
verify.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
verify.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
verify.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
verify.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
verify.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
verify.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
verify.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
verify.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
verify.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
verify.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
@@ -929,14 +948,15 @@ x509.o: ../include/openssl/conf.h ../include/openssl/crypto.h
 | 
			
		||||
x509.o: ../include/openssl/des.h ../include/openssl/dh.h
 | 
			
		||||
x509.o: ../include/openssl/dsa.h ../include/openssl/e_os.h
 | 
			
		||||
x509.o: ../include/openssl/e_os.h ../include/openssl/e_os2.h
 | 
			
		||||
x509.o: ../include/openssl/err.h ../include/openssl/evp.h
 | 
			
		||||
x509.o: ../include/openssl/idea.h ../include/openssl/lhash.h
 | 
			
		||||
x509.o: ../include/openssl/md2.h ../include/openssl/md4.h
 | 
			
		||||
x509.o: ../include/openssl/md5.h ../include/openssl/mdc2.h
 | 
			
		||||
x509.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
 | 
			
		||||
x509.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
x509.o: ../include/openssl/pem.h ../include/openssl/pem2.h
 | 
			
		||||
x509.o: ../include/openssl/pkcs7.h ../include/openssl/rc2.h
 | 
			
		||||
x509.o: ../include/openssl/engine.h ../include/openssl/err.h
 | 
			
		||||
x509.o: ../include/openssl/evp.h ../include/openssl/idea.h
 | 
			
		||||
x509.o: ../include/openssl/lhash.h ../include/openssl/md2.h
 | 
			
		||||
x509.o: ../include/openssl/md4.h ../include/openssl/md5.h
 | 
			
		||||
x509.o: ../include/openssl/mdc2.h ../include/openssl/obj_mac.h
 | 
			
		||||
x509.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
 | 
			
		||||
x509.o: ../include/openssl/opensslv.h ../include/openssl/pem.h
 | 
			
		||||
x509.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
 | 
			
		||||
x509.o: ../include/openssl/rand.h ../include/openssl/rc2.h
 | 
			
		||||
x509.o: ../include/openssl/rc4.h ../include/openssl/rc5.h
 | 
			
		||||
x509.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
 | 
			
		||||
x509.o: ../include/openssl/safestack.h ../include/openssl/sha.h
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,9 @@ long app_RAND_load_files(char *name)
 | 
			
		||||
		if (*n == '\0') break;
 | 
			
		||||
 | 
			
		||||
		egd=RAND_egd(n);
 | 
			
		||||
		if (egd > 0) tot+=egd;
 | 
			
		||||
		if (egd > 0)
 | 
			
		||||
			tot+=egd;
 | 
			
		||||
		else
 | 
			
		||||
			tot+=RAND_load_file(n,-1);
 | 
			
		||||
		if (last) break;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -170,6 +170,8 @@ int str2fmt(char *s)
 | 
			
		||||
		|| (strcmp(s,"PKCS12") == 0) || (strcmp(s,"pkcs12") == 0)
 | 
			
		||||
		|| (strcmp(s,"P12") == 0) || (strcmp(s,"p12") == 0))
 | 
			
		||||
		return(FORMAT_PKCS12);
 | 
			
		||||
	else if ((*s == 'E') || (*s == 'e'))
 | 
			
		||||
		return(FORMAT_ENGINE);
 | 
			
		||||
	else
 | 
			
		||||
		return(FORMAT_UNDEF);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -162,6 +162,8 @@ STACK_OF(X509) *load_certs(BIO *err, char *file, int format);
 | 
			
		||||
#define FORMAT_NETSCAPE 4
 | 
			
		||||
#define FORMAT_PKCS12   5
 | 
			
		||||
#define FORMAT_SMIME    6
 | 
			
		||||
/* Since this is currently inofficial, let's give it a high number */
 | 
			
		||||
#define FORMAT_ENGINE   127
 | 
			
		||||
 | 
			
		||||
#define NETSCAPE_CERT_HDR	"certificate"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
05
 | 
			
		||||
07
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/ca.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/ca.c
									
									
									
									
									
								
							@@ -74,6 +74,7 @@
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#ifndef W_OK
 | 
			
		||||
#  ifdef VMS
 | 
			
		||||
@@ -167,6 +168,7 @@ static char *ca_usage[]={
 | 
			
		||||
" -revoke file    - Revoke a certificate (given in file)\n",
 | 
			
		||||
" -extensions ..  - Extension section (override value in config file)\n",
 | 
			
		||||
" -crlexts ..     - CRL extension section (override value in config file)\n",
 | 
			
		||||
" -engine e       - use engine e, possibly a hardware device.\n",
 | 
			
		||||
NULL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -216,6 +218,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	char *key=NULL,*passargin=NULL;
 | 
			
		||||
	int total=0;
 | 
			
		||||
	int total_done=0;
 | 
			
		||||
@@ -268,6 +271,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#define BSIZE 256
 | 
			
		||||
	MS_STATIC char buf[3][BSIZE];
 | 
			
		||||
	char *randfile=NULL;
 | 
			
		||||
	char *engine = NULL;
 | 
			
		||||
 | 
			
		||||
#ifdef EFENCE
 | 
			
		||||
EF_PROTECT_FREE=1;
 | 
			
		||||
@@ -419,6 +423,11 @@ EF_ALIGNMENT=0;
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			crl_ext= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
bad:
 | 
			
		||||
@@ -439,6 +448,24 @@ bad:
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	/*****************************************************************/
 | 
			
		||||
	if (configfile == NULL) configfile = getenv("OPENSSL_CONF");
 | 
			
		||||
	if (configfile == NULL) configfile = getenv("SSLEAY_CONF");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/dgst.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/dgst.c
									
									
									
									
									
								
							@@ -66,6 +66,7 @@
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef BUFSIZE
 | 
			
		||||
#define BUFSIZE	1024*8
 | 
			
		||||
@@ -80,6 +81,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	unsigned char *buf=NULL;
 | 
			
		||||
	int i,err=0;
 | 
			
		||||
	const EVP_MD *md=NULL,*m;
 | 
			
		||||
@@ -97,6 +99,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	EVP_PKEY *sigkey = NULL;
 | 
			
		||||
	unsigned char *sigbuf = NULL;
 | 
			
		||||
	int siglen = 0;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -154,6 +157,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) break;
 | 
			
		||||
			sigfile=*(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) break;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-hex") == 0)
 | 
			
		||||
			out_bin = 0;
 | 
			
		||||
		else if (strcmp(*argv,"-binary") == 0)
 | 
			
		||||
@@ -190,6 +198,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_printf(bio_err,"-prverify file  verify a signature using private key in file\n");
 | 
			
		||||
		BIO_printf(bio_err,"-signature file signature to verify\n");
 | 
			
		||||
		BIO_printf(bio_err,"-binary         output in binary form\n");
 | 
			
		||||
		BIO_printf(bio_err,"-engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
 | 
			
		||||
		BIO_printf(bio_err,"-%3s to use the %s message digest algorithm (default)\n",
 | 
			
		||||
			LN_md5,LN_md5);
 | 
			
		||||
@@ -209,6 +218,24 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	in=BIO_new(BIO_s_file());
 | 
			
		||||
	bmd=BIO_new(BIO_f_md());
 | 
			
		||||
	if (debug)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/dh.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/dh.c
									
									
									
									
									
								
							@@ -69,6 +69,7 @@
 | 
			
		||||
#include <openssl/dh.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	dh_main
 | 
			
		||||
@@ -87,11 +88,12 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	DH *dh=NULL;
 | 
			
		||||
	int i,badops=0,text=0;
 | 
			
		||||
	BIO *in=NULL,*out=NULL;
 | 
			
		||||
	int informat,outformat,check=0,noout=0,C=0,ret=1;
 | 
			
		||||
	char *infile,*outfile,*prog;
 | 
			
		||||
	char *infile,*outfile,*prog,*engine;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -99,6 +101,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		if ((bio_err=BIO_new(BIO_s_file())) != NULL)
 | 
			
		||||
			BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 | 
			
		||||
 | 
			
		||||
	engine=NULL;
 | 
			
		||||
	infile=NULL;
 | 
			
		||||
	outfile=NULL;
 | 
			
		||||
	informat=FORMAT_PEM;
 | 
			
		||||
@@ -129,6 +132,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			outfile= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-check") == 0)
 | 
			
		||||
			check=1;
 | 
			
		||||
		else if (strcmp(*argv,"-text") == 0)
 | 
			
		||||
@@ -160,11 +168,30 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -text         print a text form of the DH parameters\n");
 | 
			
		||||
		BIO_printf(bio_err," -C            Output C code\n");
 | 
			
		||||
		BIO_printf(bio_err," -noout        no output\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e     use engine e, possibly a hardware device.\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	in=BIO_new(BIO_s_file());
 | 
			
		||||
	out=BIO_new(BIO_s_file());
 | 
			
		||||
	if ((in == NULL) || (out == NULL))
 | 
			
		||||
 
 | 
			
		||||
@@ -121,6 +121,7 @@
 | 
			
		||||
#include <openssl/dh.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
@@ -148,6 +149,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	DH *dh=NULL;
 | 
			
		||||
	int i,badops=0,text=0;
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
@@ -156,7 +158,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	BIO *in=NULL,*out=NULL;
 | 
			
		||||
	int informat,outformat,check=0,noout=0,C=0,ret=1;
 | 
			
		||||
	char *infile,*outfile,*prog;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	char *inrand=NULL,*engine=NULL;
 | 
			
		||||
	int num = 0, g = 0;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
@@ -195,6 +197,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			outfile= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-check") == 0)
 | 
			
		||||
			check=1;
 | 
			
		||||
		else if (strcmp(*argv,"-text") == 0)
 | 
			
		||||
@@ -240,6 +247,7 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -2            generate parameters using  2 as the generator value\n");
 | 
			
		||||
		BIO_printf(bio_err," -5            generate parameters using  5 as the generator value\n");
 | 
			
		||||
		BIO_printf(bio_err," numbits       number of bits in to generate (default 512)\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e     use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err,"               - load the file (or the files in the directory) into\n");
 | 
			
		||||
		BIO_printf(bio_err,"               the random number generator\n");
 | 
			
		||||
@@ -249,6 +257,24 @@ bad:
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (g && !num)
 | 
			
		||||
		num = DEFBITS;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/dsa.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/dsa.c
									
									
									
									
									
								
							@@ -68,6 +68,7 @@
 | 
			
		||||
#include <openssl/evp.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	dsa_main
 | 
			
		||||
@@ -87,6 +88,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	DSA *dsa=NULL;
 | 
			
		||||
	int i,badops=0;
 | 
			
		||||
@@ -94,7 +96,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	BIO *in=NULL,*out=NULL;
 | 
			
		||||
	int informat,outformat,text=0,noout=0;
 | 
			
		||||
	int pubin = 0, pubout = 0;
 | 
			
		||||
	char *infile,*outfile,*prog;
 | 
			
		||||
	char *infile,*outfile,*prog,*engine;
 | 
			
		||||
	char *passargin = NULL, *passargout = NULL;
 | 
			
		||||
	char *passin = NULL, *passout = NULL;
 | 
			
		||||
	int modulus=0;
 | 
			
		||||
@@ -105,6 +107,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		if ((bio_err=BIO_new(BIO_s_file())) != NULL)
 | 
			
		||||
			BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 | 
			
		||||
 | 
			
		||||
	engine=NULL;
 | 
			
		||||
	infile=NULL;
 | 
			
		||||
	outfile=NULL;
 | 
			
		||||
	informat=FORMAT_PEM;
 | 
			
		||||
@@ -145,6 +148,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			passargout= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-noout") == 0)
 | 
			
		||||
			noout=1;
 | 
			
		||||
		else if (strcmp(*argv,"-text") == 0)
 | 
			
		||||
@@ -176,6 +184,7 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -passin arg     input file pass phrase source\n");
 | 
			
		||||
		BIO_printf(bio_err," -out arg        output file\n");
 | 
			
		||||
		BIO_printf(bio_err," -passout arg    output file pass phrase source\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -des            encrypt PEM output with cbc des\n");
 | 
			
		||||
		BIO_printf(bio_err," -des3           encrypt PEM output with ede cbc des using 168 bit key\n");
 | 
			
		||||
#ifndef NO_IDEA
 | 
			
		||||
@@ -189,6 +198,24 @@ bad:
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
 | 
			
		||||
		BIO_printf(bio_err, "Error getting passwords\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,7 @@
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	dsaparam_main
 | 
			
		||||
@@ -90,11 +91,12 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	DSA *dsa=NULL;
 | 
			
		||||
	int i,badops=0,text=0;
 | 
			
		||||
	BIO *in=NULL,*out=NULL;
 | 
			
		||||
	int informat,outformat,noout=0,C=0,ret=1;
 | 
			
		||||
	char *infile,*outfile,*prog,*inrand=NULL;
 | 
			
		||||
	char *infile,*outfile,*prog,*inrand=NULL,*engine=NULL;
 | 
			
		||||
	int numbits= -1,num,genkey=0;
 | 
			
		||||
	int need_rand=0;
 | 
			
		||||
 | 
			
		||||
@@ -311,7 +313,7 @@ bad:
 | 
			
		||||
		printf("\tdsa->g=BN_bin2bn(dsa%d_g,sizeof(dsa%d_g),NULL);\n",
 | 
			
		||||
			bits_p,bits_p);
 | 
			
		||||
		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");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/enc.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/enc.c
									
									
									
									
									
								
							@@ -70,6 +70,7 @@
 | 
			
		||||
#include <openssl/md5.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
int set_hex(char *in,unsigned char *out,int size);
 | 
			
		||||
#undef SIZE
 | 
			
		||||
@@ -84,6 +85,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	static const char magic[]="Salted__";
 | 
			
		||||
	char mbuf[8];	/* should be 1 smaller than magic */
 | 
			
		||||
	char *strbuf=NULL;
 | 
			
		||||
@@ -101,6 +103,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	BIO *in=NULL,*out=NULL,*b64=NULL,*benc=NULL,*rbio=NULL,*wbio=NULL;
 | 
			
		||||
#define PROG_NAME_SIZE  16
 | 
			
		||||
	char pname[PROG_NAME_SIZE];
 | 
			
		||||
	char *engine = NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -141,6 +144,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			passarg= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if	(strcmp(*argv,"-d") == 0)
 | 
			
		||||
			enc=0;
 | 
			
		||||
		else if	(strcmp(*argv,"-p") == 0)
 | 
			
		||||
@@ -241,6 +249,7 @@ bad:
 | 
			
		||||
			BIO_printf(bio_err,"%-14s key/iv in hex is the next argument\n","-K/-iv");
 | 
			
		||||
			BIO_printf(bio_err,"%-14s print the iv/key (then exit if -P)\n","-[pP]");
 | 
			
		||||
			BIO_printf(bio_err,"%-14s buffer size\n","-bufsize <n>");
 | 
			
		||||
			BIO_printf(bio_err,"%-14s use engine e, possibly a hardware device.\n","-engine e");
 | 
			
		||||
 | 
			
		||||
			BIO_printf(bio_err,"Cipher Types\n");
 | 
			
		||||
			BIO_printf(bio_err,"des     : 56 bit key DES encryption\n");
 | 
			
		||||
@@ -314,6 +323,24 @@ bad:
 | 
			
		||||
		argv++;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (bufsize != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		unsigned long n;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										33
									
								
								apps/gendh.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								apps/gendh.c
									
									
									
									
									
								
							@@ -70,6 +70,7 @@
 | 
			
		||||
#include <openssl/dh.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define DEFBITS	512
 | 
			
		||||
#undef PROG
 | 
			
		||||
@@ -81,11 +82,13 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	DH *dh=NULL;
 | 
			
		||||
	int ret=1,num=DEFBITS;
 | 
			
		||||
	int g=2;
 | 
			
		||||
	char *outfile=NULL;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
	BIO *out=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
@@ -110,6 +113,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			g=3; */
 | 
			
		||||
		else if (strcmp(*argv,"-5") == 0)
 | 
			
		||||
			g=5;
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
@@ -125,15 +133,34 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
bad:
 | 
			
		||||
		BIO_printf(bio_err,"usage: gendh [args] [numbits]\n");
 | 
			
		||||
		BIO_printf(bio_err," -out file - output the key to 'file\n");
 | 
			
		||||
		BIO_printf(bio_err," -2    use 2 as the generator value\n");
 | 
			
		||||
	/*	BIO_printf(bio_err," -3    use 3 as the generator value\n"); */
 | 
			
		||||
		BIO_printf(bio_err," -5    use 5 as the generator value\n");
 | 
			
		||||
		BIO_printf(bio_err," -2        - use 2 as the generator value\n");
 | 
			
		||||
	/*	BIO_printf(bio_err," -3        - use 3 as the generator value\n"); */
 | 
			
		||||
		BIO_printf(bio_err," -5        - use 5 as the generator value\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e - use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err,"           - load the file (or the files in the directory) into\n");
 | 
			
		||||
		BIO_printf(bio_err,"             the random number generator\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	out=BIO_new(BIO_s_file());
 | 
			
		||||
	if (out == NULL)
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,7 @@
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define DEFBITS	512
 | 
			
		||||
#undef PROG
 | 
			
		||||
@@ -77,6 +78,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	DSA *dsa=NULL;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	char *outfile=NULL;
 | 
			
		||||
@@ -84,6 +86,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *passargout = NULL, *passout = NULL;
 | 
			
		||||
	BIO *out=NULL,*in=NULL;
 | 
			
		||||
	EVP_CIPHER *enc=NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -106,6 +109,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			passargout= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
@@ -145,6 +153,7 @@ bad:
 | 
			
		||||
#ifndef NO_IDEA
 | 
			
		||||
		BIO_printf(bio_err," -idea     - encrypt the generated key with IDEA in cbc mode\n");
 | 
			
		||||
#endif
 | 
			
		||||
		BIO_printf(bio_err," -engine e - use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err,"           - load the file (or the files in the directory) into\n");
 | 
			
		||||
		BIO_printf(bio_err,"             the random number generator\n");
 | 
			
		||||
@@ -153,6 +162,24 @@ bad:
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, NULL, passargout, NULL, &passout)) {
 | 
			
		||||
		BIO_printf(bio_err, "Error getting password\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,7 @@
 | 
			
		||||
#include <openssl/evp.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define DEFBITS	512
 | 
			
		||||
#undef PROG
 | 
			
		||||
@@ -80,6 +81,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	RSA *rsa=NULL;
 | 
			
		||||
	int i,num=DEFBITS;
 | 
			
		||||
@@ -88,6 +90,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	unsigned long f4=RSA_F4;
 | 
			
		||||
	char *outfile=NULL;
 | 
			
		||||
	char *passargout = NULL, *passout = NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	BIO *out=NULL;
 | 
			
		||||
 | 
			
		||||
@@ -116,6 +119,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			f4=3;
 | 
			
		||||
		else if (strcmp(*argv,"-F4") == 0 || strcmp(*argv,"-f4") == 0)
 | 
			
		||||
			f4=RSA_F4;
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
@@ -154,6 +162,7 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -passout arg    output file pass phrase source\n");
 | 
			
		||||
		BIO_printf(bio_err," -f4             use F4 (0x10001) for the E value\n");
 | 
			
		||||
		BIO_printf(bio_err," -3              use 3 for the E value\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err,"                 load the file (or the files in the directory) into\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 the random number generator\n");
 | 
			
		||||
@@ -167,6 +176,24 @@ bad:
 | 
			
		||||
		goto err;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (outfile == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_fp(out,stdout,BIO_NOCLOSE);
 | 
			
		||||
@@ -186,7 +213,8 @@ bad:
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL)
 | 
			
		||||
	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");
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -272,6 +272,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
		while (!done);
 | 
			
		||||
		}
 | 
			
		||||
	ret = 0;
 | 
			
		||||
 | 
			
		||||
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, salt, 8);
 | 
			
		||||
	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);
 | 
			
		||||
	assert(salt_len <= 8);
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
01
 | 
			
		||||
07
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,7 @@
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/pkcs12.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define PROG pkcs12_main
 | 
			
		||||
 | 
			
		||||
@@ -92,6 +93,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
    ENGINE *e = NULL;
 | 
			
		||||
    char *infile=NULL, *outfile=NULL, *keyname = NULL;	
 | 
			
		||||
    char *certfile=NULL;
 | 
			
		||||
    BIO *in=NULL, *out = NULL, *inkey = NULL, *certsin = NULL;
 | 
			
		||||
@@ -118,6 +120,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
    char *passin = NULL, *passout = NULL;
 | 
			
		||||
    char *inrand = NULL;
 | 
			
		||||
    char *CApath = NULL, *CAfile = NULL;
 | 
			
		||||
    char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
    apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -236,6 +239,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			args++;	
 | 
			
		||||
			CAfile = *args;
 | 
			
		||||
		    } else badarg = 1;
 | 
			
		||||
		} else if (!strcmp(*args,"-engine")) {
 | 
			
		||||
		    if (args[1]) {
 | 
			
		||||
			args++;	
 | 
			
		||||
			engine = *args;
 | 
			
		||||
		    } else badarg = 1;
 | 
			
		||||
		} else badarg = 1;
 | 
			
		||||
 | 
			
		||||
	} else badarg = 1;
 | 
			
		||||
@@ -279,12 +287,27 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	BIO_printf (bio_err, "-password p   set import/export password source\n");
 | 
			
		||||
	BIO_printf (bio_err, "-passin p     input file pass phrase source\n");
 | 
			
		||||
	BIO_printf (bio_err, "-passout p    output file pass phrase source\n");
 | 
			
		||||
	BIO_printf (bio_err, "-engine e     use engine e, possibly a hardware device.\n");
 | 
			
		||||
	BIO_printf(bio_err,  "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
	BIO_printf(bio_err,  "              load the file (or the files in the directory) into\n");
 | 
			
		||||
	BIO_printf(bio_err,  "              the random number generator\n");
 | 
			
		||||
    	goto end;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (engine != NULL) {
 | 
			
		||||
	if((e = ENGINE_by_id(engine)) == NULL) {
 | 
			
		||||
	    BIO_printf(bio_err,"invalid engine \"%s\"\n", engine);
 | 
			
		||||
	    goto end;
 | 
			
		||||
	}
 | 
			
		||||
	if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {
 | 
			
		||||
	    BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
	    goto end;
 | 
			
		||||
	}
 | 
			
		||||
	BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
	/* Free our "structural" reference. */
 | 
			
		||||
	ENGINE_free(e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if(passarg) {
 | 
			
		||||
	if(export_cert) passargout = passarg;
 | 
			
		||||
	else passargin = passarg;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/pkcs7.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/pkcs7.c
									
									
									
									
									
								
							@@ -67,6 +67,7 @@
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pkcs7.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	pkcs7_main
 | 
			
		||||
@@ -82,6 +83,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	PKCS7 *p7=NULL;
 | 
			
		||||
	int i,badops=0;
 | 
			
		||||
	BIO *in=NULL,*out=NULL;
 | 
			
		||||
@@ -89,6 +91,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *infile,*outfile,*prog;
 | 
			
		||||
	int print_certs=0,text=0,noout=0;
 | 
			
		||||
	int ret=0;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -132,6 +135,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			text=1;
 | 
			
		||||
		else if (strcmp(*argv,"-print_certs") == 0)
 | 
			
		||||
			print_certs=1;
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"unknown option %s\n",*argv);
 | 
			
		||||
@@ -154,11 +162,30 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -print_certs  print any certs or crl in the input\n");
 | 
			
		||||
		BIO_printf(bio_err," -text         print full details of certificates\n");
 | 
			
		||||
		BIO_printf(bio_err," -noout        don't output encoded data\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e     use engine e, possibly a hardware device.\n");
 | 
			
		||||
		EXIT(1);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	in=BIO_new(BIO_s_file());
 | 
			
		||||
	out=BIO_new(BIO_s_file());
 | 
			
		||||
	if ((in == NULL) || (out == NULL))
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								apps/pkcs8.c
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								apps/pkcs8.c
									
									
									
									
									
								
							@@ -62,6 +62,7 @@
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/evp.h>
 | 
			
		||||
#include <openssl/pkcs12.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#include "apps.h"
 | 
			
		||||
#define PROG pkcs8_main
 | 
			
		||||
@@ -70,6 +71,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	char **args, *infile = NULL, *outfile = NULL;
 | 
			
		||||
	char *passargin = NULL, *passargout = NULL;
 | 
			
		||||
	BIO *in = NULL, *out = NULL;
 | 
			
		||||
@@ -85,9 +87,13 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	EVP_PKEY *pkey;
 | 
			
		||||
	char pass[50], *passin = NULL, *passout = NULL, *p8pass = NULL;
 | 
			
		||||
	int badarg = 0;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	if (bio_err == NULL) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
 | 
			
		||||
 | 
			
		||||
	informat=FORMAT_PEM;
 | 
			
		||||
	outformat=FORMAT_PEM;
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
	OpenSSL_add_all_algorithms();
 | 
			
		||||
	args = argv + 1;
 | 
			
		||||
@@ -138,6 +144,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (!args[1]) goto bad;
 | 
			
		||||
			passargout= *(++args);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*args,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (!args[1]) goto bad;
 | 
			
		||||
			engine= *(++args);
 | 
			
		||||
			}
 | 
			
		||||
		else if (!strcmp (*args, "-in")) {
 | 
			
		||||
			if (args[1]) {
 | 
			
		||||
				args++;
 | 
			
		||||
@@ -170,9 +181,28 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_printf(bio_err, "-nocrypt        use or expect unencrypted private key\n");
 | 
			
		||||
		BIO_printf(bio_err, "-v2 alg         use PKCS#5 v2.0 and cipher \"alg\"\n");
 | 
			
		||||
		BIO_printf(bio_err, "-v1 obj         use PKCS#5 v1.5 and cipher \"alg\"\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
		return (1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			return (1);
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			return (1);
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
 | 
			
		||||
		BIO_printf(bio_err, "Error getting passwords\n");
 | 
			
		||||
		return (1);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/rand.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/rand.c
									
									
									
									
									
								
							@@ -9,6 +9,7 @@
 | 
			
		||||
#include <openssl/bio.h>
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/rand.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG rand_main
 | 
			
		||||
@@ -23,6 +24,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int i, r, ret = 1;
 | 
			
		||||
	int badopt;
 | 
			
		||||
	char *outfile = NULL;
 | 
			
		||||
@@ -30,6 +32,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int base64 = 0;
 | 
			
		||||
	BIO *out = NULL;
 | 
			
		||||
	int num = -1;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -48,6 +51,13 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			else
 | 
			
		||||
				badopt = 1;
 | 
			
		||||
			}
 | 
			
		||||
		if (strcmp(argv[i], "-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if ((argv[i+1] != NULL) && (engine == NULL))
 | 
			
		||||
				engine = argv[++i];
 | 
			
		||||
			else
 | 
			
		||||
				badopt = 1;
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(argv[i], "-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if ((argv[i+1] != NULL) && (inrand == NULL))
 | 
			
		||||
@@ -85,11 +95,30 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_printf(bio_err, "Usage: rand [options] num\n");
 | 
			
		||||
		BIO_printf(bio_err, "where options are\n");
 | 
			
		||||
		BIO_printf(bio_err, "-out file             - write to file\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e             - use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err, "-rand file%cfile%c... - seed PRNG from files\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err, "-base64               - encode output\n");
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	app_RAND_load_file(NULL, bio_err, (inrand != NULL));
 | 
			
		||||
	if (inrand != NULL)
 | 
			
		||||
		BIO_printf(bio_err,"%ld semi-random bytes loaded\n",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								apps/req.c
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								apps/req.c
									
									
									
									
									
								
							@@ -73,6 +73,7 @@
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define SECTION		"req"
 | 
			
		||||
 | 
			
		||||
@@ -140,6 +141,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
	DSA *dsa_params=NULL;
 | 
			
		||||
#endif
 | 
			
		||||
@@ -152,6 +154,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int informat,outformat,verify=0,noout=0,text=0,keyform=FORMAT_PEM;
 | 
			
		||||
	int nodes=0,kludge=0,newhdr=0;
 | 
			
		||||
	char *infile,*outfile,*prog,*keyfile=NULL,*template=NULL,*keyout=NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
	char *extensions = NULL;
 | 
			
		||||
	char *req_exts = NULL;
 | 
			
		||||
	EVP_CIPHER *cipher=NULL;
 | 
			
		||||
@@ -195,6 +198,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			outformat=str2fmt(*(++argv));
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-key") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
@@ -375,6 +383,7 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -verify        verify signature on REQ\n");
 | 
			
		||||
		BIO_printf(bio_err," -modulus       RSA modulus\n");
 | 
			
		||||
		BIO_printf(bio_err," -nodes         don't encrypt the output key\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e      use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err," -key file	use the private key contained in file\n");
 | 
			
		||||
		BIO_printf(bio_err," -keyform arg   key file format\n");
 | 
			
		||||
		BIO_printf(bio_err," -keyout arg    file to send the key to\n");
 | 
			
		||||
@@ -522,7 +531,36 @@ bad:
 | 
			
		||||
	if ((in == NULL) || (out == NULL))
 | 
			
		||||
		goto end;
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (keyfile != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if (keyform == FORMAT_ENGINE)
 | 
			
		||||
			{
 | 
			
		||||
			if (!e)
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"no engine specified\n");
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			pkey = ENGINE_load_private_key(e, keyfile, NULL);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			if (BIO_read_filename(in,keyfile) <= 0)
 | 
			
		||||
				{
 | 
			
		||||
@@ -534,13 +572,15 @@ bad:
 | 
			
		||||
				pkey=d2i_PrivateKey_bio(in,NULL);
 | 
			
		||||
			else if (keyform == FORMAT_PEM)
 | 
			
		||||
				{
 | 
			
		||||
			pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,passin);
 | 
			
		||||
				pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,
 | 
			
		||||
					passin);
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"bad input format specified for X509 request\n");
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		if (pkey == NULL)
 | 
			
		||||
			{
 | 
			
		||||
@@ -685,16 +725,15 @@ loop:
 | 
			
		||||
 | 
			
		||||
	if (newreq || x509)
 | 
			
		||||
		{
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
		if (pkey->type == EVP_PKEY_DSA)
 | 
			
		||||
			digest=EVP_dss1();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		if (pkey == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"you need to specify a private key\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
		if (pkey->type == EVP_PKEY_DSA)
 | 
			
		||||
			digest=EVP_dss1();
 | 
			
		||||
#endif
 | 
			
		||||
		if (req == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			req=X509_REQ_new();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/rsa.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/rsa.c
									
									
									
									
									
								
							@@ -68,6 +68,7 @@
 | 
			
		||||
#include <openssl/evp.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	rsa_main
 | 
			
		||||
@@ -90,6 +91,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	RSA *rsa=NULL;
 | 
			
		||||
	int i,badops=0, sgckey=0;
 | 
			
		||||
@@ -100,6 +102,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *infile,*outfile,*prog;
 | 
			
		||||
	char *passargin = NULL, *passargout = NULL;
 | 
			
		||||
	char *passin = NULL, *passout = NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
	int modulus=0;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
@@ -148,6 +151,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			passargout= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-sgckey") == 0)
 | 
			
		||||
			sgckey=1;
 | 
			
		||||
		else if (strcmp(*argv,"-pubin") == 0)
 | 
			
		||||
@@ -195,11 +203,30 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -check          verify key consistency\n");
 | 
			
		||||
		BIO_printf(bio_err," -pubin          expect a public key in input file\n");
 | 
			
		||||
		BIO_printf(bio_err," -pubout         output a public key\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ERR_load_crypto_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
 | 
			
		||||
		BIO_printf(bio_err, "Error getting passwords\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
 
 | 
			
		||||
@@ -55,10 +55,14 @@
 | 
			
		||||
 * Hudson (tjh@cryptsoft.com).
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef NO_RSA
 | 
			
		||||
 | 
			
		||||
#include "apps.h"
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#define RSA_SIGN 	1
 | 
			
		||||
#define RSA_VERIFY 	2
 | 
			
		||||
@@ -79,6 +83,7 @@ int MAIN(int argc, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	BIO *in = NULL, *out = NULL;
 | 
			
		||||
	char *infile = NULL, *outfile = NULL;
 | 
			
		||||
	char *keyfile = NULL;
 | 
			
		||||
@@ -92,6 +97,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	unsigned char *rsa_in = NULL, *rsa_out = NULL, pad;
 | 
			
		||||
	int rsa_inlen, rsa_outlen = 0;
 | 
			
		||||
	int keysize;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	int ret = 1;
 | 
			
		||||
 | 
			
		||||
@@ -114,6 +120,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		} else if(!strcmp(*argv, "-inkey")) {
 | 
			
		||||
			if (--argc < 1) badarg = 1;
 | 
			
		||||
			keyfile = *(++argv);
 | 
			
		||||
		} else if(!strcmp(*argv, "-engine")) {
 | 
			
		||||
			if (--argc < 1) badarg = 1;
 | 
			
		||||
			engine = *(++argv);
 | 
			
		||||
		} else if(!strcmp(*argv, "-pubin")) {
 | 
			
		||||
			key_type = KEY_PUBKEY;
 | 
			
		||||
		} else if(!strcmp(*argv, "-certin")) {
 | 
			
		||||
@@ -148,6 +157,24 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		goto end;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
/* FIXME: seed PRNG only if needed */
 | 
			
		||||
	app_RAND_load_file(NULL, bio_err, 0);
 | 
			
		||||
	
 | 
			
		||||
@@ -277,6 +304,7 @@ static void usage()
 | 
			
		||||
	BIO_printf(bio_err, "-inkey file     input key\n");
 | 
			
		||||
	BIO_printf(bio_err, "-pubin          input is an RSA public\n");
 | 
			
		||||
	BIO_printf(bio_err, "-certin         input is a certificate carrying an RSA public key\n");
 | 
			
		||||
	BIO_printf(bio_err, "-engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
	BIO_printf(bio_err, "-ssl            use SSL v2 padding\n");
 | 
			
		||||
	BIO_printf(bio_err, "-raw            use no padding\n");
 | 
			
		||||
	BIO_printf(bio_err, "-pkcs           use PKCS#1 v1.5 padding (default)\n");
 | 
			
		||||
@@ -288,3 +316,4 @@ static void usage()
 | 
			
		||||
	BIO_printf(bio_err, "-hexdump        hex dump output\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -79,6 +79,8 @@ typedef unsigned int u_int;
 | 
			
		||||
#include <openssl/ssl.h>
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/rand.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
#include "s_apps.h"
 | 
			
		||||
 | 
			
		||||
#ifdef WINDOWS
 | 
			
		||||
@@ -152,7 +154,8 @@ static void sc_usage(void)
 | 
			
		||||
	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,"                 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");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
int MAIN(int, char **);
 | 
			
		||||
@@ -179,6 +182,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int prexit = 0;
 | 
			
		||||
	SSL_METHOD *meth=NULL;
 | 
			
		||||
	BIO *sbio;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	char *engine_id=NULL;
 | 
			
		||||
	ENGINE *e=NULL;
 | 
			
		||||
#ifdef WINDOWS
 | 
			
		||||
	struct timeval tv;
 | 
			
		||||
#endif
 | 
			
		||||
@@ -316,6 +322,16 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		else if (strcmp(*argv,"-nbio") == 0)
 | 
			
		||||
			{ c_nbio=1; }
 | 
			
		||||
#endif
 | 
			
		||||
		else if (strcmp(*argv,"-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			inrand= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if	(strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine_id = *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"unknown option %s\n",*argv);
 | 
			
		||||
@@ -332,7 +348,14 @@ bad:
 | 
			
		||||
		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)
 | 
			
		||||
		{
 | 
			
		||||
@@ -349,6 +372,30 @@ bad:
 | 
			
		||||
 | 
			
		||||
	OpenSSL_add_ssl_algorithms();
 | 
			
		||||
	SSL_load_error_strings();
 | 
			
		||||
 | 
			
		||||
	if (engine_id != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine_id)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine\n");
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if (c_debug)
 | 
			
		||||
			{
 | 
			
		||||
			ENGINE_ctrl(e, ENGINE_CTRL_SET_LOGSTREAM,
 | 
			
		||||
				0, bio_err, 0);
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine_id);
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ctx=SSL_CTX_new(meth);
 | 
			
		||||
	if (ctx == NULL)
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -83,6 +83,8 @@ typedef unsigned int u_int;
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/ssl.h>
 | 
			
		||||
#include <openssl/rand.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
#include "s_apps.h"
 | 
			
		||||
 | 
			
		||||
#ifdef WINDOWS
 | 
			
		||||
@@ -176,6 +178,7 @@ static int s_debug=0;
 | 
			
		||||
static int s_quiet=0;
 | 
			
		||||
 | 
			
		||||
static int hack=0;
 | 
			
		||||
static char *engine_id=NULL;
 | 
			
		||||
 | 
			
		||||
#ifdef MONOLITH
 | 
			
		||||
static void s_server_init(void)
 | 
			
		||||
@@ -198,6 +201,7 @@ static void s_server_init(void)
 | 
			
		||||
	s_debug=0;
 | 
			
		||||
	s_quiet=0;
 | 
			
		||||
	hack=0;
 | 
			
		||||
	engine_id=NULL;
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -242,6 +246,8 @@ static void sv_usage(void)
 | 
			
		||||
	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 /<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");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
static int local_argc=0;
 | 
			
		||||
@@ -411,6 +417,9 @@ int MAIN(int argc, char *argv[])
 | 
			
		||||
	int no_tmp_rsa=0,no_dhe=0,nocert=0;
 | 
			
		||||
	int state=0;
 | 
			
		||||
	SSL_METHOD *meth=NULL;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	char *engine_id=NULL;
 | 
			
		||||
	ENGINE *e=NULL;
 | 
			
		||||
#ifndef NO_DH
 | 
			
		||||
	DH *dh=NULL;
 | 
			
		||||
#endif
 | 
			
		||||
@@ -565,6 +574,16 @@ int MAIN(int argc, char *argv[])
 | 
			
		||||
		else if	(strcmp(*argv,"-tls1") == 0)
 | 
			
		||||
			{ meth=TLSv1_server_method(); }
 | 
			
		||||
#endif
 | 
			
		||||
		else if (strcmp(*argv,"-rand") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			inrand= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine_id= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"unknown option %s\n",*argv);
 | 
			
		||||
@@ -581,7 +600,14 @@ bad:
 | 
			
		||||
		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)
 | 
			
		||||
		{
 | 
			
		||||
@@ -609,6 +635,29 @@ bad:
 | 
			
		||||
	SSL_load_error_strings();
 | 
			
		||||
	OpenSSL_add_ssl_algorithms();
 | 
			
		||||
 | 
			
		||||
	if (engine_id != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine_id)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine\n");
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if (s_debug)
 | 
			
		||||
			{
 | 
			
		||||
			ENGINE_ctrl(e, ENGINE_CTRL_SET_LOGSTREAM,
 | 
			
		||||
				0, bio_err, 0);
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine_id);
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ctx=SSL_CTX_new(meth);
 | 
			
		||||
	if (ctx == NULL)
 | 
			
		||||
		{
 | 
			
		||||
@@ -676,6 +725,7 @@ bad:
 | 
			
		||||
 | 
			
		||||
#ifndef NO_RSA
 | 
			
		||||
#if 1
 | 
			
		||||
	if (!no_tmp_rsa)
 | 
			
		||||
		SSL_CTX_set_tmp_rsa_callback(ctx,tmp_rsa_cb);
 | 
			
		||||
#else
 | 
			
		||||
	if (!no_tmp_rsa && SSL_CTX_need_tmp_RSA(ctx))
 | 
			
		||||
@@ -1336,15 +1386,29 @@ static int www_body(char *hostname, int s, unsigned char *context)
 | 
			
		||||
 | 
			
		||||
			/* skip the '/' */
 | 
			
		||||
			p= &(buf[5]);
 | 
			
		||||
			dot=0;
 | 
			
		||||
 | 
			
		||||
			dot = 1;
 | 
			
		||||
			for (e=p; *e != '\0'; e++)
 | 
			
		||||
				{
 | 
			
		||||
				if (e[0] == ' ') break;
 | 
			
		||||
				if (	(e[0] == '.') &&
 | 
			
		||||
					(strncmp(&(e[-1]),"/../",4) == 0))
 | 
			
		||||
					dot=1;
 | 
			
		||||
				}
 | 
			
		||||
				if (e[0] == ' ')
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
				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')
 | 
			
		||||
				{
 | 
			
		||||
@@ -1368,9 +1432,11 @@ static int www_body(char *hostname, int s, unsigned char *context)
 | 
			
		||||
				break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
			/* append if a directory lookup */
 | 
			
		||||
			if (e[-1] == '/')
 | 
			
		||||
				strcat(p,"index.html");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
			/* if a directory, do the index thang */
 | 
			
		||||
			if (stat(p,&st_buf) < 0)
 | 
			
		||||
@@ -1382,7 +1448,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
 | 
			
		||||
				}
 | 
			
		||||
			if (S_ISDIR(st_buf.st_mode))
 | 
			
		||||
				{
 | 
			
		||||
#if 0 /* must check buffer size */
 | 
			
		||||
				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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,17 @@
 | 
			
		||||
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)
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIB6TCCAVICAQQwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
 | 
			
		||||
MIIB6TCCAVICAQYwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV
 | 
			
		||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD
 | 
			
		||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTgwNjI5MjM1MjQwWhcNMDAwNjI4
 | 
			
		||||
MjM1MjQwWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
 | 
			
		||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNMDAxMDE2MjIzMTAzWhcNMDMwMTE0
 | 
			
		||||
MjIzMTAzWjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG
 | 
			
		||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl
 | 
			
		||||
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP
 | 
			
		||||
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2//
 | 
			
		||||
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCVvvfkGSe2GHgDFfmOua4Isjb9
 | 
			
		||||
JVhImWMASiOClkZlMESDJjsszg/6+d/W+8TrbObhazpl95FivXBVucbj9dudh7AO
 | 
			
		||||
IZu1h1MAPlyknc9Ud816vz3FejB4qqUoaXjnlkrIgEbr/un7jSS86WOe0hRhwHkJ
 | 
			
		||||
FUGcPZf9ND22Etc+AQ==
 | 
			
		||||
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQCT0grFQeZaqYb5EYfk20XixZV4
 | 
			
		||||
GmyAbXMftG1Eo7qGiMhYzRwGNWxEYojf5PZkYZXvSqZ/ZXHXa4g59jK/rJNnaVGM
 | 
			
		||||
k+xIX8mxQvlV0n5O9PIha5BX5teZnkHKgL8aKKLKW1BK7YTngsfSzzaeame5iKfz
 | 
			
		||||
itAE+OjGF+PFKbwX8Q==
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
-----BEGIN RSA PRIVATE KEY-----
 | 
			
		||||
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/smime.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/smime.c
									
									
									
									
									
								
							@@ -64,6 +64,7 @@
 | 
			
		||||
#include <openssl/crypto.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG smime_main
 | 
			
		||||
@@ -81,6 +82,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int operation = 0;
 | 
			
		||||
	int ret = 0;
 | 
			
		||||
	char **args;
 | 
			
		||||
@@ -103,8 +105,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *inrand = NULL;
 | 
			
		||||
	int need_rand = 0;
 | 
			
		||||
	int informat = FORMAT_SMIME, outformat = FORMAT_SMIME;
 | 
			
		||||
	args = argv + 1;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	args = argv + 1;
 | 
			
		||||
	ret = 1;
 | 
			
		||||
 | 
			
		||||
	while (!badarg && *args && *args[0] == '-') {
 | 
			
		||||
@@ -153,6 +156,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				inrand = *args;
 | 
			
		||||
			} else badarg = 1;
 | 
			
		||||
			need_rand = 1;
 | 
			
		||||
		} else if (!strcmp(*args,"-engine")) {
 | 
			
		||||
			if (args[1]) {
 | 
			
		||||
				args++;
 | 
			
		||||
				engine = *args;
 | 
			
		||||
			} else badarg = 1;
 | 
			
		||||
		} else if (!strcmp(*args,"-passin")) {
 | 
			
		||||
			if (args[1]) {
 | 
			
		||||
				args++;
 | 
			
		||||
@@ -290,6 +298,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_printf (bio_err, "-text          include or delete text MIME headers\n");
 | 
			
		||||
		BIO_printf (bio_err, "-CApath dir    trusted certificates directory\n");
 | 
			
		||||
		BIO_printf (bio_err, "-CAfile file   trusted certificates file\n");
 | 
			
		||||
		BIO_printf (bio_err, "-engine e      use engine e, possibly a hardware device.\n");
 | 
			
		||||
		BIO_printf(bio_err,  "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);
 | 
			
		||||
		BIO_printf(bio_err,  "               load the file (or the files in the directory) into\n");
 | 
			
		||||
		BIO_printf(bio_err,  "               the random number generator\n");
 | 
			
		||||
@@ -297,6 +306,24 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		goto end;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, passargin, NULL, &passin, NULL)) {
 | 
			
		||||
		BIO_printf(bio_err, "Error getting password\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								apps/speed.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								apps/speed.c
									
									
									
									
									
								
							@@ -81,6 +81,7 @@
 | 
			
		||||
#include <openssl/crypto.h>
 | 
			
		||||
#include <openssl/rand.h>
 | 
			
		||||
#include <openssl/err.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__FreeBSD__)
 | 
			
		||||
# define USE_TOD
 | 
			
		||||
@@ -115,7 +116,7 @@
 | 
			
		||||
#include <sys/timeb.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(TIMES) && !defined(TIMEB)
 | 
			
		||||
#if !defined(TIMES) && !defined(TIMEB) && !defined(USE_TOD)
 | 
			
		||||
#error "It seems neither struct tms nor struct timeb is supported in this platform!"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -310,6 +311,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e;
 | 
			
		||||
	unsigned char *buf=NULL,*buf2=NULL;
 | 
			
		||||
	int mret=1;
 | 
			
		||||
#define ALGOR_NUM	15
 | 
			
		||||
@@ -470,6 +472,37 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		{
 | 
			
		||||
		if	((argc > 0) && (strcmp(*argv,"-elapsed") == 0))
 | 
			
		||||
			usertime = 0;
 | 
			
		||||
		else
 | 
			
		||||
		if	((argc > 0) && (strcmp(*argv,"-engine") == 0))
 | 
			
		||||
			{
 | 
			
		||||
			argc--;
 | 
			
		||||
			argv++;
 | 
			
		||||
			if(argc == 0)
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"no engine given\n");
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			if((e = ENGINE_by_id(*argv)) == NULL)
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
					*argv);
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			BIO_printf(bio_err,"engine \"%s\" set.\n", *argv);
 | 
			
		||||
			/* Free our "structural" reference. */
 | 
			
		||||
			ENGINE_free(e);
 | 
			
		||||
			/* It will be increased again further down.  We just
 | 
			
		||||
			   don't want speed to confuse an engine with an
 | 
			
		||||
			   algorithm, especially when none is given (which
 | 
			
		||||
			   means all of them should be run) */
 | 
			
		||||
			j--;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
#ifndef NO_MD2
 | 
			
		||||
		if	(strcmp(*argv,"md2") == 0) doit[D_MD2]=1;
 | 
			
		||||
		else
 | 
			
		||||
@@ -517,7 +550,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifdef RSAref
 | 
			
		||||
			if (strcmp(*argv,"rsaref") == 0) 
 | 
			
		||||
			{
 | 
			
		||||
			RSA_set_default_method(RSA_PKCS1_RSAref());
 | 
			
		||||
			RSA_set_default_openssl_method(RSA_PKCS1_RSAref());
 | 
			
		||||
			j--;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
@@ -525,7 +558,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef RSA_NULL
 | 
			
		||||
			if (strcmp(*argv,"openssl") == 0) 
 | 
			
		||||
			{
 | 
			
		||||
			RSA_set_default_method(RSA_PKCS1_SSLeay());
 | 
			
		||||
			RSA_set_default_openssl_method(RSA_PKCS1_SSLeay());
 | 
			
		||||
			j--;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
@@ -670,11 +703,12 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			BIO_printf(bio_err,"\n");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef TIMES
 | 
			
		||||
			BIO_printf(bio_err,"\n");
 | 
			
		||||
			BIO_printf(bio_err,"Available options:\n");
 | 
			
		||||
#ifdef TIMES
 | 
			
		||||
			BIO_printf(bio_err,"-elapsed        measure time in real time instead of CPU user time.\n");
 | 
			
		||||
#endif
 | 
			
		||||
			BIO_printf(bio_err,"-engine e       use engine e, possibly a hardware device.\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		argc--;
 | 
			
		||||
@@ -831,6 +865,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
	dsa_c[R_DSA_512][0]=count/1000;
 | 
			
		||||
	dsa_c[R_DSA_512][1]=count/1000/2;
 | 
			
		||||
	for (i=1; i<DSA_NUM; i++)
 | 
			
		||||
@@ -848,6 +883,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				}
 | 
			
		||||
			}				
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define COND(d)	(count < (d))
 | 
			
		||||
#define COUNT(d) (d)
 | 
			
		||||
@@ -1173,7 +1209,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"RSA verify failure.  No RSA verify will be done.\n");
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			dsa_doit[j] = 0;
 | 
			
		||||
			rsa_doit[j] = 0;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
@@ -1379,6 +1415,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#endif
 | 
			
		||||
	mret=0;
 | 
			
		||||
end:
 | 
			
		||||
	ERR_print_errors(bio_err);
 | 
			
		||||
	if (buf != NULL) OPENSSL_free(buf);
 | 
			
		||||
	if (buf2 != NULL) OPENSSL_free(buf2);
 | 
			
		||||
#ifndef NO_RSA
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								apps/spkac.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								apps/spkac.c
									
									
									
									
									
								
							@@ -69,6 +69,7 @@
 | 
			
		||||
#include <openssl/lhash.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	spkac_main
 | 
			
		||||
@@ -81,6 +82,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int i,badops=0, ret = 1;
 | 
			
		||||
	BIO *in = NULL,*out = NULL, *key = NULL;
 | 
			
		||||
	int verify=0,noout=0,pubkey=0;
 | 
			
		||||
@@ -91,6 +93,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	LHASH *conf = NULL;
 | 
			
		||||
	NETSCAPE_SPKI *spki = NULL;
 | 
			
		||||
	EVP_PKEY *pkey = NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -136,6 +139,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			spksect= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-noout") == 0)
 | 
			
		||||
			noout=1;
 | 
			
		||||
		else if (strcmp(*argv,"-pubkey") == 0)
 | 
			
		||||
@@ -161,6 +169,7 @@ bad:
 | 
			
		||||
		BIO_printf(bio_err," -noout         don't print SPKAC\n");
 | 
			
		||||
		BIO_printf(bio_err," -pubkey        output public key\n");
 | 
			
		||||
		BIO_printf(bio_err," -verify        verify SPKAC signature\n");
 | 
			
		||||
		BIO_printf(bio_err," -engine e      use engine e, possibly a hardware device.\n");
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -170,6 +179,24 @@ bad:
 | 
			
		||||
		goto end;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(keyfile) {
 | 
			
		||||
		if(strcmp(keyfile, "-")) key = BIO_new_file(keyfile, "r");
 | 
			
		||||
		else key = BIO_new_fp(stdin, BIO_NOCLOSE);
 | 
			
		||||
 
 | 
			
		||||
@@ -65,6 +65,7 @@
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG	verify_main
 | 
			
		||||
@@ -78,6 +79,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int i,ret=1;
 | 
			
		||||
	int purpose = -1;
 | 
			
		||||
	char *CApath=NULL,*CAfile=NULL;
 | 
			
		||||
@@ -85,6 +87,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	STACK_OF(X509) *untrusted = NULL, *trusted = NULL;
 | 
			
		||||
	X509_STORE *cert_ctx=NULL;
 | 
			
		||||
	X509_LOOKUP *lookup=NULL;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	cert_ctx=X509_STORE_new();
 | 
			
		||||
	if (cert_ctx == NULL) goto end;
 | 
			
		||||
@@ -137,6 +140,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				if (argc-- < 1) goto end;
 | 
			
		||||
				trustfile= *(++argv);
 | 
			
		||||
				}
 | 
			
		||||
			else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
				{
 | 
			
		||||
				if (--argc < 1) goto end;
 | 
			
		||||
				engine= *(++argv);
 | 
			
		||||
				}
 | 
			
		||||
			else if (strcmp(*argv,"-help") == 0)
 | 
			
		||||
				goto end;
 | 
			
		||||
			else if (strcmp(*argv,"-issuer_checks") == 0)
 | 
			
		||||
@@ -154,6 +162,24 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	lookup=X509_STORE_add_lookup(cert_ctx,X509_LOOKUP_file());
 | 
			
		||||
	if (lookup == NULL) abort();
 | 
			
		||||
	if (CAfile) {
 | 
			
		||||
@@ -201,7 +227,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	ret=0;
 | 
			
		||||
end:
 | 
			
		||||
	if (ret == 1) {
 | 
			
		||||
		BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] cert1 cert2 ...\n");
 | 
			
		||||
		BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-engine e] cert1 cert2 ...\n");
 | 
			
		||||
		BIO_printf(bio_err,"recognized usages:\n");
 | 
			
		||||
		for(i = 0; i < X509_PURPOSE_get_count(); i++) {
 | 
			
		||||
			X509_PURPOSE *ptmp;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/x509.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/x509.c
									
									
									
									
									
								
							@@ -73,6 +73,7 @@
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG x509_main
 | 
			
		||||
@@ -129,6 +130,7 @@ static char *x509_usage[]={
 | 
			
		||||
" -extensions     - section from config file with X509V3 extensions to add\n",
 | 
			
		||||
" -clrext         - delete extensions before signing and input certificate\n",
 | 
			
		||||
" -nameopt arg    - various certificate name options\n",
 | 
			
		||||
" -engine e       - use engine e, possibly a hardware device.\n",
 | 
			
		||||
NULL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -145,6 +147,7 @@ int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
	{
 | 
			
		||||
	ENGINE *e = NULL;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	X509_REQ *req=NULL;
 | 
			
		||||
	X509 *x=NULL,*xca=NULL;
 | 
			
		||||
@@ -175,6 +178,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int need_rand = 0;
 | 
			
		||||
	int checkend=0,checkoffset=0;
 | 
			
		||||
	unsigned long nmflag = 0;
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
 | 
			
		||||
	reqfile=0;
 | 
			
		||||
 | 
			
		||||
@@ -337,6 +341,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			alias= *(++argv);
 | 
			
		||||
			trustout = 1;
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			engine= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-C") == 0)
 | 
			
		||||
			C= ++num;
 | 
			
		||||
		else if (strcmp(*argv,"-email") == 0)
 | 
			
		||||
@@ -420,6 +429,24 @@ bad:
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (engine != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if((e = ENGINE_by_id(engine)) == NULL)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"invalid engine \"%s\"\n",
 | 
			
		||||
				engine);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err,"can't use that engine\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"engine \"%s\" set.\n", engine);
 | 
			
		||||
		/* Free our "structural" reference. */
 | 
			
		||||
		ENGINE_free(e);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (need_rand)
 | 
			
		||||
		app_RAND_load_file(NULL, bio_err, 0);
 | 
			
		||||
 | 
			
		||||
@@ -867,8 +894,10 @@ bad:
 | 
			
		||||
 | 
			
		||||
				BIO_printf(bio_err,"Generating certificate request\n");
 | 
			
		||||
 | 
			
		||||
#ifndef NO_DSA
 | 
			
		||||
		                if (pk->type == EVP_PKEY_DSA)
 | 
			
		||||
		                        digest=EVP_dss1();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
				rq=X509_to_X509_REQ(x,pk,digest);
 | 
			
		||||
				EVP_PKEY_free(pk);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										68
									
								
								config
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								config
									
									
									
									
									
								
							@@ -49,10 +49,18 @@ if [ "x$XREL" != "x" ]; then
 | 
			
		||||
		echo "whatever-whatever-sco5"; exit 0
 | 
			
		||||
		;;
 | 
			
		||||
	    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
 | 
			
		||||
		elif [ "x$VERSION" = "x2.1.2" ]; then
 | 
			
		||||
		    echo "${MACHINE}-whatever-unixware212"; exit 0
 | 
			
		||||
		elif [ "x$VERSION" = "x2.1.3" ]; then
 | 
			
		||||
		    echo "${MACHINE}-whatever-unixware213"; exit 0
 | 
			
		||||
		else
 | 
			
		||||
		    echo "${MACHINE}-whatever-unixware2"; exit 0
 | 
			
		||||
		fi
 | 
			
		||||
@@ -79,6 +87,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
 | 
			
		||||
	echo "m68k-apple-aux3"; exit 0
 | 
			
		||||
	;;
 | 
			
		||||
 | 
			
		||||
    AIX:[3456789]:4:*)
 | 
			
		||||
	echo "${MACHINE}-ibm-aix43"; exit 0
 | 
			
		||||
	;;
 | 
			
		||||
 | 
			
		||||
    AIX:*:[56789]:*)
 | 
			
		||||
	echo "${MACHINE}-ibm-aix43"; exit 0
 | 
			
		||||
	;;
 | 
			
		||||
 | 
			
		||||
    AIX:*)
 | 
			
		||||
	echo "${MACHINE}-ibm-aix"; exit 0
 | 
			
		||||
	;;
 | 
			
		||||
@@ -168,7 +184,7 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
 | 
			
		||||
        ;;
 | 
			
		||||
 | 
			
		||||
    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:*)
 | 
			
		||||
@@ -393,10 +409,16 @@ case "$GUESSOS" in
 | 
			
		||||
	;;
 | 
			
		||||
  mips4-sgi-irix64)
 | 
			
		||||
	echo "WARNING! If you wish to build 64-bit library, then you have to"
 | 
			
		||||
	echo "         invoke './Configre irix64-mips4-$CC' *manually*."
 | 
			
		||||
	echo "         Type Ctrl-C if you don't want to continue."
 | 
			
		||||
	echo "         invoke './Configure irix64-mips4-$CC' *manually*."
 | 
			
		||||
	echo "         Type return if you want to continue, Ctrl-C to abort."
 | 
			
		||||
	read waste < /dev/tty
 | 
			
		||||
        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"
 | 
			
		||||
	;;
 | 
			
		||||
  alpha-*-linux2)
 | 
			
		||||
@@ -423,11 +445,11 @@ case "$GUESSOS" in
 | 
			
		||||
	#till 64-bit glibc for SPARC is operational:-(
 | 
			
		||||
	#echo "WARNING! If you wish to build 64-bit library, then you have to"
 | 
			
		||||
	#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
 | 
			
		||||
	OUT="linux-sparcv9" ;;
 | 
			
		||||
  sparc-*-linux2)
 | 
			
		||||
	KARCH=`awk '/type/{print$3}' /proc/cpuinfo`
 | 
			
		||||
	KARCH=`awk '/^type/{print$3}' /proc/cpuinfo`
 | 
			
		||||
	case ${KARCH:-sun4} in
 | 
			
		||||
	sun4u*)	OUT="linux-sparcv9" ;;
 | 
			
		||||
	sun4m)	OUT="linux-sparcv8" ;;
 | 
			
		||||
@@ -435,6 +457,7 @@ case "$GUESSOS" in
 | 
			
		||||
	*)	OUT="linux-sparcv7" ;;
 | 
			
		||||
	esac ;;
 | 
			
		||||
  arm*-*-linux2) OUT="linux-elf-arm" ;;
 | 
			
		||||
  s390-*-linux2) OUT="linux-s390" ;;
 | 
			
		||||
  *-*-linux2) OUT="linux-elf" ;;
 | 
			
		||||
  *-*-linux1) OUT="linux-aout" ;;
 | 
			
		||||
  sun4u*-*-solaris2)
 | 
			
		||||
@@ -442,7 +465,7 @@ case "$GUESSOS" in
 | 
			
		||||
	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 "         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
 | 
			
		||||
	fi
 | 
			
		||||
	OUT="solaris-sparcv9-$CC" ;;
 | 
			
		||||
@@ -466,9 +489,12 @@ case "$GUESSOS" in
 | 
			
		||||
  *-*-unixware7) OUT="unixware-7" ;;
 | 
			
		||||
  *-*-UnixWare7) OUT="unixware-7" ;;
 | 
			
		||||
  *-*-Unixware7) OUT="unixware-7" ;;
 | 
			
		||||
  *-*-unixware[1-2]*) OUT="unixware-2.0" ;;
 | 
			
		||||
  *-*-UnixWare[1-2]*) OUT="unixware-2.0" ;;
 | 
			
		||||
  *-*-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" ;;
 | 
			
		||||
  *-*-Unixware20*) OUT="unixware-2.0" ;;
 | 
			
		||||
  *-*-Unixware21*) OUT="unixware-2.1" ;;
 | 
			
		||||
  BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
 | 
			
		||||
  RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
 | 
			
		||||
  *-siemens-sysv4) OUT="SINIX" ;;
 | 
			
		||||
@@ -482,11 +508,27 @@ case "$GUESSOS" in
 | 
			
		||||
  *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# NB: This atalla support has been superceded by the ENGINE support
 | 
			
		||||
# That contains its own header and definitions anyway. Support can
 | 
			
		||||
# be enabled or disabled on any supported platform without external
 | 
			
		||||
# headers, eg. by adding the "hw-atalla" switch to ./config or
 | 
			
		||||
# perl Configure
 | 
			
		||||
#
 | 
			
		||||
# See whether we can compile Atalla support
 | 
			
		||||
if [ -f /usr/include/atasi.h ]
 | 
			
		||||
#if [ -f /usr/include/atasi.h ]
 | 
			
		||||
#then
 | 
			
		||||
#  options="$options -DATALLA"
 | 
			
		||||
#fi
 | 
			
		||||
 | 
			
		||||
#get some basic shared lib support (behnke@trustcenter.de)
 | 
			
		||||
case "$OUT" in
 | 
			
		||||
   solaris-*-gcc)
 | 
			
		||||
	if  [ "$SHARED" = "true" ] 
 | 
			
		||||
	 then
 | 
			
		||||
  options="$options -DATALLA"
 | 
			
		||||
	  options="$options -DPIC -fPIC"
 | 
			
		||||
        fi
 | 
			
		||||
     ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# gcc < 2.8 does not support -mcpu=ultrasparc
 | 
			
		||||
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
 | 
			
		||||
@@ -557,7 +599,7 @@ OUT="$PREFIX$OUT"
 | 
			
		||||
 | 
			
		||||
$PERL ./Configure LIST | grep "$OUT" > /dev/null
 | 
			
		||||
if [ $? = "0" ]; then
 | 
			
		||||
  #echo Configuring for $OUT
 | 
			
		||||
  echo Configuring for $OUT
 | 
			
		||||
 | 
			
		||||
  if [ "$TEST" = "true" ]; then
 | 
			
		||||
    echo $PERL ./Configure $OUT $options
 | 
			
		||||
 
 | 
			
		||||
@@ -27,15 +27,15 @@ LIBS=
 | 
			
		||||
 | 
			
		||||
SDIRS=	md2 md5 sha mdc2 hmac ripemd \
 | 
			
		||||
	des rc2 rc4 rc5 idea bf cast \
 | 
			
		||||
	bn rsa dsa dh dso \
 | 
			
		||||
	bn rsa dsa dh dso engine \
 | 
			
		||||
	buffer bio stack lhash rand err objects \
 | 
			
		||||
	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp
 | 
			
		||||
 | 
			
		||||
GENERAL=Makefile README crypto-lib.com install.com
 | 
			
		||||
 | 
			
		||||
LIB= $(TOP)/libcrypto.a
 | 
			
		||||
LIBSRC=	cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c
 | 
			
		||||
LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o
 | 
			
		||||
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 uid.o
 | 
			
		||||
 | 
			
		||||
SRC= $(LIBSRC)
 | 
			
		||||
 | 
			
		||||
@@ -90,7 +90,8 @@ links:
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
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/stack.h ../include/openssl/symhacks.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)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
 
 | 
			
		||||
@@ -133,7 +133,7 @@ ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in,
 | 
			
		||||
	if(tbl) {
 | 
			
		||||
		mask = tbl->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);
 | 
			
		||||
	} else ret = ASN1_mbstring_copy(out, in, inlen, inform, DIRSTRING_TYPE & global_mask);
 | 
			
		||||
	if(ret <= 0) return NULL;
 | 
			
		||||
 
 | 
			
		||||
@@ -123,6 +123,8 @@ int i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **pp)
 | 
			
		||||
		break;
 | 
			
		||||
	case V_ASN1_SET:
 | 
			
		||||
	case V_ASN1_SEQUENCE:
 | 
			
		||||
	case V_ASN1_OTHER:
 | 
			
		||||
	default:
 | 
			
		||||
		if (a->value.set == NULL)
 | 
			
		||||
			r=0;
 | 
			
		||||
		else
 | 
			
		||||
@@ -159,6 +161,8 @@ ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, unsigned char **pp, long length)
 | 
			
		||||
 | 
			
		||||
	inf=ASN1_get_object(&q,&len,&tag,&xclass,length);
 | 
			
		||||
	if (inf & 0x80) goto err;
 | 
			
		||||
	/* If not universal tag we've no idea what it is */
 | 
			
		||||
	if(xclass != V_ASN1_UNIVERSAL) tag = V_ASN1_OTHER;
 | 
			
		||||
	
 | 
			
		||||
	ASN1_TYPE_component_free(ret);
 | 
			
		||||
 | 
			
		||||
@@ -245,6 +249,8 @@ ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, unsigned char **pp, long length)
 | 
			
		||||
		break;
 | 
			
		||||
	case V_ASN1_SET:
 | 
			
		||||
	case V_ASN1_SEQUENCE:
 | 
			
		||||
	case V_ASN1_OTHER:
 | 
			
		||||
	default:
 | 
			
		||||
		/* Sets and sequences are left complete */
 | 
			
		||||
		if ((ret->value.set=ASN1_STRING_new()) == NULL) goto err;
 | 
			
		||||
		ret->value.set->type=tag;
 | 
			
		||||
@@ -252,9 +258,6 @@ ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, unsigned char **pp, long length)
 | 
			
		||||
		if (!ASN1_STRING_set(ret->value.set,p,(int)len)) goto err;
 | 
			
		||||
		p+=len;
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
		ASN1err(ASN1_F_D2I_ASN1_TYPE,ASN1_R_BAD_TYPE);
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ret->type=tag;
 | 
			
		||||
@@ -312,6 +315,8 @@ static void ASN1_TYPE_component_free(ASN1_TYPE *a)
 | 
			
		||||
		case V_ASN1_OBJECT:
 | 
			
		||||
			ASN1_OBJECT_free(a->value.object);
 | 
			
		||||
			break;
 | 
			
		||||
		case V_ASN1_NULL:
 | 
			
		||||
			break;
 | 
			
		||||
		case V_ASN1_INTEGER:
 | 
			
		||||
		case V_ASN1_NEG_INTEGER:
 | 
			
		||||
		case V_ASN1_ENUMERATED:
 | 
			
		||||
@@ -333,10 +338,9 @@ static void ASN1_TYPE_component_free(ASN1_TYPE *a)
 | 
			
		||||
		case V_ASN1_UNIVERSALSTRING:
 | 
			
		||||
		case V_ASN1_BMPSTRING:
 | 
			
		||||
		case V_ASN1_UTF8STRING:
 | 
			
		||||
			ASN1_STRING_free((ASN1_STRING *)a->value.ptr);
 | 
			
		||||
			break;
 | 
			
		||||
		case V_ASN1_OTHER:
 | 
			
		||||
		default:
 | 
			
		||||
			/* MEMORY LEAK */
 | 
			
		||||
			ASN1_STRING_free((ASN1_STRING *)a->value.ptr);
 | 
			
		||||
			break;
 | 
			
		||||
			}
 | 
			
		||||
		a->type=0;
 | 
			
		||||
 
 | 
			
		||||
@@ -83,6 +83,7 @@ extern "C" {
 | 
			
		||||
#define V_ASN1_PRIMATIVE_TAG		0x1f
 | 
			
		||||
 | 
			
		||||
#define V_ASN1_APP_CHOOSE		-2	/* let the recipient choose */
 | 
			
		||||
#define V_ASN1_OTHER			-3	/* used in ASN1_TYPE */
 | 
			
		||||
 | 
			
		||||
#define V_ASN1_NEG			0x100	/* negative flag */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -301,7 +301,7 @@ int asn1_GetSequence(ASN1_CTX *c, long *length)
 | 
			
		||||
		return(0);
 | 
			
		||||
		}
 | 
			
		||||
	if (c->inf == (1|V_ASN1_CONSTRUCTED))
 | 
			
		||||
		c->slen= *length+ *(c->pp)-c->p;
 | 
			
		||||
		c->slen= *length;
 | 
			
		||||
	c->eos=0;
 | 
			
		||||
	return(1);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -196,6 +196,9 @@ err:\
 | 
			
		||||
	if ((a != NULL) && (sk_##type##_num(a) != 0)) \
 | 
			
		||||
		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) \
 | 
			
		||||
	if ((c.slen != 0) && \
 | 
			
		||||
		(M_ASN1_next == \
 | 
			
		||||
@@ -389,6 +392,9 @@ err:\
 | 
			
		||||
		if ((a != NULL) && (sk_##type##_num(a) != 0)) \
 | 
			
		||||
			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) \
 | 
			
		||||
		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); \
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
#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 */
 | 
			
		||||
#define M_ASN1_I2D_put(a,f)	f(a,&p)
 | 
			
		||||
 | 
			
		||||
@@ -536,6 +551,14 @@ err:\
 | 
			
		||||
					       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() \
 | 
			
		||||
		r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \
 | 
			
		||||
		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))
 | 
			
		||||
			{
 | 
			
		||||
			c.q=c.p;
 | 
			
		||||
			if (!ASN1_check_infinite_end(&c.p,c.slen))
 | 
			
		||||
				{
 | 
			
		||||
				c.error=ERR_R_MISSING_ASN1_EOS;
 | 
			
		||||
				c.line=__LINE__;
 | 
			
		||||
				goto err;
 | 
			
		||||
				}
 | 
			
		||||
			c.slen-=(c.p-c.q);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	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->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);
 | 
			
		||||
 | 
			
		||||
	M_ASN1_I2D_seq_total();
 | 
			
		||||
 | 
			
		||||
	M_ASN1_I2D_put(a->serialNumber,i2d_ASN1_INTEGER);
 | 
			
		||||
	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);
 | 
			
		||||
 | 
			
		||||
	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_SEQUENCE_opt_type(X509_REVOKED,a->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,
 | 
			
		||||
					     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_SEQUENCE_opt_type(X509_REVOKED,a->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,
 | 
			
		||||
					     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);
 | 
			
		||||
	ret->nextUpdate=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);
 | 
			
		||||
	return(ret);
 | 
			
		||||
	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);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	ret+=ASN1_object_size(1,size,V_ASN1_SET);
 | 
			
		||||
	if (fe != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		/* SET OF needed only if entries is non empty */
 | 
			
		||||
		ret+=ASN1_object_size(1,size,V_ASN1_SET);
 | 
			
		||||
		fe->size=size;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
# elf
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
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/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
b_dump.o: ../cryptlib.h
 | 
			
		||||
b_print.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
b_print.o: ../../include/openssl/crypto.h ../../include/openssl/e_os.h
 | 
			
		||||
b_print.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
 | 
			
		||||
b_print.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
 | 
			
		||||
b_print.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
			
		||||
b_print.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
b_print.o: ../cryptlib.h
 | 
			
		||||
b_print.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
 | 
			
		||||
b_print.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
b_print.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
 | 
			
		||||
b_print.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
 | 
			
		||||
b_print.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
b_print.o: ../../include/openssl/safestack.h ../../include/openssl/stack.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/crypto.h ../../include/openssl/e_os.h
 | 
			
		||||
b_sock.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,7 @@
 | 
			
		||||
#ifndef NO_SYS_TYPES_H
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <openssl/bn.h>         /* To get BN_LLONG properly defined */
 | 
			
		||||
#include <openssl/bio.h>
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
	   in some way, so let's init the socket. */
 | 
			
		||||
	if (!BIO_sock_init())
 | 
			
		||||
		return(0); /* don't generate another error code here */
 | 
			
		||||
	if (BIO_sock_init() != 1)
 | 
			
		||||
		return 0; /* don't generate another error code here */
 | 
			
		||||
 | 
			
		||||
	/* If the string actually contained an IP address, we need not do
 | 
			
		||||
	   anything more */
 | 
			
		||||
@@ -519,15 +519,15 @@ int BIO_get_accept_socket(char *host, int bind_mode)
 | 
			
		||||
	{
 | 
			
		||||
	int ret=0;
 | 
			
		||||
	struct sockaddr_in server,client;
 | 
			
		||||
	int s= -1,cs;
 | 
			
		||||
	int s=INVALID_SOCKET,cs;
 | 
			
		||||
	unsigned char ip[4];
 | 
			
		||||
	unsigned short port;
 | 
			
		||||
	char *str,*e;
 | 
			
		||||
	char *str=NULL,*e;
 | 
			
		||||
	const char *h,*p;
 | 
			
		||||
	unsigned long l;
 | 
			
		||||
	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);
 | 
			
		||||
 | 
			
		||||
@@ -553,7 +553,7 @@ int BIO_get_accept_socket(char *host, int bind_mode)
 | 
			
		||||
		h="*";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (!BIO_get_port(p,&port)) return(INVALID_SOCKET);
 | 
			
		||||
	if (!BIO_get_port(p,&port)) goto err;
 | 
			
		||||
 | 
			
		||||
	memset((char *)&server,0,sizeof(server));
 | 
			
		||||
	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;
 | 
			
		||||
	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)
 | 
			
		||||
			((unsigned long)ip[0]<<24L)|
 | 
			
		||||
			((unsigned long)ip[1]<<16L)|
 | 
			
		||||
 
 | 
			
		||||
@@ -68,7 +68,8 @@ bnbug: bnbug.c ../../libcrypto.a top
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
# elf
 | 
			
		||||
 
 | 
			
		||||
@@ -586,13 +586,13 @@ LEAF(bn_div_3_words)
 | 
			
		||||
	ld	a0,(a3)
 | 
			
		||||
	move	ta2,a1
 | 
			
		||||
	ld	a1,-8(a3)
 | 
			
		||||
	move	ta3,ra
 | 
			
		||||
	move	v1,zero
 | 
			
		||||
	bne	a0,a2,.L_bn_div_3_words_proceed
 | 
			
		||||
	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
 | 
			
		||||
	move	ra,ta3
 | 
			
		||||
.L_bn_div_3_words_skip_div:
 | 
			
		||||
	dmultu	ta2,v0
 | 
			
		||||
	ld	t2,-16(a3)
 | 
			
		||||
	move	ta0,zero
 | 
			
		||||
 
 | 
			
		||||
@@ -1611,7 +1611,7 @@ bn_mul_comba4
 | 
			
		||||
	.IMPORT	$global$,DATA
 | 
			
		||||
	.SPACE	$TEXT$
 | 
			
		||||
	.SUBSPA	$CODE$
 | 
			
		||||
	.SUBSPA	$LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
 | 
			
		||||
	.SUBSPA	$LIT$,ACCESS=0x2c
 | 
			
		||||
C$7
 | 
			
		||||
	.ALIGN	8
 | 
			
		||||
	.STRINGZ	"Division would overflow (%d)\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -1598,7 +1598,7 @@ bn_mul_comba4
 | 
			
		||||
	.IMPORT	$global$,DATA
 | 
			
		||||
	.SPACE	$TEXT$
 | 
			
		||||
	.SUBSPA	$CODE$
 | 
			
		||||
	.SUBSPA	$LIT$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
 | 
			
		||||
	.SUBSPA	$LIT$,ACCESS=0x2c
 | 
			
		||||
C$4
 | 
			
		||||
	.ALIGN	8
 | 
			
		||||
	.STRINGZ	"Division would overflow (%d)\n"
 | 
			
		||||
 
 | 
			
		||||
@@ -239,7 +239,7 @@ typedef struct bignum_st
 | 
			
		||||
	} BIGNUM;
 | 
			
		||||
 | 
			
		||||
/* Used for temp variables */
 | 
			
		||||
#define BN_CTX_NUM	12
 | 
			
		||||
#define BN_CTX_NUM	16
 | 
			
		||||
#define BN_CTX_NUM_POS	12
 | 
			
		||||
typedef struct bignum_ctx
 | 
			
		||||
	{
 | 
			
		||||
@@ -328,6 +328,7 @@ BIGNUM *BN_CTX_get(BN_CTX *ctx);
 | 
			
		||||
void	BN_CTX_end(BN_CTX *ctx);
 | 
			
		||||
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_rand_range(BIGNUM *rnd, BIGNUM *range);
 | 
			
		||||
int	BN_num_bits(const BIGNUM *a);
 | 
			
		||||
int	BN_num_bits_word(BN_ULONG);
 | 
			
		||||
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)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int BN_bntest_rand(BIGNUM *rnd, int bits, int top,int bottom);
 | 
			
		||||
 | 
			
		||||
/* BEGIN ERROR CODES */
 | 
			
		||||
/* 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.
 | 
			
		||||
@@ -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_NEW					 113
 | 
			
		||||
#define BN_F_BN_RAND					 114
 | 
			
		||||
#define BN_F_BN_RAND_RANGE				 122
 | 
			
		||||
#define BN_F_BN_USUB					 115
 | 
			
		||||
 | 
			
		||||
/* Reason codes. */
 | 
			
		||||
#define BN_R_ARG2_LT_ARG3				 100
 | 
			
		||||
#define BN_R_BAD_RECIPROCAL				 101
 | 
			
		||||
#define BN_R_BIGNUM_TOO_LONG				 114
 | 
			
		||||
#define BN_R_CALLED_WITH_EVEN_MODULUS			 102
 | 
			
		||||
#define BN_R_DIV_BY_ZERO				 103
 | 
			
		||||
#define BN_R_ENCODING_ERROR				 104
 | 
			
		||||
#define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA		 105
 | 
			
		||||
#define BN_R_INVALID_LENGTH				 106
 | 
			
		||||
#define BN_R_INVALID_RANGE				 115
 | 
			
		||||
#define BN_R_NOT_INITIALIZED				 107
 | 
			
		||||
#define BN_R_NO_INVERSE					 108
 | 
			
		||||
#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);
 | 
			
		||||
	tmp=BN_CTX_get(ctx);
 | 
			
		||||
	tmp->neg=0;
 | 
			
		||||
	snum=BN_CTX_get(ctx);
 | 
			
		||||
	sdiv=BN_CTX_get(ctx);
 | 
			
		||||
	if (dv == NULL)
 | 
			
		||||
		res=BN_CTX_get(ctx);
 | 
			
		||||
	else	res=dv;
 | 
			
		||||
	if (res == NULL) goto err;
 | 
			
		||||
	if (sdiv==NULL || res == NULL) goto err;
 | 
			
		||||
	tmp->neg=0;
 | 
			
		||||
 | 
			
		||||
	/* First we normalise the numbers */
 | 
			
		||||
	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++)
 | 
			
		||||
		{
 | 
			
		||||
		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);
 | 
			
		||||
#else
 | 
			
		||||
		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_NEW,0),	"BN_new"},
 | 
			
		||||
{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"},
 | 
			
		||||
{0,NULL}
 | 
			
		||||
	};
 | 
			
		||||
@@ -92,11 +93,13 @@ static ERR_STRING_DATA BN_str_reasons[]=
 | 
			
		||||
	{
 | 
			
		||||
{BN_R_ARG2_LT_ARG3                       ,"arg2 lt arg3"},
 | 
			
		||||
{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_DIV_BY_ZERO                        ,"div by zero"},
 | 
			
		||||
{BN_R_ENCODING_ERROR                     ,"encoding error"},
 | 
			
		||||
{BN_R_EXPAND_ON_STATIC_BIGNUM_DATA       ,"expand on static bignum data"},
 | 
			
		||||
{BN_R_INVALID_LENGTH                     ,"invalid length"},
 | 
			
		||||
{BN_R_INVALID_RANGE                      ,"invalid range"},
 | 
			
		||||
{BN_R_NOT_INITIALIZED                    ,"not initialized"},
 | 
			
		||||
{BN_R_NO_INVERSE                         ,"no inverse"},
 | 
			
		||||
{BN_R_TOO_MANY_TEMPORARY_VARIABLES       ,"too many temporary variables"},
 | 
			
		||||
 
 | 
			
		||||
@@ -113,13 +113,6 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include "bn_lcl.h"
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
# include <alloca.h>
 | 
			
		||||
# include <atasi.h>
 | 
			
		||||
# include <assert.h>
 | 
			
		||||
# include <dlfcn.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define TABLE_SIZE	32
 | 
			
		||||
 | 
			
		||||
@@ -183,174 +176,6 @@ err:
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This routine will dynamically check for the existance of an Atalla AXL-200
 | 
			
		||||
 * SSL accelerator module.  If one is found, the variable
 | 
			
		||||
 * asi_accelerator_present is set to 1 and the function pointers
 | 
			
		||||
 * ptr_ASI_xxxxxx above will be initialized to corresponding ASI API calls.
 | 
			
		||||
 */
 | 
			
		||||
typedef int tfnASI_GetPerformanceStatistics(int reset_flag,
 | 
			
		||||
					    unsigned int *ret_buf);
 | 
			
		||||
typedef int tfnASI_GetHardwareConfig(long card_num, unsigned int *ret_buf);
 | 
			
		||||
typedef int tfnASI_RSAPrivateKeyOpFn(RSAPrivateKey * rsaKey,
 | 
			
		||||
				     unsigned char *output,
 | 
			
		||||
				     unsigned char *input,
 | 
			
		||||
				     unsigned int modulus_len);
 | 
			
		||||
 | 
			
		||||
static tfnASI_GetHardwareConfig *ptr_ASI_GetHardwareConfig;
 | 
			
		||||
static tfnASI_RSAPrivateKeyOpFn *ptr_ASI_RSAPrivateKeyOpFn;
 | 
			
		||||
static tfnASI_GetPerformanceStatistics *ptr_ASI_GetPerformanceStatistics;
 | 
			
		||||
static int asi_accelerator_present;
 | 
			
		||||
static int tried_atalla;
 | 
			
		||||
 | 
			
		||||
void atalla_initialize_accelerator_handle(void)
 | 
			
		||||
	{
 | 
			
		||||
	void *dl_handle;
 | 
			
		||||
	int status;
 | 
			
		||||
	unsigned int config_buf[1024]; 
 | 
			
		||||
	static int tested;
 | 
			
		||||
 | 
			
		||||
	if(tested)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	tested=1;
 | 
			
		||||
 | 
			
		||||
	bzero((void *)config_buf, 1024);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Check to see if the library is present on the system
 | 
			
		||||
	 */
 | 
			
		||||
	dl_handle = dlopen("atasi.so", RTLD_NOW);
 | 
			
		||||
	if (dl_handle == (void *) NULL)
 | 
			
		||||
		{
 | 
			
		||||
/*		printf("atasi.so library is not present on the system\n");
 | 
			
		||||
		printf("No HW acceleration available\n");*/
 | 
			
		||||
		return;
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * The library is present.  Now we'll check to insure that the
 | 
			
		||||
	 * LDM is up and running. First we'll get the address of the
 | 
			
		||||
	 * function in the atasi library that we need to see if the
 | 
			
		||||
	 * LDM is operating.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	ptr_ASI_GetHardwareConfig =
 | 
			
		||||
	  (tfnASI_GetHardwareConfig *)dlsym(dl_handle,"ASI_GetHardwareConfig");
 | 
			
		||||
 | 
			
		||||
	if (ptr_ASI_GetHardwareConfig)
 | 
			
		||||
		{
 | 
			
		||||
		/*
 | 
			
		||||
		 * We found the call, now we'll get our config
 | 
			
		||||
		 * status.  If we get a non 0 result, the LDM is not
 | 
			
		||||
		 * running and we cannot use the Atalla ASI *
 | 
			
		||||
		 * library.
 | 
			
		||||
		 */
 | 
			
		||||
		status = (*ptr_ASI_GetHardwareConfig)(0L, config_buf);
 | 
			
		||||
		if (status != 0)
 | 
			
		||||
			{
 | 
			
		||||
			printf("atasi.so library is present but not initialized\n");
 | 
			
		||||
			printf("No HW acceleration available\n");
 | 
			
		||||
			return;
 | 
			
		||||
			}    
 | 
			
		||||
	        }
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
/*		printf("We found the library, but not the function. Very Strange!\n");*/
 | 
			
		||||
		return ;
 | 
			
		||||
	      	}
 | 
			
		||||
 | 
			
		||||
	/* 
 | 
			
		||||
	 * It looks like we have acceleration capabilities.  Load up the
 | 
			
		||||
	 * pointers to our ASI API calls.
 | 
			
		||||
	 */
 | 
			
		||||
	ptr_ASI_RSAPrivateKeyOpFn=
 | 
			
		||||
	  (tfnASI_RSAPrivateKeyOpFn *)dlsym(dl_handle, "ASI_RSAPrivateKeyOpFn");
 | 
			
		||||
	if (ptr_ASI_RSAPrivateKeyOpFn == NULL)
 | 
			
		||||
		{
 | 
			
		||||
/*		printf("We found the library, but no RSA function. Very Strange!\n");*/
 | 
			
		||||
		return;
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	ptr_ASI_GetPerformanceStatistics =
 | 
			
		||||
	  (tfnASI_GetPerformanceStatistics *)dlsym(dl_handle, "ASI_GetPerformanceStatistics");
 | 
			
		||||
	if (ptr_ASI_GetPerformanceStatistics == NULL)
 | 
			
		||||
		{
 | 
			
		||||
/*		printf("We found the library, but no stat function. Very Strange!\n");*/
 | 
			
		||||
		return;
 | 
			
		||||
	      }
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Indicate that acceleration is available
 | 
			
		||||
	 */
 | 
			
		||||
	asi_accelerator_present = 1;
 | 
			
		||||
 | 
			
		||||
/*	printf("This system has acceleration!\n");*/
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
/* make sure this only gets called once when bn_mod_exp calls bn_mod_exp_mont */
 | 
			
		||||
int BN_mod_exp_atalla(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m)
 | 
			
		||||
	{
 | 
			
		||||
	unsigned char *abin;
 | 
			
		||||
	unsigned char *pbin;
 | 
			
		||||
	unsigned char *mbin;
 | 
			
		||||
	unsigned char *rbin;
 | 
			
		||||
	int an,pn,mn,ret;
 | 
			
		||||
	RSAPrivateKey keydata;
 | 
			
		||||
 | 
			
		||||
	atalla_initialize_accelerator_handle();
 | 
			
		||||
	if(!asi_accelerator_present)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* We should be able to run without size testing */
 | 
			
		||||
# define ASIZE	128
 | 
			
		||||
	an=BN_num_bytes(a);
 | 
			
		||||
	pn=BN_num_bytes(p);
 | 
			
		||||
	mn=BN_num_bytes(m);
 | 
			
		||||
 | 
			
		||||
	if(an <= ASIZE && pn <= ASIZE && mn <= ASIZE)
 | 
			
		||||
	    {
 | 
			
		||||
	    int size=mn;
 | 
			
		||||
 | 
			
		||||
	    assert(an <= mn);
 | 
			
		||||
	    abin=alloca(size);
 | 
			
		||||
	    memset(abin,'\0',mn);
 | 
			
		||||
	    BN_bn2bin(a,abin+size-an);
 | 
			
		||||
 | 
			
		||||
	    pbin=alloca(pn);
 | 
			
		||||
	    BN_bn2bin(p,pbin);
 | 
			
		||||
 | 
			
		||||
	    mbin=alloca(size);
 | 
			
		||||
	    memset(mbin,'\0',mn);
 | 
			
		||||
	    BN_bn2bin(m,mbin+size-mn);
 | 
			
		||||
 | 
			
		||||
	    rbin=alloca(size);
 | 
			
		||||
 | 
			
		||||
	    memset(&keydata,'\0',sizeof keydata);
 | 
			
		||||
	    keydata.privateExponent.data=pbin;
 | 
			
		||||
	    keydata.privateExponent.len=pn;
 | 
			
		||||
	    keydata.modulus.data=mbin;
 | 
			
		||||
	    keydata.modulus.len=size;
 | 
			
		||||
 | 
			
		||||
	    ret=(*ptr_ASI_RSAPrivateKeyOpFn)(&keydata,rbin,abin,keydata.modulus.len);
 | 
			
		||||
/*fprintf(stderr,"!%s\n",BN_bn2hex(a));*/
 | 
			
		||||
	    if(!ret)
 | 
			
		||||
	        {
 | 
			
		||||
		BN_bin2bn(rbin,keydata.modulus.len,r);
 | 
			
		||||
/*fprintf(stderr,"?%s\n",BN_bn2hex(r));*/
 | 
			
		||||
		return 1;
 | 
			
		||||
	        }
 | 
			
		||||
	    }
 | 
			
		||||
	return 0;
 | 
			
		||||
        }
 | 
			
		||||
#endif /* def ATALLA */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
 | 
			
		||||
	       BN_CTX *ctx)
 | 
			
		||||
	{
 | 
			
		||||
@@ -360,13 +185,6 @@ int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
 | 
			
		||||
	bn_check_top(p);
 | 
			
		||||
	bn_check_top(m);
 | 
			
		||||
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
	if(BN_mod_exp_atalla(r,a,p,m))
 | 
			
		||||
	    return 1;
 | 
			
		||||
/* If it fails, try the other methods (but don't try atalla again) */
 | 
			
		||||
	tried_atalla=1;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef MONT_MUL_MOD
 | 
			
		||||
	/* I have finally been able to take out this pre-condition of
 | 
			
		||||
	 * the top bit being set.  It was caused by an error in BN_div
 | 
			
		||||
@@ -392,10 +210,6 @@ int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, const BIGNUM *m,
 | 
			
		||||
		{ ret=BN_mod_exp_simple(r,a,p,m,ctx); }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
	tried_atalla=0;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	return(ret);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -525,12 +339,6 @@ int BN_mod_exp_mont(BIGNUM *rr, BIGNUM *a, const BIGNUM *p,
 | 
			
		||||
	bn_check_top(p);
 | 
			
		||||
	bn_check_top(m);
 | 
			
		||||
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
	if(!tried_atalla && BN_mod_exp_atalla(rr,a,p,m))
 | 
			
		||||
	    return 1;
 | 
			
		||||
/* If it fails, try the other methods */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (!(m->d[0] & 1))
 | 
			
		||||
		{
 | 
			
		||||
		BNerr(BN_F_BN_MOD_EXP_MONT,BN_R_CALLED_WITH_EVEN_MODULUS);
 | 
			
		||||
@@ -693,19 +501,6 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p,
 | 
			
		||||
	t = BN_CTX_get(ctx);
 | 
			
		||||
	if (d == NULL || r == NULL || t == NULL) goto err;
 | 
			
		||||
 | 
			
		||||
#ifdef ATALLA
 | 
			
		||||
	if (!tried_atalla)
 | 
			
		||||
		{
 | 
			
		||||
		BN_set_word(t, a);
 | 
			
		||||
		if (BN_mod_exp_atalla(rr, t, p, m))
 | 
			
		||||
			{
 | 
			
		||||
			BN_CTX_end(ctx);
 | 
			
		||||
			return 1;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
/* If it fails, try the other methods */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (in_mont != NULL)
 | 
			
		||||
		mont=in_mont;
 | 
			
		||||
	else
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include "bn_lcl.h"
 | 
			
		||||
@@ -319,6 +320,12 @@ BIGNUM *bn_expand2(BIGNUM *b, int words)
 | 
			
		||||
 | 
			
		||||
	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);	
 | 
			
		||||
		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;
 | 
			
		||||
	bit=(bits-1)%8;
 | 
			
		||||
	mask=0xff<<bit;
 | 
			
		||||
	mask=0xff<<(bit+1);
 | 
			
		||||
 | 
			
		||||
	buf=(unsigned char *)OPENSSL_malloc(bytes);
 | 
			
		||||
	if (buf == NULL)
 | 
			
		||||
@@ -100,6 +100,29 @@ static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
 | 
			
		||||
			goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
#if 1
 | 
			
		||||
	if (pseudorand == 2)
 | 
			
		||||
		{
 | 
			
		||||
		/* generate patterns that are more likely to trigger BN
 | 
			
		||||
		   library bugs */
 | 
			
		||||
		int i;
 | 
			
		||||
		unsigned char c;
 | 
			
		||||
 | 
			
		||||
		for (i = 0; i < bytes; i++)
 | 
			
		||||
			{
 | 
			
		||||
			RAND_pseudo_bytes(&c, 1);
 | 
			
		||||
			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)
 | 
			
		||||
@@ -110,15 +133,15 @@ static int bnrand(int pseudorand, BIGNUM *rnd, int bits, int top, int bottom)
 | 
			
		||||
			else
 | 
			
		||||
				{
 | 
			
		||||
				buf[0]|=(3<<(bit-1));
 | 
			
		||||
			buf[0]&= ~(mask<<1);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			buf[0]|=(1<<bit);
 | 
			
		||||
		buf[0]&= ~(mask<<1);
 | 
			
		||||
			}
 | 
			
		||||
	if (bottom) /* set bottom bits to whatever odd is */
 | 
			
		||||
		}
 | 
			
		||||
	buf[0] &= ~mask;
 | 
			
		||||
	if (bottom) /* set bottom bit if requested */
 | 
			
		||||
		buf[bytes-1]|=1;
 | 
			
		||||
	if (!BN_bin2bn(buf,bytes,rnd)) goto err;
 | 
			
		||||
	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);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#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;
 | 
			
		||||
		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]);
 | 
			
		||||
	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)
 | 
			
		||||
	{
 | 
			
		||||
	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, m);
 | 
			
		||||
	BIO_puts(out, "\\n\"\n");
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
@@ -122,9 +120,7 @@ int main(int argc, char *argv[])
 | 
			
		||||
 | 
			
		||||
	results = 0;
 | 
			
		||||
 | 
			
		||||
	RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_rand may fail, and we don't
 | 
			
		||||
	                                       * even check its return value
 | 
			
		||||
	                                       * (which we should) */
 | 
			
		||||
	RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime may fail */
 | 
			
		||||
 | 
			
		||||
	argc--;
 | 
			
		||||
	argv++;
 | 
			
		||||
@@ -253,10 +249,10 @@ int test_add(BIO *bp)
 | 
			
		||||
	BN_init(&b);
 | 
			
		||||
	BN_init(&c);
 | 
			
		||||
 | 
			
		||||
	BN_rand(&a,512,0,0);
 | 
			
		||||
	BN_bntest_rand(&a,512,0,0);
 | 
			
		||||
	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();
 | 
			
		||||
		b.neg=rand_neg();
 | 
			
		||||
		if (bp == NULL)
 | 
			
		||||
@@ -305,14 +301,14 @@ int test_sub(BIO *bp)
 | 
			
		||||
		{
 | 
			
		||||
		if (i < num1)
 | 
			
		||||
			{
 | 
			
		||||
			BN_rand(&a,512,0,0);
 | 
			
		||||
			BN_bntest_rand(&a,512,0,0);
 | 
			
		||||
			BN_copy(&b,&a);
 | 
			
		||||
			if (BN_set_bit(&a,i)==0) return(0);
 | 
			
		||||
			BN_add_word(&b,i);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			BN_rand(&b,400+i-num1,0,0);
 | 
			
		||||
			BN_bntest_rand(&b,400+i-num1,0,0);
 | 
			
		||||
			a.neg=rand_neg();
 | 
			
		||||
			b.neg=rand_neg();
 | 
			
		||||
			}
 | 
			
		||||
@@ -362,13 +358,13 @@ int test_div(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
		{
 | 
			
		||||
		if (i < num1)
 | 
			
		||||
			{
 | 
			
		||||
			BN_rand(&a,400,0,0);
 | 
			
		||||
			BN_bntest_rand(&a,400,0,0);
 | 
			
		||||
			BN_copy(&b,&a);
 | 
			
		||||
			BN_lshift(&a,&a,i);
 | 
			
		||||
			BN_add_word(&a,i);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			BN_rand(&b,50+3*(i-num1),0,0);
 | 
			
		||||
			BN_bntest_rand(&b,50+3*(i-num1),0,0);
 | 
			
		||||
		a.neg=rand_neg();
 | 
			
		||||
		b.neg=rand_neg();
 | 
			
		||||
		if (bp == NULL)
 | 
			
		||||
@@ -432,13 +428,13 @@ int test_div_recp(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
		{
 | 
			
		||||
		if (i < num1)
 | 
			
		||||
			{
 | 
			
		||||
			BN_rand(&a,400,0,0);
 | 
			
		||||
			BN_bntest_rand(&a,400,0,0);
 | 
			
		||||
			BN_copy(&b,&a);
 | 
			
		||||
			BN_lshift(&a,&a,i);
 | 
			
		||||
			BN_add_word(&a,i);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			BN_rand(&b,50+3*(i-num1),0,0);
 | 
			
		||||
			BN_bntest_rand(&b,50+3*(i-num1),0,0);
 | 
			
		||||
		a.neg=rand_neg();
 | 
			
		||||
		b.neg=rand_neg();
 | 
			
		||||
		BN_RECP_CTX_set(&recp,&b,ctx);
 | 
			
		||||
@@ -509,11 +505,11 @@ int test_mul(BIO *bp)
 | 
			
		||||
		{
 | 
			
		||||
		if (i <= num1)
 | 
			
		||||
			{
 | 
			
		||||
			BN_rand(&a,100,0,0);
 | 
			
		||||
			BN_rand(&b,100,0,0);
 | 
			
		||||
			BN_bntest_rand(&a,100,0,0);
 | 
			
		||||
			BN_bntest_rand(&b,100,0,0);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			BN_rand(&b,i-num1,0,0);
 | 
			
		||||
			BN_bntest_rand(&b,i-num1,0,0);
 | 
			
		||||
		a.neg=rand_neg();
 | 
			
		||||
		b.neg=rand_neg();
 | 
			
		||||
		if (bp == NULL)
 | 
			
		||||
@@ -562,7 +558,7 @@ int test_sqr(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
 | 
			
		||||
	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();
 | 
			
		||||
		if (bp == NULL)
 | 
			
		||||
			for (j=0; j<100; j++)
 | 
			
		||||
@@ -613,15 +609,15 @@ int test_mont(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
 | 
			
		||||
	mont=BN_MONT_CTX_new();
 | 
			
		||||
 | 
			
		||||
	BN_rand(&a,100,0,0); /**/
 | 
			
		||||
	BN_rand(&b,100,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(&a,100,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(&b,100,0,0); /**/
 | 
			
		||||
	for (i=0; i<num2; i++)
 | 
			
		||||
		{
 | 
			
		||||
		int bits = (200*(i+1))/num2;
 | 
			
		||||
 | 
			
		||||
		if (bits == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
		BN_rand(&n,bits,0,1);
 | 
			
		||||
		BN_bntest_rand(&n,bits,0,1);
 | 
			
		||||
		BN_MONT_CTX_set(mont,&n,ctx);
 | 
			
		||||
 | 
			
		||||
		BN_to_montgomery(&A,&a,mont,ctx);
 | 
			
		||||
@@ -683,10 +679,10 @@ int test_mod(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
	d=BN_new();
 | 
			
		||||
	e=BN_new();
 | 
			
		||||
 | 
			
		||||
	BN_rand(a,1024,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(a,1024,0,0); /**/
 | 
			
		||||
	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();
 | 
			
		||||
		b->neg=rand_neg();
 | 
			
		||||
		if (bp == NULL)
 | 
			
		||||
@@ -732,11 +728,11 @@ int test_mod_mul(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
	d=BN_new();
 | 
			
		||||
	e=BN_new();
 | 
			
		||||
 | 
			
		||||
	BN_rand(c,1024,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(c,1024,0,0); /**/
 | 
			
		||||
	for (i=0; i<num0; i++)
 | 
			
		||||
		{
 | 
			
		||||
		BN_rand(a,475+i*10,0,0); /**/
 | 
			
		||||
		BN_rand(b,425+i*11,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(a,475+i*10,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(b,425+i*11,0,0); /**/
 | 
			
		||||
		a->neg=rand_neg();
 | 
			
		||||
		b->neg=rand_neg();
 | 
			
		||||
	/*	if (bp == NULL)
 | 
			
		||||
@@ -794,11 +790,11 @@ int test_mod_exp(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
	d=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++)
 | 
			
		||||
		{
 | 
			
		||||
		BN_rand(a,20+i*5,0,0); /**/
 | 
			
		||||
		BN_rand(b,2+i,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(a,20+i*5,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(b,2+i,0,0); /**/
 | 
			
		||||
 | 
			
		||||
		if (!BN_mod_exp(d,a,b,c,ctx))
 | 
			
		||||
			return(00);
 | 
			
		||||
@@ -848,8 +844,8 @@ int test_exp(BIO *bp, BN_CTX *ctx)
 | 
			
		||||
 | 
			
		||||
	for (i=0; i<num2; i++)
 | 
			
		||||
		{
 | 
			
		||||
		BN_rand(a,20+i*5,0,0); /**/
 | 
			
		||||
		BN_rand(b,2+i,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(a,20+i*5,0,0); /**/
 | 
			
		||||
		BN_bntest_rand(b,2+i,0,0); /**/
 | 
			
		||||
 | 
			
		||||
		if (!BN_exp(d,a,b,ctx))
 | 
			
		||||
			return(00);
 | 
			
		||||
@@ -899,7 +895,7 @@ int test_lshift(BIO *bp,BN_CTX *ctx,BIGNUM *a_)
 | 
			
		||||
	else
 | 
			
		||||
	    {
 | 
			
		||||
	    a=BN_new();
 | 
			
		||||
	    BN_rand(a,200,0,0); /**/
 | 
			
		||||
	    BN_bntest_rand(a,200,0,0); /**/
 | 
			
		||||
	    a->neg=rand_neg();
 | 
			
		||||
	    }
 | 
			
		||||
	for (i=0; i<num0; i++)
 | 
			
		||||
@@ -951,7 +947,7 @@ int test_lshift1(BIO *bp)
 | 
			
		||||
	b=BN_new();
 | 
			
		||||
	c=BN_new();
 | 
			
		||||
 | 
			
		||||
	BN_rand(a,200,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(a,200,0,0); /**/
 | 
			
		||||
	a->neg=rand_neg();
 | 
			
		||||
	for (i=0; i<num0; i++)
 | 
			
		||||
		{
 | 
			
		||||
@@ -995,7 +991,7 @@ int test_rshift(BIO *bp,BN_CTX *ctx)
 | 
			
		||||
	e=BN_new();
 | 
			
		||||
	BN_one(c);
 | 
			
		||||
 | 
			
		||||
	BN_rand(a,200,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(a,200,0,0); /**/
 | 
			
		||||
	a->neg=rand_neg();
 | 
			
		||||
	for (i=0; i<num0; i++)
 | 
			
		||||
		{
 | 
			
		||||
@@ -1038,7 +1034,7 @@ int test_rshift1(BIO *bp)
 | 
			
		||||
	b=BN_new();
 | 
			
		||||
	c=BN_new();
 | 
			
		||||
 | 
			
		||||
	BN_rand(a,200,0,0); /**/
 | 
			
		||||
	BN_bntest_rand(a,200,0,0); /**/
 | 
			
		||||
	a->neg=rand_neg();
 | 
			
		||||
	for (i=0; i<num0; i++)
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
# elf
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
 
 | 
			
		||||
@@ -167,6 +167,8 @@ int NCONF_dump_bio(CONF *conf, BIO *out);
 | 
			
		||||
#define CONF_R_MISSING_EQUAL_SIGN			 101
 | 
			
		||||
#define CONF_R_NO_CLOSE_BRACE				 102
 | 
			
		||||
#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_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_NO_CLOSE_BRACE                   ,"no close brace"},
 | 
			
		||||
{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_VARIABLE_HAS_NO_VALUE            ,"variable has no value"},
 | 
			
		||||
{0,NULL}
 | 
			
		||||
 
 | 
			
		||||
@@ -130,6 +130,12 @@ LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section)
 | 
			
		||||
	{
 | 
			
		||||
	if (conf == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		return NULL;
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		CONF ctmp;
 | 
			
		||||
 | 
			
		||||
@@ -140,8 +146,15 @@ STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,char *section)
 | 
			
		||||
		ctmp.data = conf;
 | 
			
		||||
		return NCONF_get_section(&ctmp, section);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
char *CONF_get_string(LHASH *conf,char *group,char *name)
 | 
			
		||||
	{
 | 
			
		||||
	if (conf == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		return NCONF_get_string(NULL, group, name);
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		CONF ctmp;
 | 
			
		||||
 | 
			
		||||
@@ -152,8 +165,15 @@ char *CONF_get_string(LHASH *conf,char *group,char *name)
 | 
			
		||||
		ctmp.data = conf;
 | 
			
		||||
		return NCONF_get_string(&ctmp, group, name);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
long CONF_get_number(LHASH *conf,char *group,char *name)
 | 
			
		||||
	{
 | 
			
		||||
	if (conf == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		return NCONF_get_number(NULL, group, name);
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		CONF ctmp;
 | 
			
		||||
 | 
			
		||||
@@ -164,6 +184,7 @@ long CONF_get_number(LHASH *conf,char *group,char *name)
 | 
			
		||||
		ctmp.data = conf;
 | 
			
		||||
		return NCONF_get_number(&ctmp, group, name);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
void CONF_free(LHASH *conf)
 | 
			
		||||
	{
 | 
			
		||||
@@ -299,27 +320,46 @@ STACK_OF(CONF_VALUE) *NCONF_get_section(CONF *conf,char *section)
 | 
			
		||||
		return NULL;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (section == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		CONFerr(CONF_F_NCONF_GET_SECTION,CONF_R_NO_SECTION);
 | 
			
		||||
		return NULL;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	return _CONF_get_section_values(conf, section);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
		{
 | 
			
		||||
		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 _CONF_get_string(conf, group, name);
 | 
			
		||||
	return NULL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
		{
 | 
			
		||||
		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;
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
	
 | 
			
		||||
	return _CONF_get_number(conf, group, name);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -100,7 +100,8 @@ static const char* lock_names[CRYPTO_NUM_LOCKS] =
 | 
			
		||||
	"debug_malloc2",
 | 
			
		||||
	"dso",
 | 
			
		||||
	"dynlock",
 | 
			
		||||
#if CRYPTO_NUM_LOCKS != 28
 | 
			
		||||
	"engine",
 | 
			
		||||
#if CRYPTO_NUM_LOCKS != 29
 | 
			
		||||
# error "Inconsistency between crypto.h and cryptlib.c"
 | 
			
		||||
#endif
 | 
			
		||||
	};
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ $! Define The Different Encryption Types.
 | 
			
		||||
$!
 | 
			
		||||
$ ENCRYPT_TYPES = "Basic,MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,"+ -
 | 
			
		||||
		  "DES,RC2,RC4,RC5,IDEA,BF,CAST,"+ -
 | 
			
		||||
		  "BN,RSA,DSA,DH,DSO,"+ -
 | 
			
		||||
		  "BN,RSA,DSA,DH,DSO,ENGINE,"+ -
 | 
			
		||||
		  "BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,"+ -
 | 
			
		||||
		  "EVP,EVP_2,ASN1,ASN1_2,PEM,X509,X509V3,"+ -
 | 
			
		||||
		  "CONF,TXT_DB,PKCS7,PKCS12,COMP"
 | 
			
		||||
@@ -174,7 +174,7 @@ $!
 | 
			
		||||
$ APPS_DES = "DES/DES,CBC3_ENC"
 | 
			
		||||
$ 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_MD4 = "md4_dgst,md4_one"
 | 
			
		||||
$ LIB_MD5 = "md5_dgst,md5_one"
 | 
			
		||||
@@ -206,6 +206,8 @@ $ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,dsa_err,dsa_ossl"
 | 
			
		||||
$ LIB_DH = "dh_gen,dh_key,dh_lib,dh_check,dh_err"
 | 
			
		||||
$ LIB_DSO = "dso_dl,dso_dlfcn,dso_err,dso_lib,dso_null,"+ -
 | 
			
		||||
	"dso_openssl,dso_win32,dso_vms"
 | 
			
		||||
$ LIB_ENGINE = "engine_err,engine_lib,engine_list,engine_openssl,"+ -
 | 
			
		||||
	"hw_atalla,hw_cswift,hw_ncipher"
 | 
			
		||||
$ LIB_BUFFER = "buffer,buf_err"
 | 
			
		||||
$ LIB_BIO = "bio_lib,bio_cb,bio_err,"+ -
 | 
			
		||||
	"bss_mem,bss_null,bss_fd,"+ -
 | 
			
		||||
@@ -1194,7 +1196,9 @@ $     CC = "CC"
 | 
			
		||||
$     IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
 | 
			
		||||
	 THEN CC = "CC/DECC"
 | 
			
		||||
$     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
 | 
			
		||||
           "/NOLIST/PREFIX=ALL/INCLUDE=SYS$DISK:[]" + CCEXTRAFLAGS
 | 
			
		||||
           "/NOLIST/PREFIX=ALL" + -
 | 
			
		||||
	   "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
 | 
			
		||||
	   CCEXTRAFLAGS
 | 
			
		||||
$!
 | 
			
		||||
$!    Define The Linker Options File Name.
 | 
			
		||||
$!
 | 
			
		||||
@@ -1226,7 +1230,8 @@ $	WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
 | 
			
		||||
$	EXIT
 | 
			
		||||
$     ENDIF
 | 
			
		||||
$     IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
 | 
			
		||||
$     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST/INCLUDE=SYS$DISK:[]" + -
 | 
			
		||||
$     CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
 | 
			
		||||
	   "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
 | 
			
		||||
	   CCEXTRAFLAGS
 | 
			
		||||
$     CCDEFS = """VAXC""," + CCDEFS
 | 
			
		||||
$!
 | 
			
		||||
@@ -1258,7 +1263,8 @@ $!
 | 
			
		||||
$!    Use GNU C...
 | 
			
		||||
$!
 | 
			
		||||
$     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
 | 
			
		||||
	   "/INCLUDE=SYS$DISK:[]" + CCEXTRAFLAGS
 | 
			
		||||
	   "/INCLUDE=(SYS$DISK:[],SYS$DISK:[.ENGINE.VENDOR_DEFNS])" + -
 | 
			
		||||
	   CCEXTRAFLAGS
 | 
			
		||||
$!
 | 
			
		||||
$!    Define The Linker Options File Name.
 | 
			
		||||
$!
 | 
			
		||||
 
 | 
			
		||||
@@ -122,7 +122,8 @@ extern "C" {
 | 
			
		||||
#define	CRYPTO_LOCK_MALLOC2		25
 | 
			
		||||
#define	CRYPTO_LOCK_DSO			26
 | 
			
		||||
#define	CRYPTO_LOCK_DYNLOCK		27
 | 
			
		||||
#define	CRYPTO_NUM_LOCKS		28
 | 
			
		||||
#define	CRYPTO_LOCK_ENGINE		28
 | 
			
		||||
#define	CRYPTO_NUM_LOCKS		29
 | 
			
		||||
 | 
			
		||||
#define CRYPTO_LOCK		1
 | 
			
		||||
#define CRYPTO_UNLOCK		2
 | 
			
		||||
@@ -277,6 +278,8 @@ int CRYPTO_is_mem_check_on(void);
 | 
			
		||||
const char *SSLeay_version(int type);
 | 
			
		||||
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,
 | 
			
		||||
	     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);
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,8 @@ all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB)
 | 
			
		||||
	@echo You may get an error following this line.  Please ignore.
 | 
			
		||||
	- $(RANLIB) $(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
des: des.o cbc3_enc.o lib
 | 
			
		||||
 
 | 
			
		||||
@@ -20,11 +20,11 @@ $L="edi";
 | 
			
		||||
$R="esi";
 | 
			
		||||
 | 
			
		||||
&external_label("des_SPtrans");
 | 
			
		||||
&des_encrypt("des_encrypt",1);
 | 
			
		||||
&des_encrypt("des_encrypt1",1);
 | 
			
		||||
&des_encrypt("des_encrypt2",0);
 | 
			
		||||
&des_encrypt3("des_encrypt3",1);
 | 
			
		||||
&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);
 | 
			
		||||
 | 
			
		||||
&asm_finish();
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ EOF
 | 
			
		||||
$L="edi";
 | 
			
		||||
$R="esi";
 | 
			
		||||
 | 
			
		||||
&des_encrypt("des_encrypt",1);
 | 
			
		||||
&des_encrypt("des_encrypt1",1);
 | 
			
		||||
&des_encrypt("des_encrypt2",0);
 | 
			
		||||
 | 
			
		||||
&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
 | 
			
		||||
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_encrypt3(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;
 | 
			
		||||
		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 */
 | 
			
		||||
		tout0=tin[0];
 | 
			
		||||
		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,v1); ti[1]=v1;
 | 
			
		||||
				des_encrypt(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
				des_encrypt1(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
				iv = &(*ivec)[0];
 | 
			
		||||
				v0=ti[0]; 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,v1); ti[1]=v1;
 | 
			
		||||
				des_encrypt(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
				des_encrypt1(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
				iv = &(*ivec)[0];
 | 
			
		||||
				v0=ti[0]; 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;
 | 
			
		||||
			ti[0]=v0;
 | 
			
		||||
			ti[1]=v1;
 | 
			
		||||
			des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			c2ln(in,d0,d1,n);
 | 
			
		||||
			in+=n;
 | 
			
		||||
			d0=(d0^ti[0])&mask0;
 | 
			
		||||
@@ -132,7 +132,7 @@ void des_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
 | 
			
		||||
			l-=n;
 | 
			
		||||
			ti[0]=v0;
 | 
			
		||||
			ti[1]=v1;
 | 
			
		||||
			des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			c2ln(in,d0,d1,n);
 | 
			
		||||
			in+=n;
 | 
			
		||||
			/* 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
 | 
			
		||||
	des_key_schedule to use.  enc, is non zero specifies encryption,
 | 
			
		||||
	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
 | 
			
		||||
	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.
 | 
			
		||||
	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_encrypt3(DES_LONG *data, des_key_schedule ks1,
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@
 | 
			
		||||
 | 
			
		||||
#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;
 | 
			
		||||
#ifdef DES_PTR
 | 
			
		||||
 
 | 
			
		||||
@@ -118,7 +118,7 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_cisc_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_cisc_idx
 | 
			
		||||
@@ -130,11 +130,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_cisc_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_cisc_idx
 | 
			
		||||
@@ -146,11 +146,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_risc1_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_risc1_idx
 | 
			
		||||
@@ -166,11 +166,11 @@ extern void exit();
 | 
			
		||||
#define DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_risc2_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_risc2_idx
 | 
			
		||||
@@ -182,11 +182,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_risc1_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_risc1_idx
 | 
			
		||||
@@ -198,11 +198,11 @@ extern void exit();
 | 
			
		||||
#define DES_RISC2
 | 
			
		||||
#undef DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_risc2_idx
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_risc2_idx
 | 
			
		||||
@@ -218,11 +218,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_cisc_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_cisc_ptr
 | 
			
		||||
@@ -234,11 +234,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_cisc_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_cisc_ptr
 | 
			
		||||
@@ -250,11 +250,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_risc1_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_risc1_ptr
 | 
			
		||||
@@ -270,11 +270,11 @@ extern void exit();
 | 
			
		||||
#define DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u4_risc2_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u4_risc2_ptr
 | 
			
		||||
@@ -286,11 +286,11 @@ extern void exit();
 | 
			
		||||
#undef DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_risc1_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_risc1_ptr
 | 
			
		||||
@@ -302,11 +302,11 @@ extern void exit();
 | 
			
		||||
#define DES_RISC2
 | 
			
		||||
#define DES_PTR
 | 
			
		||||
#undef D_ENCRYPT
 | 
			
		||||
#undef des_encrypt
 | 
			
		||||
#undef des_encrypt1
 | 
			
		||||
#undef des_encrypt2
 | 
			
		||||
#undef des_encrypt3
 | 
			
		||||
#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_encrypt3 des_encrypt3_u16_risc2_ptr
 | 
			
		||||
#define des_decrypt3 des_decrypt3_u16_risc2_ptr
 | 
			
		||||
@@ -453,7 +453,7 @@ int main(int argc, char **argv)
 | 
			
		||||
		count*=2;
 | 
			
		||||
		Time_F(START);
 | 
			
		||||
		for (i=count; i; i--)
 | 
			
		||||
			des_encrypt(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
		d=Time_F(STOP);
 | 
			
		||||
		} while (d < 3.0);
 | 
			
		||||
	ca=count;
 | 
			
		||||
 
 | 
			
		||||
@@ -45,19 +45,19 @@ void main(int argc,char *argv[])
 | 
			
		||||
		{
 | 
			
		||||
		for (i=0; i<1000; i++) /**/
 | 
			
		||||
			{
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			GetTSC(s1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			GetTSC(e1);
 | 
			
		||||
			GetTSC(s2);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			GetTSC(e2);
 | 
			
		||||
			des_encrypt(&data[0],key,1);
 | 
			
		||||
			des_encrypt1(&data[0],key,1);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		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[1]=l;
 | 
			
		||||
	des_encrypt(ll,ks,enc);
 | 
			
		||||
	des_encrypt1(ll,ks,enc);
 | 
			
		||||
	l=ll[0]; l2c(l,out);
 | 
			
		||||
	l=ll[1]; l2c(l,out);
 | 
			
		||||
	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[1]=m1;
 | 
			
		||||
	    des_encrypt(tin,ks3,1);
 | 
			
		||||
	    des_encrypt1(tin,ks3,1);
 | 
			
		||||
	    m0=tin[0];
 | 
			
		||||
	    m1=tin[1];
 | 
			
		||||
 | 
			
		||||
@@ -113,13 +113,13 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
 | 
			
		||||
	    tin[0]=tin0;
 | 
			
		||||
	    tin[1]=tin1;
 | 
			
		||||
	    des_encrypt(tin,ks1,1);
 | 
			
		||||
	    des_encrypt1(tin,ks1,1);
 | 
			
		||||
	    tin[0]^=m0;
 | 
			
		||||
	    tin[1]^=m1;
 | 
			
		||||
	    des_encrypt(tin,ks2,0);
 | 
			
		||||
	    des_encrypt1(tin,ks2,0);
 | 
			
		||||
	    tin[0]^=m0;
 | 
			
		||||
	    tin[1]^=m1;
 | 
			
		||||
	    des_encrypt(tin,ks1,1);
 | 
			
		||||
	    des_encrypt1(tin,ks1,1);
 | 
			
		||||
	    tout0=tin[0];
 | 
			
		||||
	    tout1=tin[1];
 | 
			
		||||
 | 
			
		||||
@@ -146,7 +146,7 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
	    {
 | 
			
		||||
	    tin[0]=m0;
 | 
			
		||||
	    tin[1]=m1;
 | 
			
		||||
	    des_encrypt(tin,ks3,1);
 | 
			
		||||
	    des_encrypt1(tin,ks3,1);
 | 
			
		||||
	    m0=tin[0];
 | 
			
		||||
	    m1=tin[1];
 | 
			
		||||
 | 
			
		||||
@@ -158,13 +158,13 @@ void des_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
 | 
			
		||||
	    tin[0]=tin0;
 | 
			
		||||
	    tin[1]=tin1;
 | 
			
		||||
	    des_encrypt(tin,ks1,0);
 | 
			
		||||
	    des_encrypt1(tin,ks1,0);
 | 
			
		||||
	    tin[0]^=m0;
 | 
			
		||||
	    tin[1]^=m1;
 | 
			
		||||
	    des_encrypt(tin,ks2,1);
 | 
			
		||||
	    des_encrypt1(tin,ks2,1);
 | 
			
		||||
	    tin[0]^=m0;
 | 
			
		||||
	    tin[1]^=m1;
 | 
			
		||||
	    des_encrypt(tin,ks1,0);
 | 
			
		||||
	    des_encrypt1(tin,ks1,0);
 | 
			
		||||
	    tout0=tin[0];
 | 
			
		||||
	    tout1=tin[1];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -89,7 +89,7 @@ void des_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
 | 
			
		||||
			c2l(in,tin1);
 | 
			
		||||
			tin0^=tout0; tin[0]=tin0;
 | 
			
		||||
			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);
 | 
			
		||||
			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);
 | 
			
		||||
			tin0^=tout0; tin[0]=tin0;
 | 
			
		||||
			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);
 | 
			
		||||
			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,tin1); tin[1]=tin1;
 | 
			
		||||
			des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			tout0=tin[0]^xor0;
 | 
			
		||||
			tout1=tin[1]^xor1;
 | 
			
		||||
			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,tin1); tin[1]=tin1;
 | 
			
		||||
			des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			tout0=tin[0]^xor0;
 | 
			
		||||
			tout1=tin[1]^xor1;
 | 
			
		||||
			l2cn(tout0,tout1,out,l+8);
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@ void des_ofb64_encrypt(register const unsigned char *in,
 | 
			
		||||
		{
 | 
			
		||||
		if (n == 0)
 | 
			
		||||
			{
 | 
			
		||||
			des_encrypt(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1(ti,schedule,DES_ENCRYPT);
 | 
			
		||||
			dp=d;
 | 
			
		||||
			t=ti[0]; 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[1]=v1;
 | 
			
		||||
		des_encrypt((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
		des_encrypt1((DES_LONG *)ti,schedule,DES_ENCRYPT);
 | 
			
		||||
		vv0=ti[0];
 | 
			
		||||
		vv1=ti[1];
 | 
			
		||||
		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);
 | 
			
		||||
			tin[0]=sin0^xor0;
 | 
			
		||||
			tin[1]=sin1^xor1;
 | 
			
		||||
			des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)tin,schedule,DES_ENCRYPT);
 | 
			
		||||
			tout0=tin[0];
 | 
			
		||||
			tout1=tin[1];
 | 
			
		||||
			xor0=sin0^tout0;
 | 
			
		||||
@@ -103,7 +103,7 @@ void des_pcbc_encrypt(const unsigned char *input, unsigned char *output,
 | 
			
		||||
			c2l(in,sin1);
 | 
			
		||||
			tin[0]=sin0;
 | 
			
		||||
			tin[1]=sin1;
 | 
			
		||||
			des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			des_encrypt1((DES_LONG *)tin,schedule,DES_DECRYPT);
 | 
			
		||||
			tout0=tin[0]^xor0;
 | 
			
		||||
			tout1=tin[1]^xor1;
 | 
			
		||||
			if (length >= 8)
 | 
			
		||||
 
 | 
			
		||||
@@ -204,7 +204,7 @@ int main(int argc, char **argv)
 | 
			
		||||
		count*=2;
 | 
			
		||||
		Time_F(START);
 | 
			
		||||
		for (i=count; i; i--)
 | 
			
		||||
			des_encrypt(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
			des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
		d=Time_F(STOP);
 | 
			
		||||
		} while (d < 3.0);
 | 
			
		||||
	ca=count;
 | 
			
		||||
@@ -241,7 +241,7 @@ int main(int argc, char **argv)
 | 
			
		||||
		{
 | 
			
		||||
		DES_LONG data[2];
 | 
			
		||||
 | 
			
		||||
		des_encrypt(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
		des_encrypt1(data,&(sch[0]),DES_ENCRYPT);
 | 
			
		||||
		}
 | 
			
		||||
	d=Time_F(STOP);
 | 
			
		||||
	printf("%ld des_encrypt's in %.2f second\n",count,d);
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user