Compare commits
	
		
			801 Commits
		
	
	
		
			OpenSSL-fi
			...
			FIPS_098_T
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a334b0436d | ||
| 
						 | 
					af13a3949d | ||
| 
						 | 
					ffc35e73b4 | ||
| 
						 | 
					a197212e0f | ||
| 
						 | 
					8944220221 | ||
| 
						 | 
					5fd76ba57a | ||
| 
						 | 
					df50ec372e | ||
| 
						 | 
					49fa74385d | ||
| 
						 | 
					899f528c1a | ||
| 
						 | 
					5faa5a9476 | ||
| 
						 | 
					ddb0cb5bfd | ||
| 
						 | 
					b2d65cbac7 | ||
| 
						 | 
					6be8288928 | ||
| 
						 | 
					9fe07b7cf0 | ||
| 
						 | 
					0c86c87c60 | ||
| 
						 | 
					e20d6ef3d6 | ||
| 
						 | 
					27f50994ff | ||
| 
						 | 
					53c381105a | ||
| 
						 | 
					33d0ef8fde | ||
| 
						 | 
					b2acf7a572 | ||
| 
						 | 
					e8d2d9478d | ||
| 
						 | 
					23b3b61921 | ||
| 
						 | 
					d265676989 | ||
| 
						 | 
					69fc3dff96 | ||
| 
						 | 
					667731b635 | ||
| 
						 | 
					a416ca47ac | ||
| 
						 | 
					2714e2ac89 | ||
| 
						 | 
					1139eeecbc | ||
| 
						 | 
					1b936a5e37 | ||
| 
						 | 
					0cca0fe0c2 | ||
| 
						 | 
					56474376dc | ||
| 
						 | 
					3e511f167e | ||
| 
						 | 
					282af42404 | ||
| 
						 | 
					a81f337331 | ||
| 
						 | 
					1729dca9a8 | ||
| 
						 | 
					9719193222 | ||
| 
						 | 
					e6fa7c1276 | ||
| 
						 | 
					cf7053430d | ||
| 
						 | 
					ff03c6bc97 | ||
| 
						 | 
					82c8b6b74d | ||
| 
						 | 
					cb6fdc3a49 | ||
| 
						 | 
					8c3b5d5f27 | ||
| 
						 | 
					dc83f2e312 | ||
| 
						 | 
					6693e26927 | ||
| 
						 | 
					793364457b | ||
| 
						 | 
					6b05350495 | ||
| 
						 | 
					daec9a56a0 | ||
| 
						 | 
					5c77786a55 | ||
| 
						 | 
					42bc3582a9 | ||
| 
						 | 
					2050f6514f | ||
| 
						 | 
					5068d7dda4 | ||
| 
						 | 
					55768cf773 | ||
| 
						 | 
					6c69dcd9f5 | ||
| 
						 | 
					ad4297dd9c | ||
| 
						 | 
					aeb9ccfaad | ||
| 
						 | 
					79b335a4b5 | ||
| 
						 | 
					6fd3f3260d | ||
| 
						 | 
					d9e262443c | ||
| 
						 | 
					51c3bb3b98 | ||
| 
						 | 
					7d608f9e32 | ||
| 
						 | 
					295de18c8a | ||
| 
						 | 
					3370b694b9 | ||
| 
						 | 
					3380c52f15 | ||
| 
						 | 
					1364e6f1ac | ||
| 
						 | 
					c5ac2aa62c | ||
| 
						 | 
					392a0345de | ||
| 
						 | 
					5c2fc73e7b | ||
| 
						 | 
					402b951804 | ||
| 
						 | 
					5848d13fed | ||
| 
						 | 
					5dd24ead57 | ||
| 
						 | 
					d2cb94952a | ||
| 
						 | 
					0615396d2d | ||
| 
						 | 
					82877ea449 | ||
| 
						 | 
					81fae49db9 | ||
| 
						 | 
					74ff8dc975 | ||
| 
						 | 
					ac319217d0 | ||
| 
						 | 
					cdb13ae8d0 | ||
| 
						 | 
					ab700807d9 | ||
| 
						 | 
					744b91bb9f | ||
| 
						 | 
					d69f85bf15 | ||
| 
						 | 
					52ee969e29 | ||
| 
						 | 
					55f0501201 | ||
| 
						 | 
					b2710ee19a | ||
| 
						 | 
					bbfcc4724d | ||
| 
						 | 
					c31cc72d79 | ||
| 
						 | 
					d1049ad93e | ||
| 
						 | 
					5f4cc234fb | ||
| 
						 | 
					d31a13953c | ||
| 
						 | 
					28f5873179 | ||
| 
						 | 
					8f813338f1 | ||
| 
						 | 
					6555dfa486 | ||
| 
						 | 
					5eee0253e5 | ||
| 
						 | 
					594c723f98 | ||
| 
						 | 
					f418265865 | ||
| 
						 | 
					53707e2eec | ||
| 
						 | 
					fde794e898 | ||
| 
						 | 
					082f19b42d | ||
| 
						 | 
					e31c620686 | ||
| 
						 | 
					dcc309548e | ||
| 
						 | 
					570253315f | ||
| 
						 | 
					8eae0ff0f7 | ||
| 
						 | 
					5dcdac6e4e | ||
| 
						 | 
					5c4a07551e | ||
| 
						 | 
					eea3fce854 | ||
| 
						 | 
					215c49d032 | ||
| 
						 | 
					923df53e25 | ||
| 
						 | 
					b443a0ea5d | ||
| 
						 | 
					1a684d0020 | ||
| 
						 | 
					1f4a5a3339 | ||
| 
						 | 
					dc3b721fa0 | ||
| 
						 | 
					4479ce9c1c | ||
| 
						 | 
					4a0d3530e0 | ||
| 
						 | 
					9907d2992d | ||
| 
						 | 
					20fb51b1a7 | ||
| 
						 | 
					551bfa60e0 | ||
| 
						 | 
					9d9224f184 | ||
| 
						 | 
					78d4d87e39 | ||
| 
						 | 
					6211633273 | ||
| 
						 | 
					3a4cf918bf | ||
| 
						 | 
					e25eb309ec | ||
| 
						 | 
					ffa2b2aa7d | ||
| 
						 | 
					a77a95584d | ||
| 
						 | 
					68bb98159f | ||
| 
						 | 
					8e6905d238 | ||
| 
						 | 
					1a8521ff24 | ||
| 
						 | 
					9d5460d72d | ||
| 
						 | 
					35e59297fc | ||
| 
						 | 
					9b945233b1 | ||
| 
						 | 
					b065dc2eee | ||
| 
						 | 
					66c4bb1a70 | ||
| 
						 | 
					36abe6fe61 | ||
| 
						 | 
					3c786aa6c8 | ||
| 
						 | 
					e5cce6d356 | ||
| 
						 | 
					723b7d81e4 | ||
| 
						 | 
					a3ddd7358b | ||
| 
						 | 
					45c027f31f | ||
| 
						 | 
					3b62e9eb0d | ||
| 
						 | 
					34a8c7ec87 | ||
| 
						 | 
					d4a6240005 | ||
| 
						 | 
					5c6f76da0a | ||
| 
						 | 
					4636341b05 | ||
| 
						 | 
					be3b770d8f | ||
| 
						 | 
					af32387b3f | ||
| 
						 | 
					115fc340cb | ||
| 
						 | 
					900f7a8776 | ||
| 
						 | 
					4877e30504 | ||
| 
						 | 
					4656ec3852 | ||
| 
						 | 
					e336441197 | ||
| 
						 | 
					20d6182f33 | ||
| 
						 | 
					aa145866f9 | ||
| 
						 | 
					fdff41e166 | ||
| 
						 | 
					07b4bc3979 | ||
| 
						 | 
					0c66d3ae37 | ||
| 
						 | 
					bd869183d5 | ||
| 
						 | 
					7e2bf83100 | ||
| 
						 | 
					25e52a78fb | ||
| 
						 | 
					47c4bb2ddf | ||
| 
						 | 
					951dfbb13a | ||
| 
						 | 
					81780a3b62 | ||
| 
						 | 
					c574d0cdf2 | ||
| 
						 | 
					c987c3f999 | ||
| 
						 | 
					1a5e414863 | ||
| 
						 | 
					ec3639385e | ||
| 
						 | 
					f01cfca6a4 | ||
| 
						 | 
					7d5af5e0fa | ||
| 
						 | 
					8fdb296cbd | ||
| 
						 | 
					879b30aaa3 | ||
| 
						 | 
					40ddcb717a | ||
| 
						 | 
					da1841a075 | ||
| 
						 | 
					0a0a10d127 | ||
| 
						 | 
					df20b6e79b | ||
| 
						 | 
					f4f1dc39e0 | ||
| 
						 | 
					340b4dd7df | ||
| 
						 | 
					4b9dcd821f | ||
| 
						 | 
					669c5c9380 | ||
| 
						 | 
					7f9aa6c59b | ||
| 
						 | 
					d9c06b56ca | ||
| 
						 | 
					d045e1d77e | ||
| 
						 | 
					6d14cc7ec1 | ||
| 
						 | 
					eb499b2854 | ||
| 
						 | 
					65a82ef6d7 | ||
| 
						 | 
					616f581650 | ||
| 
						 | 
					57e802656f | ||
| 
						 | 
					5d7f15daf8 | ||
| 
						 | 
					ec67e3b7e4 | ||
| 
						 | 
					0d3ff3c073 | ||
| 
						 | 
					325e48867c | ||
| 
						 | 
					8de95bc05b | ||
| 
						 | 
					5e3003bb52 | ||
| 
						 | 
					e6e3f38bfa | ||
| 
						 | 
					aa17ab7e57 | ||
| 
						 | 
					35908bd040 | ||
| 
						 | 
					4a9cfd763e | ||
| 
						 | 
					0e73294e26 | ||
| 
						 | 
					b610f46bae | ||
| 
						 | 
					1921a1adb2 | ||
| 
						 | 
					6d2cd23f40 | ||
| 
						 | 
					14fb67f28a | ||
| 
						 | 
					c552680473 | ||
| 
						 | 
					edbf9f878d | ||
| 
						 | 
					2745ddfc33 | ||
| 
						 | 
					808606034a | ||
| 
						 | 
					e18eef3d7a | ||
| 
						 | 
					e78fc11a95 | ||
| 
						 | 
					83231cb376 | ||
| 
						 | 
					986ad56124 | ||
| 
						 | 
					b723a7b11b | ||
| 
						 | 
					1b6b67b17e | ||
| 
						 | 
					1ee3236f72 | ||
| 
						 | 
					b03a4917be | ||
| 
						 | 
					84971b39f5 | ||
| 
						 | 
					5ab3e743f3 | ||
| 
						 | 
					1c5dc844e7 | ||
| 
						 | 
					f871949efd | ||
| 
						 | 
					eb2ec6bee9 | ||
| 
						 | 
					df22f59f6e | ||
| 
						 | 
					db0edc3273 | ||
| 
						 | 
					6300c14248 | ||
| 
						 | 
					d4426e79a7 | ||
| 
						 | 
					b095418d20 | ||
| 
						 | 
					d6fd880481 | ||
| 
						 | 
					cbb0b734c7 | ||
| 
						 | 
					f4bcd70f27 | ||
| 
						 | 
					6e16b45d9d | ||
| 
						 | 
					e09e7ab362 | ||
| 
						 | 
					d5cc2f19cd | ||
| 
						 | 
					b7a80146f4 | ||
| 
						 | 
					5586a71a6e | ||
| 
						 | 
					81418b7c77 | ||
| 
						 | 
					8bd0c77ae3 | ||
| 
						 | 
					e2217e7ed5 | ||
| 
						 | 
					51b75ea7ef | ||
| 
						 | 
					41d4d6721c | ||
| 
						 | 
					9d01d50459 | ||
| 
						 | 
					e27c67c5c5 | ||
| 
						 | 
					e7decd5f4d | ||
| 
						 | 
					38a3178185 | ||
| 
						 | 
					58828ae573 | ||
| 
						 | 
					6b5f5e3508 | ||
| 
						 | 
					f0ec771933 | ||
| 
						 | 
					22d1087e16 | ||
| 
						 | 
					9f85fcefdc | ||
| 
						 | 
					269d2575cd | ||
| 
						 | 
					0b8ed5de2d | ||
| 
						 | 
					c22684eac9 | ||
| 
						 | 
					c42cd4b831 | ||
| 
						 | 
					ab50cf18db | ||
| 
						 | 
					31c0a38482 | ||
| 
						 | 
					91c88deafe | ||
| 
						 | 
					a91cb15daa | ||
| 
						 | 
					d2890f6223 | ||
| 
						 | 
					1ce5bb27e4 | ||
| 
						 | 
					04262cee42 | ||
| 
						 | 
					a5a1e71e86 | ||
| 
						 | 
					06d2a382c4 | ||
| 
						 | 
					4630a51537 | ||
| 
						 | 
					01f2ee2bc6 | ||
| 
						 | 
					def5aefa7f | ||
| 
						 | 
					5ba7d69c66 | ||
| 
						 | 
					cf81dc74bd | ||
| 
						 | 
					46c646225d | ||
| 
						 | 
					d18c4d09d1 | ||
| 
						 | 
					e5ad779b69 | ||
| 
						 | 
					cb36743161 | ||
| 
						 | 
					fb3eab3562 | ||
| 
						 | 
					2724bcac2f | ||
| 
						 | 
					3431c07a66 | ||
| 
						 | 
					9abf011643 | ||
| 
						 | 
					75cdb055e6 | ||
| 
						 | 
					f4207058b8 | ||
| 
						 | 
					900b1eb869 | ||
| 
						 | 
					e3b61b1e57 | ||
| 
						 | 
					750779da07 | ||
| 
						 | 
					157f01a8ef | ||
| 
						 | 
					491923fde1 | ||
| 
						 | 
					273f5726a5 | ||
| 
						 | 
					a37778046d | ||
| 
						 | 
					8a087e57d2 | ||
| 
						 | 
					e384fd9418 | ||
| 
						 | 
					f6e32f9db4 | ||
| 
						 | 
					66bb600b05 | ||
| 
						 | 
					c3b2d69945 | ||
| 
						 | 
					619991cc3e | ||
| 
						 | 
					3c410172b7 | ||
| 
						 | 
					56319ad00e | ||
| 
						 | 
					f7832889d3 | ||
| 
						 | 
					46fdad292a | ||
| 
						 | 
					da99684a8e | ||
| 
						 | 
					2130ee35d9 | ||
| 
						 | 
					15f239a4a3 | ||
| 
						 | 
					223ab84726 | ||
| 
						 | 
					94d66c3182 | ||
| 
						 | 
					a0dd62bdb7 | ||
| 
						 | 
					fd6d2e0754 | ||
| 
						 | 
					4a4d3c02f2 | ||
| 
						 | 
					7abd533793 | ||
| 
						 | 
					b1816f93e1 | ||
| 
						 | 
					e1904f9eec | ||
| 
						 | 
					9f3d5018c4 | ||
| 
						 | 
					768729afbe | ||
| 
						 | 
					0c96e35c42 | ||
| 
						 | 
					72e2934909 | ||
| 
						 | 
					26d96f26da | ||
| 
						 | 
					5fcc83ed1e | ||
| 
						 | 
					9ecb20f1de | ||
| 
						 | 
					b611ff350c | ||
| 
						 | 
					7f790e0575 | ||
| 
						 | 
					dccf15ee25 | ||
| 
						 | 
					89d8a20f22 | ||
| 
						 | 
					782f8600fa | ||
| 
						 | 
					f2008fe3fd | ||
| 
						 | 
					70b3786ffe | ||
| 
						 | 
					b48fb91edd | ||
| 
						 | 
					8a19891b2a | ||
| 
						 | 
					f35d0948eb | ||
| 
						 | 
					d0f2c1bb81 | ||
| 
						 | 
					7ba410f9a5 | ||
| 
						 | 
					36c2be5645 | ||
| 
						 | 
					0869cd2676 | ||
| 
						 | 
					4ac5596a86 | ||
| 
						 | 
					4d018f7067 | ||
| 
						 | 
					3df76b15ed | ||
| 
						 | 
					46eaf3b0cc | ||
| 
						 | 
					9b3cce3d00 | ||
| 
						 | 
					9df2a00b94 | ||
| 
						 | 
					c8a2f669f3 | ||
| 
						 | 
					fbcf4bc1f2 | ||
| 
						 | 
					04a2a836f7 | ||
| 
						 | 
					ca08c064bb | ||
| 
						 | 
					02df47d349 | ||
| 
						 | 
					41c39e3366 | ||
| 
						 | 
					45803988ce | ||
| 
						 | 
					28251e7ff9 | ||
| 
						 | 
					217382d584 | ||
| 
						 | 
					82a2cb6f51 | ||
| 
						 | 
					611ed5f312 | ||
| 
						 | 
					27fbb5dbf4 | ||
| 
						 | 
					db8d9b7cf1 | ||
| 
						 | 
					60ec950517 | ||
| 
						 | 
					2cd4ebc01f | ||
| 
						 | 
					5f4dcaf781 | ||
| 
						 | 
					c55d882fab | ||
| 
						 | 
					8dc7450068 | ||
| 
						 | 
					2e885232c2 | ||
| 
						 | 
					970d9b3795 | ||
| 
						 | 
					2f58af0d85 | ||
| 
						 | 
					0ae50f19da | ||
| 
						 | 
					c4ac37361e | ||
| 
						 | 
					3152861e81 | ||
| 
						 | 
					a14afd0804 | ||
| 
						 | 
					25d5d1a60d | ||
| 
						 | 
					6ff58b9240 | ||
| 
						 | 
					99237262d4 | ||
| 
						 | 
					29982dfd15 | ||
| 
						 | 
					6c4da94687 | ||
| 
						 | 
					6986d0e6eb | ||
| 
						 | 
					bc9320452c | ||
| 
						 | 
					23d43aae27 | ||
| 
						 | 
					de71735e7c | ||
| 
						 | 
					05decf3638 | ||
| 
						 | 
					95bffa1a1f | ||
| 
						 | 
					974d52fdb8 | ||
| 
						 | 
					7614f0e55e | ||
| 
						 | 
					0632284f79 | ||
| 
						 | 
					ad4a89f070 | ||
| 
						 | 
					6104c49f31 | ||
| 
						 | 
					07fc760999 | ||
| 
						 | 
					cf6bc84148 | ||
| 
						 | 
					36d51bea93 | ||
| 
						 | 
					fc12885b1b | ||
| 
						 | 
					ec7033745e | ||
| 
						 | 
					9e31e63147 | ||
| 
						 | 
					feef17fd88 | ||
| 
						 | 
					817f011191 | ||
| 
						 | 
					98c045cf3a | ||
| 
						 | 
					8860f3a82a | ||
| 
						 | 
					43e9f4ca2f | ||
| 
						 | 
					586f843c76 | ||
| 
						 | 
					7cfc9e6d8c | ||
| 
						 | 
					4952ed0fa4 | ||
| 
						 | 
					a084185d76 | ||
| 
						 | 
					914b80d276 | ||
| 
						 | 
					282557da52 | ||
| 
						 | 
					5f649d583c | ||
| 
						 | 
					b98225ebf5 | ||
| 
						 | 
					abb0c2bba4 | ||
| 
						 | 
					b3bdb474a9 | ||
| 
						 | 
					d796e6acb7 | ||
| 
						 | 
					d3afc92bc9 | ||
| 
						 | 
					35a97b4b7b | ||
| 
						 | 
					f59463aad3 | ||
| 
						 | 
					ed656499c4 | ||
| 
						 | 
					63533e9a22 | ||
| 
						 | 
					20f7053254 | ||
| 
						 | 
					8b8ef74d39 | ||
| 
						 | 
					3bfe024d8d | ||
| 
						 | 
					063333e03d | ||
| 
						 | 
					0a0918ff38 | ||
| 
						 | 
					802c014656 | ||
| 
						 | 
					860841794d | ||
| 
						 | 
					2a87c31237 | ||
| 
						 | 
					da5f7fdcee | ||
| 
						 | 
					d8b408b1de | ||
| 
						 | 
					64932f9e4a | ||
| 
						 | 
					5a20efcf17 | ||
| 
						 | 
					2a2857bbc8 | ||
| 
						 | 
					1bef284ab1 | ||
| 
						 | 
					d8d0b6434f | ||
| 
						 | 
					416b6fd115 | ||
| 
						 | 
					f685cf920b | ||
| 
						 | 
					54f51116b2 | ||
| 
						 | 
					b0d90958fc | ||
| 
						 | 
					049ced2c2f | ||
| 
						 | 
					844b0e603b | ||
| 
						 | 
					75ef751e23 | ||
| 
						 | 
					c4f6e56fca | ||
| 
						 | 
					ff86d3d894 | ||
| 
						 | 
					85b4c03e33 | ||
| 
						 | 
					efaf159af6 | ||
| 
						 | 
					daa657fb78 | ||
| 
						 | 
					4685663d73 | ||
| 
						 | 
					ed1f716022 | ||
| 
						 | 
					d3205a4898 | ||
| 
						 | 
					86731ce2c6 | ||
| 
						 | 
					1399309624 | ||
| 
						 | 
					cb59297438 | ||
| 
						 | 
					5824f6bc06 | ||
| 
						 | 
					5ce7090d54 | ||
| 
						 | 
					7306ab29bc | ||
| 
						 | 
					3a8b42f291 | ||
| 
						 | 
					e4c25383f2 | ||
| 
						 | 
					e734dcc2c7 | ||
| 
						 | 
					0fce007b8e | ||
| 
						 | 
					5a053a3a07 | ||
| 
						 | 
					3b2ba5f7fb | ||
| 
						 | 
					7f622f6c04 | ||
| 
						 | 
					801136bcc2 | ||
| 
						 | 
					3c0e39c539 | ||
| 
						 | 
					19fddebf0e | ||
| 
						 | 
					9eaf7e14c7 | ||
| 
						 | 
					0e441bc103 | ||
| 
						 | 
					cd9911fdf8 | ||
| 
						 | 
					6086422193 | ||
| 
						 | 
					9ddb11f11c | ||
| 
						 | 
					7a20cabd03 | ||
| 
						 | 
					9dc4ca4507 | ||
| 
						 | 
					62fea98b4f | ||
| 
						 | 
					7ae4eac5b6 | ||
| 
						 | 
					fcf8ae5e2b | ||
| 
						 | 
					55b9a7938b | ||
| 
						 | 
					cf1546a60e | ||
| 
						 | 
					e7eec05af0 | ||
| 
						 | 
					98e986141b | ||
| 
						 | 
					d7e35e0371 | ||
| 
						 | 
					222f224664 | ||
| 
						 | 
					62b6cd007f | ||
| 
						 | 
					1682e8fb12 | ||
| 
						 | 
					984aefe0e8 | ||
| 
						 | 
					2d54cc69c9 | ||
| 
						 | 
					2dd8278de8 | ||
| 
						 | 
					e0d8ac972e | ||
| 
						 | 
					ec03812fb0 | ||
| 
						 | 
					93cf2b17bf | ||
| 
						 | 
					77ef1a989d | ||
| 
						 | 
					423c7ac6c6 | ||
| 
						 | 
					2c368ef148 | ||
| 
						 | 
					b3c7162fd0 | ||
| 
						 | 
					67865069eb | ||
| 
						 | 
					1896a9be60 | ||
| 
						 | 
					b5b2c037c1 | ||
| 
						 | 
					1957924d51 | ||
| 
						 | 
					104a66f256 | ||
| 
						 | 
					3de6d65ea3 | ||
| 
						 | 
					fdb0a6e004 | ||
| 
						 | 
					87b857b6bf | ||
| 
						 | 
					b18165301d | ||
| 
						 | 
					097e65944a | ||
| 
						 | 
					0cdd29ea78 | ||
| 
						 | 
					7dec24688f | ||
| 
						 | 
					e62fa54811 | ||
| 
						 | 
					1614174e79 | ||
| 
						 | 
					f95d097359 | ||
| 
						 | 
					3c6ab9aad9 | ||
| 
						 | 
					4913b88f70 | ||
| 
						 | 
					273157153c | ||
| 
						 | 
					fb5156ff38 | ||
| 
						 | 
					2a824402f3 | ||
| 
						 | 
					86a249fe4f | ||
| 
						 | 
					6cae8221c9 | ||
| 
						 | 
					750cb3d248 | ||
| 
						 | 
					f254b540b8 | ||
| 
						 | 
					11024f252e | ||
| 
						 | 
					9d5cba17ba | ||
| 
						 | 
					1d01c9d43d | ||
| 
						 | 
					e32ea81876 | ||
| 
						 | 
					ef8a18f49b | ||
| 
						 | 
					b914049c53 | ||
| 
						 | 
					dabaea8048 | ||
| 
						 | 
					09c1a425a9 | ||
| 
						 | 
					8c6fed007f | ||
| 
						 | 
					2e39604021 | ||
| 
						 | 
					fbfb947b21 | ||
| 
						 | 
					8b963f4ba4 | ||
| 
						 | 
					9152f07eaf | ||
| 
						 | 
					35f70c09f5 | ||
| 
						 | 
					cc4cba7b5d | ||
| 
						 | 
					6b695fefd0 | ||
| 
						 | 
					910d193029 | ||
| 
						 | 
					f18dd687c8 | ||
| 
						 | 
					50d5376698 | ||
| 
						 | 
					5b9b62a7db | ||
| 
						 | 
					c0e29e5b01 | ||
| 
						 | 
					2f03129d46 | ||
| 
						 | 
					b44e2d3416 | ||
| 
						 | 
					564915681c | ||
| 
						 | 
					a24b7eeb87 | ||
| 
						 | 
					0215c01861 | ||
| 
						 | 
					beae6324e5 | ||
| 
						 | 
					71a61c573e | ||
| 
						 | 
					6b3b632767 | ||
| 
						 | 
					2a2fa04b7b | ||
| 
						 | 
					79b81d194b | ||
| 
						 | 
					ef04c9aff8 | ||
| 
						 | 
					7f85197c10 | ||
| 
						 | 
					ff0bfe64af | ||
| 
						 | 
					44b3a3a5e6 | ||
| 
						 | 
					7e3033aa93 | ||
| 
						 | 
					8bdbf50772 | ||
| 
						 | 
					ec33a76641 | ||
| 
						 | 
					00ce9376c7 | ||
| 
						 | 
					46e7a9797e | ||
| 
						 | 
					7006c4ac88 | ||
| 
						 | 
					a50a2126cf | ||
| 
						 | 
					07f7b4b470 | ||
| 
						 | 
					7e726e42f4 | ||
| 
						 | 
					40ba0257de | ||
| 
						 | 
					3fbd5f9fea | ||
| 
						 | 
					57b2246d35 | ||
| 
						 | 
					2a5b22d6f9 | ||
| 
						 | 
					f247dc7522 | ||
| 
						 | 
					e6531253e2 | ||
| 
						 | 
					c938babf00 | ||
| 
						 | 
					bf3900020f | ||
| 
						 | 
					586df3bb7f | ||
| 
						 | 
					c4b13b0268 | ||
| 
						 | 
					daef72316f | ||
| 
						 | 
					1f93c96e63 | ||
| 
						 | 
					8aa9c79276 | ||
| 
						 | 
					09a7f2e734 | ||
| 
						 | 
					b2d27e376d | ||
| 
						 | 
					644c4af11e | ||
| 
						 | 
					ca3dc3a0a0 | ||
| 
						 | 
					2b975dfd5b | ||
| 
						 | 
					0932892278 | ||
| 
						 | 
					fe0b3d98c2 | ||
| 
						 | 
					8d56c8b51c | ||
| 
						 | 
					d8e6409336 | ||
| 
						 | 
					a4ae746656 | ||
| 
						 | 
					331a0a7b9b | ||
| 
						 | 
					c630a3e8d6 | ||
| 
						 | 
					7435d89edf | ||
| 
						 | 
					14557c8be4 | ||
| 
						 | 
					98b4995bad | ||
| 
						 | 
					3000bdcc3a | ||
| 
						 | 
					cbe77a6753 | ||
| 
						 | 
					c58a1f76f8 | ||
| 
						 | 
					ecf2875ebf | ||
| 
						 | 
					ce2c19e357 | ||
| 
						 | 
					1b1081a3ed | ||
| 
						 | 
					37b200389a | ||
| 
						 | 
					6b5a8f3a22 | ||
| 
						 | 
					0b18d8b0c7 | ||
| 
						 | 
					3d187ede47 | ||
| 
						 | 
					f3b9c34515 | ||
| 
						 | 
					c923394924 | ||
| 
						 | 
					d9dbd24db5 | ||
| 
						 | 
					b135819d71 | ||
| 
						 | 
					cbcbd07da2 | ||
| 
						 | 
					24f6ab73a7 | ||
| 
						 | 
					5e88347e1b | ||
| 
						 | 
					cac0d4ee6f | ||
| 
						 | 
					428759b3d4 | ||
| 
						 | 
					898d3ecce0 | ||
| 
						 | 
					004f16f6c4 | ||
| 
						 | 
					4e2a0e58f2 | ||
| 
						 | 
					39d29195a7 | ||
| 
						 | 
					727c9b8027 | ||
| 
						 | 
					bd4e9b0512 | ||
| 
						 | 
					7844ff735f | ||
| 
						 | 
					49e96badcf | ||
| 
						 | 
					eb6a81bacc | ||
| 
						 | 
					6687f12988 | ||
| 
						 | 
					fcd12fc0f1 | ||
| 
						 | 
					0fb4d54068 | ||
| 
						 | 
					830a468a23 | ||
| 
						 | 
					af3ca7b4a9 | ||
| 
						 | 
					7a6bb17255 | ||
| 
						 | 
					bc6d459a6e | ||
| 
						 | 
					ff7f34e353 | ||
| 
						 | 
					2e3d79aaec | ||
| 
						 | 
					8a41bcc934 | ||
| 
						 | 
					e2414b41ad | ||
| 
						 | 
					266958bce7 | ||
| 
						 | 
					bc5354cbf0 | ||
| 
						 | 
					cc4997843e | ||
| 
						 | 
					ab95eac286 | ||
| 
						 | 
					1cd76233d1 | ||
| 
						 | 
					3d5afc8b83 | ||
| 
						 | 
					d28b7799dd | ||
| 
						 | 
					b0fb889c29 | ||
| 
						 | 
					460e80bd1d | ||
| 
						 | 
					bc1e96e942 | ||
| 
						 | 
					7ea61df414 | ||
| 
						 | 
					431712293d | ||
| 
						 | 
					335ed97263 | ||
| 
						 | 
					e00b165e9b | ||
| 
						 | 
					5467ddf0e1 | ||
| 
						 | 
					7a37dd92ed | ||
| 
						 | 
					d0c11e9d72 | ||
| 
						 | 
					5ec52fee2c | ||
| 
						 | 
					d39e69c95a | ||
| 
						 | 
					5026bc13bb | ||
| 
						 | 
					69ffdb2d46 | ||
| 
						 | 
					c7d27e5247 | ||
| 
						 | 
					e301a26ade | ||
| 
						 | 
					b7d7af7ea9 | ||
| 
						 | 
					39663d2c40 | ||
| 
						 | 
					000299a0e6 | ||
| 
						 | 
					0a47d82b9b | ||
| 
						 | 
					198bcece58 | ||
| 
						 | 
					053677d124 | ||
| 
						 | 
					804072f014 | ||
| 
						 | 
					e9429b43ce | ||
| 
						 | 
					3d37d5e24a | ||
| 
						 | 
					2728a1b4f3 | ||
| 
						 | 
					adb040d4cb | ||
| 
						 | 
					479d7934c0 | ||
| 
						 | 
					22d1acd5ac | ||
| 
						 | 
					b257c152c6 | ||
| 
						 | 
					77b97ee0d7 | ||
| 
						 | 
					e2ac4732cd | ||
| 
						 | 
					e8f665b495 | ||
| 
						 | 
					55f3ef29ea | ||
| 
						 | 
					c2d78c9623 | ||
| 
						 | 
					a4578a5413 | ||
| 
						 | 
					e884fcf785 | ||
| 
						 | 
					e96025755d | ||
| 
						 | 
					c9028b0ab5 | ||
| 
						 | 
					b4d2858f95 | ||
| 
						 | 
					dea446d995 | ||
| 
						 | 
					5cd94f9e9d | ||
| 
						 | 
					cad811fc41 | ||
| 
						 | 
					2ed0cf8eef | ||
| 
						 | 
					1c2cbe6fcc | ||
| 
						 | 
					023616e32d | ||
| 
						 | 
					69f6a9f007 | ||
| 
						 | 
					b2703470e0 | ||
| 
						 | 
					4eeee0c59f | ||
| 
						 | 
					452cd79114 | ||
| 
						 | 
					a5afa6c95f | ||
| 
						 | 
					9eaca0079f | ||
| 
						 | 
					625dacb93d | ||
| 
						 | 
					bbaf3c2b40 | ||
| 
						 | 
					62e9c2e091 | ||
| 
						 | 
					e4106a4e24 | ||
| 
						 | 
					a506b8c7dd | ||
| 
						 | 
					e5cd536894 | ||
| 
						 | 
					629ea39a88 | ||
| 
						 | 
					7d9e1321c7 | ||
| 
						 | 
					83af7422a0 | ||
| 
						 | 
					ce8945f35c | ||
| 
						 | 
					dd890f0776 | ||
| 
						 | 
					af4ac437ab | ||
| 
						 | 
					607585fdaf | ||
| 
						 | 
					2f596aeef5 | ||
| 
						 | 
					69762c75fa | ||
| 
						 | 
					36b29660ce | ||
| 
						 | 
					4976983f30 | ||
| 
						 | 
					31e4ad25ba | ||
| 
						 | 
					225f4daf15 | ||
| 
						 | 
					b9927cfa2d | ||
| 
						 | 
					af6cafc603 | ||
| 
						 | 
					15da07d436 | ||
| 
						 | 
					886ed3544b | ||
| 
						 | 
					aff2922f9a | ||
| 
						 | 
					f32e0035a3 | ||
| 
						 | 
					7b1e7706d8 | ||
| 
						 | 
					cd74dda72a | ||
| 
						 | 
					032bb2a2c5 | ||
| 
						 | 
					fa96ed06d2 | ||
| 
						 | 
					43133041c9 | ||
| 
						 | 
					e0ee5ea962 | ||
| 
						 | 
					f5634286a3 | ||
| 
						 | 
					97d37c1c1e | ||
| 
						 | 
					739b139cb2 | ||
| 
						 | 
					0bc9920ad4 | ||
| 
						 | 
					3f516ce837 | ||
| 
						 | 
					9f197f9da5 | ||
| 
						 | 
					3dc2cc36e9 | ||
| 
						 | 
					ca3e683747 | ||
| 
						 | 
					38a1757168 | ||
| 
						 | 
					4104a57107 | ||
| 
						 | 
					b0c0f20071 | ||
| 
						 | 
					ce147f8998 | ||
| 
						 | 
					7870774162 | ||
| 
						 | 
					4e99f848d8 | ||
| 
						 | 
					4213cdaf5d | ||
| 
						 | 
					358cf2f6e8 | ||
| 
						 | 
					39b4c974ee | ||
| 
						 | 
					407c2c1106 | ||
| 
						 | 
					508f56f17c | ||
| 
						 | 
					2e8aaf94c2 | ||
| 
						 | 
					48665b7c99 | ||
| 
						 | 
					3108a80b09 | ||
| 
						 | 
					51971f7293 | ||
| 
						 | 
					bfa3933c8b | ||
| 
						 | 
					3d3addb252 | ||
| 
						 | 
					40b4a633a1 | ||
| 
						 | 
					3f8bdd1fdb | ||
| 
						 | 
					fc784cbc5c | ||
| 
						 | 
					6181fd949f | ||
| 
						 | 
					afd61c63c2 | ||
| 
						 | 
					d20b5c2043 | ||
| 
						 | 
					fdf45c44be | ||
| 
						 | 
					9a2073b4cd | ||
| 
						 | 
					68b08c56c2 | ||
| 
						 | 
					f28468188b | ||
| 
						 | 
					4416eec8ca | ||
| 
						 | 
					8871d87512 | ||
| 
						 | 
					709af3877d | ||
| 
						 | 
					a2b81188be | ||
| 
						 | 
					8651ba5d45 | ||
| 
						 | 
					f91f6cd5e4 | ||
| 
						 | 
					efbb2cb4e5 | ||
| 
						 | 
					bd923a7bac | ||
| 
						 | 
					dec45d606f | ||
| 
						 | 
					373c88faef | ||
| 
						 | 
					6dfd1801fe | ||
| 
						 | 
					14813d8123 | ||
| 
						 | 
					d8242c65b3 | ||
| 
						 | 
					92f2437f48 | ||
| 
						 | 
					ee42430cc8 | ||
| 
						 | 
					da959761ff | ||
| 
						 | 
					da3fe316cf | ||
| 
						 | 
					d8cd25aa0d | ||
| 
						 | 
					c8214d6c8b | ||
| 
						 | 
					d63d4f46fc | ||
| 
						 | 
					063b216760 | ||
| 
						 | 
					52161e090d | ||
| 
						 | 
					65f0a05325 | ||
| 
						 | 
					9e55e06501 | ||
| 
						 | 
					952b6955c0 | ||
| 
						 | 
					0b6df67fb1 | ||
| 
						 | 
					6f74afaa57 | ||
| 
						 | 
					bf087e1ea1 | ||
| 
						 | 
					3edefe670a | ||
| 
						 | 
					885818fb7c | ||
| 
						 | 
					a461d307f2 | ||
| 
						 | 
					2f370048cb | ||
| 
						 | 
					89a4dad179 | ||
| 
						 | 
					28dc02a9d8 | ||
| 
						 | 
					1ea2fda9dc | ||
| 
						 | 
					54ebaca535 | ||
| 
						 | 
					f41dcf3d50 | ||
| 
						 | 
					4fedc91a4a | ||
| 
						 | 
					1e6031eeb7 | ||
| 
						 | 
					f734aaa413 | ||
| 
						 | 
					d9e61666c9 | ||
| 
						 | 
					a575d4b9ee | ||
| 
						 | 
					2f07e0d591 | ||
| 
						 | 
					77a87ded3a | ||
| 
						 | 
					b0a3d8dd27 | ||
| 
						 | 
					b958d2c298 | ||
| 
						 | 
					a7100590fe | ||
| 
						 | 
					dc72a195c2 | ||
| 
						 | 
					7b1ef38609 | ||
| 
						 | 
					e2812ff61f | ||
| 
						 | 
					3f5602ce04 | ||
| 
						 | 
					8c2e34e27f | ||
| 
						 | 
					be0dccdd9e | ||
| 
						 | 
					31f3950fbf | ||
| 
						 | 
					50a4d84e79 | ||
| 
						 | 
					75b3654d18 | ||
| 
						 | 
					0135aa9888 | ||
| 
						 | 
					418f9ac5e3 | ||
| 
						 | 
					692e644df6 | ||
| 
						 | 
					ad4afe4edf | ||
| 
						 | 
					3b72341958 | ||
| 
						 | 
					c844b971cb | ||
| 
						 | 
					3a0278b211 | ||
| 
						 | 
					ca9b1c47af | ||
| 
						 | 
					304ba9fa78 | ||
| 
						 | 
					86039d2751 | ||
| 
						 | 
					4484703f5e | ||
| 
						 | 
					420a692f04 | ||
| 
						 | 
					6b7751ac2c | ||
| 
						 | 
					1d2a464fe0 | ||
| 
						 | 
					7af4688a8f | ||
| 
						 | 
					7735dd0750 | ||
| 
						 | 
					d8360c3a8a | ||
| 
						 | 
					bf7b075f0c | 
							
								
								
									
										767
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										767
									
								
								CHANGES
									
									
									
									
									
								
							@@ -2,11 +2,593 @@
 | 
			
		||||
 OpenSSL CHANGES
 | 
			
		||||
 _______________
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8 and 0.9.9  [xx XXX xxxx]
 | 
			
		||||
 Changes between 0.9.8e and 0.9.8f-fips  [xx XXX xxxx]
 | 
			
		||||
 | 
			
		||||
  *) 
 | 
			
		||||
  *) Check for selftest status in all crypto operations and exit with a
 | 
			
		||||
     fatal error if selftest failed.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7h and 0.9.8  [xx XXX xxxx]
 | 
			
		||||
  *) New flag in EVP_CIPHER: EVP_CIPH_FLAG_DEFAULT_ASN1. This will
 | 
			
		||||
     automatically use EVP_CIPHER_{get,set}_asn1_iv and avoid the
 | 
			
		||||
     need for any ASN1 dependencies in FIPS library. Move AES and 3DES
 | 
			
		||||
     cipher definitions to fips library and modify AES and 3DES algorithm
 | 
			
		||||
     tests and self tests to use EVP.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Move EVP cipher code into enc_min.c to support a minimal implementation
 | 
			
		||||
     for use by FIPS applications.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Add algorithm config module. Currently just handles setting FIPS mode.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Rewrite self tests and pairwise tests to use EVP. Add more extensive
 | 
			
		||||
     self tests for RSA in all digests and modes.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) New flags RSA_FIPS_METHOD and DSA_FIPS_METHOD to indicate a method is
 | 
			
		||||
     allowed in FIPS mode. Disable direct low level RSA and DSA signature
 | 
			
		||||
     operations in FIPS mode so all operations have to be made via EVP.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) New flag EVP_MD_FLAG_SVCTX which passes EVP_MD_CTX and key to underlying
 | 
			
		||||
     sign/verify method. This permits the method to perform finalization
 | 
			
		||||
     and signing itself and have access to the EVP_MD_CTX structure in case
 | 
			
		||||
     additional parameters are needed. Modify fips_{dsa,rsa}_{sign,verify}
 | 
			
		||||
     to use EVP_MD_FLAG_SVCTX and support PSS and X9.31 RSA modes.
 | 
			
		||||
     Modify RSA algorithm test programs to use new parameters.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Add small standalone ASN1 encoder/decoder to handle DSA signature format.
 | 
			
		||||
     Modify test, algorithm test and selftest routines to use EVP for DSA.
 | 
			
		||||
     Move FIPS implementation of EVP_sha*() and EVP_dss1() under fips-1.0.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Modify VC++ build system to rename .text and .rdata segments in
 | 
			
		||||
     FIPS sources to .fipst${a,b,c}, and $fipsr${a,b,c} and place them
 | 
			
		||||
     in a static library fipscanister.lib using a perl script. These are
 | 
			
		||||
     then combined by the VC++ linker into a single segment in suffix
 | 
			
		||||
     order but without the suffix (i.e. .fipstx, .fipsrd and .fipsda).
 | 
			
		||||
     This serves the same purpose as fipscanister.o on other platforms
 | 
			
		||||
     but has the advantage that it can be created using only standard VC++
 | 
			
		||||
     utilities.
 | 
			
		||||
     [Steve Henson and Andy Polyakov]
 | 
			
		||||
 | 
			
		||||
  *) Modify WIN32 build system to forward references functions implemented
 | 
			
		||||
     in FIPS DLL. 
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Move error library so that all lhash dependencies are in a separate
 | 
			
		||||
     file. Include a simplified ERR_get_state() function for stand alone
 | 
			
		||||
     FIPS applications. Include a initialization function OPENSSL_init()
 | 
			
		||||
     to set all callbacks, automatically call OPENSSL_init() once when
 | 
			
		||||
     a cipher or digest is added. This should mean that almost all applications
 | 
			
		||||
     set the callbacks automatically. Exceptional cases can call OPENSSL_init()
 | 
			
		||||
     manually like this:
 | 
			
		||||
 | 
			
		||||
#ifdef OPENSSL_HAVE_INIT
 | 
			
		||||
    OPENSSL_init();
 | 
			
		||||
#endif
 | 
			
		||||
     before starting any threads.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Collect common functions into header file "fips_utl.h".
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Only enable dynamic lock functionality in CRYPTO_lock() when it is really
 | 
			
		||||
     needed. Move some lock functionality into new file dyn_lck.c .
 | 
			
		||||
     This further reduces FIPS dependencies allowing the complete removal
 | 
			
		||||
     of STACK and OBJ_bsearch().
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Reduce FIPS test program dependencies by providing stand alone
 | 
			
		||||
     versions of some existing functions in libcrypto. Avoid use
 | 
			
		||||
     of BIOs by converting to system stdio. Move some functions in FIPS
 | 
			
		||||
     files: e.g. all use of BIO_printf().
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Modify build of libcrypto in FIPS mode by using a perl 
 | 
			
		||||
     script "arx.pl" which calls the archiver specifically
 | 
			
		||||
     excluding any FIPS dependencies in libcrypto.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Port OpenSSL 0.9.7 FIPS code to 0.9.8. Convert to new
 | 
			
		||||
     Makefile form. Update Configure. Convert and update
 | 
			
		||||
     FIPS source files. Update libcrypto, libssl and apps
 | 
			
		||||
     with additional functionality from 0.9.7 FIPS code.
 | 
			
		||||
     Update Windows build system.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8e and 0.9.8f  [23 Feb 2007]
 | 
			
		||||
 | 
			
		||||
  *) Mitigate branch prediction attacks, which can be practical if a
 | 
			
		||||
     single processor is shared, allowing a spy process to extract
 | 
			
		||||
     information.  For detailed background information, see
 | 
			
		||||
     http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
 | 
			
		||||
     J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
 | 
			
		||||
     and Necessary Software Countermeasures").  The core of the change
 | 
			
		||||
     are new versions BN_div_no_branch() and
 | 
			
		||||
     BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
 | 
			
		||||
     respectively, which are slower, but avoid the security-relevant
 | 
			
		||||
     conditional branches.  These are automatically called by BN_div()
 | 
			
		||||
     and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for the
 | 
			
		||||
     modulus.  Also, BN_is_bit_set() has been changed to remove a
 | 
			
		||||
     conditional branch.
 | 
			
		||||
 | 
			
		||||
     BN_FLG_CONSTTIME is the new name for the previous
 | 
			
		||||
     BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
 | 
			
		||||
     modular exponentiation.  (Since OpenSSL 0.9.7h, setting this flag
 | 
			
		||||
     in the exponent causes BN_mod_exp_mont() to use the alternative
 | 
			
		||||
     implementation in BN_mod_exp_mont_consttime().)  The old name
 | 
			
		||||
     remains as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
 | 
			
		||||
     RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
 | 
			
		||||
     constant-time implementations for more than just exponentiation.
 | 
			
		||||
     Here too the old name is kept as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     BN_BLINDING_new() will now use BN_dup() for the modulus so that
 | 
			
		||||
     the BN_BLINDING structure gets an independent copy of the
 | 
			
		||||
     modulus.  This means that the previous "BIGNUM *m" argument to
 | 
			
		||||
     BN_BLINDING_new() and to BN_BLINDING_create_param() now
 | 
			
		||||
     essentially becomes "const BIGNUM *m", although we can't actually
 | 
			
		||||
     change this in the header file before 0.9.9.  It allows
 | 
			
		||||
     RSA_setup_blinding() to use BN_with_flags() on the modulus to
 | 
			
		||||
     enable BN_FLG_CONSTTIME.
 | 
			
		||||
 | 
			
		||||
     [Matthew D Wood (Intel Corp)]
 | 
			
		||||
 | 
			
		||||
  *) Mitigate branch prediction attacks, which can be practical if a
 | 
			
		||||
     single processor is shared, allowing a spy process to extract
 | 
			
		||||
     information.  For detailed background information, see
 | 
			
		||||
     http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
 | 
			
		||||
     J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
 | 
			
		||||
     and Necessary Software Countermeasures").  The core of the change
 | 
			
		||||
     are new versions BN_div_no_branch() and
 | 
			
		||||
     BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
 | 
			
		||||
     respectively, which are slower, but avoid the security-relevant
 | 
			
		||||
     conditional branches.  These are automatically called by BN_div()
 | 
			
		||||
     and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
 | 
			
		||||
     of the input BIGNUMs.  Also, BN_is_bit_set() has been changed to
 | 
			
		||||
     remove a conditional branch.
 | 
			
		||||
 | 
			
		||||
     BN_FLG_CONSTTIME is the new name for the previous
 | 
			
		||||
     BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
 | 
			
		||||
     modular exponentiation.  (Since OpenSSL 0.9.7h, setting this flag
 | 
			
		||||
     in the exponent causes BN_mod_exp_mont() to use the alternative
 | 
			
		||||
     implementation in BN_mod_exp_mont_consttime().)  The old name
 | 
			
		||||
     remains as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
 | 
			
		||||
     RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
 | 
			
		||||
     constant-time implementations for more than just exponentiation.
 | 
			
		||||
     Here too the old name is kept as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     BN_BLINDING_new() will now use BN_dup() for the modulus so that
 | 
			
		||||
     the BN_BLINDING structure gets an independent copy of the
 | 
			
		||||
     modulus.  This means that the previous "BIGNUM *m" argument to
 | 
			
		||||
     BN_BLINDING_new() and to BN_BLINDING_create_param() now
 | 
			
		||||
     essentially becomes "const BIGNUM *m", although we can't actually
 | 
			
		||||
     change this in the header file before 0.9.9.  It allows
 | 
			
		||||
     RSA_setup_blinding() to use BN_with_flags() on the modulus to
 | 
			
		||||
     enable BN_FLG_CONSTTIME.
 | 
			
		||||
 | 
			
		||||
     [Matthew D Wood (Intel Corp)]
 | 
			
		||||
 | 
			
		||||
  *) Add the Korean symmetric 128-bit cipher SEED (see
 | 
			
		||||
     http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp) and
 | 
			
		||||
     add SEED ciphersuites from RFC 4162:
 | 
			
		||||
 | 
			
		||||
        TLS_RSA_WITH_SEED_CBC_SHA      =  "SEED-SHA"
 | 
			
		||||
        TLS_DHE_DSS_WITH_SEED_CBC_SHA  =  "DHE-DSS-SEED-SHA"
 | 
			
		||||
        TLS_DHE_RSA_WITH_SEED_CBC_SHA  =  "DHE-RSA-SEED-SHA"
 | 
			
		||||
        TLS_DH_anon_WITH_SEED_CBC_SHA  =  "ADH-SEED-SHA"
 | 
			
		||||
 | 
			
		||||
     To minimize changes between patchlevels in the OpenSSL 0.9.8
 | 
			
		||||
     series, SEED remains excluded from compilation unless OpenSSL
 | 
			
		||||
     is configured with 'enable-seed'.
 | 
			
		||||
     [KISA, Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Mitigate branch prediction attacks, which can be practical if a
 | 
			
		||||
     single processor is shared, allowing a spy process to extract
 | 
			
		||||
     information.  For detailed background information, see
 | 
			
		||||
     http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
 | 
			
		||||
     J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
 | 
			
		||||
     and Necessary Software Countermeasures").  The core of the change
 | 
			
		||||
     are new versions BN_div_no_branch() and
 | 
			
		||||
     BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
 | 
			
		||||
     respectively, which are slower, but avoid the security-relevant
 | 
			
		||||
     conditional branches.  These are automatically called by BN_div()
 | 
			
		||||
     and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
 | 
			
		||||
     of the input BIGNUMs.  Also, BN_is_bit_set() has been changed to
 | 
			
		||||
     remove a conditional branch.
 | 
			
		||||
 | 
			
		||||
     BN_FLG_CONSTTIME is the new name for the previous
 | 
			
		||||
     BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
 | 
			
		||||
     modular exponentiation.  (Since OpenSSL 0.9.7h, setting this flag
 | 
			
		||||
     in the exponent causes BN_mod_exp_mont() to use the alternative
 | 
			
		||||
     implementation in BN_mod_exp_mont_consttime().)  The old name
 | 
			
		||||
     remains as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
 | 
			
		||||
     RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
 | 
			
		||||
     constant-time implementations for more than just exponentiation.
 | 
			
		||||
     Here too the old name is kept as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     BN_BLINDING_new() will now use BN_dup() for the modulus so that
 | 
			
		||||
     the BN_BLINDING structure gets an independent copy of the
 | 
			
		||||
     modulus.  This means that the previous "BIGNUM *m" argument to
 | 
			
		||||
     BN_BLINDING_new() and to BN_BLINDING_create_param() now
 | 
			
		||||
     essentially becomes "const BIGNUM *m", although we can't actually
 | 
			
		||||
     change this in the header file before 0.9.9.  It allows
 | 
			
		||||
     RSA_setup_blinding() to use BN_with_flags() on the modulus to
 | 
			
		||||
     enable BN_FLG_CONSTTIME.
 | 
			
		||||
 | 
			
		||||
     [Matthew D Wood (Intel Corp)]
 | 
			
		||||
 | 
			
		||||
  *) Add the Korean symmetric 128-bit cipher SEED (see
 | 
			
		||||
     http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp) and
 | 
			
		||||
     add SEED ciphersuites from RFC 4162:
 | 
			
		||||
 | 
			
		||||
        TLS_RSA_WITH_SEED_CBC_SHA      =  "SEED-SHA"
 | 
			
		||||
        TLS_DHE_DSS_WITH_SEED_CBC_SHA  =  "DHE-DSS-SEED-SHA"
 | 
			
		||||
        TLS_DHE_RSA_WITH_SEED_CBC_SHA  =  "DHE-RSA-SEED-SHA"
 | 
			
		||||
        TLS_DH_anon_WITH_SEED_CBC_SHA  =  "ADH-SEED-SHA"
 | 
			
		||||
 | 
			
		||||
     To minimize changes between patchlevels in the OpenSSL 0.9.8
 | 
			
		||||
     series, SEED remains excluded from compilation unless OpenSSL
 | 
			
		||||
     is configured with 'enable-seed'.
 | 
			
		||||
     [KISA, Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Mitigate branch prediction attacks, which can be practical if a
 | 
			
		||||
     single processor is shared, allowing a spy process to extract
 | 
			
		||||
     information.  For detailed background information, see
 | 
			
		||||
     http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
 | 
			
		||||
     J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
 | 
			
		||||
     and Necessary Software Countermeasures").  The core of the change
 | 
			
		||||
     are new versions BN_div_no_branch() and
 | 
			
		||||
     BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
 | 
			
		||||
     respectively, which are slower, but avoid the security-relevant
 | 
			
		||||
     conditional branches.  These are automatically called by BN_div()
 | 
			
		||||
     and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
 | 
			
		||||
     of the input BIGNUMs.  Also, BN_is_bit_set() has been changed to
 | 
			
		||||
     remove a conditional branch.
 | 
			
		||||
 | 
			
		||||
     BN_FLG_CONSTTIME is the new name for the previous
 | 
			
		||||
     BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
 | 
			
		||||
     modular exponentiation.  (Since OpenSSL 0.9.7h, setting this flag
 | 
			
		||||
     in the exponent causes BN_mod_exp_mont() to use the alternative
 | 
			
		||||
     implementation in BN_mod_exp_mont_consttime().)  The old name
 | 
			
		||||
     remains as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
 | 
			
		||||
     RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
 | 
			
		||||
     constant-time implementations for more than just exponentiation.
 | 
			
		||||
     Here too the old name is kept as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     BN_BLINDING_new() will now use BN_dup() for the modulus so that
 | 
			
		||||
     the BN_BLINDING structure gets an independent copy of the
 | 
			
		||||
     modulus.  This means that the previous "BIGNUM *m" argument to
 | 
			
		||||
     BN_BLINDING_new() and to BN_BLINDING_create_param() now
 | 
			
		||||
     essentially becomes "const BIGNUM *m", although we can't actually
 | 
			
		||||
     change this in the header file before 0.9.9.  It allows
 | 
			
		||||
     RSA_setup_blinding() to use BN_with_flags() on the modulus to
 | 
			
		||||
     enable BN_FLG_CONSTTIME.
 | 
			
		||||
 | 
			
		||||
     [Matthew D Wood (Intel Corp)]
 | 
			
		||||
 | 
			
		||||
  *) Squeeze another 10% out of IGE mode when in != out.
 | 
			
		||||
     [Ben Laurie]
 | 
			
		||||
 | 
			
		||||
  *) AES IGE mode speedup.
 | 
			
		||||
     [Dean Gaudet (Google)]
 | 
			
		||||
 | 
			
		||||
  *) Add the Korean symmetric 128-bit cipher SEED (see
 | 
			
		||||
     http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp) and
 | 
			
		||||
     add SEED ciphersuites from RFC 4162:
 | 
			
		||||
 | 
			
		||||
        TLS_RSA_WITH_SEED_CBC_SHA      =  "SEED-SHA"
 | 
			
		||||
        TLS_DHE_DSS_WITH_SEED_CBC_SHA  =  "DHE-DSS-SEED-SHA"
 | 
			
		||||
        TLS_DHE_RSA_WITH_SEED_CBC_SHA  =  "DHE-RSA-SEED-SHA"
 | 
			
		||||
        TLS_DH_anon_WITH_SEED_CBC_SHA  =  "ADH-SEED-SHA"
 | 
			
		||||
 | 
			
		||||
     To minimize changes between patchlevels in the OpenSSL 0.9.8
 | 
			
		||||
     series, SEED remains excluded from compilation unless OpenSSL
 | 
			
		||||
     is configured with 'enable-seed'.
 | 
			
		||||
     [KISA, Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Mitigate branch prediction attacks, which can be practical if a
 | 
			
		||||
     single processor is shared, allowing a spy process to extract
 | 
			
		||||
     information.  For detailed background information, see
 | 
			
		||||
     http://eprint.iacr.org/2007/039 (O. Aciicmez, S. Gueron,
 | 
			
		||||
     J.-P. Seifert, "New Branch Prediction Vulnerabilities in OpenSSL
 | 
			
		||||
     and Necessary Software Countermeasures").  The core of the change
 | 
			
		||||
     are new versions BN_div_no_branch() and
 | 
			
		||||
     BN_mod_inverse_no_branch() of BN_div() and BN_mod_inverse(),
 | 
			
		||||
     respectively, which are slower, but avoid the security-relevant
 | 
			
		||||
     conditional branches.  These are automatically called by BN_div()
 | 
			
		||||
     and BN_mod_inverse() if the flag BN_FLG_CONSTTIME is set for one
 | 
			
		||||
     of the input BIGNUMs.  Also, BN_is_bit_set() has been changed to
 | 
			
		||||
     remove a conditional branch.
 | 
			
		||||
 | 
			
		||||
     BN_FLG_CONSTTIME is the new name for the previous
 | 
			
		||||
     BN_FLG_EXP_CONSTTIME flag, since it now affects more than just
 | 
			
		||||
     modular exponentiation.  (Since OpenSSL 0.9.7h, setting this flag
 | 
			
		||||
     in the exponent causes BN_mod_exp_mont() to use the alternative
 | 
			
		||||
     implementation in BN_mod_exp_mont_consttime().)  The old name
 | 
			
		||||
     remains as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     Similary, RSA_FLAG_NO_EXP_CONSTTIME is replaced by a more general
 | 
			
		||||
     RSA_FLAG_NO_CONSTTIME flag since the RSA implementation now uses
 | 
			
		||||
     constant-time implementations for more than just exponentiation.
 | 
			
		||||
     Here too the old name is kept as a deprecated alias.
 | 
			
		||||
 | 
			
		||||
     BN_BLINDING_new() will now use BN_dup() for the modulus so that
 | 
			
		||||
     the BN_BLINDING structure gets an independent copy of the
 | 
			
		||||
     modulus.  This means that the previous "BIGNUM *m" argument to
 | 
			
		||||
     BN_BLINDING_new() and to BN_BLINDING_create_param() now
 | 
			
		||||
     essentially becomes "const BIGNUM *m", although we can't actually
 | 
			
		||||
     change this in the header file before 0.9.9.  It allows
 | 
			
		||||
     RSA_setup_blinding() to use BN_with_flags() on the modulus to
 | 
			
		||||
     enable BN_FLG_CONSTTIME.
 | 
			
		||||
 | 
			
		||||
     [Matthew D Wood (Intel Corp)]
 | 
			
		||||
 | 
			
		||||
  *) In the SSL/TLS server implementation, be strict about session ID
 | 
			
		||||
     context matching (which matters if an application uses a single
 | 
			
		||||
     external cache for different purposes).  Previously,
 | 
			
		||||
     out-of-context reuse was forbidden only if SSL_VERIFY_PEER was
 | 
			
		||||
     set.  This did ensure strict client verification, but meant that,
 | 
			
		||||
     with applications using a single external cache for quite
 | 
			
		||||
     different requirements, clients could circumvent ciphersuite
 | 
			
		||||
     restrictions for a given session ID context by starting a session
 | 
			
		||||
     in a different context.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Include "!eNULL" in SSL_DEFAULT_CIPHER_LIST to make sure that
 | 
			
		||||
     a ciphersuite string such as "DEFAULT:RSA" cannot enable
 | 
			
		||||
     authentication-only ciphersuites.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8d and 0.9.8e  [23 Feb 2007]
 | 
			
		||||
 | 
			
		||||
  *) Since AES128 and AES256 (and similarly Camellia128 and
 | 
			
		||||
     Camellia256) share a single mask bit in the logic of
 | 
			
		||||
     ssl/ssl_ciph.c, the code for masking out disabled ciphers needs a
 | 
			
		||||
     kludge to work properly if AES128 is available and AES256 isn't
 | 
			
		||||
     (or if Camellia128 is available and Camellia256 isn't).
 | 
			
		||||
     [Victor Duchovni]
 | 
			
		||||
 | 
			
		||||
  *) Fix the BIT STRING encoding generated by crypto/ec/ec_asn1.c
 | 
			
		||||
     (within i2d_ECPrivateKey, i2d_ECPKParameters, i2d_ECParameters):
 | 
			
		||||
     When a point or a seed is encoded in a BIT STRING, we need to
 | 
			
		||||
     prevent the removal of trailing zero bits to get the proper DER
 | 
			
		||||
     encoding.  (By default, crypto/asn1/a_bitstr.c assumes the case
 | 
			
		||||
     of a NamedBitList, for which trailing 0 bits need to be removed.)
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Have SSL/TLS server implementation tolerate "mismatched" record
 | 
			
		||||
     protocol version while receiving ClientHello even if the
 | 
			
		||||
     ClientHello is fragmented.  (The server can't insist on the
 | 
			
		||||
     particular protocol version it has chosen before the ServerHello
 | 
			
		||||
     message has informed the client about his choice.)
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Add RFC 3779 support.
 | 
			
		||||
     [Rob Austein for ARIN, Ben Laurie]
 | 
			
		||||
 | 
			
		||||
  *) Load error codes if they are not already present instead of using a
 | 
			
		||||
     static variable. This allows them to be cleanly unloaded and reloaded.
 | 
			
		||||
     Improve header file function name parsing.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) extend SMTP and IMAP protocol emulation in s_client to use EHLO
 | 
			
		||||
     or CAPABILITY handshake as required by RFCs.
 | 
			
		||||
     [Goetz Babin-Ebell]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8c and 0.9.8d  [28 Sep 2006]
 | 
			
		||||
 | 
			
		||||
  *) Introduce limits to prevent malicious keys being able to
 | 
			
		||||
     cause a denial of service.  (CVE-2006-2940)
 | 
			
		||||
     [Steve Henson, Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Fix ASN.1 parsing of certain invalid structures that can result
 | 
			
		||||
     in a denial of service.  (CVE-2006-2937)  [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Fix buffer overflow in SSL_get_shared_ciphers() function. 
 | 
			
		||||
     (CVE-2006-3738) [Tavis Ormandy and Will Drewry, Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Fix SSL client code which could crash if connecting to a
 | 
			
		||||
     malicious SSLv2 server.  (CVE-2006-4343)
 | 
			
		||||
     [Tavis Ormandy and Will Drewry, Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Since 0.9.8b, ciphersuite strings naming explicit ciphersuites
 | 
			
		||||
     match only those.  Before that, "AES256-SHA" would be interpreted
 | 
			
		||||
     as a pattern and match "AES128-SHA" too (since AES128-SHA got
 | 
			
		||||
     the same strength classification in 0.9.7h) as we currently only
 | 
			
		||||
     have a single AES bit in the ciphersuite description bitmap.
 | 
			
		||||
     That change, however, also applied to ciphersuite strings such as
 | 
			
		||||
     "RC4-MD5" that intentionally matched multiple ciphersuites --
 | 
			
		||||
     namely, SSL 2.0 ciphersuites in addition to the more common ones
 | 
			
		||||
     from SSL 3.0/TLS 1.0.
 | 
			
		||||
 | 
			
		||||
     So we change the selection algorithm again: Naming an explicit
 | 
			
		||||
     ciphersuite selects this one ciphersuite, and any other similar
 | 
			
		||||
     ciphersuite (same bitmap) from *other* protocol versions.
 | 
			
		||||
     Thus, "RC4-MD5" again will properly select both the SSL 2.0
 | 
			
		||||
     ciphersuite and the SSL 3.0/TLS 1.0 ciphersuite.
 | 
			
		||||
 | 
			
		||||
     Since SSL 2.0 does not have any ciphersuites for which the
 | 
			
		||||
     128/256 bit distinction would be relevant, this works for now.
 | 
			
		||||
     The proper fix will be to use different bits for AES128 and
 | 
			
		||||
     AES256, which would have avoided the problems from the beginning;
 | 
			
		||||
     however, bits are scarce, so we can only do this in a new release
 | 
			
		||||
     (not just a patchlevel) when we can change the SSL_CIPHER
 | 
			
		||||
     definition to split the single 'unsigned long mask' bitmap into
 | 
			
		||||
     multiple values to extend the available space.
 | 
			
		||||
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8b and 0.9.8c  [05 Sep 2006]
 | 
			
		||||
 | 
			
		||||
  *) Avoid PKCS #1 v1.5 signature attack discovered by Daniel Bleichenbacher
 | 
			
		||||
     (CVE-2006-4339)  [Ben Laurie and Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Add AES IGE and biIGE modes.
 | 
			
		||||
     [Ben Laurie]
 | 
			
		||||
 | 
			
		||||
  *) Change the Unix randomness entropy gathering to use poll() when
 | 
			
		||||
     possible instead of select(), since the latter has some
 | 
			
		||||
     undesirable limitations.
 | 
			
		||||
     [Darryl Miles via Richard Levitte and Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Disable "ECCdraft" ciphersuites more thoroughly.  Now special
 | 
			
		||||
     treatment in ssl/ssl_ciph.s makes sure that these ciphersuites
 | 
			
		||||
     cannot be implicitly activated as part of, e.g., the "AES" alias.
 | 
			
		||||
     However, please upgrade to OpenSSL 0.9.9[-dev] for
 | 
			
		||||
     non-experimental use of the ECC ciphersuites to get TLS extension
 | 
			
		||||
     support, which is required for curve and point format negotiation
 | 
			
		||||
     to avoid potential handshake problems.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Disable rogue ciphersuites:
 | 
			
		||||
 | 
			
		||||
      - SSLv2 0x08 0x00 0x80 ("RC4-64-MD5")
 | 
			
		||||
      - SSLv3/TLSv1 0x00 0x61 ("EXP1024-RC2-CBC-MD5")
 | 
			
		||||
      - SSLv3/TLSv1 0x00 0x60 ("EXP1024-RC4-MD5")
 | 
			
		||||
 | 
			
		||||
     The latter two were purportedly from
 | 
			
		||||
     draft-ietf-tls-56-bit-ciphersuites-0[01].txt, but do not really
 | 
			
		||||
     appear there.
 | 
			
		||||
 | 
			
		||||
     Also deactivate the remaining ciphersuites from
 | 
			
		||||
     draft-ietf-tls-56-bit-ciphersuites-01.txt.  These are just as
 | 
			
		||||
     unofficial, and the ID has long expired.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Fix RSA blinding Heisenbug (problems sometimes occured on
 | 
			
		||||
     dual-core machines) and other potential thread-safety issues.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Add the symmetric cipher Camellia (128-bit, 192-bit, 256-bit key
 | 
			
		||||
     versions), which is now available for royalty-free use
 | 
			
		||||
     (see http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html).
 | 
			
		||||
     Also, add Camellia TLS ciphersuites from RFC 4132.
 | 
			
		||||
 | 
			
		||||
     To minimize changes between patchlevels in the OpenSSL 0.9.8
 | 
			
		||||
     series, Camellia remains excluded from compilation unless OpenSSL
 | 
			
		||||
     is configured with 'enable-camellia'.
 | 
			
		||||
     [NTT]
 | 
			
		||||
 | 
			
		||||
  *) Disable the padding bug check when compression is in use. The padding
 | 
			
		||||
     bug check assumes the first packet is of even length, this is not
 | 
			
		||||
     necessarily true if compresssion is enabled and can result in false
 | 
			
		||||
     positives causing handshake failure. The actual bug test is ancient
 | 
			
		||||
     code so it is hoped that implementations will either have fixed it by
 | 
			
		||||
     now or any which still have the bug do not support compression.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8a and 0.9.8b  [04 May 2006]
 | 
			
		||||
 | 
			
		||||
  *) When applying a cipher rule check to see if string match is an explicit
 | 
			
		||||
     cipher suite and only match that one cipher suite if it is.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Link in manifests for VC++ if needed.
 | 
			
		||||
     [Austin Ziegler <halostatue@gmail.com>]
 | 
			
		||||
 | 
			
		||||
  *) Update support for ECC-based TLS ciphersuites according to
 | 
			
		||||
     draft-ietf-tls-ecc-12.txt with proposed changes (but without
 | 
			
		||||
     TLS extensions, which are supported starting with the 0.9.9
 | 
			
		||||
     branch, not in the OpenSSL 0.9.8 branch).
 | 
			
		||||
     [Douglas Stebila]
 | 
			
		||||
 | 
			
		||||
  *) New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() to support
 | 
			
		||||
     opaque EVP_CIPHER_CTX handling.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Fixes and enhancements to zlib compression code. We now only use
 | 
			
		||||
     "zlib1.dll" and use the default __cdecl calling convention on Win32
 | 
			
		||||
     to conform with the standards mentioned here:
 | 
			
		||||
           http://www.zlib.net/DLL_FAQ.txt
 | 
			
		||||
     Static zlib linking now works on Windows and the new --with-zlib-include
 | 
			
		||||
     --with-zlib-lib options to Configure can be used to supply the location
 | 
			
		||||
     of the headers and library. Gracefully handle case where zlib library
 | 
			
		||||
     can't be loaded.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Several fixes and enhancements to the OID generation code. The old code
 | 
			
		||||
     sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
 | 
			
		||||
     handle numbers larger than ULONG_MAX, truncated printing and had a
 | 
			
		||||
     non standard OBJ_obj2txt() behaviour.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Add support for building of engines under engine/ as shared libraries
 | 
			
		||||
     under VC++ build system.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Corrected the numerous bugs in the Win32 path splitter in DSO.
 | 
			
		||||
     Hopefully, we will not see any false combination of paths any more.
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.8 and 0.9.8a  [11 Oct 2005]
 | 
			
		||||
 | 
			
		||||
  *) Remove the functionality of SSL_OP_MSIE_SSLV2_RSA_PADDING
 | 
			
		||||
     (part of SSL_OP_ALL).  This option used to disable the
 | 
			
		||||
     countermeasure against man-in-the-middle protocol-version
 | 
			
		||||
     rollback in the SSL 2.0 server implementation, which is a bad
 | 
			
		||||
     idea.  (CVE-2005-2969)
 | 
			
		||||
 | 
			
		||||
     [Bodo Moeller; problem pointed out by Yutaka Oiwa (Research Center
 | 
			
		||||
     for Information Security, National Institute of Advanced Industrial
 | 
			
		||||
     Science and Technology [AIST], Japan)]
 | 
			
		||||
 | 
			
		||||
  *) Add two function to clear and return the verify parameter flags.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Keep cipherlists sorted in the source instead of sorting them at
 | 
			
		||||
     runtime, thus removing the need for a lock.
 | 
			
		||||
     [Nils Larsch]
 | 
			
		||||
 | 
			
		||||
  *) Avoid some small subgroup attacks in Diffie-Hellman.
 | 
			
		||||
     [Nick Mathewson and Ben Laurie]
 | 
			
		||||
 | 
			
		||||
  *) Add functions for well-known primes.
 | 
			
		||||
     [Nick Mathewson]
 | 
			
		||||
 | 
			
		||||
  *) Extended Windows CE support.
 | 
			
		||||
     [Satoshi Nakamura and Andy Polyakov]
 | 
			
		||||
 | 
			
		||||
  *) Initialize SSL_METHOD structures at compile time instead of during
 | 
			
		||||
     runtime, thus removing the need for a lock.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Make PKCS7_decrypt() work even if no certificate is supplied by
 | 
			
		||||
     attempting to decrypt each encrypted key in turn. Add support to
 | 
			
		||||
     smime utility.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7h and 0.9.8  [05 Jul 2005]
 | 
			
		||||
 | 
			
		||||
  [NB: OpenSSL 0.9.7i and later 0.9.7 patch levels were released after
 | 
			
		||||
  OpenSSL 0.9.8.]
 | 
			
		||||
 | 
			
		||||
  *) Add libcrypto.pc and libssl.pc for those who feel they need them.
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
 | 
			
		||||
  *) Change CA.sh and CA.pl so they don't bundle the CSR and the private
 | 
			
		||||
     key into the same file any more.
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
 | 
			
		||||
  *) Add initial support for Win64, both IA64 and AMD64/x64 flavors.
 | 
			
		||||
     [Andy Polyakov]
 | 
			
		||||
 | 
			
		||||
  *) Add -utf8 command line and config file option to 'ca'.
 | 
			
		||||
     [Stefan <stf@udoma.org]
 | 
			
		||||
 | 
			
		||||
  *) Removed the macro des_crypt(), as it seems to conflict with some
 | 
			
		||||
     libraries.  Use DES_crypt().
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
 | 
			
		||||
  *) Correct naming of the 'chil' and '4758cca' ENGINEs. This
 | 
			
		||||
     involves renaming the source and generated shared-libs for
 | 
			
		||||
@@ -808,7 +1390,153 @@
 | 
			
		||||
     differing sizes.
 | 
			
		||||
     [Richard Levitte]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7g and 0.9.7h  [XX xxx XXXX]
 | 
			
		||||
 Changes between 0.9.7m and 0.9.7n  [xx XXX xxxx]
 | 
			
		||||
 | 
			
		||||
  *) In the SSL/TLS server implementation, be strict about session ID
 | 
			
		||||
     context matching (which matters if an application uses a single
 | 
			
		||||
     external cache for different purposes).  Previously,
 | 
			
		||||
     out-of-context reuse was forbidden only if SSL_VERIFY_PEER was
 | 
			
		||||
     set.  This did ensure strict client verification, but meant that,
 | 
			
		||||
     with applications using a single external cache for quite
 | 
			
		||||
     different requirements, clients could circumvent ciphersuite
 | 
			
		||||
     restrictions for a given session ID context by starting a session
 | 
			
		||||
     in a different context.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7l and 0.9.7m  [23 Feb 2007]
 | 
			
		||||
 | 
			
		||||
  *) Cleanse PEM buffers before freeing them since they may contain 
 | 
			
		||||
     sensitive data.
 | 
			
		||||
     [Benjamin Bennett <ben@psc.edu>]
 | 
			
		||||
 | 
			
		||||
  *) Include "!eNULL" in SSL_DEFAULT_CIPHER_LIST to make sure that
 | 
			
		||||
     a ciphersuite string such as "DEFAULT:RSA" cannot enable
 | 
			
		||||
     authentication-only ciphersuites.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Since AES128 and AES256 share a single mask bit in the logic of
 | 
			
		||||
     ssl/ssl_ciph.c, the code for masking out disabled ciphers needs a
 | 
			
		||||
     kludge to work properly if AES128 is available and AES256 isn't.
 | 
			
		||||
     [Victor Duchovni]
 | 
			
		||||
 | 
			
		||||
  *) Expand security boundary to match 1.1.1 module.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Remove redundant features: hash file source, editing of test vectors
 | 
			
		||||
     modify fipsld to use external fips_premain.c signature.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) New perl script mkfipsscr.pl to create shell scripts or batch files to
 | 
			
		||||
     run algorithm test programs.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Make algorithm test programs more tolerant of whitespace.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Have SSL/TLS server implementation tolerate "mismatched" record
 | 
			
		||||
     protocol version while receiving ClientHello even if the
 | 
			
		||||
     ClientHello is fragmented.  (The server can't insist on the
 | 
			
		||||
     particular protocol version it has chosen before the ServerHello
 | 
			
		||||
     message has informed the client about his choice.)
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Load error codes if they are not already present instead of using a
 | 
			
		||||
     static variable. This allows them to be cleanly unloaded and reloaded.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7k and 0.9.7l  [28 Sep 2006]
 | 
			
		||||
 | 
			
		||||
  *) Introduce limits to prevent malicious keys being able to
 | 
			
		||||
     cause a denial of service.  (CVE-2006-2940)
 | 
			
		||||
     [Steve Henson, Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Fix ASN.1 parsing of certain invalid structures that can result
 | 
			
		||||
     in a denial of service.  (CVE-2006-2937)  [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Fix buffer overflow in SSL_get_shared_ciphers() function. 
 | 
			
		||||
     (CVE-2006-3738) [Tavis Ormandy and Will Drewry, Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Fix SSL client code which could crash if connecting to a
 | 
			
		||||
     malicious SSLv2 server.  (CVE-2006-4343)
 | 
			
		||||
     [Tavis Ormandy and Will Drewry, Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Change ciphersuite string processing so that an explicit
 | 
			
		||||
     ciphersuite selects this one ciphersuite (so that "AES256-SHA"
 | 
			
		||||
     will no longer include "AES128-SHA"), and any other similar
 | 
			
		||||
     ciphersuite (same bitmap) from *other* protocol versions (so that
 | 
			
		||||
     "RC4-MD5" will still include both the SSL 2.0 ciphersuite and the
 | 
			
		||||
     SSL 3.0/TLS 1.0 ciphersuite).  This is a backport combining
 | 
			
		||||
     changes from 0.9.8b and 0.9.8d.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7j and 0.9.7k  [05 Sep 2006]
 | 
			
		||||
 | 
			
		||||
  *) Avoid PKCS #1 v1.5 signature attack discovered by Daniel Bleichenbacher
 | 
			
		||||
     (CVE-2006-4339)  [Ben Laurie and Google Security Team]
 | 
			
		||||
 | 
			
		||||
  *) Change the Unix randomness entropy gathering to use poll() when
 | 
			
		||||
     possible instead of select(), since the latter has some
 | 
			
		||||
     undesirable limitations.
 | 
			
		||||
     [Darryl Miles via Richard Levitte and Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Disable rogue ciphersuites:
 | 
			
		||||
 | 
			
		||||
      - SSLv2 0x08 0x00 0x80 ("RC4-64-MD5")
 | 
			
		||||
      - SSLv3/TLSv1 0x00 0x61 ("EXP1024-RC2-CBC-MD5")
 | 
			
		||||
      - SSLv3/TLSv1 0x00 0x60 ("EXP1024-RC4-MD5")
 | 
			
		||||
 | 
			
		||||
     The latter two were purportedly from
 | 
			
		||||
     draft-ietf-tls-56-bit-ciphersuites-0[01].txt, but do not really
 | 
			
		||||
     appear there.
 | 
			
		||||
 | 
			
		||||
     Also deactive the remaining ciphersuites from
 | 
			
		||||
     draft-ietf-tls-56-bit-ciphersuites-01.txt.  These are just as
 | 
			
		||||
     unofficial, and the ID has long expired.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
  *) Fix RSA blinding Heisenbug (problems sometimes occured on
 | 
			
		||||
     dual-core machines) and other potential thread-safety issues.
 | 
			
		||||
     [Bodo Moeller]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7i and 0.9.7j  [04 May 2006]
 | 
			
		||||
 | 
			
		||||
  *) Adapt fipsld and the build system to link against the validated FIPS
 | 
			
		||||
     module in FIPS mode.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Fixes for VC++ 2005 build under Windows.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) Add new Windows build target VC-32-GMAKE for VC++. This uses GNU make 
 | 
			
		||||
     from a Windows bash shell such as MSYS. It is autodetected from the
 | 
			
		||||
     "config" script when run from a VC++ environment. Modify standard VC++
 | 
			
		||||
     build to use fipscanister.o from the GNU make build. 
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7h and 0.9.7i  [14 Oct 2005]
 | 
			
		||||
 | 
			
		||||
  *) Wrapped the definition of EVP_MAX_MD_SIZE in a #ifdef OPENSSL_FIPS.
 | 
			
		||||
     The value now differs depending on if you build for FIPS or not.
 | 
			
		||||
     BEWARE!  A program linked with a shared FIPSed libcrypto can't be
 | 
			
		||||
     safely run with a non-FIPSed libcrypto, as it may crash because of
 | 
			
		||||
     the difference induced by this change.
 | 
			
		||||
     [Andy Polyakov]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7g and 0.9.7h  [11 Oct 2005]
 | 
			
		||||
 | 
			
		||||
  *) Remove the functionality of SSL_OP_MSIE_SSLV2_RSA_PADDING
 | 
			
		||||
     (part of SSL_OP_ALL).  This option used to disable the
 | 
			
		||||
     countermeasure against man-in-the-middle protocol-version
 | 
			
		||||
     rollback in the SSL 2.0 server implementation, which is a bad
 | 
			
		||||
     idea.  (CVE-2005-2969)
 | 
			
		||||
 | 
			
		||||
     [Bodo Moeller; problem pointed out by Yutaka Oiwa (Research Center
 | 
			
		||||
     for Information Security, National Institute of Advanced Industrial
 | 
			
		||||
     Science and Technology [AIST], Japan)]
 | 
			
		||||
 | 
			
		||||
  *) Minimal support for X9.31 signatures and PSS padding modes. This is
 | 
			
		||||
     mainly for FIPS compliance and not fully integrated at this stage.
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
  *) For DSA signing, unless DSA_FLAG_NO_EXP_CONSTTIME is set, perform
 | 
			
		||||
     the exponentiation using a fixed-length exponent.  (Otherwise,
 | 
			
		||||
@@ -855,6 +1583,9 @@
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.7f and 0.9.7g  [11 Apr 2005]
 | 
			
		||||
 | 
			
		||||
  [NB: OpenSSL 0.9.7h and later 0.9.7 patch levels were released after
 | 
			
		||||
  OpenSSL 0.9.8.]
 | 
			
		||||
 | 
			
		||||
  *) Fixes for newer kerberos headers. NB: the casts are needed because
 | 
			
		||||
     the 'length' field is signed on one version and unsigned on another
 | 
			
		||||
     with no (?) obvious way to tell the difference, without these VC++
 | 
			
		||||
@@ -962,11 +1693,11 @@
 | 
			
		||||
 Changes between 0.9.7c and 0.9.7d  [17 Mar 2004]
 | 
			
		||||
 | 
			
		||||
  *) Fix null-pointer assignment in do_change_cipher_spec() revealed           
 | 
			
		||||
     by using the Codenomicon TLS Test Tool (CAN-2004-0079)                    
 | 
			
		||||
     by using the Codenomicon TLS Test Tool (CVE-2004-0079)                    
 | 
			
		||||
     [Joe Orton, Steve Henson]   
 | 
			
		||||
 | 
			
		||||
  *) Fix flaw in SSL/TLS handshaking when using Kerberos ciphersuites
 | 
			
		||||
     (CAN-2004-0112)
 | 
			
		||||
     (CVE-2004-0112)
 | 
			
		||||
     [Joe Orton, Steve Henson]   
 | 
			
		||||
 | 
			
		||||
  *) Make it possible to have multiple active certificates with the same
 | 
			
		||||
@@ -1009,9 +1740,9 @@
 | 
			
		||||
  *) Fix various bugs revealed by running the NISCC test suite:
 | 
			
		||||
 | 
			
		||||
     Stop out of bounds reads in the ASN1 code when presented with
 | 
			
		||||
     invalid tags (CAN-2003-0543 and CAN-2003-0544).
 | 
			
		||||
     invalid tags (CVE-2003-0543 and CVE-2003-0544).
 | 
			
		||||
     
 | 
			
		||||
     Free up ASN1_TYPE correctly if ANY type is invalid (CAN-2003-0545).
 | 
			
		||||
     Free up ASN1_TYPE correctly if ANY type is invalid (CVE-2003-0545).
 | 
			
		||||
 | 
			
		||||
     If verify callback ignores invalid public key errors don't try to check
 | 
			
		||||
     certificate signature with the NULL public key.
 | 
			
		||||
@@ -1096,7 +1827,7 @@
 | 
			
		||||
     via timing by performing a MAC computation even if incorrrect
 | 
			
		||||
     block cipher padding has been found.  This is a countermeasure
 | 
			
		||||
     against active attacks where the attacker has to distinguish
 | 
			
		||||
     between bad padding and a MAC verification error. (CAN-2003-0078)
 | 
			
		||||
     between bad padding and a MAC verification error. (CVE-2003-0078)
 | 
			
		||||
 | 
			
		||||
     [Bodo Moeller; problem pointed out by Brice Canvel (EPFL),
 | 
			
		||||
     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
			
		||||
@@ -1313,7 +2044,7 @@
 | 
			
		||||
 | 
			
		||||
     Remote buffer overflow in SSL3 protocol - an attacker could
 | 
			
		||||
     supply an oversized master key in Kerberos-enabled versions.
 | 
			
		||||
     (CAN-2002-0657)
 | 
			
		||||
     (CVE-2002-0657)
 | 
			
		||||
     [Ben Laurie (CHATS)]
 | 
			
		||||
 | 
			
		||||
  *) Change the SSL kerb5 codes to match RFC 2712.
 | 
			
		||||
@@ -2997,7 +3728,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
 Changes between 0.9.6l and 0.9.6m  [17 Mar 2004]
 | 
			
		||||
 | 
			
		||||
  *) Fix null-pointer assignment in do_change_cipher_spec() revealed
 | 
			
		||||
     by using the Codenomicon TLS Test Tool (CAN-2004-0079)
 | 
			
		||||
     by using the Codenomicon TLS Test Tool (CVE-2004-0079)
 | 
			
		||||
     [Joe Orton, Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.6k and 0.9.6l  [04 Nov 2003]
 | 
			
		||||
@@ -3005,7 +3736,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
  *) Fix additional bug revealed by the NISCC test suite:
 | 
			
		||||
 | 
			
		||||
     Stop bug triggering large recursion when presented with
 | 
			
		||||
     certain ASN.1 tags (CAN-2003-0851)
 | 
			
		||||
     certain ASN.1 tags (CVE-2003-0851)
 | 
			
		||||
     [Steve Henson]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.6j and 0.9.6k  [30 Sep 2003]
 | 
			
		||||
@@ -3013,7 +3744,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
  *) Fix various bugs revealed by running the NISCC test suite:
 | 
			
		||||
 | 
			
		||||
     Stop out of bounds reads in the ASN1 code when presented with
 | 
			
		||||
     invalid tags (CAN-2003-0543 and CAN-2003-0544).
 | 
			
		||||
     invalid tags (CVE-2003-0543 and CVE-2003-0544).
 | 
			
		||||
     
 | 
			
		||||
     If verify callback ignores invalid public key errors don't try to check
 | 
			
		||||
     certificate signature with the NULL public key.
 | 
			
		||||
@@ -3065,7 +3796,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
     via timing by performing a MAC computation even if incorrrect
 | 
			
		||||
     block cipher padding has been found.  This is a countermeasure
 | 
			
		||||
     against active attacks where the attacker has to distinguish
 | 
			
		||||
     between bad padding and a MAC verification error. (CAN-2003-0078)
 | 
			
		||||
     between bad padding and a MAC verification error. (CVE-2003-0078)
 | 
			
		||||
 | 
			
		||||
     [Bodo Moeller; problem pointed out by Brice Canvel (EPFL),
 | 
			
		||||
     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
			
		||||
@@ -3198,7 +3929,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
  *) Add various sanity checks to asn1_get_length() to reject
 | 
			
		||||
     the ASN1 length bytes if they exceed sizeof(long), will appear
 | 
			
		||||
     negative or the content length exceeds the length of the
 | 
			
		||||
     supplied buffer. (CAN-2002-0659)
 | 
			
		||||
     supplied buffer. (CVE-2002-0659)
 | 
			
		||||
     [Steve Henson, Adi Stav <stav@mercury.co.il>, James Yonan <jim@ntlp.com>]
 | 
			
		||||
 | 
			
		||||
  *) Assertions for various potential buffer overflows, not known to
 | 
			
		||||
@@ -3206,15 +3937,15 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
			
		||||
     [Ben Laurie (CHATS)]
 | 
			
		||||
 | 
			
		||||
  *) Various temporary buffers to hold ASCII versions of integers were
 | 
			
		||||
     too small for 64 bit platforms. (CAN-2002-0655)
 | 
			
		||||
     too small for 64 bit platforms. (CVE-2002-0655)
 | 
			
		||||
     [Matthew Byng-Maddick <mbm@aldigital.co.uk> and Ben Laurie (CHATS)>
 | 
			
		||||
 | 
			
		||||
  *) Remote buffer overflow in SSL3 protocol - an attacker could
 | 
			
		||||
     supply an oversized session ID to a client. (CAN-2002-0656)
 | 
			
		||||
     supply an oversized session ID to a client. (CVE-2002-0656)
 | 
			
		||||
     [Ben Laurie (CHATS)]
 | 
			
		||||
 | 
			
		||||
  *) Remote buffer overflow in SSL2 protocol - an attacker could
 | 
			
		||||
     supply an oversized client master key. (CAN-2002-0656)
 | 
			
		||||
     supply an oversized client master key. (CVE-2002-0656)
 | 
			
		||||
     [Ben Laurie (CHATS)]
 | 
			
		||||
 | 
			
		||||
 Changes between 0.9.6c and 0.9.6d  [9 May 2002]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										253
									
								
								Configure
									
									
									
									
									
								
							
							
						
						
									
										253
									
								
								Configure
									
									
									
									
									
								
							@@ -6,7 +6,9 @@ eval 'exec perl -S $0 ${1+"$@"}'
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
require 5.000;
 | 
			
		||||
use strict;
 | 
			
		||||
eval 'use strict;';
 | 
			
		||||
 | 
			
		||||
print STDERR "Warning: perl module strict not found.\n" if ($@);
 | 
			
		||||
 | 
			
		||||
# see INSTALL for instructions.
 | 
			
		||||
 | 
			
		||||
@@ -119,7 +121,7 @@ my $x86_coff_asm="x86cpuid-cof.o:bn86-cof.o co86-cof.o:dx86-cof.o yx86-cof.o:ax8
 | 
			
		||||
my $x86_out_asm="x86cpuid-out.o:bn86-out.o co86-out.o:dx86-out.o yx86-out.o:ax86-out.o:bx86-out.o:mx86-out.o:sx86-out.o s512sse2-out.o:cx86-out.o:rx86-out.o:rm86-out.o:r586-out.o";
 | 
			
		||||
 | 
			
		||||
my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o::::md5-x86_64.o:::rc4-x86_64.o::";
 | 
			
		||||
my $ia64_asm=":ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o::";
 | 
			
		||||
my $ia64_asm=":bn-ia64.o::aes_core.o aes_cbc.o aes-ia64.o:::sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o::";
 | 
			
		||||
 | 
			
		||||
my $no_asm="::::::::::";
 | 
			
		||||
 | 
			
		||||
@@ -155,17 +157,17 @@ my %table=(
 | 
			
		||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
			
		||||
"debug-bodo",	"gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
			
		||||
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll",
 | 
			
		||||
"debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
 | 
			
		||||
"debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -m32 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
 | 
			
		||||
"debug-steve-linux-pseudo64",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
 | 
			
		||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
			
		||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
			
		||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
			
		||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
			
		||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"dist",		"cc:-O::(unknown)::::::",
 | 
			
		||||
 | 
			
		||||
# Basic configs that should work on any (32 and less bit) box
 | 
			
		||||
@@ -173,10 +175,8 @@ my %table=(
 | 
			
		||||
"cc",		"cc:-O::(unknown)::::::",
 | 
			
		||||
 | 
			
		||||
####VOS Configurations
 | 
			
		||||
"vos-gcc","gcc:-b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
 | 
			
		||||
"debug-vos-gcc","gcc:-b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
 | 
			
		||||
"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::${no_asm}:::::.so:",
 | 
			
		||||
"debug-vos-vcc","vcc:-b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map::${no_asm}:::::.so:",
 | 
			
		||||
"vos-gcc","gcc:-O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
 | 
			
		||||
"debug-vos-gcc","gcc:-O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:${no_asm}:::::.so:",
 | 
			
		||||
 | 
			
		||||
#### Solaris x86 with GNU C setups
 | 
			
		||||
# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
 | 
			
		||||
@@ -184,7 +184,7 @@ 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 -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# -shared -static-libgcc might appear controversial, but modules taken
 | 
			
		||||
# from static libgcc do not have relocations and linking them into our
 | 
			
		||||
# shared objects doesn't have any negative side-effects. On the contrary,
 | 
			
		||||
@@ -197,7 +197,7 @@ my %table=(
 | 
			
		||||
 
 | 
			
		||||
#### Solaris x86 with Sun C setups
 | 
			
		||||
"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### SPARC Solaris with GNU C setups
 | 
			
		||||
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
@@ -206,8 +206,8 @@ my %table=(
 | 
			
		||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
####
 | 
			
		||||
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### SPARC Solaris with Sun C setups
 | 
			
		||||
# SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
 | 
			
		||||
@@ -218,8 +218,8 @@ my %table=(
 | 
			
		||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
 | 
			
		||||
####
 | 
			
		||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
 | 
			
		||||
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o::::md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
 | 
			
		||||
 | 
			
		||||
#### SunOS configs, assuming sparc for the gcc one.
 | 
			
		||||
#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
 | 
			
		||||
@@ -232,11 +232,11 @@ my %table=(
 | 
			
		||||
#### IRIX 6.x configs
 | 
			
		||||
# Only N32 and N64 ABIs are supported. If you need O32 ABI build, invoke
 | 
			
		||||
# './Configure irix-cc -o32' manually.
 | 
			
		||||
"irix-mips3-gcc","gcc:-mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix-mips3-gcc","gcc:-mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT::bn-mips3.o::::::::::dlfcn:irix-shared::-n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# N64 ABI builds.
 | 
			
		||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG::bn-mips3.o::::::::::dlfcn:irix-shared::-64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### Unified HP-UX ANSI C configs.
 | 
			
		||||
# Special notes:
 | 
			
		||||
@@ -287,7 +287,7 @@ my %table=(
 | 
			
		||||
# with debugging of the following config.
 | 
			
		||||
"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:+Z:+DD64 -b:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# GCC builds...
 | 
			
		||||
"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT::ia64.o::aes-ia64.o:::sha256-ia64.o sha512-ia64.o::rc4-ia64.o:::dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"hpux-ia64-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"hpux64-ia64-gcc","gcc:-mlp64 -O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:${ia64_asm}:dlfcn:hpux-shared:-fpic:-mlp64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
 | 
			
		||||
 | 
			
		||||
# Legacy HPUX 9.X configs...
 | 
			
		||||
@@ -307,7 +307,7 @@ my %table=(
 | 
			
		||||
# For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
 | 
			
		||||
#
 | 
			
		||||
"osf1-alpha-gcc", "gcc:-O3::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_RISC1:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
 | 
			
		||||
"ofs1-alpha-cc",  "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
 | 
			
		||||
"osf1-alpha-cc",  "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared:::.so",
 | 
			
		||||
"tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${no_asm}:dlfcn:alpha-osf1-shared::-msym:.so",
 | 
			
		||||
 | 
			
		||||
####
 | 
			
		||||
@@ -320,13 +320,13 @@ my %table=(
 | 
			
		||||
#### IA-32 targets...
 | 
			
		||||
"linux-ia32-icc",	"icc:-DL_ENDIAN -DTERMIO -O2 -no_cpprt::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-elf",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-aout",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
 | 
			
		||||
"linux-aout",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
 | 
			
		||||
####
 | 
			
		||||
"linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# -bpowerpc64-linux is transient option, -m64 should be the one to use...
 | 
			
		||||
"linux-ppc64",	"gcc:-bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-bpowerpc64-linux:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-ppc64",	"gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL::linux_ppc64.o::::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-ia64",	"gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"linux-x86_64",	"gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
#### SPARC Linux setups
 | 
			
		||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
 | 
			
		||||
@@ -370,7 +370,7 @@ my %table=(
 | 
			
		||||
"BSD-ia64",	"gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"BSD-x86_64",	"gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
"bsdi-elf-gcc",     "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"bsdi-elf-gcc",     "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall::(unknown)::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
"nextstep",	"cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
"nextstep3.3",	"cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
@@ -397,21 +397,19 @@ my %table=(
 | 
			
		||||
"unixware-2.0","cc:-DFILIO_H -DNO_STRINGS_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
"unixware-2.1","cc:-O -DFILIO_H::-Kthread::-lsocket -lnsl -lresolv -lx:${x86_gcc_des} ${x86_gcc_opts}:::",
 | 
			
		||||
"unixware-7","cc:-O -DFILIO_H -Kalloca::-Kthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"OpenUNIX-8","cc:-O -DFILIO_H -Kalloca::-Kthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"OpenUNIX-8-gcc","gcc:-O -DFILIO_H -fomit-frame-pointer::-pthread::-lsocket -lnsl:BN_LLONG MD2_CHAR RC4_INDEX ${x86_gcc_des}:${x86_elf_asm}:dlfcn:svr5-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"sco3-gcc",  "gcc:-O3 -fomit-frame-pointer -Dssize_t=int -DNO_SYS_UN_H::(unknown)::-lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::", # the SCO assembler doesn't seem to like our assembler files ...
 | 
			
		||||
"unixware-7-gcc","gcc:-DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall::-D_REENTRANT::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:gnu-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the SCO cc.
 | 
			
		||||
"sco5-cc",  "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
"sco5-gcc",  "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
			
		||||
 | 
			
		||||
#### IBM's AIX.
 | 
			
		||||
"aix3-cc",  "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
 | 
			
		||||
"aix-gcc",  "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:",
 | 
			
		||||
"aix-gcc",  "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 | 
			
		||||
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
 | 
			
		||||
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
 | 
			
		||||
# at build time. $OBJECT_MODE is respected at ./config stage!
 | 
			
		||||
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 | 
			
		||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 | 
			
		||||
"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 | 
			
		||||
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Cray T90 and similar (SDSC)
 | 
			
		||||
@@ -460,8 +458,8 @@ my %table=(
 | 
			
		||||
"OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H  -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::",
 | 
			
		||||
 | 
			
		||||
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
 | 
			
		||||
"VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
 | 
			
		||||
"VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32",
 | 
			
		||||
"VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
 | 
			
		||||
"VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32",
 | 
			
		||||
 | 
			
		||||
# Visual C targets
 | 
			
		||||
"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
 | 
			
		||||
@@ -480,29 +478,32 @@ my %table=(
 | 
			
		||||
# Cygwin
 | 
			
		||||
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
 | 
			
		||||
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
 | 
			
		||||
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
 | 
			
		||||
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
 | 
			
		||||
 | 
			
		||||
# NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools
 | 
			
		||||
# netware-clib => legacy CLib c-runtime support
 | 
			
		||||
"netware-clib", "mwccnlm:::::${x86_gcc_opts}:::",
 | 
			
		||||
"netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
 | 
			
		||||
# netware-libc => LibC/NKS support
 | 
			
		||||
"netware-libc", "mwccnlm:::::BN_LLONG ${x86_gcc_opts}:::",
 | 
			
		||||
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall::::${x86_gcc_opts}:::",
 | 
			
		||||
# NetWare defaults socket bio to WinSock sockets. However, the LibC build can be
 | 
			
		||||
# configured to use BSD sockets instead.
 | 
			
		||||
"netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
 | 
			
		||||
"netware-libc-bsdsock", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::",
 | 
			
		||||
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::",
 | 
			
		||||
 | 
			
		||||
# DJGPP
 | 
			
		||||
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall -DDEVRANDOM=\"/dev/urandom\\x24\":::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
 | 
			
		||||
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:",
 | 
			
		||||
 | 
			
		||||
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
 | 
			
		||||
"ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
 | 
			
		||||
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::::::",
 | 
			
		||||
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown):::BN_LLONG::::",
 | 
			
		||||
# K&R C is no longer supported; you need gcc on old Ultrix installations
 | 
			
		||||
##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown):::::::",
 | 
			
		||||
 | 
			
		||||
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
 | 
			
		||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::",
 | 
			
		||||
"darwin-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o:::::::::::darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}::darwin-shared:-fPIC:-dunamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o:::::::::::darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
"darwin-ppc-cc","cc:-O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
"darwin-i386-cc","cc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
"debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
			
		||||
 | 
			
		||||
##### A/UX
 | 
			
		||||
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
 | 
			
		||||
@@ -511,7 +512,7 @@ my %table=(
 | 
			
		||||
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
 | 
			
		||||
 | 
			
		||||
##### GNU Hurd
 | 
			
		||||
"hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
 | 
			
		||||
"hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
 | 
			
		||||
 | 
			
		||||
##### OS/2 EMX
 | 
			
		||||
"OS2-EMX", "gcc::::::::",
 | 
			
		||||
@@ -519,7 +520,7 @@ my %table=(
 | 
			
		||||
##### VxWorks for various targets
 | 
			
		||||
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
 | 
			
		||||
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
 | 
			
		||||
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
 | 
			
		||||
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
 | 
			
		||||
"vxworks-ppc860","ccppc:-nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
 | 
			
		||||
"vxworks-mipsle","ccmips:-B\$(WIND_BASE)/host/\$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I\$(WIND_BASE)/target/h:::VXWORKS:-r::${no_asm}::::::ranlibmips:",
 | 
			
		||||
 | 
			
		||||
@@ -530,7 +531,7 @@ my %table=(
 | 
			
		||||
 | 
			
		||||
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
 | 
			
		||||
		    VC-NT VC-CE VC-WIN32
 | 
			
		||||
		    BC-32 OS2-EMX netware-clib netware-libc);
 | 
			
		||||
		    BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock);
 | 
			
		||||
 | 
			
		||||
my $idx = 0;
 | 
			
		||||
my $idx_cc = $idx++;
 | 
			
		||||
@@ -563,11 +564,17 @@ my $prefix="";
 | 
			
		||||
my $openssldir="";
 | 
			
		||||
my $exe_ext="";
 | 
			
		||||
my $install_prefix="";
 | 
			
		||||
my $fipslibdir="/usr/local/ssl/lib/";
 | 
			
		||||
my $nofipscanistercheck=0;
 | 
			
		||||
my $fipsdso=0;
 | 
			
		||||
my $fipscanisterinternal="n";
 | 
			
		||||
my $baseaddr="0xFB00000";
 | 
			
		||||
my $no_threads=0;
 | 
			
		||||
my $threads=0;
 | 
			
		||||
my $no_shared=0; # but "no-shared" is default
 | 
			
		||||
my $zlib=1;      # but "no-zlib" is default
 | 
			
		||||
my $no_krb5=0;   # but "no-krb5" is implied unless "--with-krb5-..." is used
 | 
			
		||||
my $no_rfc3779=1; # but "no-rfc3779" is default
 | 
			
		||||
my $no_asm=0;
 | 
			
		||||
my $no_dso=0;
 | 
			
		||||
my $no_gmp=0;
 | 
			
		||||
@@ -584,6 +591,7 @@ my $rc2	="crypto/rc2/rc2.h";
 | 
			
		||||
my $bf	="crypto/bf/bf_locl.h";
 | 
			
		||||
my $bn_asm	="bn_asm.o";
 | 
			
		||||
my $des_enc="des_enc.o fcrypt_b.o";
 | 
			
		||||
my $fips_des_enc="fips_des_enc.o";
 | 
			
		||||
my $aes_enc="aes_core.o aes_cbc.o";
 | 
			
		||||
my $bf_enc	="bf_enc.o";
 | 
			
		||||
my $cast_enc="c_enc.o";
 | 
			
		||||
@@ -595,14 +603,18 @@ my $rmd160_obj="";
 | 
			
		||||
my $processor="";
 | 
			
		||||
my $default_ranlib;
 | 
			
		||||
my $perl;
 | 
			
		||||
my $fips=0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# All of the following is disabled by default (RC5 was enabled before 0.9.8):
 | 
			
		||||
 | 
			
		||||
my %disabled = ( # "what"         => "comment"
 | 
			
		||||
		 "gmp"		  => "default",
 | 
			
		||||
                 "camellia"       => "default",
 | 
			
		||||
                 "gmp"            => "default",
 | 
			
		||||
                 "mdc2"           => "default",
 | 
			
		||||
                 "rc5"            => "default",
 | 
			
		||||
                 "rfc3779"        => "default",
 | 
			
		||||
                 "seed"           => "default",
 | 
			
		||||
                 "shared"         => "default",
 | 
			
		||||
                 "zlib"           => "default",
 | 
			
		||||
                 "zlib-dynamic"   => "default"
 | 
			
		||||
@@ -613,7 +625,7 @@ my %disabled = ( # "what"         => "comment"
 | 
			
		||||
# For symmetry, "disable-..." is a synonym for "no-...".
 | 
			
		||||
 | 
			
		||||
# This is what $depflags will look like with the above default:
 | 
			
		||||
my $default_depflags = "-DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 ";
 | 
			
		||||
my $default_depflags = "-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SEED ";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
my $no_sse2=0;
 | 
			
		||||
@@ -697,7 +709,7 @@ PROCESS_ARGS:
 | 
			
		||||
				{
 | 
			
		||||
				while (<IN>)
 | 
			
		||||
					{
 | 
			
		||||
					chop;
 | 
			
		||||
					chomp;
 | 
			
		||||
					if (/^CONFIGURE_ARGS=(.*)/)
 | 
			
		||||
						{
 | 
			
		||||
						$argvstring=$1;
 | 
			
		||||
@@ -716,12 +728,36 @@ PROCESS_ARGS:
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^386$/)
 | 
			
		||||
			{ $processor=386; }
 | 
			
		||||
		elsif (/^fips$/)
 | 
			
		||||
			{
 | 
			
		||||
			$fips=1;
 | 
			
		||||
		        }
 | 
			
		||||
		elsif (/^rsaref$/)
 | 
			
		||||
			{
 | 
			
		||||
			# No RSAref support any more since it's not needed.
 | 
			
		||||
			# The check for the option is there so scripts aren't
 | 
			
		||||
			# broken
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^nofipscanistercheck$/)
 | 
			
		||||
			{
 | 
			
		||||
			$fips = 1;
 | 
			
		||||
			$nofipscanistercheck = 1;
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^fipscanisterbuild$/)
 | 
			
		||||
			{
 | 
			
		||||
			$fips = 1;
 | 
			
		||||
			$nofipscanistercheck = 1;
 | 
			
		||||
			$fipslibdir="";
 | 
			
		||||
			$fipscanisterinternal="y";
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^fipsdso$/)
 | 
			
		||||
			{
 | 
			
		||||
			$fips = 1;
 | 
			
		||||
			$nofipscanistercheck = 1;
 | 
			
		||||
			$fipslibdir="";
 | 
			
		||||
			$fipscanisterinternal="y";
 | 
			
		||||
			$fipsdso = 1;
 | 
			
		||||
			}
 | 
			
		||||
		elsif (/^[-+]/)
 | 
			
		||||
			{
 | 
			
		||||
			if (/^-[lL](.*)$/)
 | 
			
		||||
@@ -748,6 +784,14 @@ PROCESS_ARGS:
 | 
			
		||||
				{
 | 
			
		||||
				$withargs{"krb5-".$1}=$2;
 | 
			
		||||
				}
 | 
			
		||||
			elsif (/^--with-zlib-lib=(.*)$/)
 | 
			
		||||
				{
 | 
			
		||||
				$withargs{"zlib-lib"}=$1;
 | 
			
		||||
				}
 | 
			
		||||
			elsif (/^--with-zlib-include=(.*)$/)
 | 
			
		||||
				{
 | 
			
		||||
				$withargs{"zlib-include"}="-I$1";
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				{
 | 
			
		||||
				print STDERR $usage;
 | 
			
		||||
@@ -761,7 +805,7 @@ PROCESS_ARGS:
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			die "target already defined - $target\n" if ($target ne "");
 | 
			
		||||
			die "target already defined - $target (offending arg: $_)\n" if ($target ne "");
 | 
			
		||||
			$target=$_;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -866,6 +910,8 @@ foreach (sort (keys %disabled))
 | 
			
		||||
		{ $no_shared = 1; }
 | 
			
		||||
	elsif (/^zlib$/)
 | 
			
		||||
		{ $zlib = 0; }
 | 
			
		||||
	elsif (/^static-engine$/)
 | 
			
		||||
		{ }
 | 
			
		||||
	elsif (/^zlib-dynamic$/)
 | 
			
		||||
		{ }
 | 
			
		||||
	elsif (/^symlinks$/)
 | 
			
		||||
@@ -882,8 +928,8 @@ foreach (sort (keys %disabled))
 | 
			
		||||
			$openssl_other_defines .= "#define OPENSSL_NO_$ALGO\n";
 | 
			
		||||
			print " OPENSSL_NO_$ALGO";
 | 
			
		||||
		
 | 
			
		||||
			if (/^err$/)
 | 
			
		||||
				{ $flags .= "-DOPENSSL_NO_ERR "; }
 | 
			
		||||
			if (/^err$/)	{ $flags .= "-DOPENSSL_NO_ERR "; }
 | 
			
		||||
			elsif (/^asm$/)	{ $no_asm = 1; }
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
@@ -908,7 +954,9 @@ foreach (sort (keys %disabled))
 | 
			
		||||
 | 
			
		||||
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
 | 
			
		||||
 | 
			
		||||
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin");
 | 
			
		||||
$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
 | 
			
		||||
 | 
			
		||||
$no_shared = 0 if ($fipsdso && !$IsMK1MF);
 | 
			
		||||
 | 
			
		||||
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
 | 
			
		||||
$exe_ext=".pm"  if ($target =~ /vos/);
 | 
			
		||||
@@ -1124,13 +1172,16 @@ if (!$no_shared)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
if ($no_shared)
 | 
			
		||||
if (!$IsMK1MF)
 | 
			
		||||
	{
 | 
			
		||||
	$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
 | 
			
		||||
	}
 | 
			
		||||
else
 | 
			
		||||
	{
 | 
			
		||||
	$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
 | 
			
		||||
	if ($no_shared)
 | 
			
		||||
		{
 | 
			
		||||
		$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
 | 
			
		||||
@@ -1172,6 +1223,27 @@ $bn_obj = $bn_asm unless $bn_obj ne "";
 | 
			
		||||
$cflags.=" -DOPENSSL_BN_ASM_PART_WORDS" if ($bn_obj =~ /bn86/);
 | 
			
		||||
$cflags.=" -DOPENSSL_IA32_SSE2" if (!$no_sse2 && $bn_obj =~ /bn86/);
 | 
			
		||||
 | 
			
		||||
my $fips_des_obj;
 | 
			
		||||
my $fips_aes_obj;
 | 
			
		||||
my $fips_sha1_obj;
 | 
			
		||||
if ($fips)
 | 
			
		||||
	{
 | 
			
		||||
	if ($des_obj =~ /\-elf\.o$/)
 | 
			
		||||
		{
 | 
			
		||||
		$fips_des_obj='asm/fips-dx86-elf.o';
 | 
			
		||||
		$openssl_other_defines.="#define OPENSSL_FIPS_DES_ASM\n";
 | 
			
		||||
		$fips_aes_obj='asm/fips-ax86-elf.o';
 | 
			
		||||
		$openssl_other_defines.="#define OPENSSL_FIPS_AES_ASM\n";
 | 
			
		||||
		}
 | 
			
		||||
	else	{
 | 
			
		||||
		$fips_des_obj=$fips_des_enc;
 | 
			
		||||
		$fips_aes_obj='fips_aes_core.o';
 | 
			
		||||
		}
 | 
			
		||||
	$fips_sha1_obj='asm/fips-sx86-elf.o' if ($sha1_obj =~ /\-elf\.o$/);
 | 
			
		||||
	$des_obj=$sha1_obj=$aes_obj="";
 | 
			
		||||
	$openssl_other_defines.="#define OPENSSL_FIPS\n";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
$des_obj=$des_enc	unless ($des_obj =~ /\.o$/);
 | 
			
		||||
$bf_obj=$bf_enc		unless ($bf_obj =~ /\.o$/);
 | 
			
		||||
$cast_obj=$cast_enc	unless ($cast_obj =~ /\.o$/);
 | 
			
		||||
@@ -1251,7 +1323,7 @@ print OUT "### Generated automatically from Makefile.org by Configure.\n\n";
 | 
			
		||||
my $sdirs=0;
 | 
			
		||||
while (<IN>)
 | 
			
		||||
	{
 | 
			
		||||
	chop;
 | 
			
		||||
	chomp;
 | 
			
		||||
	$sdirs = 1 if /^SDIRS=/;
 | 
			
		||||
	if ($sdirs) {
 | 
			
		||||
		my $dir;
 | 
			
		||||
@@ -1282,6 +1354,8 @@ while (<IN>)
 | 
			
		||||
	s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
 | 
			
		||||
	s/^CPUID_OBJ=.*$/CPUID_OBJ= $cpuid_obj/;
 | 
			
		||||
	s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
 | 
			
		||||
	s/^FIPS_DES_ENC=.*$/FIPS_DES_ENC= $fips_des_obj/;
 | 
			
		||||
	s/^FIPS_AES_ENC=.*$/FIPS_AES_ENC= $fips_aes_obj/;
 | 
			
		||||
	s/^DES_ENC=.*$/DES_ENC= $des_obj/;
 | 
			
		||||
	s/^AES_ASM_OBJ=.*$/AES_ASM_OBJ= $aes_obj/;
 | 
			
		||||
	s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
 | 
			
		||||
@@ -1290,6 +1364,7 @@ while (<IN>)
 | 
			
		||||
	s/^RC5_ENC=.*$/RC5_ENC= $rc5_obj/;
 | 
			
		||||
	s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
 | 
			
		||||
	s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
 | 
			
		||||
	s/^FIPS_SHA1_ASM_OBJ=.*$/FIPS_SHA1_ASM_OBJ= $fips_sha1_obj/;
 | 
			
		||||
	s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
 | 
			
		||||
	s/^PROCESSOR=.*/PROCESSOR= $processor/;
 | 
			
		||||
	s/^RANLIB=.*/RANLIB= $ranlib/;
 | 
			
		||||
@@ -1297,9 +1372,26 @@ while (<IN>)
 | 
			
		||||
	s/^PERL=.*/PERL= $perl/;
 | 
			
		||||
	s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
 | 
			
		||||
	s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
 | 
			
		||||
	s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
 | 
			
		||||
	s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
 | 
			
		||||
	s/^FIPSLIBDIR=.*/FIPSLIBDIR=$fipslibdir/;
 | 
			
		||||
	if ($fipsdso)
 | 
			
		||||
		{
 | 
			
		||||
		s/^FIPSCANLIB=.*/FIPSCANLIB=libfips/;
 | 
			
		||||
		s/^SHARED_FIPS=.*/SHARED_FIPS=libfips\$(SHLIB_EXT)/;
 | 
			
		||||
		s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl fips/;
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		s/^FIPSCANLIB=.*/FIPSCANLIB=libcrypto/ if $fips;
 | 
			
		||||
		s/^SHARED_FIPS=.*/SHARED_FIPS=/;
 | 
			
		||||
		s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
 | 
			
		||||
		}
 | 
			
		||||
	s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
 | 
			
		||||
	s/^BASEADDR=.*/BASEADDR=$baseaddr/;
 | 
			
		||||
	s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
 | 
			
		||||
	s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
 | 
			
		||||
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
 | 
			
		||||
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL) \$(SHARED_FIPS)/ if (!$no_shared);
 | 
			
		||||
	if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
 | 
			
		||||
		{
 | 
			
		||||
		my $sotmp = $1;
 | 
			
		||||
@@ -1594,9 +1686,16 @@ BEGIN
 | 
			
		||||
    BEGIN
 | 
			
		||||
	BLOCK "040904b0"
 | 
			
		||||
	BEGIN
 | 
			
		||||
#if defined(FIPS)
 | 
			
		||||
	    VALUE "Comments", "WARNING: TEST VERSION ONLY ***NOT*** FIPS 140-2 VALIDATED.\\0"
 | 
			
		||||
#endif
 | 
			
		||||
	    // Required:	    
 | 
			
		||||
	    VALUE "CompanyName", "The OpenSSL Project, http://www.openssl.org/\\0"
 | 
			
		||||
#if defined(FIPS)
 | 
			
		||||
	    VALUE "FileDescription", "TEST UNVALIDATED FIPS140-2 DLL\\0"
 | 
			
		||||
#else
 | 
			
		||||
	    VALUE "FileDescription", "OpenSSL Shared Library\\0"
 | 
			
		||||
#endif
 | 
			
		||||
	    VALUE "FileVersion", "$version\\0"
 | 
			
		||||
#if defined(CRYPTO)
 | 
			
		||||
	    VALUE "InternalName", "libeay32\\0"
 | 
			
		||||
@@ -1604,12 +1703,15 @@ BEGIN
 | 
			
		||||
#elif defined(SSL)
 | 
			
		||||
	    VALUE "InternalName", "ssleay32\\0"
 | 
			
		||||
	    VALUE "OriginalFilename", "ssleay32.dll\\0"
 | 
			
		||||
#elif defined(FIPS)
 | 
			
		||||
	    VALUE "InternalName", "libosslfips\\0"
 | 
			
		||||
	    VALUE "OriginalFilename", "libosslfips.dll\\0"
 | 
			
		||||
#endif
 | 
			
		||||
	    VALUE "ProductName", "The OpenSSL Toolkit\\0"
 | 
			
		||||
	    VALUE "ProductVersion", "$version\\0"
 | 
			
		||||
	    // Optional:
 | 
			
		||||
	    //VALUE "Comments", "\\0"
 | 
			
		||||
	    VALUE "LegalCopyright", "Copyright <20> 1998-2005 The OpenSSL Project. Copyright <20> 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
 | 
			
		||||
	    VALUE "LegalCopyright", "Copyright <20> 1998-2007 The OpenSSL Project. Copyright <20> 1995-1998 Eric A. Young, Tim J. Hudson. All rights reserved.\\0"
 | 
			
		||||
	    //VALUE "LegalTrademarks", "\\0"
 | 
			
		||||
	    //VALUE "PrivateBuild", "\\0"
 | 
			
		||||
	    //VALUE "SpecialBuild", "\\0"
 | 
			
		||||
@@ -1646,6 +1748,21 @@ libraries on this platform, they will at least look at it and try their best
 | 
			
		||||
(but please first make sure you have tried with a current version of OpenSSL).
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
print <<\EOF if ($fipscanisterinternal eq "y");
 | 
			
		||||
 | 
			
		||||
WARNING: OpenSSL has been configured using unsupported option(s) to internally
 | 
			
		||||
generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
 | 
			
		||||
compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
 | 
			
		||||
OpenSSL FIPS Object Module as identified by the CMVP
 | 
			
		||||
(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
 | 
			
		||||
140-2 validated software. 
 | 
			
		||||
 | 
			
		||||
This is an OpenSSL 0.9.8-fips test version.
 | 
			
		||||
 | 
			
		||||
See the file README.FIPS for details of how to build a test library.
 | 
			
		||||
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
exit(0);
 | 
			
		||||
 | 
			
		||||
sub usage
 | 
			
		||||
@@ -1791,3 +1908,11 @@ sub test_sanity
 | 
			
		||||
	print STDERR "No sanity errors detected!\n" if $errorcnt == 0;
 | 
			
		||||
	return $errorcnt;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
# Attempt to detect MSYS environment
 | 
			
		||||
 | 
			
		||||
sub is_msys
 | 
			
		||||
	{
 | 
			
		||||
	return 1 if (exists $ENV{"TERM"} && $ENV{"TERM"} eq "msys");
 | 
			
		||||
	return 0;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										91
									
								
								FAQ
									
									
									
									
									
								
							
							
						
						
									
										91
									
								
								FAQ
									
									
									
									
									
								
							@@ -31,6 +31,7 @@ OpenSSL  -  Frequently Asked Questions
 | 
			
		||||
* Why does my browser give a warning about a mismatched hostname?
 | 
			
		||||
* How do I install a CA certificate into a browser?
 | 
			
		||||
* Why is OpenSSL x509 DN output not conformant to RFC2253?
 | 
			
		||||
* What is a "128 bit certificate"? Can I create one with OpenSSL?
 | 
			
		||||
 | 
			
		||||
[BUILD] Questions about building and testing OpenSSL
 | 
			
		||||
 | 
			
		||||
@@ -47,6 +48,8 @@ OpenSSL  -  Frequently Asked Questions
 | 
			
		||||
* Why does the OpenSSL test suite fail in BN_sqr test [on a 64-bit platform]?
 | 
			
		||||
* Why does OpenBSD-i386 build fail on des-586.s with "Unimplemented segment type"?
 | 
			
		||||
* Why does the OpenSSL test suite fail in sha512t on x86 CPU?
 | 
			
		||||
* Why does compiler fail to compile sha512.c?
 | 
			
		||||
* Test suite still fails, what to do?
 | 
			
		||||
 | 
			
		||||
[PROG] Questions about programming with OpenSSL
 | 
			
		||||
 | 
			
		||||
@@ -71,7 +74,7 @@ OpenSSL  -  Frequently Asked Questions
 | 
			
		||||
* Which is the current version of OpenSSL?
 | 
			
		||||
 | 
			
		||||
The current version is available from <URL: http://www.openssl.org>.
 | 
			
		||||
OpenSSL 0.9.7g was released on April 11, 2005.
 | 
			
		||||
OpenSSL 0.9.8e was released on February 23rd, 2007.
 | 
			
		||||
 | 
			
		||||
In addition to the current stable release, you can also access daily
 | 
			
		||||
snapshots of the OpenSSL development version at <URL:
 | 
			
		||||
@@ -142,8 +145,8 @@ less Unix-centric, it might have been used much earlier.
 | 
			
		||||
 | 
			
		||||
With version 0.9.6 OpenSSL was extended to interface to external crypto
 | 
			
		||||
hardware. This was realized in a special release '0.9.6-engine'. With
 | 
			
		||||
version 0.9.7 (not yet released) the changes were merged into the main
 | 
			
		||||
development line, so that the special release is no longer necessary.
 | 
			
		||||
version 0.9.7 the changes were merged into the main development line,
 | 
			
		||||
so that the special release is no longer necessary.
 | 
			
		||||
 | 
			
		||||
* How do I check the authenticity of the OpenSSL distribution?
 | 
			
		||||
 | 
			
		||||
@@ -385,6 +388,43 @@ interface, the "-nameopt" option could be introduded. See the manual
 | 
			
		||||
page of the "openssl x509" commandline tool for details. The old behaviour
 | 
			
		||||
has however been left as default for the sake of compatibility.
 | 
			
		||||
 | 
			
		||||
* What is a "128 bit certificate"? Can I create one with OpenSSL?
 | 
			
		||||
 | 
			
		||||
The term "128 bit certificate" is a highly misleading marketing term. It does
 | 
			
		||||
*not* refer to the size of the public key in the certificate! A certificate
 | 
			
		||||
containing a 128 bit RSA key would have negligible security.
 | 
			
		||||
 | 
			
		||||
There were various other names such as "magic certificates", "SGC
 | 
			
		||||
certificates", "step up certificates" etc.
 | 
			
		||||
 | 
			
		||||
You can't generally create such a certificate using OpenSSL but there is no
 | 
			
		||||
need to any more. Nowadays web browsers using unrestricted strong encryption
 | 
			
		||||
are generally available.
 | 
			
		||||
 | 
			
		||||
When there were tight export restrictions on the export of strong encryption
 | 
			
		||||
software from the US only weak encryption algorithms could be freely exported
 | 
			
		||||
(initially 40 bit and then 56 bit). It was widely recognised that this was
 | 
			
		||||
inadequate. A relaxation the rules allowed the use of strong encryption but
 | 
			
		||||
only to an authorised server.
 | 
			
		||||
 | 
			
		||||
Two slighly different techniques were developed to support this, one used by
 | 
			
		||||
Netscape was called "step up", the other used by MSIE was called "Server Gated
 | 
			
		||||
Cryptography" (SGC). When a browser initially connected to a server it would
 | 
			
		||||
check to see if the certificate contained certain extensions and was issued by
 | 
			
		||||
an authorised authority. If these test succeeded it would reconnect using
 | 
			
		||||
strong encryption.
 | 
			
		||||
 | 
			
		||||
Only certain (initially one) certificate authorities could issue the
 | 
			
		||||
certificates and they generally cost more than ordinary certificates.
 | 
			
		||||
 | 
			
		||||
Although OpenSSL can create certificates containing the appropriate extensions
 | 
			
		||||
the certificate would not come from a permitted authority and so would not
 | 
			
		||||
be recognized.
 | 
			
		||||
 | 
			
		||||
The export laws were later changed to allow almost unrestricted use of strong
 | 
			
		||||
encryption so these certificates are now obsolete.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[BUILD] =======================================================================
 | 
			
		||||
 | 
			
		||||
* Why does the linker complain about undefined symbols?
 | 
			
		||||
@@ -607,6 +647,27 @@ Intel P4, under control of kernel which does not support SSE2
 | 
			
		||||
instruction extentions. See accompanying INSTALL file and
 | 
			
		||||
OPENSSL_ia32cap(3) documentation page for further information.
 | 
			
		||||
 | 
			
		||||
* Why does compiler fail to compile sha512.c?
 | 
			
		||||
 | 
			
		||||
OpenSSL SHA-512 implementation depends on compiler support for 64-bit
 | 
			
		||||
integer type. Few elder compilers [ULTRIX cc, SCO compiler to mention a
 | 
			
		||||
couple] lack support for this and therefore are incapable of compiling
 | 
			
		||||
the module in question. The recommendation is to disable SHA-512 by
 | 
			
		||||
adding no-sha512 to ./config [or ./Configure] command line. Another
 | 
			
		||||
possible alternative might be to switch to GCC.
 | 
			
		||||
 | 
			
		||||
* Test suite still fails, what to do?
 | 
			
		||||
 | 
			
		||||
Another common reason for failure to complete some particular test is
 | 
			
		||||
simply bad code generated by a buggy component in toolchain or deficiency
 | 
			
		||||
in run-time environment. There are few cases documented in PROBLEMS file,
 | 
			
		||||
consult it for possible workaround before you beat the drum. Even if you
 | 
			
		||||
don't find solution or even mention there, do reserve for possibility of
 | 
			
		||||
a compiler bug. Compiler bugs might appear in rather bizarre ways, they
 | 
			
		||||
never make sense, and tend to emerge when you least expect them. In order
 | 
			
		||||
to identify one, drop optimization level, e.g. by editing CFLAG line in
 | 
			
		||||
top-level Makefile, recompile and re-run the test.
 | 
			
		||||
 | 
			
		||||
[PROG] ========================================================================
 | 
			
		||||
 | 
			
		||||
* Is OpenSSL thread-safe?
 | 
			
		||||
@@ -618,8 +679,9 @@ 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.
 | 
			
		||||
 | 
			
		||||
OpenSSL by calling CRYPTO_set_locking_callback() and
 | 
			
		||||
CRYPTO_set_id_callback().  This is described in the threads(3)
 | 
			
		||||
manpage.
 | 
			
		||||
 | 
			
		||||
* I've compiled a program under Windows and it crashes: why?
 | 
			
		||||
 | 
			
		||||
@@ -639,10 +701,10 @@ your application must link  against the same by which OpenSSL was
 | 
			
		||||
built.  If you are using MS Visual C++ (Studio) this can be changed
 | 
			
		||||
by:
 | 
			
		||||
 | 
			
		||||
1.  Select Settings... from the Project Menu.
 | 
			
		||||
2.  Select the C/C++ Tab.
 | 
			
		||||
3.  Select "Code Generation from the "Category" drop down list box
 | 
			
		||||
4.  Select the Appropriate library (see table below) from the "Use
 | 
			
		||||
 1. Select Settings... from the Project Menu.
 | 
			
		||||
 2. Select the C/C++ Tab.
 | 
			
		||||
 3. Select "Code Generation from the "Category" drop down list box
 | 
			
		||||
 4. Select the Appropriate library (see table below) from the "Use
 | 
			
		||||
    run-time library" drop down list box.  Perform this step for both
 | 
			
		||||
    your debug and release versions of your application (look at the
 | 
			
		||||
    top left of the settings panel to change between the two)
 | 
			
		||||
@@ -662,16 +724,19 @@ Note that debug and release libraries are NOT interchangeable.  If you
 | 
			
		||||
built OpenSSL with /MD your application must use /MD and cannot use /MDd.
 | 
			
		||||
 | 
			
		||||
As per 0.9.8 the above limitation is eliminated for .DLLs. OpenSSL
 | 
			
		||||
.DLLs compiled with some specific run-time option [we recommend the
 | 
			
		||||
.DLLs compiled with some specific run-time option [we insist on the
 | 
			
		||||
default /MD] can be deployed with application compiled with different
 | 
			
		||||
option or even different compiler. But there is a catch! Instead of
 | 
			
		||||
re-compiling OpenSSL toolkit, as you would have to with prior versions,
 | 
			
		||||
you have to compile small C snippet with compiler and/or options of
 | 
			
		||||
your choice. The snippet gets installed as
 | 
			
		||||
<install-root>/include/openssl/applink.c and should be either added to
 | 
			
		||||
your project or simply #include-d in one [and only one] of your source
 | 
			
		||||
files. Failure to do either manifests itself as fatal "no
 | 
			
		||||
OPENSSL_Applink" error.
 | 
			
		||||
your application project or simply #include-d in one [and only one]
 | 
			
		||||
of your application source files. Failure to link this shim module
 | 
			
		||||
into your application manifests itself as fatal "no OPENSSL_Applink"
 | 
			
		||||
run-time error. An explicit reminder is due that in this situation
 | 
			
		||||
[mixing compiler options] it is as important to add CRYPTO_malloc_init
 | 
			
		||||
prior first call to OpenSSL.
 | 
			
		||||
 | 
			
		||||
* How do I read or write a DER encoded buffer using the ASN1 functions?
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								INSTALL
									
									
									
									
									
								
							@@ -75,7 +75,9 @@
 | 
			
		||||
  no-asm        Do not use assembler code.
 | 
			
		||||
 | 
			
		||||
  386           Use the 80386 instruction set only (the default x86 code is
 | 
			
		||||
                more efficient, but requires at least a 486).
 | 
			
		||||
                more efficient, but requires at least a 486). Note: Use
 | 
			
		||||
                compiler flags for any other CPU specific configuration,
 | 
			
		||||
                e.g. "-m32" to build x86 code on an x64 system.
 | 
			
		||||
 | 
			
		||||
  no-sse2	Exclude SSE2 code pathes. Normally SSE2 extention is
 | 
			
		||||
		detected at run-time, but the decision whether or not the
 | 
			
		||||
@@ -96,7 +98,7 @@
 | 
			
		||||
                The crypto/<cipher> directory can be removed after running
 | 
			
		||||
                "make depend".
 | 
			
		||||
 | 
			
		||||
  -Dxxx, -lxxx, -Lxxx, -fxxx, -Kxxx These system specific options will
 | 
			
		||||
  -Dxxx, -lxxx, -Lxxx, -fxxx, -mxxx, -Kxxx These system specific options will
 | 
			
		||||
                be passed through to the compiler to allow you to
 | 
			
		||||
                define preprocessor symbols, specify additional libraries,
 | 
			
		||||
                library directories or other compiler options.
 | 
			
		||||
@@ -300,10 +302,10 @@
 | 
			
		||||
 Note on shared libraries
 | 
			
		||||
 ------------------------
 | 
			
		||||
 | 
			
		||||
 Shared library is currently an experimental feature.  The only reason to
 | 
			
		||||
 have them would be to conserve memory on systems where several program
 | 
			
		||||
 are using OpenSSL.  Binary backward compatibility can't be guaranteed
 | 
			
		||||
 before OpenSSL version 1.0.
 | 
			
		||||
 Shared libraries have certain caveats.  Binary backward compatibility
 | 
			
		||||
 can't be guaranteed before OpenSSL version 1.0.  The only reason to
 | 
			
		||||
 use them would be to conserve memory on systems where several programs
 | 
			
		||||
 are using OpenSSL.
 | 
			
		||||
 | 
			
		||||
 For some systems, the OpenSSL Configure script knows what is needed to
 | 
			
		||||
 build shared libraries for libcrypto and libssl.  On these systems,
 | 
			
		||||
@@ -328,7 +330,7 @@
 | 
			
		||||
 Note on support for multiple builds
 | 
			
		||||
 -----------------------------------
 | 
			
		||||
 | 
			
		||||
 OpenSSL is usually built in it's source tree.  Unfortunately, this doesn't
 | 
			
		||||
 OpenSSL is usually built in its source tree.  Unfortunately, this doesn't
 | 
			
		||||
 support building for multiple platforms from the same source tree very well.
 | 
			
		||||
 It is however possible to build in a separate tree through the use of lots
 | 
			
		||||
 of symbolic links, which should be prepared like this:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								INSTALL.NW
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								INSTALL.NW
									
									
									
									
									
								
							@@ -32,6 +32,10 @@ The necessary LibC functionality ships with NetWare 6.  However, earlier
 | 
			
		||||
NetWare 5.x versions will require updates in order to run the OpenSSL LibC
 | 
			
		||||
build.
 | 
			
		||||
 | 
			
		||||
As of June 2005, the LibC build can be configured to use BSD sockets instead
 | 
			
		||||
of WinSock sockets. Call Configure (usually through netware\build.bat) using
 | 
			
		||||
a target of "netware-libc-bsdsock" instead of "netware-libc".
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REQUIRED TOOLS:
 | 
			
		||||
---------------
 | 
			
		||||
@@ -95,7 +99,12 @@ following tools may be required:
 | 
			
		||||
         Microsoft SDK.  Note: The winsock2.h support headers may change
 | 
			
		||||
         with various versions of winsock2.h.  Check the dependencies
 | 
			
		||||
         section on the NDK WinSock2 download page for the latest
 | 
			
		||||
         information on dependencies.
 | 
			
		||||
         information on dependencies. These components are unsupported by
 | 
			
		||||
         Novell. They are provided as a courtesy, but it is strongly
 | 
			
		||||
         suggested that all development be done using LIBC, not CLIB.
 | 
			
		||||
 | 
			
		||||
         As of June 2005, the WinSock2 components are available at:
 | 
			
		||||
         http://forgeftp.novell.com//ws2comp/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      NLM and NetWare libraries for C (including CLIB and XPlat):
 | 
			
		||||
@@ -121,7 +130,8 @@ following tools may be required:
 | 
			
		||||
         
 | 
			
		||||
         NOTE: The LibC SDK includes the necessary WinSock2 support.  It
 | 
			
		||||
         It is not necessary to download the WinSock2 Developer when building
 | 
			
		||||
         for LibC.
 | 
			
		||||
         for LibC. The LibC SDK also includes the appropriate BSD socket support
 | 
			
		||||
         if configuring to use BSD sockets.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BUILDING:
 | 
			
		||||
@@ -172,8 +182,9 @@ the assembly code.  Always run build.bat from the "openssl" directory.
 | 
			
		||||
 | 
			
		||||
   netware\build [target] [debug opts] [assembly opts] [configure opts]
 | 
			
		||||
 | 
			
		||||
      target        - "netware-clib" - CLib NetWare build
 | 
			
		||||
                    - "netware-libc" - LibC NetWare build
 | 
			
		||||
      target        - "netware-clib" - CLib NetWare build (WinSock Sockets)
 | 
			
		||||
                    - "netware-libc" - LibC NetWare build (WinSock Sockets)
 | 
			
		||||
                    - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets)
 | 
			
		||||
 
 | 
			
		||||
      debug opts    - "debug"  - build debug
 | 
			
		||||
 | 
			
		||||
@@ -192,25 +203,29 @@ the assembly code.  Always run build.bat from the "openssl" directory.
 | 
			
		||||
      LibC build, non-debug, using NASM assembly:
 | 
			
		||||
         netware\build.bat netware-libc nw-nasm
 | 
			
		||||
 | 
			
		||||
      LibC build, BSD sockets, non-debug, without assembly:
 | 
			
		||||
         netware\build.bat netware-libc-bsdsock no-asm
 | 
			
		||||
 | 
			
		||||
Running build.bat generates a make file to be processed by your make 
 | 
			
		||||
tool (gmake or nmake):
 | 
			
		||||
 | 
			
		||||
   CLIB ex: gmake -f netware\nlm_clib.mak 
 | 
			
		||||
   CLIB ex: gmake -f netware\nlm_clib_dbg.mak 
 | 
			
		||||
   LibC ex: gmake -f netware\nlm_libc.mak 
 | 
			
		||||
   LibC ex: gmake -f netware\nlm_libc_bsdsock.mak 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
You can also run the build scripts manually if you do not want to use the
 | 
			
		||||
build.bat file.  Run the following scripts in the "\openssl"
 | 
			
		||||
subdirectory (in the order listed below):
 | 
			
		||||
 | 
			
		||||
   perl configure no-asm [other config opts] [netware-clib|netware-libc]
 | 
			
		||||
   perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock]
 | 
			
		||||
      configures no assembly build for specified netware environment
 | 
			
		||||
      (CLIB or LibC).
 | 
			
		||||
 | 
			
		||||
   perl util\mkfiles.pl >MINFO
 | 
			
		||||
      generates a listing of source files (used by mk1mf)
 | 
			
		||||
 | 
			
		||||
   perl util\mk1mf.pl no-asm [other config opts] [netware-clib|netware-libc >netware\nlm.mak
 | 
			
		||||
   perl util\mk1mf.pl no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock >netware\nlm.mak
 | 
			
		||||
      generates the makefile for NetWare
 | 
			
		||||
 | 
			
		||||
   gmake -f netware\nlm.mak
 | 
			
		||||
@@ -288,13 +303,6 @@ The do_tests.pl script generates a log file "\openssl\test_out\tests.log"
 | 
			
		||||
which should be reviewed for errors.  Any errors will be denoted by the word
 | 
			
		||||
"ERROR" in the log.
 | 
			
		||||
 | 
			
		||||
NOTE:  Currently (11/2002), the LibC test nlms report an error while loading
 | 
			
		||||
       when launched from the perl script (do_tests.pl).  The problems are 
 | 
			
		||||
       being addressed by the LibC development team and should be fixed in the
 | 
			
		||||
       next release.  Until the problems are corrected, the LibC test nlms 
 | 
			
		||||
       will have to be executed manually.  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DEVELOPING WITH THE OPENSSL SDK:
 | 
			
		||||
--------------------------------
 | 
			
		||||
Now that everything is built and tested, you are ready to use the OpenSSL
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								INSTALL.W32
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								INSTALL.W32
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
			
		||||
 ----------------------------------
 | 
			
		||||
 | 
			
		||||
 [Instructions for building for Windows CE can be found in INSTALL.WCE]
 | 
			
		||||
 [Instructions for building for Win64 can be found in INSTALL.W64]
 | 
			
		||||
 | 
			
		||||
 Heres a few comments about building OpenSSL in Windows environments.  Most
 | 
			
		||||
 of this is tested on Win32 but it may also work in Win 3.1 with some
 | 
			
		||||
@@ -48,7 +49,9 @@
 | 
			
		||||
 | 
			
		||||
 Firstly you should run Configure:
 | 
			
		||||
 | 
			
		||||
 > perl Configure VC-WIN32
 | 
			
		||||
 > perl Configure VC-WIN32 --prefix=c:/some/openssl/dir
 | 
			
		||||
 | 
			
		||||
Where the prefix argument specifies where OpenSSL will be installed to.
 | 
			
		||||
 | 
			
		||||
 Next you need to build the Makefiles and optionally the assembly language
 | 
			
		||||
 files:
 | 
			
		||||
@@ -76,8 +79,12 @@
 | 
			
		||||
 If all is well it should compile and you will have some DLLs and executables
 | 
			
		||||
 in out32dll. If you want to try the tests then do:
 | 
			
		||||
 
 | 
			
		||||
 > cd out32dll
 | 
			
		||||
 > ..\ms\test
 | 
			
		||||
 > nmake -f ms\ntdll.mak test
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
To install OpenSSL to the specified location do:
 | 
			
		||||
 | 
			
		||||
> nmake -f ms\ntdll.mak install
 | 
			
		||||
 | 
			
		||||
 Tweaks:
 | 
			
		||||
 | 
			
		||||
@@ -87,6 +94,12 @@
 | 
			
		||||
 compiled in. Note that mk1mf.pl expects the platform to be the last argument
 | 
			
		||||
 on the command line, so 'debug' must appear before that, as all other options.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 By default in 0.9.8 OpenSSL will compile builtin ENGINES into the libeay32.dll
 | 
			
		||||
 shared library. If you specify the "no-static-engine" option on the command
 | 
			
		||||
 line to Configure the shared library build (ms\ntdll.mak) will compile the
 | 
			
		||||
 engines as separate DLLs.
 | 
			
		||||
 | 
			
		||||
 The default Win32 environment is to leave out any Windows NT specific
 | 
			
		||||
 features.
 | 
			
		||||
 | 
			
		||||
@@ -97,6 +110,8 @@
 | 
			
		||||
 You can also build a static version of the library using the Makefile
 | 
			
		||||
 ms\nt.mak
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 Borland C++ builder 5
 | 
			
		||||
 ---------------------
 | 
			
		||||
 | 
			
		||||
@@ -286,3 +301,21 @@
 | 
			
		||||
 (e.g. fopen()), and OpenSSL cannot change these; so in general you cannot
 | 
			
		||||
 rely on CRYPTO_malloc_init() solving your problem, and you should
 | 
			
		||||
 consistently use the multithreaded library.
 | 
			
		||||
 | 
			
		||||
 Linking your application
 | 
			
		||||
 ------------------------
 | 
			
		||||
 | 
			
		||||
 If you link with static OpenSSL libraries [those built with ms/nt.mak],
 | 
			
		||||
 then you're expected to additionally link your application with
 | 
			
		||||
 WSOCK32.LIB, ADVAPI32.LIB, GDI32.LIB and USER32.LIB. Those developing
 | 
			
		||||
 non-interactive service applications might feel concerned about linking
 | 
			
		||||
 with latter two, as they are justly associated with interactive desktop,
 | 
			
		||||
 which is not available to service processes. The toolkit is designed
 | 
			
		||||
 to detect in which context it's currently executed, GUI, console app
 | 
			
		||||
 or service, and act accordingly, namely whether or not to actually make
 | 
			
		||||
 GUI calls.
 | 
			
		||||
 | 
			
		||||
 If you link with OpenSSL .DLLs, then you're expected to include into
 | 
			
		||||
 your application code small "shim" snippet, which provides glue between
 | 
			
		||||
 OpenSSL BIO layer and your compiler run-time. Look up OPENSSL_Applink
 | 
			
		||||
 reference page for further details.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										66
									
								
								INSTALL.W64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								INSTALL.W64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
 | 
			
		||||
 INSTALLATION ON THE WIN64 PLATFORM
 | 
			
		||||
 ----------------------------------
 | 
			
		||||
 | 
			
		||||
 Caveat lector
 | 
			
		||||
 -------------
 | 
			
		||||
 | 
			
		||||
 As of moment of this writing Win64 support is classified "initial"
 | 
			
		||||
 for the following reasons.
 | 
			
		||||
 | 
			
		||||
 - No assembler modules are engaged upon initial 0.9.8 release.
 | 
			
		||||
 - API might change within 0.9.8 life-span, *but* in a manner which
 | 
			
		||||
   doesn't break backward binary compatibility. Or in other words,
 | 
			
		||||
   application programs compiled with initial 0.9.8 headers will
 | 
			
		||||
   be expected to work with future minor release .DLL without need
 | 
			
		||||
   to re-compile, even if future minor release features modified API.
 | 
			
		||||
 - Above mentioned API modifications have everything to do with
 | 
			
		||||
   elimination of a number of limitations, which are normally
 | 
			
		||||
   considered inherent to 32-bit platforms. Which in turn is why they
 | 
			
		||||
   are treated as limitations on 64-bit platform such as Win64:-)
 | 
			
		||||
   The current list comprises [but not necessarily limited to]:
 | 
			
		||||
 | 
			
		||||
   - null-terminated strings may not be longer than 2G-1 bytes,
 | 
			
		||||
     longer strings are treated as zero-length;
 | 
			
		||||
   - dynamically and *internally* allocated chunks can't be larger
 | 
			
		||||
     than 2G-1 bytes;
 | 
			
		||||
   - inability to encrypt/decrypt chunks of data larger than 4GB
 | 
			
		||||
     [it's possibly to *hash* chunks of arbitrary size through];
 | 
			
		||||
 | 
			
		||||
   Neither of these is actually big deal and hardly encountered
 | 
			
		||||
   in real-life applications.
 | 
			
		||||
 | 
			
		||||
 Compiling procedure
 | 
			
		||||
 -------------------
 | 
			
		||||
 | 
			
		||||
 You will need Perl. You can run under Cygwin or you can download
 | 
			
		||||
 ActiveState Perl from http://www.activestate.com/ActivePerl.
 | 
			
		||||
 | 
			
		||||
 You will need Microsoft Platform SDK, available for download at
 | 
			
		||||
 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/. As per
 | 
			
		||||
 April 2005 Platform SDK is equipped with Win64 compilers, as well
 | 
			
		||||
 as assemblers, but it might change in the future.
 | 
			
		||||
 | 
			
		||||
 To build for Win64/x64:
 | 
			
		||||
 | 
			
		||||
 > perl Configure VC-WIN64A
 | 
			
		||||
 > ms\do_win64a
 | 
			
		||||
 > nmake -f ms\ntdll.mak
 | 
			
		||||
 > cd out32dll
 | 
			
		||||
 > ..\ms\test
 | 
			
		||||
 | 
			
		||||
 To build for Win64/IA64:
 | 
			
		||||
 | 
			
		||||
 > perl Configure VC-WIN64I
 | 
			
		||||
 > ms\do_win64i
 | 
			
		||||
 > nmake -f ms\ntdll.mak
 | 
			
		||||
 > cd out32dll
 | 
			
		||||
 > ..\ms\test
 | 
			
		||||
 | 
			
		||||
 Naturally test-suite itself has to be executed on the target platform.
 | 
			
		||||
 | 
			
		||||
 Installation
 | 
			
		||||
 ------------
 | 
			
		||||
 | 
			
		||||
 TBD, for now see INSTALL.W32.
 | 
			
		||||
 | 
			
		||||
@@ -11,8 +11,11 @@
 | 
			
		||||
 You also need Perl for Win32.  You will need ActiveState Perl, available
 | 
			
		||||
 from http://www.activestate.com/ActivePerl.
 | 
			
		||||
 | 
			
		||||
 Windows CE support in OpenSSL relies on wcecompat.  All Windows CE specific
 | 
			
		||||
 issues should be directed to www.essemer.com.au.
 | 
			
		||||
 Windows CE support in OpenSSL relies on wcecompat and therefore it's
 | 
			
		||||
 appropriate to check http://www.essemer.com.au/windowsce/ for updates in
 | 
			
		||||
 case of compilation problems. As for the moment of this writing version
 | 
			
		||||
 1.1 is available and actually required for WCE 4.2 and newer platforms.
 | 
			
		||||
 All Windows CE specific issues should be directed to www.essemer.com.au.
 | 
			
		||||
 | 
			
		||||
 The C Runtime Library implementation for Windows CE that is included with
 | 
			
		||||
 Microsoft eMbedded Visual C++ 3.0 is incomplete and in some places
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -12,7 +12,7 @@
 | 
			
		||||
  ---------------
 | 
			
		||||
 | 
			
		||||
/* ====================================================================
 | 
			
		||||
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 * Copyright (c) 1998-2007 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										337
									
								
								Makefile.org
									
									
									
									
									
								
							
							
						
						
									
										337
									
								
								Makefile.org
									
									
									
									
									
								
							@@ -65,6 +65,7 @@ EX_LIBS=
 | 
			
		||||
EXE_EXT= 
 | 
			
		||||
ARFLAGS=
 | 
			
		||||
AR=ar $(ARFLAGS) r
 | 
			
		||||
ARD=ar $(ARFLAGS) d
 | 
			
		||||
RANLIB= ranlib
 | 
			
		||||
PERL= perl
 | 
			
		||||
TAR= tar
 | 
			
		||||
@@ -86,6 +87,8 @@ PROCESSOR=
 | 
			
		||||
# CPUID module collects small commonly used assembler snippets
 | 
			
		||||
CPUID_OBJ= 
 | 
			
		||||
BN_ASM= bn_asm.o
 | 
			
		||||
FIPS_DES_ENC= des_enc.o fcrypt_b.o
 | 
			
		||||
FIPS_AES_ENC= fips_aes_core.o
 | 
			
		||||
DES_ENC= des_enc.o fcrypt_b.o
 | 
			
		||||
AES_ASM_OBJ=aes_core.o aes_cbc.o
 | 
			
		||||
BF_ENC= bf_enc.o
 | 
			
		||||
@@ -93,6 +96,7 @@ CAST_ENC= c_enc.o
 | 
			
		||||
RC4_ENC= rc4_enc.o
 | 
			
		||||
RC5_ENC= rc5_enc.o
 | 
			
		||||
MD5_ASM_OBJ= 
 | 
			
		||||
FIPS_SHA1_ASM_OBJ= 
 | 
			
		||||
SHA1_ASM_OBJ= 
 | 
			
		||||
RMD160_ASM_OBJ= 
 | 
			
		||||
 | 
			
		||||
@@ -100,18 +104,50 @@ RMD160_ASM_OBJ=
 | 
			
		||||
KRB5_INCLUDES=
 | 
			
		||||
LIBKRB5=
 | 
			
		||||
 | 
			
		||||
DIRS=   crypto ssl engines apps test tools
 | 
			
		||||
SHLIBDIRS= crypto ssl
 | 
			
		||||
# Zlib stuff
 | 
			
		||||
ZLIB_INCLUDE=
 | 
			
		||||
LIBZLIB=
 | 
			
		||||
 | 
			
		||||
# This is the location of fipscanister.o and friends.
 | 
			
		||||
# The FIPS module build will place it $(INSTALLTOP)/lib
 | 
			
		||||
# but since $(INSTALLTOP) can only take the default value
 | 
			
		||||
# when the module is built it will be in /usr/local/ssl/lib
 | 
			
		||||
# $(INSTALLTOP) for this build make be different so hard
 | 
			
		||||
# code the path.
 | 
			
		||||
 | 
			
		||||
FIPSLIBDIR=/usr/local/ssl/lib/
 | 
			
		||||
 | 
			
		||||
# This is set to "y" if fipscanister.o is compiled internally as
 | 
			
		||||
# opposed to coming from an external validated location.
 | 
			
		||||
 | 
			
		||||
FIPSCANISTERINTERNAL=n
 | 
			
		||||
 | 
			
		||||
# The location of the library which contains fipscanister.o
 | 
			
		||||
# normally it will be libcrypto unless fipsdso is set in which
 | 
			
		||||
# case it will be libfips. If not compiling in FIPS mode at all
 | 
			
		||||
# this is empty making it a useful test for a FIPS compile.
 | 
			
		||||
 | 
			
		||||
FIPSCANLIB=
 | 
			
		||||
 | 
			
		||||
# Shared library base address. Currently only used on Windows.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
BASEADDR=
 | 
			
		||||
 | 
			
		||||
DIRS=   crypto fips-1.0 ssl engines apps test tools
 | 
			
		||||
SHLIBDIRS= crypto ssl fips
 | 
			
		||||
 | 
			
		||||
# dirs in crypto to build
 | 
			
		||||
SDIRS=  \
 | 
			
		||||
	objects \
 | 
			
		||||
	md2 md4 md5 sha mdc2 hmac ripemd \
 | 
			
		||||
	des aes rc2 rc4 rc5 idea bf cast \
 | 
			
		||||
	des aes rc2 rc4 rc5 idea bf cast camellia seed \
 | 
			
		||||
	bn ec rsa dsa ecdsa dh ecdh dso engine \
 | 
			
		||||
	buffer bio stack lhash rand err \
 | 
			
		||||
	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
 | 
			
		||||
	store pqueue
 | 
			
		||||
# keep in mind that the above list is adjusted by ./Configure
 | 
			
		||||
# according to no-xxx arguments...
 | 
			
		||||
 | 
			
		||||
# tests to perform.  "alltests" is a special word indicating that all tests
 | 
			
		||||
# should be performed.
 | 
			
		||||
@@ -132,30 +168,48 @@ WDIRS=  windows
 | 
			
		||||
LIBS=   libcrypto.a libssl.a
 | 
			
		||||
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
 | 
			
		||||
SHARED_SSL=libssl$(SHLIB_EXT)
 | 
			
		||||
SHARED_FIPS=
 | 
			
		||||
SHARED_LIBS=
 | 
			
		||||
SHARED_LIBS_LINK_EXTS=
 | 
			
		||||
SHARED_LDFLAGS=
 | 
			
		||||
 | 
			
		||||
GENERAL=        Makefile
 | 
			
		||||
BASENAME=       openssl
 | 
			
		||||
NAME=           $(BASENAME)-$(VERSION)
 | 
			
		||||
NAME=           $(BASENAME)-fips-$(VERSION)
 | 
			
		||||
TARFILE=        $(NAME).tar
 | 
			
		||||
WTARFILE=       $(NAME)-win.tar
 | 
			
		||||
EXHEADER=       e_os2.h
 | 
			
		||||
HEADER=         e_os.h
 | 
			
		||||
 | 
			
		||||
all: Makefile build_all openssl.pc
 | 
			
		||||
all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
 | 
			
		||||
 | 
			
		||||
# as we stick to -e, CLEARENV ensures that local variables in lower
 | 
			
		||||
# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
 | 
			
		||||
# shell, which [annoyingly enough] terminates unset with error if VAR
 | 
			
		||||
# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
 | 
			
		||||
# which terminates unset with error if no variable was present:-(
 | 
			
		||||
CLEARENV=	TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS}	\
 | 
			
		||||
		$${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES}	\
 | 
			
		||||
		$${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC}		\
 | 
			
		||||
		$${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL}	\
 | 
			
		||||
		$${EXHEADER+EXHEADER} $${HEADER+HEADER}		\
 | 
			
		||||
		$${GENERAL+GENERAL} $${CFLAGS+CFLAGS}		\
 | 
			
		||||
		$${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS}		\
 | 
			
		||||
		$${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS}		\
 | 
			
		||||
		$${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS}	\
 | 
			
		||||
		$${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
 | 
			
		||||
 | 
			
		||||
BUILDENV=	PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
 | 
			
		||||
		CC='${CC}' CFLAG='${CFLAG}' 			\
 | 
			
		||||
		AS='${CC}' ASFLAG='${CFLAG} -c'			\
 | 
			
		||||
		AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}'	\
 | 
			
		||||
		SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/lib'		\
 | 
			
		||||
		SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/lib'	\
 | 
			
		||||
		INSTALL_PREFIX='${INSTALL_PREFIX}'		\
 | 
			
		||||
		INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}'	\
 | 
			
		||||
		MAKEDEPEND='$$(TOP)/util/domd $$(TOP) -MD $(MAKEDEPPROG)'\
 | 
			
		||||
		MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
 | 
			
		||||
		DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}'	\
 | 
			
		||||
		MAKEDEPPROG='${MAKEDEPPROG}'			\
 | 
			
		||||
		LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)"	\
 | 
			
		||||
		SHARED_LDFLAGS='${SHARED_LDFLAGS}'		\
 | 
			
		||||
		KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}'	\
 | 
			
		||||
		EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}'	\
 | 
			
		||||
		SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}'	\
 | 
			
		||||
@@ -168,57 +222,172 @@ BUILDENV=	PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
 | 
			
		||||
		SHA1_ASM_OBJ='${SHA1_ASM_OBJ}'			\
 | 
			
		||||
		MD5_ASM_OBJ='${MD5_ASM_OBJ}'			\
 | 
			
		||||
		RMD160_ASM_OBJ='${RMD160_ASM_OBJ}'		\
 | 
			
		||||
		THIS=$${THIS:-$@}
 | 
			
		||||
		FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}'	\
 | 
			
		||||
		FIPS_DES_ENC='${FIPS_DES_ENC}'		 	\
 | 
			
		||||
		FIPS_AES_ENC='${FIPS_AES_ENC}'		 	\
 | 
			
		||||
		FIPSLIBDIR='${FIPSLIBDIR}' FIPSCANLIB='${FIPSCANLIB}' \
 | 
			
		||||
		FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}'	\
 | 
			
		||||
		FIPS_EX_OBJ='${FIPS_EX_OBJ}'	\
 | 
			
		||||
		THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
 | 
			
		||||
# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
 | 
			
		||||
# which in turn eliminates ambiguities in variable treatment with -e.
 | 
			
		||||
 | 
			
		||||
BUILD_CMD=if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
 | 
			
		||||
	if [ -d "$$dir" ]; then \
 | 
			
		||||
		(cd $$dir && echo "making $$target in $$dir..." && \
 | 
			
		||||
		$(MAKE) $(BUILDENV) $$target ) || exit 1; \
 | 
			
		||||
	else \
 | 
			
		||||
		$(MAKE) $$dir; \
 | 
			
		||||
	fi; fi
 | 
			
		||||
# BUILD_CMD is a generic macro to build a given target in a given
 | 
			
		||||
# subdirectory.  The target must be given through the shell variable
 | 
			
		||||
# `target' and the subdirectory to build in must be given through `dir'.
 | 
			
		||||
# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
 | 
			
		||||
# BUILD_ONE_CMD instead.
 | 
			
		||||
#
 | 
			
		||||
# BUILD_ONE_CMD is a macro to build a given target in a given
 | 
			
		||||
# subdirectory if that subdirectory is part of $(DIRS).  It requires
 | 
			
		||||
# exactly the same shell variables as BUILD_CMD.
 | 
			
		||||
#
 | 
			
		||||
# RECURSIVE_BUILD_CMD is a macro to build a given target in all
 | 
			
		||||
# subdirectories defined in $(DIRS).  It requires that the target
 | 
			
		||||
# is given through the shell variable `target'.
 | 
			
		||||
BUILD_CMD=  if [ -d "$$dir" ]; then \
 | 
			
		||||
	    (	cd $$dir && echo "making $$target in $$dir..." && \
 | 
			
		||||
		$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
 | 
			
		||||
	    ) || exit 1; \
 | 
			
		||||
	    fi
 | 
			
		||||
RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
 | 
			
		||||
BUILD_ONE_CMD=\
 | 
			
		||||
	if echo " $(DIRS) " | grep " $$dir " >/dev/null 2>/dev/null; then \
 | 
			
		||||
		$(BUILD_CMD); \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
reflect:
 | 
			
		||||
	@[ -n "$(THIS)" ] && $(MAKE) $(THIS) $(BUILDENV)
 | 
			
		||||
	@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
 | 
			
		||||
 | 
			
		||||
FIPS_EX_OBJ= ../crypto/aes/aes_cbc.o \
 | 
			
		||||
	../crypto/aes/aes_cfb.o \
 | 
			
		||||
	../crypto/aes/aes_ecb.o \
 | 
			
		||||
	../crypto/aes/aes_ofb.o \
 | 
			
		||||
	../crypto/bn/bn_add.o \
 | 
			
		||||
	../crypto/bn/bn_blind.o \
 | 
			
		||||
	../crypto/bn/bn_ctx.o \
 | 
			
		||||
	../crypto/bn/bn_div.o \
 | 
			
		||||
	../crypto/bn/bn_exp2.o \
 | 
			
		||||
	../crypto/bn/bn_exp.o \
 | 
			
		||||
	../crypto/bn/bn_gcd.o \
 | 
			
		||||
	../crypto/bn/bn_lib.o \
 | 
			
		||||
	../crypto/bn/bn_mod.o \
 | 
			
		||||
	../crypto/bn/bn_mont.o \
 | 
			
		||||
	../crypto/bn/bn_mul.o \
 | 
			
		||||
	../crypto/bn/bn_prime.o \
 | 
			
		||||
	../crypto/bn/bn_rand.o \
 | 
			
		||||
	../crypto/bn/bn_recp.o \
 | 
			
		||||
	../crypto/bn/bn_shift.o \
 | 
			
		||||
	../crypto/bn/bn_sqr.o \
 | 
			
		||||
	../crypto/bn/bn_word.o \
 | 
			
		||||
	../crypto/bn/bn_x931p.o \
 | 
			
		||||
	../crypto/buffer/buf_str.o \
 | 
			
		||||
	../crypto/cryptlib.o \
 | 
			
		||||
	../crypto/des/cfb64ede.o \
 | 
			
		||||
	../crypto/des/cfb64enc.o \
 | 
			
		||||
	../crypto/des/cfb_enc.o \
 | 
			
		||||
	../crypto/des/des_enc.o \
 | 
			
		||||
	../crypto/des/ecb3_enc.o \
 | 
			
		||||
	../crypto/des/ecb_enc.o \
 | 
			
		||||
	../crypto/des/ofb64ede.o \
 | 
			
		||||
	../crypto/des/ofb64enc.o \
 | 
			
		||||
	../crypto/des/fcrypt_b.o \
 | 
			
		||||
	../crypto/des/fcrypt.o \
 | 
			
		||||
	../crypto/dsa/dsa_utl.o \
 | 
			
		||||
	../crypto/dsa/dsa_sign.o \
 | 
			
		||||
	../crypto/dsa/dsa_vrf.o \
 | 
			
		||||
	../crypto/err/err.o \
 | 
			
		||||
	../crypto/evp/digest.o \
 | 
			
		||||
	../crypto/evp/enc_min.o \
 | 
			
		||||
	../crypto/evp/e_aes.o \
 | 
			
		||||
	../crypto/evp/e_des3.o \
 | 
			
		||||
	../crypto/evp/p_sign.o \
 | 
			
		||||
	../crypto/evp/p_verify.o \
 | 
			
		||||
	../crypto/mem_clr.o \
 | 
			
		||||
	../crypto/mem.o \
 | 
			
		||||
	../crypto/rand/md_rand.o \
 | 
			
		||||
	../crypto/rand/rand_egd.o \
 | 
			
		||||
	../crypto/rand/randfile.o \
 | 
			
		||||
	../crypto/rand/rand_lib.o \
 | 
			
		||||
	../crypto/rand/rand_os2.o \
 | 
			
		||||
	../crypto/rand/rand_unix.o \
 | 
			
		||||
	../crypto/rand/rand_win.o \
 | 
			
		||||
	../crypto/rsa/rsa_lib.o \
 | 
			
		||||
	../crypto/rsa/rsa_none.o \
 | 
			
		||||
	../crypto/rsa/rsa_oaep.o \
 | 
			
		||||
	../crypto/rsa/rsa_pk1.o \
 | 
			
		||||
	../crypto/rsa/rsa_pss.o \
 | 
			
		||||
	../crypto/rsa/rsa_ssl.o \
 | 
			
		||||
	../crypto/rsa/rsa_x931.o \
 | 
			
		||||
	../crypto/uid.o
 | 
			
		||||
 | 
			
		||||
sub_all: build_all
 | 
			
		||||
build_all: build_libs build_apps build_tests build_tools
 | 
			
		||||
 | 
			
		||||
build_libs: build_crypto build_ssl build_engines
 | 
			
		||||
build_libs: build_crypto build_fips build_ssl build_engines
 | 
			
		||||
 | 
			
		||||
build_crypto:
 | 
			
		||||
	@dir=crypto; target=all; $(BUILD_CMD)
 | 
			
		||||
	if [ -n "$(FIPSCANLIB)" ]; then \
 | 
			
		||||
		EXCL_OBJ='$(BN_ASM) $(CPUID_OBJ) $(FIPS_EX_OBJ)' ; export EXCL_OBJ ; \
 | 
			
		||||
		ARX='$(PERL) $${TOP}/util/arx.pl $(AR)' ; \
 | 
			
		||||
	else \
 | 
			
		||||
		ARX='${AR}' ; \
 | 
			
		||||
	fi ; export ARX ; \
 | 
			
		||||
		dir=crypto; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_fips:
 | 
			
		||||
	@dir=fips-1.0; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_ssl:
 | 
			
		||||
	@dir=ssl; target=all; $(BUILD_CMD)
 | 
			
		||||
	@dir=ssl; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_engines:
 | 
			
		||||
	@dir=engines; target=all; $(BUILD_CMD)
 | 
			
		||||
	@dir=engines; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_apps:
 | 
			
		||||
	@dir=apps; target=all; $(BUILD_CMD)
 | 
			
		||||
	@dir=apps; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_tests:
 | 
			
		||||
	@dir=test; target=all; $(BUILD_CMD)
 | 
			
		||||
	@dir=test; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
build_tools:
 | 
			
		||||
	@dir=tools; target=all; $(BUILD_CMD)
 | 
			
		||||
	@dir=tools; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
 | 
			
		||||
all_testapps: build_libs build_testapps
 | 
			
		||||
build_testapps:
 | 
			
		||||
	@dir=crypto; target=testapps; $(BUILD_CMD)
 | 
			
		||||
	@dir=crypto; target=testapps; $(BUILD_ONE_CMD)
 | 
			
		||||
 | 
			
		||||
libcrypto$(SHLIB_EXT): libcrypto.a
 | 
			
		||||
libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
 | 
			
		||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=crypto build-shared; \
 | 
			
		||||
		if [ "$(FIPSCANLIB)" = "libfips" ]; then \
 | 
			
		||||
			( dir=fips-1.0; target=all; $(BUILD_ONE_CMD) ) ; \
 | 
			
		||||
			$(ARD) libcrypto.a fipscanister.o ; \
 | 
			
		||||
			$(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \
 | 
			
		||||
			$(AR) libcrypto.a fips-1.0/fipscanister.o ; \
 | 
			
		||||
		else \
 | 
			
		||||
			$(MAKE) SHLIBDIRS='crypto' build-shared; \
 | 
			
		||||
		fi \
 | 
			
		||||
	else \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
			
		||||
		exit 1; \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
 | 
			
		||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
			
		||||
		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
 | 
			
		||||
	else \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2 ; \
 | 
			
		||||
		exit 1; \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
libfips$(SHLIB_EXT): libfips.a
 | 
			
		||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
			
		||||
		if [ "$(FIPSCANLIB)" = "libfips" ]; then \
 | 
			
		||||
			FIPSLD_CC=$(CC); CC=fips-1.0/fipsld; FIPSLD_NPT="y"; \
 | 
			
		||||
			FIPSLD_LIBFIPS=y; \
 | 
			
		||||
			export CC FIPSLD_CC FIPSLD_NPT FIPSLD_LIBFIPS; \
 | 
			
		||||
		fi; \
 | 
			
		||||
		$(MAKE) -e SHLIBDIRS=fips build-shared; \
 | 
			
		||||
	else \
 | 
			
		||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
libfips.a:
 | 
			
		||||
	dir=fips-1.0; target=all; $(BUILD_ONE_CMD)
 | 
			
		||||
 | 
			
		||||
clean-shared:
 | 
			
		||||
	@set -e; for i in $(SHLIBDIRS); do \
 | 
			
		||||
		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
 | 
			
		||||
@@ -235,7 +404,7 @@ clean-shared:
 | 
			
		||||
 | 
			
		||||
link-shared:
 | 
			
		||||
	@ set -e; for i in ${SHLIBDIRS}; do \
 | 
			
		||||
		$(MAKE) -f $(HERE)/Makefile.shared \
 | 
			
		||||
		$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
 | 
			
		||||
			LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
			
		||||
			LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
 | 
			
		||||
			symlink.$(SHLIB_TARGET); \
 | 
			
		||||
@@ -249,7 +418,7 @@ do_$(SHLIB_TARGET):
 | 
			
		||||
		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
			
		||||
			libs="$(LIBKRB5) $$libs"; \
 | 
			
		||||
		fi; \
 | 
			
		||||
		$(MAKE) -f Makefile.shared $(BUILDENV) \
 | 
			
		||||
		$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
 | 
			
		||||
			LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
			
		||||
			LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
 | 
			
		||||
			LIBDEPS="$$libs $(EX_LIBS)" \
 | 
			
		||||
@@ -257,6 +426,32 @@ do_$(SHLIB_TARGET):
 | 
			
		||||
		libs="-l$$i $$libs"; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
libcrypto.pc: Makefile
 | 
			
		||||
	@ ( echo 'prefix=$(INSTALLTOP)'; \
 | 
			
		||||
	    echo 'exec_prefix=$${prefix}'; \
 | 
			
		||||
	    echo 'libdir=$${exec_prefix}/lib'; \
 | 
			
		||||
	    echo 'includedir=$${prefix}/include'; \
 | 
			
		||||
	    echo ''; \
 | 
			
		||||
	    echo 'Name: OpenSSL-libcrypto'; \
 | 
			
		||||
	    echo 'Description: OpenSSL cryptography library'; \
 | 
			
		||||
	    echo 'Version: '$(VERSION); \
 | 
			
		||||
	    echo 'Requires: '; \
 | 
			
		||||
	    echo 'Libs: -L$${libdir} -lcrypto $(EX_LIBS)'; \
 | 
			
		||||
	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
 | 
			
		||||
 | 
			
		||||
libssl.pc: Makefile
 | 
			
		||||
	@ ( echo 'prefix=$(INSTALLTOP)'; \
 | 
			
		||||
	    echo 'exec_prefix=$${prefix}'; \
 | 
			
		||||
	    echo 'libdir=$${exec_prefix}/lib'; \
 | 
			
		||||
	    echo 'includedir=$${prefix}/include'; \
 | 
			
		||||
	    echo ''; \
 | 
			
		||||
	    echo 'Name: OpenSSL'; \
 | 
			
		||||
	    echo 'Description: Secure Sockets Layer and cryptography libraries'; \
 | 
			
		||||
	    echo 'Version: '$(VERSION); \
 | 
			
		||||
	    echo 'Requires: '; \
 | 
			
		||||
	    echo 'Libs: -L$${libdir} -lssl -lcrypto $(EX_LIBS)'; \
 | 
			
		||||
	    echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
 | 
			
		||||
 | 
			
		||||
openssl.pc: Makefile
 | 
			
		||||
	@ ( echo 'prefix=$(INSTALLTOP)'; \
 | 
			
		||||
	    echo 'exec_prefix=$${prefix}'; \
 | 
			
		||||
@@ -280,15 +475,9 @@ libclean:
 | 
			
		||||
 | 
			
		||||
clean:	libclean
 | 
			
		||||
	rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making clean in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' clean ) || exit 1; \
 | 
			
		||||
		rm -f $(LIBS); \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done;
 | 
			
		||||
	rm -f openssl.pc
 | 
			
		||||
	@set -e; target=clean; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
	rm -f $(LIBS)
 | 
			
		||||
	rm -f openssl.pc libssl.pc libcrypto.pc
 | 
			
		||||
	rm -f speed.* .pure
 | 
			
		||||
	rm -f $(TARFILE)
 | 
			
		||||
	@set -e; for i in $(ONEDIRS) ;\
 | 
			
		||||
@@ -302,32 +491,20 @@ makefile.one: files
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	$(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making 'files' in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' files ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done;
 | 
			
		||||
	@set -e; target=files; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
 | 
			
		||||
links:
 | 
			
		||||
	@$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
 | 
			
		||||
	@set -e; target=links; for dir in $(DIRS); do $(BUILD_CMD); done
 | 
			
		||||
	@set -e; target=links; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
 | 
			
		||||
gentests:
 | 
			
		||||
	@(cd test && echo "generating dummy tests (if needed)..." && \
 | 
			
		||||
	$(MAKE) $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
 | 
			
		||||
	$(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on generate );
 | 
			
		||||
 | 
			
		||||
dclean:
 | 
			
		||||
	rm -f *.bak
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making dclean in $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' PERL='${PERL}' dclean ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done;
 | 
			
		||||
	@set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
 | 
			
		||||
rehash: rehash.time
 | 
			
		||||
rehash.time: certs
 | 
			
		||||
@@ -341,29 +518,17 @@ test:   tests
 | 
			
		||||
 | 
			
		||||
tests: rehash
 | 
			
		||||
	@(cd test && echo "testing..." && \
 | 
			
		||||
	$(MAKE) $(BUILDENV) TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
 | 
			
		||||
	$(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
 | 
			
		||||
	util/opensslwrap.sh version -a
 | 
			
		||||
 | 
			
		||||
report:
 | 
			
		||||
	@$(PERL) util/selftest.pl
 | 
			
		||||
 | 
			
		||||
depend:
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making dependencies $$i..." && \
 | 
			
		||||
		$(MAKE) $(BUILDENV) depend ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done;
 | 
			
		||||
	@set -e; target=depend; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
 | 
			
		||||
lint:
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i && echo "making lint $$i..." && \
 | 
			
		||||
		$(MAKE) SDIRS='${SDIRS}' lint ) || exit 1; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done;
 | 
			
		||||
	@set -e; target=lint; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
 | 
			
		||||
tags:
 | 
			
		||||
	rm -f TAGS
 | 
			
		||||
@@ -391,11 +556,15 @@ crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt c
 | 
			
		||||
apps/openssl-vms.cnf: apps/openssl.cnf
 | 
			
		||||
	$(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
 | 
			
		||||
 | 
			
		||||
crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
 | 
			
		||||
	$(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TABLE: Configure
 | 
			
		||||
	(echo 'Output of `Configure TABLE'"':"; \
 | 
			
		||||
	$(PERL) Configure TABLE) > TABLE
 | 
			
		||||
 | 
			
		||||
update: depend errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf TABLE
 | 
			
		||||
update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
 | 
			
		||||
 | 
			
		||||
# Build distribution tar-file. As the list of files returned by "find" is
 | 
			
		||||
# pretty long, on several platforms a "too many arguments" error or similar
 | 
			
		||||
@@ -410,7 +579,7 @@ tar:
 | 
			
		||||
	$(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
 | 
			
		||||
	tardy --user_number=0  --user_name=openssl \
 | 
			
		||||
	      --group_number=0 --group_name=openssl \
 | 
			
		||||
	      --prefix=openssl-$(VERSION) - |\
 | 
			
		||||
	      --prefix=openssl-fips-$(VERSION) - |\
 | 
			
		||||
	gzip --best >../$(TARFILE).gz; \
 | 
			
		||||
	rm -f ../$(TARFILE).list; \
 | 
			
		||||
	ls -l ../$(TARFILE).gz
 | 
			
		||||
@@ -430,7 +599,7 @@ dist:
 | 
			
		||||
	@$(MAKE) TAR='${TAR}' TARFLAGS='${TARFLAGS}' tar
 | 
			
		||||
 | 
			
		||||
dist_pem_h:
 | 
			
		||||
	(cd crypto/pem; $(MAKE) $(BUILDENV) pem.h; $(MAKE) clean)
 | 
			
		||||
	(cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
 | 
			
		||||
 | 
			
		||||
install: all install_docs install_sw
 | 
			
		||||
 | 
			
		||||
@@ -448,13 +617,7 @@ install_sw:
 | 
			
		||||
	(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
 | 
			
		||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@set -e; for i in $(DIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	if [ -d "$$i" ]; then \
 | 
			
		||||
		(cd $$i; echo "installing $$i..."; \
 | 
			
		||||
		$(MAKE) $(BUILDENV) install ); \
 | 
			
		||||
	fi; \
 | 
			
		||||
	done
 | 
			
		||||
	@set -e; target=install; $(RECURSIVE_BUILD_CMD)
 | 
			
		||||
	@set -e; for i in $(LIBS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
		if [ -f "$$i" ]; then \
 | 
			
		||||
@@ -496,6 +659,10 @@ install_sw:
 | 
			
		||||
			sed -e '1,/^$$/d' doc/openssl-shared.txt; \
 | 
			
		||||
		fi; \
 | 
			
		||||
	fi
 | 
			
		||||
	cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
 | 
			
		||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libcrypto.pc
 | 
			
		||||
	cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
 | 
			
		||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/libssl.pc
 | 
			
		||||
	cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
 | 
			
		||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
 | 
			
		||||
 | 
			
		||||
@@ -521,8 +688,8 @@ install_docs:
 | 
			
		||||
			--release=$(VERSION) `basename $$i`") \
 | 
			
		||||
			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
 | 
			
		||||
		$(PERL) util/extract-names.pl < $$i | \
 | 
			
		||||
			grep -v $$filecase "^$$fn\$$" | \
 | 
			
		||||
			grep -v "[	]" | \
 | 
			
		||||
			(grep -v $$filecase "^$$fn\$$"; true) | \
 | 
			
		||||
			(grep -v "[	]"; true) | \
 | 
			
		||||
			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
 | 
			
		||||
			 while read n; do \
 | 
			
		||||
				$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
 | 
			
		||||
@@ -538,8 +705,8 @@ install_docs:
 | 
			
		||||
			--release=$(VERSION) `basename $$i`") \
 | 
			
		||||
			>  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
 | 
			
		||||
		$(PERL) util/extract-names.pl < $$i | \
 | 
			
		||||
			grep -v $$filecase "^$$fn\$$" | \
 | 
			
		||||
			grep -v "[	]" | \
 | 
			
		||||
			(grep -v $$filecase "^$$fn\$$"; true) | \
 | 
			
		||||
			(grep -v "[	]"; true) | \
 | 
			
		||||
			(cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
 | 
			
		||||
			 while read n; do \
 | 
			
		||||
				$$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
 | 
			
		||||
 
 | 
			
		||||
@@ -89,21 +89,23 @@ CALC_VERSIONS=	\
 | 
			
		||||
 | 
			
		||||
LINK_APP=	\
 | 
			
		||||
  ( $(SET_X);   \
 | 
			
		||||
    LIBDEPS=$${LIBDEPS:-$(LIBDEPS)}; \
 | 
			
		||||
    LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \
 | 
			
		||||
    LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \
 | 
			
		||||
    LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
 | 
			
		||||
    LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
 | 
			
		||||
    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
 | 
			
		||||
    $${LDCMD:=$(CC)} $${LDFLAGS:=$(CFLAGS)} \
 | 
			
		||||
	-o $${APPNAME:=$(APPNAME)} $(OBJECTS) $$LIBDEPS )
 | 
			
		||||
    $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} )
 | 
			
		||||
 | 
			
		||||
LINK_SO=	\
 | 
			
		||||
  ( $(SET_X);   \
 | 
			
		||||
    LIBDEPS=$${LIBDEPS:-$(LIBDEPS)}; \
 | 
			
		||||
    LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \
 | 
			
		||||
    SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \
 | 
			
		||||
    SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \
 | 
			
		||||
    nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \
 | 
			
		||||
    LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \
 | 
			
		||||
    LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \
 | 
			
		||||
    LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
 | 
			
		||||
    $${SHAREDCMD:=$(CC)} $${SHAREDFLAGS:=$(CFLAGS) $(SHARED_LDFLAGS)} \
 | 
			
		||||
    $${SHAREDCMD} $${SHAREDFLAGS} \
 | 
			
		||||
	-o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
 | 
			
		||||
	$$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \
 | 
			
		||||
  ) && $(SYMLINK_SO); \
 | 
			
		||||
@@ -194,12 +196,17 @@ link_app.bsd:
 | 
			
		||||
	fi; $(LINK_APP)
 | 
			
		||||
 | 
			
		||||
# For Darwin AKA Mac OS/X (dyld)
 | 
			
		||||
# link_o.darwin produces .so, because we let it use dso_dlfcn module,
 | 
			
		||||
# which has .so extension hard-coded. One can argue that one should
 | 
			
		||||
# develop special dso module for MacOS X. At least manual encourages
 | 
			
		||||
# to use native NSModule(3) API and refers to dlfcn as termporary hack.
 | 
			
		||||
link_o.darwin:
 | 
			
		||||
	@ $(CALC_VERSIONS); \
 | 
			
		||||
	SHLIB=lib$(LIBNAME); \
 | 
			
		||||
	SHLIB_SUFFIX=.dylib; \
 | 
			
		||||
	SHLIB_SUFFIX=.so; \
 | 
			
		||||
	ALLSYMSFLAGS='-all_load'; \
 | 
			
		||||
	NOALLSYMSFLAGS=''; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \
 | 
			
		||||
	if [ -n "$(LIBVERSION)" ]; then \
 | 
			
		||||
		SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
 | 
			
		||||
	fi; \
 | 
			
		||||
@@ -213,12 +220,14 @@ link_a.darwin:
 | 
			
		||||
	SHLIB_SUFFIX=.dylib; \
 | 
			
		||||
	ALLSYMSFLAGS='-all_load'; \
 | 
			
		||||
	NOALLSYMSFLAGS=''; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS)"; \
 | 
			
		||||
	if [ -n "$(LIBVERSION)" ]; then \
 | 
			
		||||
		SHAREDFLAGS="$$SHAREDFLAGS -current_version $(LIBVERSION)"; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	if [ -n "$$SHLIB_SOVER_NODOT" ]; then \
 | 
			
		||||
		SHAREDFLAGS="$$SHAREDFLAGS -compatibility_version $$SHLIB_SOVER_NODOT"; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	SHAREDFLAGS="$$SHAREDFLAGS -install_name ${INSTALLTOP}/lib/$$SHLIB${SHLIB_EXT}"; \
 | 
			
		||||
	$(LINK_SO_A)
 | 
			
		||||
link_app.darwin:	# is there run-path on darwin?
 | 
			
		||||
	$(LINK_APP)
 | 
			
		||||
@@ -227,24 +236,30 @@ link_o.cygwin:
 | 
			
		||||
	@ $(CALC_VERSIONS); \
 | 
			
		||||
	INHIBIT_SYMLINKS=yes; \
 | 
			
		||||
	SHLIB=cyg$(LIBNAME); \
 | 
			
		||||
	expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
 | 
			
		||||
	base=-Wl,--enable-auto-image-base; \
 | 
			
		||||
	if expr $(PLATFORM) : 'mingw' > /dev/null; then \
 | 
			
		||||
		SHLIB=$(LIBNAME)eay32; base=; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	SHLIB_SUFFIX=.dll; \
 | 
			
		||||
	LIBVERSION="$(LIBVERSION)"; \
 | 
			
		||||
	SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
 | 
			
		||||
	ALLSYMSFLAGS='-Wl,--whole-archive'; \
 | 
			
		||||
	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
 | 
			
		||||
	$(LINK_SO_O)
 | 
			
		||||
link_a.cygwin:
 | 
			
		||||
	@ $(CALC_VERSIONS); \
 | 
			
		||||
	INHIBIT_SYMLINKS=yes; \
 | 
			
		||||
	SHLIB=cyg$(LIBNAME); \
 | 
			
		||||
	expr $(PLATFORM) : 'mingw' > /dev/null && SHLIB=$(LIBNAME)eay32; \
 | 
			
		||||
	base=-Wl,--enable-auto-image-base; \
 | 
			
		||||
	if expr $(PLATFORM) : 'mingw' > /dev/null; then \
 | 
			
		||||
		SHLIB=$(LIBNAME)eay32; \
 | 
			
		||||
		base=;  [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	SHLIB_SUFFIX=.dll; \
 | 
			
		||||
	SHLIB_SOVER=-$(LIBVERSION); \
 | 
			
		||||
	ALLSYMSFLAGS='-Wl,--whole-archive'; \
 | 
			
		||||
	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
 | 
			
		||||
	base=;  [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a"; \
 | 
			
		||||
	[ -f apps/$$SHLIB$$SHLIB_SUFFIX ] && rm apps/$$SHLIB$$SHLIB_SUFFIX; \
 | 
			
		||||
	[ -f test/$$SHLIB$$SHLIB_SUFFIX ] && rm test/$$SHLIB$$SHLIB_SUFFIX; \
 | 
			
		||||
@@ -271,7 +286,7 @@ link_o.alpha-osf1:
 | 
			
		||||
		NOALLSYMSFLAGS='-none'; \
 | 
			
		||||
		SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared"; \
 | 
			
		||||
		if [ -n "$$SHLIB_HIST" ]; then \
 | 
			
		||||
			SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
 | 
			
		||||
			SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \
 | 
			
		||||
		fi; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	$(LINK_SO_O)
 | 
			
		||||
@@ -292,7 +307,7 @@ link_a.alpha-osf1:
 | 
			
		||||
		NOALLSYMSFLAGS='-none'; \
 | 
			
		||||
		SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared"; \
 | 
			
		||||
		if [ -n "$$SHLIB_HIST" ]; then \
 | 
			
		||||
			SHAREDFLAGS="$$SHAREDFLAGS -set_version \"$$SHLIB_HIST\""; \
 | 
			
		||||
			SHAREDFLAGS="$$SHAREDFLAGS -set_version $$SHLIB_HIST"; \
 | 
			
		||||
		fi; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	$(LINK_SO_A)
 | 
			
		||||
@@ -446,13 +461,14 @@ link_o.hpux:
 | 
			
		||||
	@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
 | 
			
		||||
	$(CALC_VERSIONS); \
 | 
			
		||||
	SHLIB=lib$(LIBNAME).sl; \
 | 
			
		||||
	expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
 | 
			
		||||
	expr "$(CFLAGS)" : '.*DSO_DLFCN' > /dev/null && SHLIB=lib$(LIBNAME).so; \
 | 
			
		||||
	SHLIB_SUFFIX=; \
 | 
			
		||||
	ALLSYMSFLAGS='-Wl,-Fl'; \
 | 
			
		||||
	NOALLSYMSFLAGS=''; \
 | 
			
		||||
	expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \
 | 
			
		||||
	$(LINK_SO_O) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
 | 
			
		||||
link_a.hpux:
 | 
			
		||||
	@if ${DETECT_GNU_LD}; then $(DO_GNU_SO); else \
 | 
			
		||||
@@ -465,6 +481,7 @@ link_a.hpux:
 | 
			
		||||
	expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
 | 
			
		||||
	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-B,symbolic,+vnocompatwarnings,-z,+s,+h,$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"; \
 | 
			
		||||
	fi; \
 | 
			
		||||
	rm -f $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX || :; \
 | 
			
		||||
	$(LINK_SO_A) && chmod a=rx $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX
 | 
			
		||||
link_app.hpux:
 | 
			
		||||
	@if ${DETECT_GNU_LD}; then $(DO_GNU_APP); else \
 | 
			
		||||
@@ -474,26 +491,26 @@ link_app.hpux:
 | 
			
		||||
 | 
			
		||||
link_o.aix:
 | 
			
		||||
	@ $(CALC_VERSIONS); \
 | 
			
		||||
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
 | 
			
		||||
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || :; \
 | 
			
		||||
	OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
 | 
			
		||||
	SHLIB=lib$(LIBNAME).so; \
 | 
			
		||||
	SHLIB_SUFFIX=; \
 | 
			
		||||
	ALLSYMSFLAGS='-bnogc'; \
 | 
			
		||||
	ALLSYMSFLAGS=''; \
 | 
			
		||||
	NOALLSYMSFLAGS=''; \
 | 
			
		||||
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \
 | 
			
		||||
	$(LINK_SO_O); rm -rf lib$(LIBNAME).exp
 | 
			
		||||
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
 | 
			
		||||
	$(LINK_SO_O);
 | 
			
		||||
link_a.aix:
 | 
			
		||||
	@ $(CALC_VERSIONS); \
 | 
			
		||||
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \
 | 
			
		||||
	OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]*\(64\)'` || : ; \
 | 
			
		||||
	OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
 | 
			
		||||
	SHLIB=lib$(LIBNAME).so; \
 | 
			
		||||
	SHLIB_SUFFIX=; \
 | 
			
		||||
	ALLSYMSFLAGS='-bnogc'; \
 | 
			
		||||
	NOALLSYMSFLAGS=''; \
 | 
			
		||||
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \
 | 
			
		||||
	SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G,-bexpall,-bnolibpath,-bM:SRE'; \
 | 
			
		||||
	$(LINK_SO_A_VIA_O)
 | 
			
		||||
link_app.aix:
 | 
			
		||||
	LDFLAGS="$(CFLAGS) -blibpath:$(LIBRPATH)"; \
 | 
			
		||||
	LDFLAGS="$(CFLAGS) -Wl,-brtl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \
 | 
			
		||||
	$(LINK_APP)
 | 
			
		||||
 | 
			
		||||
link_o.reliantunix:
 | 
			
		||||
@@ -532,7 +549,7 @@ symlink.hpux:
 | 
			
		||||
	expr $(PLATFORM) : '.*ia64' > /dev/null && SHLIB=lib$(LIBNAME).so; \
 | 
			
		||||
	$(SYMLINK_SO)
 | 
			
		||||
# The following lines means those specific architectures do no symlinks
 | 
			
		||||
symlink.cygwin symlib.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
 | 
			
		||||
symlink.cygwin symlink.alpha-osf1 symlink.tru64 symlink.tru64-rpath:
 | 
			
		||||
 | 
			
		||||
# Compatibility targets
 | 
			
		||||
link_o.bsd-gcc-shared link_o.linux-shared link_o.gnu-shared: link_o.gnu
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										129
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								NEWS
									
									
									
									
									
								
							@@ -5,6 +5,135 @@
 | 
			
		||||
  This file gives a brief overview of the major changes between each OpenSSL
 | 
			
		||||
  release. For more details please read the CHANGES file.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e:
 | 
			
		||||
 | 
			
		||||
      o Various ciphersuite selection fixes.
 | 
			
		||||
      o RFC3779 support.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d:
 | 
			
		||||
 | 
			
		||||
      o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
 | 
			
		||||
      o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
 | 
			
		||||
      o Changes to ciphersuite selection algorithm
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c:
 | 
			
		||||
 | 
			
		||||
      o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
 | 
			
		||||
      o New cipher Camellia
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b:
 | 
			
		||||
 | 
			
		||||
      o Cipher string fixes.
 | 
			
		||||
      o Fixes for VC++ 2005.
 | 
			
		||||
      o Updated ECC cipher suite support.
 | 
			
		||||
      o New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free().
 | 
			
		||||
      o Zlib compression usage fixes.
 | 
			
		||||
      o Built in dynamic engine compilation support on Win32.
 | 
			
		||||
      o Fixes auto dynamic engine loading in Win32.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a:
 | 
			
		||||
 | 
			
		||||
      o Fix potential SSL 2.0 rollback, CVE-2005-2969
 | 
			
		||||
      o Extended Windows CE support
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8:
 | 
			
		||||
 | 
			
		||||
      o Major work on the BIGNUM library for higher efficiency and to
 | 
			
		||||
        make operations more streamlined and less contradictory.  This
 | 
			
		||||
        is the result of a major audit of the BIGNUM library.
 | 
			
		||||
      o Addition of BIGNUM functions for fields GF(2^m) and NIST
 | 
			
		||||
        curves, to support the Elliptic Crypto functions.
 | 
			
		||||
      o Major work on Elliptic Crypto; ECDH and ECDSA added, including
 | 
			
		||||
        the use through EVP, X509 and ENGINE.
 | 
			
		||||
      o New ASN.1 mini-compiler that's usable through the OpenSSL
 | 
			
		||||
        configuration file.
 | 
			
		||||
      o Added support for ASN.1 indefinite length constructed encoding.
 | 
			
		||||
      o New PKCS#12 'medium level' API to manipulate PKCS#12 files.
 | 
			
		||||
      o Complete rework of shared library construction and linking
 | 
			
		||||
        programs with shared or static libraries, through a separate
 | 
			
		||||
        Makefile.shared.
 | 
			
		||||
      o Rework of the passing of parameters from one Makefile to another.
 | 
			
		||||
      o Changed ENGINE framework to load dynamic engine modules
 | 
			
		||||
        automatically from specifically given directories.
 | 
			
		||||
      o New structure and ASN.1 functions for CertificatePair.
 | 
			
		||||
      o Changed the ZLIB compression method to be stateful.
 | 
			
		||||
      o Changed the key-generation and primality testing "progress"
 | 
			
		||||
        mechanism to take a structure that contains the ticker
 | 
			
		||||
        function and an argument.
 | 
			
		||||
      o New engine module: GMP (performs private key exponentiation).
 | 
			
		||||
      o New engine module: VIA PadLOck ACE extension in VIA C3
 | 
			
		||||
        Nehemiah processors.
 | 
			
		||||
      o Added support for IPv6 addresses in certificate extensions.
 | 
			
		||||
        See RFC 1884, section 2.2.
 | 
			
		||||
      o Added support for certificate policy mappings, policy
 | 
			
		||||
        constraints and name constraints.
 | 
			
		||||
      o Added support for multi-valued AVAs in the OpenSSL
 | 
			
		||||
        configuration file.
 | 
			
		||||
      o Added support for multiple certificates with the same subject
 | 
			
		||||
        in the 'openssl ca' index file.
 | 
			
		||||
      o Make it possible to create self-signed certificates using
 | 
			
		||||
        'openssl ca -selfsign'.
 | 
			
		||||
      o Make it possible to generate a serial number file with
 | 
			
		||||
        'openssl ca -create_serial'.
 | 
			
		||||
      o New binary search functions with extended functionality.
 | 
			
		||||
      o New BUF functions.
 | 
			
		||||
      o New STORE structure and library to provide an interface to all
 | 
			
		||||
        sorts of data repositories.  Supports storage of public and
 | 
			
		||||
        private keys, certificates, CRLs, numbers and arbitrary blobs.
 | 
			
		||||
	This library is unfortunately unfinished and unused withing
 | 
			
		||||
	OpenSSL.
 | 
			
		||||
      o New control functions for the error stack.
 | 
			
		||||
      o Changed the PKCS#7 library to support one-pass S/MIME
 | 
			
		||||
        processing.
 | 
			
		||||
      o Added the possibility to compile without old deprecated
 | 
			
		||||
        functionality with the OPENSSL_NO_DEPRECATED macro or the
 | 
			
		||||
        'no-deprecated' argument to the config and Configure scripts.
 | 
			
		||||
      o Constification of all ASN.1 conversion functions, and other
 | 
			
		||||
        affected functions.
 | 
			
		||||
      o Improved platform support for PowerPC.
 | 
			
		||||
      o New FIPS 180-2 algorithms (SHA-224, -256, -384 and -512).
 | 
			
		||||
      o New X509_VERIFY_PARAM structure to support parametrisation
 | 
			
		||||
        of X.509 path validation.
 | 
			
		||||
      o Major overhaul of RC4 performance on Intel P4, IA-64 and
 | 
			
		||||
        AMD64.
 | 
			
		||||
      o Changed the Configure script to have some algorithms disabled
 | 
			
		||||
        by default.  Those can be explicitely enabled with the new
 | 
			
		||||
        argument form 'enable-xxx'.
 | 
			
		||||
      o Change the default digest in 'openssl' commands from MD5 to
 | 
			
		||||
        SHA-1.
 | 
			
		||||
      o Added support for DTLS.
 | 
			
		||||
      o New BIGNUM blinding.
 | 
			
		||||
      o Added support for the RSA-PSS encryption scheme
 | 
			
		||||
      o Added support for the RSA X.931 padding.
 | 
			
		||||
      o Added support for BSD sockets on NetWare.
 | 
			
		||||
      o Added support for files larger than 2GB.
 | 
			
		||||
      o Added initial support for Win64.
 | 
			
		||||
      o Added alternate pkg-config files.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
 | 
			
		||||
 | 
			
		||||
      o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
 | 
			
		||||
      o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k:
 | 
			
		||||
 | 
			
		||||
      o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j:
 | 
			
		||||
 | 
			
		||||
      o Visual C++ 2005 fixes.
 | 
			
		||||
      o Update Windows build system for FIPS.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i:
 | 
			
		||||
 | 
			
		||||
      o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h:
 | 
			
		||||
 | 
			
		||||
      o Fix SSL 2.0 Rollback, CVE-2005-2969
 | 
			
		||||
      o Allow use of fixed-length exponent on DSA signing
 | 
			
		||||
      o Default fixed-window RSA, DSA, DH private-key operations
 | 
			
		||||
 | 
			
		||||
  Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
 | 
			
		||||
 | 
			
		||||
      o More compilation issues fixed.
 | 
			
		||||
 
 | 
			
		||||
@@ -6,14 +6,15 @@ rem
 | 
			
		||||
rem   usage:
 | 
			
		||||
rem      build [target] [debug opts] [assembly opts] [configure opts]
 | 
			
		||||
rem
 | 
			
		||||
rem      target        - "netware-clib" - CLib NetWare build
 | 
			
		||||
rem                    - "netware-libc" - LibC NKS NetWare build
 | 
			
		||||
rem      target        - "netware-clib" - CLib NetWare build (WinSock Sockets)
 | 
			
		||||
rem                    - "netware-libc" - LibC NKS NetWare build (WinSock Sockets)
 | 
			
		||||
rem                    - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets)
 | 
			
		||||
rem 
 | 
			
		||||
rem      debug opts    - "debug"  - build debug
 | 
			
		||||
rem
 | 
			
		||||
rem      assembly opts - "nw-mwasm" - use Metrowerks assembler
 | 
			
		||||
rem      "nw-nasm"  - use NASM assembler
 | 
			
		||||
rem      "no-asm"   - don't use assembly
 | 
			
		||||
rem                    - "nw-nasm"  - use NASM assembler
 | 
			
		||||
rem                    - "no-asm"   - don't use assembly
 | 
			
		||||
rem
 | 
			
		||||
rem      configure opts- all unrecognized arguments are passed to the
 | 
			
		||||
rem                       perl configure script
 | 
			
		||||
@@ -76,6 +77,8 @@ if "%1" == "netware-clib" set BLD_TARGET=netware-clib
 | 
			
		||||
if "%1" == "netware-clib" set ARG_PROCESSED=YES
 | 
			
		||||
if "%1" == "netware-libc" set BLD_TARGET=netware-libc
 | 
			
		||||
if "%1" == "netware-libc" set ARG_PROCESSED=YES
 | 
			
		||||
if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock
 | 
			
		||||
if "%1" == "netware-libc-bsdsock" set ARG_PROCESSED=YES
 | 
			
		||||
 | 
			
		||||
rem   If we didn't recognize the argument, consider it an option for config
 | 
			
		||||
if "%ARG_PROCESSED%" == "NO" set CONFIG_OPTS=%CONFIG_OPTS% %1
 | 
			
		||||
@@ -92,6 +95,7 @@ rem build the nlm make file name which includes target and debug info
 | 
			
		||||
set NLM_MAKE=
 | 
			
		||||
if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib
 | 
			
		||||
if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc
 | 
			
		||||
if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock
 | 
			
		||||
if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak
 | 
			
		||||
if "%DEBUG%" == "debug" set NLM_MAKE=%NLM_MAKE%_dbg.mak
 | 
			
		||||
 | 
			
		||||
@@ -184,8 +188,9 @@ echo .  No build target specified!!!
 | 
			
		||||
echo .
 | 
			
		||||
echo .  usage: build [target] [debug opts] [assembly opts] [configure opts]
 | 
			
		||||
echo .
 | 
			
		||||
echo .     target        - "netware-clib" - CLib NetWare build
 | 
			
		||||
echo .                   - "netware-libc" - LibC NKS NetWare build
 | 
			
		||||
echo .     target        - "netware-clib" - CLib NetWare build (WinSock Sockets)
 | 
			
		||||
echo .                   - "netware-libc" - LibC NKS NetWare build (WinSock Sockets)
 | 
			
		||||
echo .                   - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets)
 | 
			
		||||
echo .
 | 
			
		||||
echo .     debug opts    - "debug"  - build debug
 | 
			
		||||
echo .
 | 
			
		||||
 
 | 
			
		||||
@@ -42,8 +42,8 @@ sub main()
 | 
			
		||||
   encryption_tests();
 | 
			
		||||
   pem_tests();
 | 
			
		||||
   verify_tests();
 | 
			
		||||
   ssl_tests();
 | 
			
		||||
   ca_tests();
 | 
			
		||||
   ssl_tests();
 | 
			
		||||
 | 
			
		||||
   close(OUT);
 | 
			
		||||
 | 
			
		||||
@@ -67,10 +67,17 @@ sub algorithm_tests
 | 
			
		||||
 | 
			
		||||
   foreach $i (@tests)
 | 
			
		||||
   {
 | 
			
		||||
      $outFile = "$output_path\\$i.out";
 | 
			
		||||
      system("$i > $outFile");
 | 
			
		||||
      log_desc("Test: $i\.nlm:");
 | 
			
		||||
      log_output("", $outFile );
 | 
			
		||||
      if (-e "$base_path\\$i.nlm")
 | 
			
		||||
	  {
 | 
			
		||||
         $outFile = "$output_path\\$i.out";
 | 
			
		||||
         system("$i > $outFile");
 | 
			
		||||
         log_desc("Test: $i\.nlm:");
 | 
			
		||||
         log_output("", $outFile );
 | 
			
		||||
	  }
 | 
			
		||||
	  else
 | 
			
		||||
	  {
 | 
			
		||||
         log_desc("Test: $i\.nlm: file not found");
 | 
			
		||||
	  }
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -246,61 +253,63 @@ sub verify_tests
 | 
			
		||||
sub ssl_tests
 | 
			
		||||
{
 | 
			
		||||
   my $outFile = "$output_path\\ssl_tst.out";
 | 
			
		||||
   my($CAcert) = "$output_path\\certCA.ss";
 | 
			
		||||
   my($Ukey)   = "$output_path\\keyU.ss";
 | 
			
		||||
   my($Ucert)  = "$output_path\\certU.ss";
 | 
			
		||||
   my($ssltest)= "ssltest -key $Ukey -cert $Ucert -c_key $Ukey -c_cert $Ucert -CAfile $CAcert";
 | 
			
		||||
 | 
			
		||||
   print( "\nRUNNING SSL TESTS:\n\n");
 | 
			
		||||
 | 
			
		||||
   print( OUT "\n========================================================\n");
 | 
			
		||||
   print( OUT "SSL TESTS:\n\n");
 | 
			
		||||
 | 
			
		||||
   make_tmp_cert_file();
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl2 >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2:");
 | 
			
		||||
   log_output("ssltest -ssl2", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl2 -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl2 -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with server authentication:");
 | 
			
		||||
   log_output("ssltest -ssl2 -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl2 -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl2 -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl2 -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with client authentication:");
 | 
			
		||||
   log_output("ssltest -ssl2 -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl2 -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl2 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl2 -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with both client and server authentication:");
 | 
			
		||||
   log_output("ssltest -ssl2 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl3 >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3:");
 | 
			
		||||
   log_output("ssltest -ssl3", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl3 -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl3 -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with server authentication:");
 | 
			
		||||
   log_output("ssltest -ssl3 -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl3 -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl3 -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl3 -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with client authentication:");
 | 
			
		||||
   log_output("ssltest -ssl3 -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl3 -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -ssl3 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -ssl3 -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with both client and server authentication:");
 | 
			
		||||
   log_output("ssltest -ssl3 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3:");
 | 
			
		||||
   log_output("ssltest", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with server authentication:");
 | 
			
		||||
   log_output("ssltest -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with client authentication:");
 | 
			
		||||
   log_output("ssltest -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -client_auth ", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with both client and server authentication:");
 | 
			
		||||
   log_output("ssltest -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -server_auth -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl2 >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 via BIO pair:");
 | 
			
		||||
@@ -310,49 +319,49 @@ sub ssl_tests
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl2 -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl2 -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl2 -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl2 -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl2 -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with client authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl2 -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl2 -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2 with both client and server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl3 >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl3", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl3 -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl3 -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl3 -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl3 -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl3 -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with client authentication  via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl3 -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -ssl3 -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv3 with both client and server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -server_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -server_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -server_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -server_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -client_auth", $outFile);
 | 
			
		||||
 | 
			
		||||
   system("ssltest -bio_pair -server_auth -client_auth -CAfile $tmp_cert >$outFile");
 | 
			
		||||
   system("$ssltest -bio_pair -server_auth -client_auth >$outFile");
 | 
			
		||||
   log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:");
 | 
			
		||||
   log_output("ssltest -bio_pair -server_auth -client_auth -CAfile $tmp_cert", $outFile);
 | 
			
		||||
   log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										93
									
								
								PROBLEMS
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								PROBLEMS
									
									
									
									
									
								
							@@ -12,8 +12,8 @@ along the whole library path before it bothers looking for .a libraries.  This
 | 
			
		||||
means that -L switches won't matter unless OpenSSL is built with shared
 | 
			
		||||
library support.
 | 
			
		||||
 | 
			
		||||
The workaround may be to change the following lines in apps/Makefile.ssl and
 | 
			
		||||
test/Makefile.ssl:
 | 
			
		||||
The workaround may be to change the following lines in apps/Makefile and
 | 
			
		||||
test/Makefile:
 | 
			
		||||
 | 
			
		||||
  LIBCRYPTO=-L.. -lcrypto
 | 
			
		||||
  LIBSSL=-L.. -lssl
 | 
			
		||||
@@ -48,20 +48,34 @@ will interfere with each other and lead to test failure.
 | 
			
		||||
The solution is simple for now: don't run parallell make when testing.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* Bugs in gcc 3.0 triggered
 | 
			
		||||
* Bugs in gcc triggered
 | 
			
		||||
 | 
			
		||||
According to a problem report, there are bugs in gcc 3.0 that are
 | 
			
		||||
triggered by some of the code in OpenSSL, more specifically in
 | 
			
		||||
PEM_get_EVP_CIPHER_INFO().  The triggering code is the following:
 | 
			
		||||
- According to a problem report, there are bugs in gcc 3.0 that are
 | 
			
		||||
  triggered by some of the code in OpenSSL, more specifically in
 | 
			
		||||
  PEM_get_EVP_CIPHER_INFO().  The triggering code is the following:
 | 
			
		||||
 | 
			
		||||
	header+=11;
 | 
			
		||||
	if (*header != '4') return(0); header++;
 | 
			
		||||
	if (*header != ',') return(0); header++;
 | 
			
		||||
 | 
			
		||||
What happens is that gcc might optimize a little too agressively, and
 | 
			
		||||
you end up with an extra incrementation when *header != '4'.
 | 
			
		||||
  What happens is that gcc might optimize a little too agressively, and
 | 
			
		||||
  you end up with an extra incrementation when *header != '4'.
 | 
			
		||||
 | 
			
		||||
We recommend that you upgrade gcc to as high a 3.x version as you can.
 | 
			
		||||
  We recommend that you upgrade gcc to as high a 3.x version as you can.
 | 
			
		||||
 | 
			
		||||
- According to multiple problem reports, some of our message digest
 | 
			
		||||
  implementations trigger bug[s] in code optimizer in gcc 3.3 for sparc64
 | 
			
		||||
  and gcc 2.96 for ppc. Former fails to complete RIPEMD160 test, while
 | 
			
		||||
  latter - SHA one.
 | 
			
		||||
 | 
			
		||||
  The recomendation is to upgrade your compiler. This naturally applies to
 | 
			
		||||
  other similar cases.
 | 
			
		||||
 | 
			
		||||
- There is a subtle Solaris x86-specific gcc run-time environment bug, which
 | 
			
		||||
  "falls between" OpenSSL [0.9.8 and later], Solaris ld and GCC. The bug
 | 
			
		||||
  manifests itself as Segmentation Fault upon early application start-up.
 | 
			
		||||
  The problem can be worked around by patching the environment according to
 | 
			
		||||
  http://www.openssl.org/~appro/values.c.
 | 
			
		||||
 | 
			
		||||
* solaris64-sparcv9-cc SHA-1 performance with WorkShop 6 compiler.
 | 
			
		||||
 | 
			
		||||
@@ -120,3 +134,64 @@ Any information helping to solve this issue would be deeply
 | 
			
		||||
appreciated.
 | 
			
		||||
 | 
			
		||||
NOTE: building non-shared doesn't come with this problem.
 | 
			
		||||
 | 
			
		||||
* ULTRIX build fails with shell errors, such as "bad substitution"
 | 
			
		||||
  and "test: argument expected"
 | 
			
		||||
 | 
			
		||||
The problem is caused by ULTRIX /bin/sh supporting only original
 | 
			
		||||
Bourne shell syntax/semantics, and the trouble is that the vast
 | 
			
		||||
majority is so accustomed to more modern syntax, that very few
 | 
			
		||||
people [if any] would recognize the ancient syntax even as valid.
 | 
			
		||||
This inevitably results in non-trivial scripts breaking on ULTRIX,
 | 
			
		||||
and OpenSSL isn't an exclusion. Fortunately there is workaround,
 | 
			
		||||
hire /bin/ksh to do the job /bin/sh fails to do.
 | 
			
		||||
 | 
			
		||||
1. Trick make(1) to use /bin/ksh by setting up following environ-
 | 
			
		||||
   ment variables *prior* you execute ./Configure and make:
 | 
			
		||||
 | 
			
		||||
	PROG_ENV=POSIX
 | 
			
		||||
	MAKESHELL=/bin/ksh
 | 
			
		||||
	export PROG_ENV MAKESHELL
 | 
			
		||||
 | 
			
		||||
   or if your shell is csh-compatible:
 | 
			
		||||
 | 
			
		||||
	setenv PROG_ENV POSIX
 | 
			
		||||
	setenv MAKESHELL /bin/ksh
 | 
			
		||||
 | 
			
		||||
2. Trick /bin/sh to use alternative expression evaluator. Create
 | 
			
		||||
   following 'test' script for example in /tmp:
 | 
			
		||||
 | 
			
		||||
	#!/bin/ksh
 | 
			
		||||
	${0##*/} "$@"
 | 
			
		||||
 | 
			
		||||
   Then 'chmod a+x /tmp/test; ln /tmp/test /tmp/[' and *prepend*
 | 
			
		||||
   your $PATH with chosen location, e.g. PATH=/tmp:$PATH. Alter-
 | 
			
		||||
   natively just replace system /bin/test and /bin/[ with the
 | 
			
		||||
   above script.
 | 
			
		||||
 | 
			
		||||
* hpux64-ia64-cc fails blowfish test.
 | 
			
		||||
 | 
			
		||||
Compiler bug, presumably at particular patch level. It should be noted
 | 
			
		||||
that same compiler generates correct 32-bit code, a.k.a. hpux-ia64-cc
 | 
			
		||||
target. Drop optimization level to +O2 when compiling 64-bit bf_skey.o.
 | 
			
		||||
 | 
			
		||||
* no-engines generates errors.
 | 
			
		||||
 | 
			
		||||
Unfortunately, the 'no-engines' configuration option currently doesn't
 | 
			
		||||
work properly.  Use 'no-hw' and you'll will at least get no hardware
 | 
			
		||||
support.  We'll see how we fix that on OpenSSL versions past 0.9.8.
 | 
			
		||||
 | 
			
		||||
* 'make test' fails in BN_sqr [commonly with "error 139" denoting SIGSEGV]
 | 
			
		||||
  if elder GNU binutils were deployed to link shared libcrypto.so.
 | 
			
		||||
 | 
			
		||||
As subject suggests the failure is caused by a bug in elder binutils,
 | 
			
		||||
either as or ld, and was observed on FreeBSD and Linux. There are two
 | 
			
		||||
options. First is naturally to upgrade binutils, the second one - to
 | 
			
		||||
reconfigure with additional no-sse2 [or 386] option passed to ./config.
 | 
			
		||||
 | 
			
		||||
* If configured with ./config no-dso, toolkit still gets linked with -ldl,
 | 
			
		||||
  which most notably poses a problem when linking with dietlibc.
 | 
			
		||||
 | 
			
		||||
We don't have framework to associate -ldl with no-dso, therefore the only
 | 
			
		||||
way is to edit Makefile right after ./config no-dso and remove -ldl from
 | 
			
		||||
EX_LIBS line.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								README
									
									
									
									
									
								
							@@ -1,10 +1,16 @@
 | 
			
		||||
 | 
			
		||||
 OpenSSL 0.9.9-dev XX xxx XXXX
 | 
			
		||||
 OpenSSL 0.9.8f-fips-dev test version
 | 
			
		||||
 | 
			
		||||
 Copyright (c) 1998-2005 The OpenSSL Project
 | 
			
		||||
 Copyright (c) 1998-2007 The OpenSSL Project
 | 
			
		||||
 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
 | 
			
		||||
 All rights reserved.
 | 
			
		||||
 | 
			
		||||
 WARNING
 | 
			
		||||
 -------
 | 
			
		||||
 | 
			
		||||
 This version of OpenSSL is an initial port of the FIPS 140-2 code to OpenSSL
 | 
			
		||||
 0.9.8. See the file README.FIPS for brief usage details.
 | 
			
		||||
 | 
			
		||||
 DESCRIPTION
 | 
			
		||||
 -----------
 | 
			
		||||
 | 
			
		||||
@@ -36,12 +42,13 @@
 | 
			
		||||
     actually logically part of it. It includes routines for the following:
 | 
			
		||||
 | 
			
		||||
     Ciphers
 | 
			
		||||
        libdes - EAY's libdes DES encryption package which has been floating
 | 
			
		||||
                 around the net for a few years.  It includes 15
 | 
			
		||||
                 'modes/variations' of DES (1, 2 and 3 key versions of ecb,
 | 
			
		||||
                 cbc, cfb and ofb; pcbc and a more general form of cfb and
 | 
			
		||||
                 ofb) including desx in cbc mode, a fast crypt(3), and
 | 
			
		||||
                 routines to read passwords from the keyboard.
 | 
			
		||||
        libdes - EAY's libdes DES encryption package which was floating
 | 
			
		||||
                 around the net for a few years, and was then relicensed by
 | 
			
		||||
                 him as part of SSLeay.  It includes 15 'modes/variations'
 | 
			
		||||
                 of DES (1, 2 and 3 key versions of ecb, cbc, cfb and ofb;
 | 
			
		||||
                 pcbc and a more general form of cfb and ofb) including desx
 | 
			
		||||
                 in cbc mode, a fast crypt(3), and routines to read
 | 
			
		||||
                 passwords from the keyboard.
 | 
			
		||||
        RC4 encryption,
 | 
			
		||||
        RC2 encryption      - 4 different modes, ecb, cbc, cfb and ofb.
 | 
			
		||||
        Blowfish encryption - 4 different modes, ecb, cbc, cfb and ofb.
 | 
			
		||||
@@ -113,6 +120,10 @@
 | 
			
		||||
 | 
			
		||||
 The MDC2 algorithm is patented by IBM.
 | 
			
		||||
 | 
			
		||||
 NTT and Mitsubishi have patents and pending patents on the Camellia
 | 
			
		||||
 algorithm, but allow use at no charge without requiring an explicit
 | 
			
		||||
 licensing agreement: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
 | 
			
		||||
 | 
			
		||||
 INSTALLATION
 | 
			
		||||
 ------------
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								README.FIPS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								README.FIPS
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
 | 
			
		||||
Brief instructions on using OpenSSL 0.9.8 FIPS test branch.
 | 
			
		||||
 | 
			
		||||
To avoid any confusion that this might generate a validate library just
 | 
			
		||||
supplying "fips" on the command line wont work. Additional options are
 | 
			
		||||
needed...
 | 
			
		||||
 | 
			
		||||
To build fipscanister and produce a usable distribution the configuration
 | 
			
		||||
option "fipscanisterbuild" is used to either the config or Configure scripts.
 | 
			
		||||
For example:
 | 
			
		||||
 | 
			
		||||
./config fipscanisterbuild
 | 
			
		||||
 | 
			
		||||
This builds static libraries in a way similar to the FIPS 1.1.1 distro.
 | 
			
		||||
 | 
			
		||||
To build the shared library fipscanister version use the configuration
 | 
			
		||||
options "fipsdso".
 | 
			
		||||
 | 
			
		||||
Note that the fipscanister.o file is totally incompatible with the version
 | 
			
		||||
produced by the FIPS 1.1.1 distribution and cannot be made to work with
 | 
			
		||||
it.
 | 
			
		||||
 | 
			
		||||
Both options should also work under Windows and VC++. With this version the
 | 
			
		||||
use of MinGW is unnecessary and the normal VC++ build procedure can be
 | 
			
		||||
followed *except* the GNU linker "ld.exe" (for example from MinGW) must be
 | 
			
		||||
accessible somewhere on the PATH. For example:
 | 
			
		||||
 | 
			
		||||
perl Configure VC-WIN32 fipsdso
 | 
			
		||||
ms\do_masm
 | 
			
		||||
nmake -f ms\ntdll.mak
 | 
			
		||||
 | 
			
		||||
Note that any warnings from a Windows version of "tar" about being unable to
 | 
			
		||||
create symbolic links can be ignored.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								STATUS
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								STATUS
									
									
									
									
									
								
							@@ -1,11 +1,22 @@
 | 
			
		||||
 | 
			
		||||
  OpenSSL STATUS                           Last modified at
 | 
			
		||||
  ______________                           $Date: 2005/05/19 19:43:28 $
 | 
			
		||||
  ______________                           $Date: 2007/02/23 12:12:27 $
 | 
			
		||||
 | 
			
		||||
  DEVELOPMENT STATE
 | 
			
		||||
 | 
			
		||||
    o  OpenSSL 0.9.9:  Under development...
 | 
			
		||||
    o  OpenSSL 0.9.8-beta1:  Released on May 19th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.8e: Released on February  23rd, 2007
 | 
			
		||||
    o  OpenSSL 0.9.8d: Released on September 28th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.8c: Released on September  5th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.8b: Released on May        4th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.8a: Released on October   11th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.8:  Released on July       5th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.7m: Released on February  23rd, 2007
 | 
			
		||||
    o  OpenSSL 0.9.7l: Released on September 28th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.7k: Released on September  5th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.7j: Released on May        4th, 2006
 | 
			
		||||
    o  OpenSSL 0.9.7i: Released on October   14th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.7h: Released on October   11th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.7g: Released on April     11th, 2005
 | 
			
		||||
    o  OpenSSL 0.9.7f: Released on March     22nd, 2005
 | 
			
		||||
    o  OpenSSL 0.9.7e: Released on October   25th, 2004
 | 
			
		||||
@@ -40,6 +51,7 @@
 | 
			
		||||
 | 
			
		||||
  RELEASE SHOWSTOPPERS
 | 
			
		||||
 | 
			
		||||
    o The Makefiles fail with some SysV makes.
 | 
			
		||||
    o 
 | 
			
		||||
 | 
			
		||||
  AVAILABLE PATCHES
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										344
									
								
								TABLE
									
									
									
									
									
								
							
							
						
						
									
										344
									
								
								TABLE
									
									
									
									
									
								
							@@ -117,7 +117,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHUNK
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -326,7 +326,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** DJGPP
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall -DDEVRANDOM="/dev/urandom\x24"
 | 
			
		||||
$cflags       = -I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = MSDOS
 | 
			
		||||
@@ -432,60 +432,6 @@ $shared_extension =
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** OpenUNIX-8
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -O -DFILIO_H -Kalloca
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -Kthread
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = -lsocket -lnsl
 | 
			
		||||
$bn_ops       = BN_LLONG MD2_CHAR RC4_INDEX DES_PTR DES_RISC1 DES_UNROLL
 | 
			
		||||
$cpuid_obj    = x86cpuid-elf.o
 | 
			
		||||
$bn_obj       = bn86-elf.o co86-elf.o
 | 
			
		||||
$des_obj      = dx86-elf.o yx86-elf.o
 | 
			
		||||
$aes_obj      = ax86-elf.o
 | 
			
		||||
$bf_obj       = bx86-elf.o
 | 
			
		||||
$md5_obj      = mx86-elf.o
 | 
			
		||||
$sha1_obj     = sx86-elf.o s512sse2-elf.o
 | 
			
		||||
$cast_obj     = cx86-elf.o
 | 
			
		||||
$rc4_obj      = rx86-elf.o
 | 
			
		||||
$rmd160_obj   = rm86-elf.o
 | 
			
		||||
$rc5_obj      = r586-elf.o
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= svr5-shared
 | 
			
		||||
$shared_cflag = -Kpic
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** OpenUNIX-8-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -O -DFILIO_H -fomit-frame-pointer
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -pthread
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = -lsocket -lnsl
 | 
			
		||||
$bn_ops       = BN_LLONG MD2_CHAR RC4_INDEX DES_PTR DES_RISC1 DES_UNROLL
 | 
			
		||||
$cpuid_obj    = x86cpuid-elf.o
 | 
			
		||||
$bn_obj       = bn86-elf.o co86-elf.o
 | 
			
		||||
$des_obj      = dx86-elf.o yx86-elf.o
 | 
			
		||||
$aes_obj      = ax86-elf.o
 | 
			
		||||
$bf_obj       = bx86-elf.o
 | 
			
		||||
$md5_obj      = mx86-elf.o
 | 
			
		||||
$sha1_obj     = sx86-elf.o s512sse2-elf.o
 | 
			
		||||
$cast_obj     = cx86-elf.o
 | 
			
		||||
$rc4_obj      = rx86-elf.o
 | 
			
		||||
$rmd160_obj   = rm86-elf.o
 | 
			
		||||
$rc5_obj      = r586-elf.o
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= svr5-shared
 | 
			
		||||
$shared_cflag = -fPIC
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** ReliantUNIX
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -KPIC -g -DTERMIOS -DB_ENDIAN
 | 
			
		||||
@@ -682,7 +628,7 @@ $unistd       =
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = WIN64A
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT EXPORT_VAR_AS_FN
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -709,7 +655,7 @@ $unistd       =
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = WIN64I
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT EXPORT_VAR_AS_FN
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -731,7 +677,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** aix-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -q32 -O -DB_ENDIAN -qmaxmem=16384
 | 
			
		||||
$cflags       = -q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -qthreaded
 | 
			
		||||
$sys_id       = AIX
 | 
			
		||||
@@ -776,12 +722,12 @@ $rc4_obj      =
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= 
 | 
			
		||||
$shared_target= aix-shared
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = 
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
$arflags      = -X 32
 | 
			
		||||
 | 
			
		||||
*** aix3-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
@@ -812,9 +758,9 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** aix64-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -q64 -O -DB_ENDIAN -qmaxmem=16384
 | 
			
		||||
$cflags       = -q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$thread_cflag = -qthreaded
 | 
			
		||||
$sys_id       = AIX
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHAR
 | 
			
		||||
@@ -837,6 +783,33 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = -X 64
 | 
			
		||||
 | 
			
		||||
*** aix64-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -maix64 -O -DB_ENDIAN
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_THREAD_SAFE
 | 
			
		||||
$sys_id       = AIX
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHAR
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = aix_ppc64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= aix-shared
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = -maix64
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = -X64
 | 
			
		||||
 | 
			
		||||
*** aux3-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -O2 -DTERMIO
 | 
			
		||||
@@ -866,7 +839,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** bsdi-elf-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
 | 
			
		||||
$cflags       = -DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -974,7 +947,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** darwin-i386-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer -fno-common -DB_ENDIAN
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer -fno-common
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = MACOSX
 | 
			
		||||
@@ -991,10 +964,10 @@ $cast_obj     =
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= darwin-shared
 | 
			
		||||
$shared_cflag = -fPIC
 | 
			
		||||
$shared_ldflag = -dunamiclib
 | 
			
		||||
$shared_cflag = -fPIC -fno-common
 | 
			
		||||
$shared_ldflag = -dynamiclib
 | 
			
		||||
$shared_extension = .$(SHLIB_MAJOR).$(SHLIB_MINOR).dylib
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
@@ -1005,7 +978,7 @@ $cflags       = -O3 -DB_ENDIAN
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = MACOSX
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$lflags       = -Wl,-search_paths_first
 | 
			
		||||
$bn_ops       = BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = osx_ppc32.o
 | 
			
		||||
@@ -1018,7 +991,7 @@ $cast_obj     =
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= darwin-shared
 | 
			
		||||
$shared_cflag = -fPIC -fno-common
 | 
			
		||||
$shared_ldflag = -dynamiclib
 | 
			
		||||
@@ -1082,7 +1055,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-Cygwin
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror
 | 
			
		||||
$cflags       = -DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = CYGWIN32
 | 
			
		||||
@@ -1288,9 +1261,9 @@ $cast_obj     =
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= darwin-shared
 | 
			
		||||
$shared_cflag = -fPIC
 | 
			
		||||
$shared_cflag = -fPIC -fno-common
 | 
			
		||||
$shared_ldflag = -dynamiclib
 | 
			
		||||
$shared_extension = .$(SHLIB_MAJOR).$(SHLIB_MINOR).dylib
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
@@ -1433,7 +1406,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-linux-elf
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1460,7 +1433,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-linux-elf-noefence
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1487,7 +1460,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-linux-pentium
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1514,7 +1487,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-linux-ppro
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1568,7 +1541,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-solaris-sparcv8-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1595,7 +1568,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-solaris-sparcv8-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1622,7 +1595,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-solaris-sparcv9-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = ULTRASPARC
 | 
			
		||||
@@ -1649,7 +1622,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-solaris-sparcv9-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$cflags       = -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -DPEDANTIC -O -g -mcpu=ultrasparc -pedantic -ansi -Wall -Wshadow -Wno-long-long -D__EXTENSIONS__ -DB_ENDIAN -DBN_DIV2W
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = ULTRASPARC
 | 
			
		||||
@@ -1676,7 +1649,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-steve
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe
 | 
			
		||||
$cflags       = -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -march=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -1757,7 +1730,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** debug-vos-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG
 | 
			
		||||
$cflags       = -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = VOS
 | 
			
		||||
@@ -1782,33 +1755,6 @@ $shared_extension = .so
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** debug-vos-vcc
 | 
			
		||||
$cc           = vcc
 | 
			
		||||
$cflags       = -b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = VOS
 | 
			
		||||
$lflags       = -Wl,-map
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$shared_target= 
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = .so
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** dgux-R3-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer
 | 
			
		||||
@@ -2007,7 +1953,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2034,12 +1980,12 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes-ia64.o
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = sha256-ia64.o sha512-ia64.o
 | 
			
		||||
$sha1_obj     = sha1-ia64.o sha256-ia64.o sha512-ia64.o
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = rc4-ia64.o
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
@@ -2223,7 +2169,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2250,7 +2196,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2324,7 +2270,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** hurd-x86
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall
 | 
			
		||||
$cflags       = -DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -2412,7 +2358,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = mips3.o
 | 
			
		||||
$bn_obj       = bn-mips3.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2432,14 +2378,14 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** irix-mips3-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W
 | 
			
		||||
$cflags       = -mabi=n32 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_SGI_MP_SOURCE
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = mips3.o
 | 
			
		||||
$bn_obj       = bn-mips3.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2466,7 +2412,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = mips3.o
 | 
			
		||||
$bn_obj       = bn-mips3.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2486,14 +2432,14 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** irix64-mips4-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W
 | 
			
		||||
$cflags       = -mabi=64 -mips4 -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_SGI_MP_SOURCE
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = mips3.o
 | 
			
		||||
$bn_obj       = bn-mips3.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2621,7 +2567,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** linux-aout
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall
 | 
			
		||||
$cflags       = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=i486 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -2763,7 +2709,7 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHUNK
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2790,7 +2736,34 @@ $sys_id       =
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHUNK
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = ia64.o
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = sha1-ia64.o sha256-ia64.o sha512-ia64.o
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = rc4-ia64.o
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= linux-shared
 | 
			
		||||
$shared_cflag = -fPIC
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** linux-ia64-icc
 | 
			
		||||
$cc           = icc
 | 
			
		||||
$cflags       = -DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHUNK
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = bn-ia64.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = aes_core.o aes_cbc.o aes-ia64.o
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
@@ -2837,7 +2810,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** linux-ppc64
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -bpowerpc64-linux -DB_ENDIAN -DTERMIO -O3 -Wall
 | 
			
		||||
$cflags       = -m64 -DB_ENDIAN -DTERMIO -O3 -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -2857,7 +2830,7 @@ $rc5_obj      =
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
$shared_target= linux-shared
 | 
			
		||||
$shared_cflag = -fPIC
 | 
			
		||||
$shared_ldflag = -bpowerpc64-linux
 | 
			
		||||
$shared_ldflag = -m64
 | 
			
		||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
@@ -3030,8 +3003,8 @@ $cflags       =
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = RC4_INDEX MD2_INT
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = BN_LLONG RC4_INDEX MD2_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -3057,8 +3030,35 @@ $cflags       =
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = BN_LLONG RC4_INDEX MD2_INT
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = BN_LLONG RC4_INDEX MD2_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$shared_target= 
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = 
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** netware-libc-bsdsock
 | 
			
		||||
$cc           = mwccnlm
 | 
			
		||||
$cflags       = 
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = BN_LLONG RC4_INDEX MD2_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -3084,8 +3084,8 @@ $cflags       = -nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_EN
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = RC4_INDEX MD2_INT
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = BN_LLONG RC4_INDEX MD2_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -3186,7 +3186,7 @@ $shared_extension =
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** ofs1-alpha-cc
 | 
			
		||||
*** osf1-alpha-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -std1 -tune host -O4 -readonly_strings
 | 
			
		||||
$unistd       = 
 | 
			
		||||
@@ -3348,33 +3348,6 @@ $shared_extension =
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** sco3-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer -Dssize_t=int -DNO_SYS_UN_H
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = -lsocket
 | 
			
		||||
$bn_ops       = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$shared_target= 
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = 
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** sco5-cc
 | 
			
		||||
$cc           = cc
 | 
			
		||||
$cflags       = -belf
 | 
			
		||||
@@ -3620,7 +3593,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** solaris-x86-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM
 | 
			
		||||
$cflags       = -O3 -fomit-frame-pointer -march=pentium -Wall -DL_ENDIAN -DOPENSSL_NO_INLINE_ASM
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -3707,15 +3680,15 @@ $thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = -lsocket -lnsl -ldl
 | 
			
		||||
$bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$cpuid_obj    = x86_64cpuid.o
 | 
			
		||||
$bn_obj       = x86_64-gcc.o
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$md5_obj      = md5-x86_64.o
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rc4_obj      = rc4-x86_64.o
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = dlfcn
 | 
			
		||||
@@ -3868,7 +3841,7 @@ $unistd       =
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
$lflags       = 
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$bn_ops       = BN_LLONG
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
@@ -3971,7 +3944,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** unixware-7-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -m486 -Wall
 | 
			
		||||
$cflags       = -DL_ENDIAN -DFILIO_H -O3 -fomit-frame-pointer -march=pentium -Wall
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = -D_REENTRANT
 | 
			
		||||
$sys_id       = 
 | 
			
		||||
@@ -3998,7 +3971,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** vos-gcc
 | 
			
		||||
$cc           = gcc
 | 
			
		||||
$cflags       = -b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD
 | 
			
		||||
$cflags       = -O3 -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DB_ENDIAN
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = VOS
 | 
			
		||||
@@ -4023,33 +3996,6 @@ $shared_extension = .so
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** vos-vcc
 | 
			
		||||
$cc           = vcc
 | 
			
		||||
$cflags       = -b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = (unknown)
 | 
			
		||||
$sys_id       = VOS
 | 
			
		||||
$lflags       = -Wl,-map
 | 
			
		||||
$bn_ops       = 
 | 
			
		||||
$cpuid_obj    = 
 | 
			
		||||
$bn_obj       = 
 | 
			
		||||
$des_obj      = 
 | 
			
		||||
$aes_obj      = 
 | 
			
		||||
$bf_obj       = 
 | 
			
		||||
$md5_obj      = 
 | 
			
		||||
$sha1_obj     = 
 | 
			
		||||
$cast_obj     = 
 | 
			
		||||
$rc4_obj      = 
 | 
			
		||||
$rmd160_obj   = 
 | 
			
		||||
$rc5_obj      = 
 | 
			
		||||
$dso_scheme   = 
 | 
			
		||||
$shared_target= 
 | 
			
		||||
$shared_cflag = 
 | 
			
		||||
$shared_ldflag = 
 | 
			
		||||
$shared_extension = .so
 | 
			
		||||
$ranlib       = 
 | 
			
		||||
$arflags      = 
 | 
			
		||||
 | 
			
		||||
*** vxworks-mipsle
 | 
			
		||||
$cc           = ccmips
 | 
			
		||||
$cflags       = -B$(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I$(WIND_BASE)/target/h
 | 
			
		||||
@@ -4133,7 +4079,7 @@ $arflags      =
 | 
			
		||||
 | 
			
		||||
*** vxworks-ppc750-debug
 | 
			
		||||
$cc           = ccppc
 | 
			
		||||
$cflags       = -ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g
 | 
			
		||||
$cflags       = -ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g
 | 
			
		||||
$unistd       = 
 | 
			
		||||
$thread_cflag = 
 | 
			
		||||
$sys_id       = VXWORKS
 | 
			
		||||
 
 | 
			
		||||
@@ -68,19 +68,19 @@ foreach (@ARGV) {
 | 
			
		||||
	    exit 0;
 | 
			
		||||
	} elsif (/^-newcert$/) {
 | 
			
		||||
	    # create a certificate
 | 
			
		||||
	    system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS");
 | 
			
		||||
	    system ("$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS");
 | 
			
		||||
	    $RET=$?;
 | 
			
		||||
	    print "Certificate (and private key) is in newreq.pem\n"
 | 
			
		||||
	    print "Certificate is in newcert.pem, private key is in newkey.pem\n"
 | 
			
		||||
	} elsif (/^-newreq$/) {
 | 
			
		||||
	    # create a certificate request
 | 
			
		||||
	    system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
 | 
			
		||||
	    system ("$REQ -new -keyout newkey.pem -out newreq.pem $DAYS");
 | 
			
		||||
	    $RET=$?;
 | 
			
		||||
	    print "Request (and private key) is in newreq.pem\n";
 | 
			
		||||
	    print "Request is in newreq.pem, private key is in newkey.pem\n";
 | 
			
		||||
	} elsif (/^-newreq-nodes$/) {
 | 
			
		||||
	    # create a certificate request
 | 
			
		||||
	    system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS");
 | 
			
		||||
	    system ("$REQ -new -nodes -keyout newkey.pem -out newreq.pem $DAYS");
 | 
			
		||||
	    $RET=$?;
 | 
			
		||||
	    print "Request (and private key) is in newreq.pem\n";
 | 
			
		||||
	    print "Request is in newreq.pem, private key is in newkey.pem\n";
 | 
			
		||||
	} elsif (/^-newca$/) {
 | 
			
		||||
		# if explicitly asked for or it doesn't exist then setup the
 | 
			
		||||
		# directory structure that Eric likes to manage things 
 | 
			
		||||
@@ -94,6 +94,9 @@ foreach (@ARGV) {
 | 
			
		||||
		mkdir "${CATOP}/private", $DIRMODE;
 | 
			
		||||
		open OUT, ">${CATOP}/index.txt";
 | 
			
		||||
		close OUT;
 | 
			
		||||
		open OUT, ">${CATOP}/crlnumber";
 | 
			
		||||
		print OUT "01\n";
 | 
			
		||||
		close OUT;
 | 
			
		||||
	    }
 | 
			
		||||
	    if ( ! -f "${CATOP}/private/$CAKEY" ) {
 | 
			
		||||
		print "CA certificate filename (or enter to create)\n";
 | 
			
		||||
@@ -113,6 +116,7 @@ foreach (@ARGV) {
 | 
			
		||||
		    system ("$CA -create_serial " .
 | 
			
		||||
			"-out ${CATOP}/$CACERT $CADAYS -batch " . 
 | 
			
		||||
			"-keyfile ${CATOP}/private/$CAKEY -selfsign " .
 | 
			
		||||
			"-extensions v3_ca " .
 | 
			
		||||
			"-infiles ${CATOP}/$CAREQ ");
 | 
			
		||||
		    $RET=$?;
 | 
			
		||||
		}
 | 
			
		||||
@@ -120,10 +124,11 @@ foreach (@ARGV) {
 | 
			
		||||
	} elsif (/^-pkcs12$/) {
 | 
			
		||||
	    my $cname = $ARGV[1];
 | 
			
		||||
	    $cname = "My Certificate" unless defined $cname;
 | 
			
		||||
	    system ("$PKCS12 -in newcert.pem -inkey newreq.pem " .
 | 
			
		||||
	    system ("$PKCS12 -in newcert.pem -inkey newkey.pem " .
 | 
			
		||||
			"-certfile ${CATOP}/$CACERT -out newcert.p12 " .
 | 
			
		||||
			"-export -name \"$cname\"");
 | 
			
		||||
	    $RET=$?;
 | 
			
		||||
	    print "PKCS #12 file is in newcert.p12\n";
 | 
			
		||||
	    exit $RET;
 | 
			
		||||
	} elsif (/^-xsign$/) {
 | 
			
		||||
	    system ("$CA -policy policy_anything -infiles newreq.pem");
 | 
			
		||||
 
 | 
			
		||||
@@ -53,15 +53,15 @@ case $i in
 | 
			
		||||
    ;;
 | 
			
		||||
-newcert) 
 | 
			
		||||
    # create a certificate
 | 
			
		||||
    $REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS
 | 
			
		||||
    $REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS
 | 
			
		||||
    RET=$?
 | 
			
		||||
    echo "Certificate (and private key) is in newreq.pem"
 | 
			
		||||
    echo "Certificate is in newcert.pem, private key is in newkey.pem"
 | 
			
		||||
    ;;
 | 
			
		||||
-newreq) 
 | 
			
		||||
    # create a certificate request
 | 
			
		||||
    $REQ -new -keyout newreq.pem -out newreq.pem $DAYS
 | 
			
		||||
    $REQ -new -keyout newkey.pem -out newreq.pem $DAYS
 | 
			
		||||
    RET=$?
 | 
			
		||||
    echo "Request (and private key) is in newreq.pem"
 | 
			
		||||
    echo "Request is in newreq.pem, private key is in newkey.pem"
 | 
			
		||||
    ;;
 | 
			
		||||
-newca)     
 | 
			
		||||
    # if explicitly asked for or it doesn't exist then setup the directory
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										879
									
								
								apps/Makefile
									
									
									
									
									
								
							
							
						
						
									
										879
									
								
								apps/Makefile
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										26
									
								
								apps/apps.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								apps/apps.c
									
									
									
									
									
								
							@@ -125,7 +125,9 @@
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
#include <openssl/engine.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <openssl/bn.h>
 | 
			
		||||
 | 
			
		||||
#define NON_MAIN
 | 
			
		||||
@@ -374,10 +376,17 @@ int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
 | 
			
		||||
		/* The start of something good :-) */
 | 
			
		||||
		if (num >= arg->count)
 | 
			
		||||
			{
 | 
			
		||||
			arg->count+=20;
 | 
			
		||||
			arg->data=(char **)OPENSSL_realloc(arg->data,
 | 
			
		||||
				sizeof(char *)*arg->count);
 | 
			
		||||
			if (argc == 0) return(0);
 | 
			
		||||
			char **tmp_p;
 | 
			
		||||
			int tlen = arg->count + 20;
 | 
			
		||||
			tmp_p = (char **)OPENSSL_realloc(arg->data,
 | 
			
		||||
				sizeof(char *)*tlen);
 | 
			
		||||
			if (tmp_p == NULL)
 | 
			
		||||
				return 0;
 | 
			
		||||
			arg->data  = tmp_p;
 | 
			
		||||
			arg->count = tlen;
 | 
			
		||||
			/* initialize newly allocated data */
 | 
			
		||||
			for (i = num; i < arg->count; i++)
 | 
			
		||||
				arg->data[i] = NULL;
 | 
			
		||||
			}
 | 
			
		||||
		arg->data[num++]=p;
 | 
			
		||||
 | 
			
		||||
@@ -1604,8 +1613,9 @@ int rotate_serial(char *serialfile, char *new_suffix, char *old_suffix)
 | 
			
		||||
		{
 | 
			
		||||
		if (errno != ENOENT 
 | 
			
		||||
#ifdef ENOTDIR
 | 
			
		||||
			&& errno != ENOTDIR)
 | 
			
		||||
			&& errno != ENOTDIR
 | 
			
		||||
#endif
 | 
			
		||||
		   )
 | 
			
		||||
			goto err;
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
@@ -1893,8 +1903,9 @@ int rotate_index(const char *dbfile, const char *new_suffix, const char *old_suf
 | 
			
		||||
		{
 | 
			
		||||
		if (errno != ENOENT 
 | 
			
		||||
#ifdef ENOTDIR
 | 
			
		||||
			&& errno != ENOTDIR)
 | 
			
		||||
			&& errno != ENOTDIR
 | 
			
		||||
#endif
 | 
			
		||||
		   )
 | 
			
		||||
			goto err;
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
@@ -1929,8 +1940,9 @@ int rotate_index(const char *dbfile, const char *new_suffix, const char *old_suf
 | 
			
		||||
		{
 | 
			
		||||
		if (errno != ENOENT 
 | 
			
		||||
#ifdef ENOTDIR
 | 
			
		||||
			&& errno != ENOTDIR)
 | 
			
		||||
			&& errno != ENOTDIR
 | 
			
		||||
#endif
 | 
			
		||||
		   )
 | 
			
		||||
			goto err;
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
 
 | 
			
		||||
@@ -146,9 +146,11 @@ int WIN32_rename(const char *oldname,const char *newname);
 | 
			
		||||
#ifndef NON_MAIN
 | 
			
		||||
CONF *config=NULL;
 | 
			
		||||
BIO *bio_err=NULL;
 | 
			
		||||
int in_FIPS_mode=0;
 | 
			
		||||
#else
 | 
			
		||||
extern CONF *config;
 | 
			
		||||
extern BIO *bio_err;
 | 
			
		||||
extern int in_FIPS_mode;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
@@ -157,6 +159,7 @@ extern BIO *bio_err;
 | 
			
		||||
extern CONF *config;
 | 
			
		||||
extern char *default_config_file;
 | 
			
		||||
extern BIO *bio_err;
 | 
			
		||||
extern int in_FIPS_mode;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -196,7 +196,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
bad:
 | 
			
		||||
		BIO_printf(bio_err,"%s [options] <infile\n",prog);
 | 
			
		||||
		BIO_printf(bio_err,"where options are\n");
 | 
			
		||||
		BIO_printf(bio_err," -inform arg   input format - one of DER TXT PEM\n");
 | 
			
		||||
		BIO_printf(bio_err," -inform arg   input format - one of DER PEM\n");
 | 
			
		||||
		BIO_printf(bio_err," -in arg       input file\n");
 | 
			
		||||
		BIO_printf(bio_err," -out arg      output file (output format is always DER\n");
 | 
			
		||||
		BIO_printf(bio_err," -noout arg    don't produce any output\n");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										58
									
								
								apps/ca.c
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								apps/ca.c
									
									
									
									
									
								
							@@ -105,6 +105,9 @@
 | 
			
		||||
 | 
			
		||||
#define ENV_DEFAULT_CA		"default_ca"
 | 
			
		||||
 | 
			
		||||
#define STRING_MASK	"string_mask"
 | 
			
		||||
#define UTF8_IN			"utf8"
 | 
			
		||||
 | 
			
		||||
#define ENV_DIR			"dir"
 | 
			
		||||
#define ENV_CERTS		"certs"
 | 
			
		||||
#define ENV_CRL_DIR		"crl_dir"
 | 
			
		||||
@@ -174,6 +177,7 @@ static const char *ca_usage[]={
 | 
			
		||||
" -msie_hack      - msie modifications to handle all those universal strings\n",
 | 
			
		||||
" -revoke file    - Revoke a certificate (given in file)\n",
 | 
			
		||||
" -subj arg       - Use arg instead of request's subject\n",
 | 
			
		||||
" -utf8           - input characters are UTF8 (default ASCII)\n",
 | 
			
		||||
" -multivalue-rdn - enable support for multivalued RDNs\n",
 | 
			
		||||
" -extensions ..  - Extension section (override value in config file)\n",
 | 
			
		||||
" -extfile file   - Configuration file with X509v3 extentions to add\n",
 | 
			
		||||
@@ -195,27 +199,27 @@ extern int EF_ALIGNMENT;
 | 
			
		||||
static void lookup_fail(const char *name, const char *tag);
 | 
			
		||||
static int certify(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
 | 
			
		||||
		   const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,CA_DB *db,
 | 
			
		||||
		   BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate,
 | 
			
		||||
		   BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate,
 | 
			
		||||
		   char *enddate, long days, int batch, char *ext_sect, CONF *conf,
 | 
			
		||||
		   int verbose, unsigned long certopt, unsigned long nameopt,
 | 
			
		||||
		   int default_op, int ext_copy, int selfsign);
 | 
			
		||||
static int certify_cert(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
 | 
			
		||||
			const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
 | 
			
		||||
			CA_DB *db, BIGNUM *serial, char *subj, int multirdn, int email_dn,
 | 
			
		||||
			CA_DB *db, BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn,
 | 
			
		||||
			char *startdate, char *enddate, long days, int batch,
 | 
			
		||||
			char *ext_sect, CONF *conf,int verbose, unsigned long certopt,
 | 
			
		||||
			unsigned long nameopt, int default_op, int ext_copy,
 | 
			
		||||
			ENGINE *e);
 | 
			
		||||
static int certify_spkac(X509 **xret, char *infile,EVP_PKEY *pkey,X509 *x509,
 | 
			
		||||
			 const EVP_MD *dgst,STACK_OF(CONF_VALUE) *policy,
 | 
			
		||||
			 CA_DB *db, BIGNUM *serial,char *subj, int multirdn, int email_dn,
 | 
			
		||||
			 CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn, int email_dn,
 | 
			
		||||
			 char *startdate, char *enddate, long days, char *ext_sect,
 | 
			
		||||
			 CONF *conf, int verbose, unsigned long certopt, 
 | 
			
		||||
			 unsigned long nameopt, int default_op, int ext_copy);
 | 
			
		||||
static int fix_data(int nid, int *type);
 | 
			
		||||
static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext);
 | 
			
		||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
 | 
			
		||||
	STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj, int multirdn,
 | 
			
		||||
	STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,char *subj,unsigned long chtype, int multirdn,
 | 
			
		||||
	int email_dn, char *startdate, char *enddate, long days, int batch,
 | 
			
		||||
       	int verbose, X509_REQ *req, char *ext_sect, CONF *conf,
 | 
			
		||||
	unsigned long certopt, unsigned long nameopt, int default_op,
 | 
			
		||||
@@ -275,6 +279,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *extensions=NULL;
 | 
			
		||||
	char *extfile=NULL;
 | 
			
		||||
	char *subj=NULL;
 | 
			
		||||
	unsigned long chtype = MBSTRING_ASC;
 | 
			
		||||
	int multirdn = 0;
 | 
			
		||||
	char *tmp_email_dn=NULL;
 | 
			
		||||
	char *crl_ext=NULL;
 | 
			
		||||
@@ -356,6 +361,8 @@ EF_ALIGNMENT=0;
 | 
			
		||||
			subj= *(++argv);
 | 
			
		||||
			/* preserve=1; */
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-utf8") == 0)
 | 
			
		||||
			chtype = MBSTRING_UTF8;
 | 
			
		||||
		else if (strcmp(*argv,"-create_serial") == 0)
 | 
			
		||||
			create_ser = 1;
 | 
			
		||||
		else if (strcmp(*argv,"-multivalue-rdn") == 0)
 | 
			
		||||
@@ -645,6 +652,23 @@ bad:
 | 
			
		||||
		ERR_clear_error();
 | 
			
		||||
	app_RAND_load_file(randfile, bio_err, 0);
 | 
			
		||||
 | 
			
		||||
	f = NCONF_get_string(conf, section, STRING_MASK);
 | 
			
		||||
	if (!f)
 | 
			
		||||
		ERR_clear_error();
 | 
			
		||||
 | 
			
		||||
	if(f && !ASN1_STRING_set_default_mask_asc(f)) {
 | 
			
		||||
		BIO_printf(bio_err, "Invalid global string mask setting %s\n", f);
 | 
			
		||||
		goto err;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (chtype != MBSTRING_UTF8){
 | 
			
		||||
		f = NCONF_get_string(conf, section, UTF8_IN);
 | 
			
		||||
		if (!f)
 | 
			
		||||
			ERR_clear_error();
 | 
			
		||||
		else if (!strcmp(f, "yes"))
 | 
			
		||||
			chtype = MBSTRING_UTF8;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	db_attr.unique_subject = 1;
 | 
			
		||||
	p = NCONF_get_string(conf, section, ENV_UNIQUE_SUBJECT);
 | 
			
		||||
	if (p)
 | 
			
		||||
@@ -945,7 +969,6 @@ bad:
 | 
			
		||||
			if (verbose) BIO_printf(bio_err,
 | 
			
		||||
				"Done. %d entries marked as expired\n",i); 
 | 
			
		||||
	      		}
 | 
			
		||||
			goto err;
 | 
			
		||||
	  	}
 | 
			
		||||
 | 
			
		||||
 	/*****************************************************************/
 | 
			
		||||
@@ -1135,7 +1158,7 @@ bad:
 | 
			
		||||
			{
 | 
			
		||||
			total++;
 | 
			
		||||
			j=certify_spkac(&x,spkac_file,pkey,x509,dgst,attribs,db,
 | 
			
		||||
				serial,subj,multirdn,email_dn,startdate,enddate,days,extensions,
 | 
			
		||||
				serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,extensions,
 | 
			
		||||
				conf,verbose,certopt,nameopt,default_op,ext_copy);
 | 
			
		||||
			if (j < 0) goto err;
 | 
			
		||||
			if (j > 0)
 | 
			
		||||
@@ -1159,7 +1182,7 @@ bad:
 | 
			
		||||
			{
 | 
			
		||||
			total++;
 | 
			
		||||
			j=certify_cert(&x,ss_cert_file,pkey,x509,dgst,attribs,
 | 
			
		||||
				db,serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				extensions,conf,verbose, certopt, nameopt,
 | 
			
		||||
				default_op, ext_copy, e);
 | 
			
		||||
			if (j < 0) goto err;
 | 
			
		||||
@@ -1179,7 +1202,7 @@ bad:
 | 
			
		||||
			{
 | 
			
		||||
			total++;
 | 
			
		||||
			j=certify(&x,infile,pkey,x509p,dgst,attribs,db,
 | 
			
		||||
				serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				extensions,conf,verbose, certopt, nameopt,
 | 
			
		||||
				default_op, ext_copy, selfsign);
 | 
			
		||||
			if (j < 0) goto err;
 | 
			
		||||
@@ -1199,7 +1222,7 @@ bad:
 | 
			
		||||
			{
 | 
			
		||||
			total++;
 | 
			
		||||
			j=certify(&x,argv[i],pkey,x509p,dgst,attribs,db,
 | 
			
		||||
				serial,subj,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				serial,subj,chtype,multirdn,email_dn,startdate,enddate,days,batch,
 | 
			
		||||
				extensions,conf,verbose, certopt, nameopt,
 | 
			
		||||
				default_op, ext_copy, selfsign);
 | 
			
		||||
			if (j < 0) goto err;
 | 
			
		||||
@@ -1497,6 +1520,7 @@ err:
 | 
			
		||||
	if (x509) X509_free(x509);
 | 
			
		||||
	X509_CRL_free(crl);
 | 
			
		||||
	NCONF_free(conf);
 | 
			
		||||
	NCONF_free(extconf);
 | 
			
		||||
	OBJ_cleanup();
 | 
			
		||||
	apps_shutdown();
 | 
			
		||||
	OPENSSL_EXIT(ret);
 | 
			
		||||
@@ -1509,7 +1533,7 @@ static void lookup_fail(const char *name, const char *tag)
 | 
			
		||||
 | 
			
		||||
static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
	     const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
 | 
			
		||||
	     BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     long days, int batch, char *ext_sect, CONF *lconf, int verbose,
 | 
			
		||||
	     unsigned long certopt, unsigned long nameopt, int default_op,
 | 
			
		||||
	     int ext_copy, int selfsign)
 | 
			
		||||
@@ -1565,7 +1589,7 @@ static int certify(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
	else
 | 
			
		||||
		BIO_printf(bio_err,"Signature ok\n");
 | 
			
		||||
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj, multirdn, email_dn,
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn, email_dn,
 | 
			
		||||
		startdate,enddate,days,batch,verbose,req,ext_sect,lconf,
 | 
			
		||||
		certopt, nameopt, default_op, ext_copy, selfsign);
 | 
			
		||||
 | 
			
		||||
@@ -1577,7 +1601,7 @@ err:
 | 
			
		||||
 | 
			
		||||
static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
	     const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
 | 
			
		||||
	     BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     BIGNUM *serial, char *subj, unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     long days, int batch, char *ext_sect, CONF *lconf, int verbose,
 | 
			
		||||
	     unsigned long certopt, unsigned long nameopt, int default_op,
 | 
			
		||||
	     int ext_copy, ENGINE *e)
 | 
			
		||||
@@ -1619,7 +1643,7 @@ static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
	if ((rreq=X509_to_X509_REQ(req,NULL,EVP_md5())) == NULL)
 | 
			
		||||
		goto err;
 | 
			
		||||
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,multirdn,email_dn,startdate,enddate,
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,
 | 
			
		||||
		days,batch,verbose,rreq,ext_sect,lconf, certopt, nameopt, default_op,
 | 
			
		||||
		ext_copy, 0);
 | 
			
		||||
 | 
			
		||||
@@ -1631,7 +1655,7 @@ err:
 | 
			
		||||
 | 
			
		||||
static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
 | 
			
		||||
	     STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial, char *subj,
 | 
			
		||||
	     int multirdn,
 | 
			
		||||
	     unsigned long chtype, int multirdn,
 | 
			
		||||
	     int email_dn, char *startdate, char *enddate, long days, int batch,
 | 
			
		||||
	     int verbose, X509_REQ *req, char *ext_sect, CONF *lconf,
 | 
			
		||||
	     unsigned long certopt, unsigned long nameopt, int default_op,
 | 
			
		||||
@@ -1664,7 +1688,7 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,
 | 
			
		||||
 | 
			
		||||
	if (subj)
 | 
			
		||||
		{
 | 
			
		||||
		X509_NAME *n = parse_name(subj, MBSTRING_ASC, multirdn);
 | 
			
		||||
		X509_NAME *n = parse_name(subj, chtype, multirdn);
 | 
			
		||||
 | 
			
		||||
		if (!n)
 | 
			
		||||
			{
 | 
			
		||||
@@ -2201,7 +2225,7 @@ static void write_new_certificate(BIO *bp, X509 *x, int output_der, int notext)
 | 
			
		||||
 | 
			
		||||
static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
	     const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,
 | 
			
		||||
	     BIGNUM *serial, char *subj, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,
 | 
			
		||||
	     long days, char *ext_sect, CONF *lconf, int verbose, unsigned long certopt,
 | 
			
		||||
	     unsigned long nameopt, int default_op, int ext_copy)
 | 
			
		||||
	{
 | 
			
		||||
@@ -2342,7 +2366,7 @@ static int certify_spkac(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,
 | 
			
		||||
 | 
			
		||||
	X509_REQ_set_pubkey(req,pktmp);
 | 
			
		||||
	EVP_PKEY_free(pktmp);
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,multirdn,email_dn,startdate,enddate,
 | 
			
		||||
	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,
 | 
			
		||||
		   days,1,verbose,req,ext_sect,lconf, certopt, nameopt, default_op,
 | 
			
		||||
			ext_copy, 0);
 | 
			
		||||
err:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										89
									
								
								apps/dgst.c
									
									
									
									
									
								
							
							
						
						
									
										89
									
								
								apps/dgst.c
									
									
									
									
									
								
							@@ -66,6 +66,7 @@
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/hmac.h>
 | 
			
		||||
 | 
			
		||||
#undef BUFSIZE
 | 
			
		||||
#define BUFSIZE	1024*8
 | 
			
		||||
@@ -75,7 +76,7 @@
 | 
			
		||||
 | 
			
		||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
 | 
			
		||||
	  EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
 | 
			
		||||
	  const char *file);
 | 
			
		||||
	  const char *file,BIO *bmd,const char *hmac_key, int non_fips_allow);
 | 
			
		||||
 | 
			
		||||
int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
@@ -100,13 +101,16 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	EVP_PKEY *sigkey = NULL;
 | 
			
		||||
	unsigned char *sigbuf = NULL;
 | 
			
		||||
	int siglen = 0;
 | 
			
		||||
	unsigned int sig_flags = 0;
 | 
			
		||||
	char *passargin = NULL, *passin = NULL;
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
	char *engine=NULL;
 | 
			
		||||
#endif
 | 
			
		||||
	char *hmac_key=NULL;
 | 
			
		||||
	int non_fips_allow = 0;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
ERR_load_crypto_strings();
 | 
			
		||||
	if ((buf=(unsigned char *)OPENSSL_malloc(BUFSIZE)) == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_printf(bio_err,"out of memory\n");
 | 
			
		||||
@@ -165,6 +169,27 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			keyfile=*(++argv);
 | 
			
		||||
			do_verify = 1;
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-x931") == 0)
 | 
			
		||||
			sig_flags = EVP_MD_CTX_FLAG_PAD_X931;
 | 
			
		||||
		else if (strcmp(*argv,"-pss_saltlen") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			int saltlen;
 | 
			
		||||
			if (--argc < 1) break;
 | 
			
		||||
			saltlen=atoi(*(++argv));
 | 
			
		||||
			if (saltlen == -1)
 | 
			
		||||
				sig_flags = EVP_MD_CTX_FLAG_PSS_MREC;
 | 
			
		||||
			else if (saltlen == -2)
 | 
			
		||||
				sig_flags = EVP_MD_CTX_FLAG_PSS_MDLEN;
 | 
			
		||||
			else if (saltlen < -2 || saltlen >= 0xFFFE)
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err, "Invalid PSS salt length %d\n", saltlen);
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				sig_flags = saltlen;
 | 
			
		||||
			sig_flags <<= 16;
 | 
			
		||||
			sig_flags |= EVP_MD_CTX_FLAG_PAD_PSS;
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-signature") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1) break;
 | 
			
		||||
@@ -188,6 +213,14 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			out_bin = 1;
 | 
			
		||||
		else if (strcmp(*argv,"-d") == 0)
 | 
			
		||||
			debug=1;
 | 
			
		||||
		else if (strcmp(*argv,"-non-fips-allow") == 0)
 | 
			
		||||
			non_fips_allow=1;
 | 
			
		||||
		else if (!strcmp(*argv,"-hmac"))
 | 
			
		||||
			{
 | 
			
		||||
			if (--argc < 1)
 | 
			
		||||
				break;
 | 
			
		||||
			hmac_key=*++argv;
 | 
			
		||||
			}
 | 
			
		||||
		else if ((m=EVP_get_digestbyname(&((*argv)[1]))) != NULL)
 | 
			
		||||
			md=m;
 | 
			
		||||
		else
 | 
			
		||||
@@ -261,7 +294,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_callback(in,BIO_debug_callback);
 | 
			
		||||
		/* needed for windows 3.1 */
 | 
			
		||||
		BIO_set_callback_arg(in,bio_err);
 | 
			
		||||
		BIO_set_callback_arg(in,(char *)bio_err);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if(!app_passwd(bio_err, passargin, NULL, &passin, NULL))
 | 
			
		||||
@@ -341,8 +374,20 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			goto end;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
	if (non_fips_allow)
 | 
			
		||||
		{
 | 
			
		||||
		EVP_MD_CTX *md_ctx;
 | 
			
		||||
		BIO_get_md_ctx(bmd,&md_ctx);
 | 
			
		||||
		EVP_MD_CTX_set_flags(md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (sig_flags)
 | 
			
		||||
		{
 | 
			
		||||
		EVP_MD_CTX *md_ctx;
 | 
			
		||||
		BIO_get_md_ctx(bmd,&md_ctx);
 | 
			
		||||
		EVP_MD_CTX_set_flags(md_ctx, sig_flags);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	/* we use md as a filter, reading from 'in' */
 | 
			
		||||
	if (!BIO_set_md(bmd,md))
 | 
			
		||||
@@ -358,7 +403,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_fp(in,stdin,BIO_NOCLOSE);
 | 
			
		||||
		err=do_fp(out, buf,inp,separator, out_bin, sigkey, sigbuf,
 | 
			
		||||
			  siglen,"","(stdin)");
 | 
			
		||||
			  siglen,"","(stdin)",bmd,hmac_key,non_fips_allow);
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
@@ -376,14 +421,15 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				}
 | 
			
		||||
			if(!out_bin)
 | 
			
		||||
				{
 | 
			
		||||
				size_t len = strlen(name)+strlen(argv[i])+5;
 | 
			
		||||
				size_t len = strlen(name)+strlen(argv[i])+(hmac_key ? 5 : 0)+5;
 | 
			
		||||
				tmp=tofree=OPENSSL_malloc(len);
 | 
			
		||||
				BIO_snprintf(tmp,len,"%s(%s)= ",name,argv[i]);
 | 
			
		||||
				BIO_snprintf(tmp,len,"%s%s(%s)= ",
 | 
			
		||||
							 hmac_key ? "HMAC-" : "",name,argv[i]);
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				tmp="";
 | 
			
		||||
			r=do_fp(out,buf,inp,separator,out_bin,sigkey,sigbuf,
 | 
			
		||||
				siglen,tmp,argv[i]);
 | 
			
		||||
				siglen,tmp,argv[i],bmd,hmac_key,non_fips_allow);
 | 
			
		||||
			if(r)
 | 
			
		||||
			    err=r;
 | 
			
		||||
			if(tofree)
 | 
			
		||||
@@ -410,11 +456,23 @@ end:
 | 
			
		||||
 | 
			
		||||
int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
 | 
			
		||||
	  EVP_PKEY *key, unsigned char *sigin, int siglen, const char *title,
 | 
			
		||||
	  const char *file)
 | 
			
		||||
	  const char *file,BIO *bmd,const char *hmac_key,int non_fips_allow)
 | 
			
		||||
	{
 | 
			
		||||
	int len;
 | 
			
		||||
	unsigned int len;
 | 
			
		||||
	int i;
 | 
			
		||||
	EVP_MD_CTX *md_ctx;
 | 
			
		||||
	HMAC_CTX hmac_ctx;
 | 
			
		||||
 | 
			
		||||
	if (hmac_key)
 | 
			
		||||
		{
 | 
			
		||||
		EVP_MD *md;
 | 
			
		||||
 | 
			
		||||
		BIO_get_md(bmd,&md);
 | 
			
		||||
		HMAC_CTX_init(&hmac_ctx);
 | 
			
		||||
		HMAC_Init_ex(&hmac_ctx,hmac_key,strlen(hmac_key),md, NULL);
 | 
			
		||||
		BIO_get_md_ctx(bmd,&md_ctx);
 | 
			
		||||
		BIO_set_md_ctx(bmd,&hmac_ctx.md_ctx);
 | 
			
		||||
		}
 | 
			
		||||
	for (;;)
 | 
			
		||||
		{
 | 
			
		||||
		i=BIO_read(bp,(char *)buf,BUFSIZE);
 | 
			
		||||
@@ -457,6 +515,11 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
 | 
			
		||||
			return 1;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	else if(hmac_key)
 | 
			
		||||
		{
 | 
			
		||||
		HMAC_Final(&hmac_ctx,buf,&len);
 | 
			
		||||
		HMAC_CTX_cleanup(&hmac_ctx);
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		len=BIO_gets(bp,(char *)buf,BUFSIZE);
 | 
			
		||||
 | 
			
		||||
@@ -464,7 +527,7 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
 | 
			
		||||
	else 
 | 
			
		||||
		{
 | 
			
		||||
		BIO_write(out,title,strlen(title));
 | 
			
		||||
		for (i=0; i<len; i++)
 | 
			
		||||
		for (i=0; i<(int)len; i++)
 | 
			
		||||
			{
 | 
			
		||||
			if (sep && (i != 0))
 | 
			
		||||
				BIO_printf(out, ":");
 | 
			
		||||
@@ -472,6 +535,10 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(out, "\n");
 | 
			
		||||
		}
 | 
			
		||||
	if (hmac_key)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_md_ctx(bmd,md_ctx);
 | 
			
		||||
		}
 | 
			
		||||
	return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>	/* for OPENSSL_NO_DH */
 | 
			
		||||
#ifndef OPENSSL_NO_DH
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -109,6 +109,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>	/* for OPENSSL_NO_DH */
 | 
			
		||||
#ifndef OPENSSL_NO_DH
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								apps/dsa.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								apps/dsa.c
									
									
									
									
									
								
							@@ -56,6 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>	/* for OPENSSL_NO_DSA */
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
@@ -83,6 +84,10 @@
 | 
			
		||||
 * -aes128	- encrypt output if PEM format
 | 
			
		||||
 * -aes192	- encrypt output if PEM format
 | 
			
		||||
 * -aes256	- encrypt output if PEM format
 | 
			
		||||
 * -camellia128 - encrypt output if PEM format
 | 
			
		||||
 * -camellia192 - encrypt output if PEM format
 | 
			
		||||
 * -camellia256 - encrypt output if PEM format
 | 
			
		||||
 * -seed        - encrypt output if PEM format
 | 
			
		||||
 * -text	- print a text version
 | 
			
		||||
 * -modulus	- print the DSA public key
 | 
			
		||||
 */
 | 
			
		||||
@@ -210,6 +215,13 @@ bad:
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		BIO_printf(bio_err," -seed           encrypt PEM output with cbc seed\n");
 | 
			
		||||
#endif
 | 
			
		||||
		BIO_printf(bio_err," -text           print the key in text\n");
 | 
			
		||||
		BIO_printf(bio_err," -noout          don't print key out\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>	/* for OPENSSL_NO_DSA */
 | 
			
		||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
 | 
			
		||||
 * deprecated functions for openssl-internal code */
 | 
			
		||||
#ifdef OPENSSL_NO_DEPRECATED
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
#ifndef OPENSSL_NO_EC
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
@@ -346,7 +347,10 @@ bad:
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
	if (noout) 
 | 
			
		||||
		{
 | 
			
		||||
		ret = 0;
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	BIO_printf(bio_err, "writing EC key\n");
 | 
			
		||||
	if (outformat == FORMAT_ASN1) 
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,8 @@
 | 
			
		||||
 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
#ifndef OPENSSL_NO_EC
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/enc.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/enc.c
									
									
									
									
									
								
							@@ -127,6 +127,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	char *engine = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
	const EVP_MD *dgst=NULL;
 | 
			
		||||
	int non_fips_allow = 0;
 | 
			
		||||
 | 
			
		||||
	apps_startup();
 | 
			
		||||
 | 
			
		||||
@@ -261,6 +262,8 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			md= *(++argv);
 | 
			
		||||
			}
 | 
			
		||||
		else if (strcmp(*argv,"-non-fips-allow") == 0)
 | 
			
		||||
			non_fips_allow = 1;
 | 
			
		||||
		else if	((argv[0][0] == '-') &&
 | 
			
		||||
			((c=EVP_get_cipherbyname(&(argv[0][1]))) != NULL))
 | 
			
		||||
			{
 | 
			
		||||
@@ -314,7 +317,10 @@ bad:
 | 
			
		||||
 | 
			
		||||
	if (dgst == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		dgst = EVP_md5();
 | 
			
		||||
		if (in_FIPS_mode)
 | 
			
		||||
			dgst = EVP_sha1();
 | 
			
		||||
		else
 | 
			
		||||
			dgst = EVP_md5();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (bufsize != NULL)
 | 
			
		||||
@@ -340,7 +346,7 @@ bad:
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		/* It must be large enough for a base64 encoded line */
 | 
			
		||||
		if (n < 80) n=80;
 | 
			
		||||
		if (base64 && n < 80) n=80;
 | 
			
		||||
 | 
			
		||||
		bsize=(int)n;
 | 
			
		||||
		if (verbose) BIO_printf(bio_err,"bufsize=%d\n",bsize);
 | 
			
		||||
@@ -365,12 +371,16 @@ bad:
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_callback(in,BIO_debug_callback);
 | 
			
		||||
		BIO_set_callback(out,BIO_debug_callback);
 | 
			
		||||
		BIO_set_callback_arg(in,bio_err);
 | 
			
		||||
		BIO_set_callback_arg(out,bio_err);
 | 
			
		||||
		BIO_set_callback_arg(in,(char *)bio_err);
 | 
			
		||||
		BIO_set_callback_arg(out,(char *)bio_err);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (inf == NULL)
 | 
			
		||||
	        {
 | 
			
		||||
		if (bufsize != NULL)
 | 
			
		||||
			setvbuf(stdin, (char *)NULL, _IONBF, 0);
 | 
			
		||||
		BIO_set_fp(in,stdin,BIO_NOCLOSE);
 | 
			
		||||
	        }
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		if (BIO_read_filename(in,inf) <= 0)
 | 
			
		||||
@@ -421,6 +431,8 @@ bad:
 | 
			
		||||
	if (outf == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_set_fp(out,stdout,BIO_NOCLOSE);
 | 
			
		||||
		if (bufsize != NULL)
 | 
			
		||||
			setvbuf(stdout, (char *)NULL, _IONBF, 0);
 | 
			
		||||
#ifdef OPENSSL_SYS_VMS
 | 
			
		||||
		{
 | 
			
		||||
		BIO *tmpbio = BIO_new(BIO_f_linebuffer());
 | 
			
		||||
@@ -447,7 +459,7 @@ bad:
 | 
			
		||||
		if (debug)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_set_callback(b64,BIO_debug_callback);
 | 
			
		||||
			BIO_set_callback_arg(b64,bio_err);
 | 
			
		||||
			BIO_set_callback_arg(b64,(char *)bio_err);
 | 
			
		||||
			}
 | 
			
		||||
		if (olb64)
 | 
			
		||||
			BIO_set_flags(b64,BIO_FLAGS_BASE64_NO_NL);
 | 
			
		||||
@@ -543,6 +555,11 @@ bad:
 | 
			
		||||
		 */
 | 
			
		||||
 | 
			
		||||
		BIO_get_cipher_ctx(benc, &ctx);
 | 
			
		||||
 | 
			
		||||
		if (non_fips_allow)
 | 
			
		||||
			EVP_CIPHER_CTX_set_flags(ctx,
 | 
			
		||||
				EVP_CIPH_FLAG_NON_FIPS_ALLOW);
 | 
			
		||||
 | 
			
		||||
		if (!EVP_CipherInit_ex(ctx, cipher, NULL, NULL, NULL, enc))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err, "Error setting cipher %s\n",
 | 
			
		||||
@@ -565,7 +582,7 @@ bad:
 | 
			
		||||
		if (debug)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_set_callback(benc,BIO_debug_callback);
 | 
			
		||||
			BIO_set_callback_arg(benc,bio_err);
 | 
			
		||||
			BIO_set_callback_arg(benc,(char *)bio_err);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		if (printkey)
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
 | 
			
		||||
 * deprecated functions for openssl-internal code */
 | 
			
		||||
#ifdef OPENSSL_NO_DEPRECATED
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>	/* for OPENSSL_NO_DSA */
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -139,6 +140,10 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		else if (strcmp(*argv,"-idea") == 0)
 | 
			
		||||
			enc=EVP_idea_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		else if (strcmp(*argv,"-seed") == 0)
 | 
			
		||||
			enc=EVP_seed_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		else if (strcmp(*argv,"-aes128") == 0)
 | 
			
		||||
			enc=EVP_aes_128_cbc();
 | 
			
		||||
@@ -146,6 +151,14 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			enc=EVP_aes_192_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-aes256") == 0)
 | 
			
		||||
			enc=EVP_aes_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		else if (strcmp(*argv,"-camellia128") == 0)
 | 
			
		||||
			enc=EVP_camellia_128_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-camellia192") == 0)
 | 
			
		||||
			enc=EVP_camellia_192_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-camellia256") == 0)
 | 
			
		||||
			enc=EVP_camellia_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
		else if (**argv != '-' && dsaparams == NULL)
 | 
			
		||||
			{
 | 
			
		||||
@@ -169,10 +182,18 @@ bad:
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
		BIO_printf(bio_err," -idea     - encrypt the generated key with IDEA in cbc mode\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		BIO_printf(bio_err," -seed\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc seed\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
		BIO_printf(bio_err," -engine e - use engine e, possibly a hardware device.\n");
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
/* Until the key-gen callbacks are modified to use newer prototypes, we allow
 | 
			
		||||
 * deprecated functions for openssl-internal code */
 | 
			
		||||
#ifdef OPENSSL_NO_DEPRECATED
 | 
			
		||||
@@ -94,6 +95,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	int i,num=DEFBITS;
 | 
			
		||||
	long l;
 | 
			
		||||
	int use_x931 = 0;
 | 
			
		||||
	const EVP_CIPHER *enc=NULL;
 | 
			
		||||
	unsigned long f4=RSA_F4;
 | 
			
		||||
	char *outfile=NULL;
 | 
			
		||||
@@ -137,6 +139,8 @@ 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,"-x931") == 0)
 | 
			
		||||
			use_x931 = 1;
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
		else if (strcmp(*argv,"-engine") == 0)
 | 
			
		||||
			{
 | 
			
		||||
@@ -159,6 +163,10 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		else if (strcmp(*argv,"-idea") == 0)
 | 
			
		||||
			enc=EVP_idea_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		else if (strcmp(*argv,"-seed") == 0)
 | 
			
		||||
			enc=EVP_seed_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		else if (strcmp(*argv,"-aes128") == 0)
 | 
			
		||||
			enc=EVP_aes_128_cbc();
 | 
			
		||||
@@ -166,6 +174,14 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			enc=EVP_aes_192_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-aes256") == 0)
 | 
			
		||||
			enc=EVP_aes_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		else if (strcmp(*argv,"-camellia128") == 0)
 | 
			
		||||
			enc=EVP_camellia_128_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-camellia192") == 0)
 | 
			
		||||
			enc=EVP_camellia_192_cbc();
 | 
			
		||||
		else if (strcmp(*argv,"-camellia256") == 0)
 | 
			
		||||
			enc=EVP_camellia_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
		else if (strcmp(*argv,"-passout") == 0)
 | 
			
		||||
			{
 | 
			
		||||
@@ -186,9 +202,17 @@ bad:
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
		BIO_printf(bio_err," -idea           encrypt the generated key with IDEA in cbc mode\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		BIO_printf(bio_err," -seed\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc seed\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
		BIO_printf(bio_err," -out file       output the key to 'file\n");
 | 
			
		||||
		BIO_printf(bio_err," -passout arg    output file pass phrase source\n");
 | 
			
		||||
@@ -245,7 +269,17 @@ bad:
 | 
			
		||||
	BIO_printf(bio_err,"Generating RSA private key, %d bit long modulus\n",
 | 
			
		||||
		num);
 | 
			
		||||
 | 
			
		||||
	if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
 | 
			
		||||
	if (use_x931)
 | 
			
		||||
		{
 | 
			
		||||
		BIGNUM *pubexp;
 | 
			
		||||
		pubexp = BN_new();
 | 
			
		||||
		if (!BN_set_word(pubexp, f4))
 | 
			
		||||
			goto err;
 | 
			
		||||
		if (!RSA_X931_generate_key_ex(rsa, num, pubexp, &cb))
 | 
			
		||||
			goto err;
 | 
			
		||||
		BN_free(pubexp);
 | 
			
		||||
		}
 | 
			
		||||
	else if(!BN_set_word(bn, f4) || !RSA_generate_key_ex(rsa, num, bn, &cb))
 | 
			
		||||
		goto err;
 | 
			
		||||
		
 | 
			
		||||
	app_RAND_write_file(NULL, bio_err);
 | 
			
		||||
 
 | 
			
		||||
@@ -143,26 +143,9 @@ $ LIB_FILES = "VERIFY;ASN1PARS;REQ;DGST;DH;DHPARAM;ENC;PASSWD;GENDH;ERRSTR;"+-
 | 
			
		||||
	      "X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
 | 
			
		||||
	      "S_TIME;APPS;S_CB;S_SOCKET;APP_RAND;VERSION;SESS_ID;"+-
 | 
			
		||||
	      "CIPHERS;NSEQ;PKCS12;PKCS8;SPKAC;SMIME;RAND;ENGINE;OCSP;PRIME"
 | 
			
		||||
$ APP_FILES := OPENSSL,'OBJ_DIR'VERIFY.OBJ,ASN1PARS.OBJ,REQ.OBJ,DGST.OBJ,DH.OBJ,DHPARAM.OBJ,ENC.OBJ,PASSWD.OBJ,GENDH.OBJ,ERRSTR.OBJ,-
 | 
			
		||||
	       CA.OBJ,PKCS7.OBJ,CRL2P7.OBJ,CRL.OBJ,-
 | 
			
		||||
	       RSA.OBJ,RSAUTL.OBJ,DSA.OBJ,DSAPARAM.OBJ,EC.OBJ,ECPARAM.OBJ,-
 | 
			
		||||
	       X509.OBJ,GENRSA.OBJ,GENDSA.OBJ,S_SERVER.OBJ,S_CLIENT.OBJ,SPEED.OBJ,-
 | 
			
		||||
	       S_TIME.OBJ,APPS.OBJ,S_CB.OBJ,S_SOCKET.OBJ,APP_RAND.OBJ,VERSION.OBJ,SESS_ID.OBJ,-
 | 
			
		||||
	       CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ,PKCS8.OBJ,SPKAC.OBJ,SMIME.OBJ,RAND.OBJ,ENGINE.OBJ,OCSP.OBJ,PRIME.OBJ
 | 
			
		||||
$ TCPIP_PROGRAMS = ",,"
 | 
			
		||||
$ IF COMPILER .EQS. "VAXC" THEN -
 | 
			
		||||
     TCPIP_PROGRAMS = ",OPENSSL,"
 | 
			
		||||
$!$ APP_FILES := VERIFY;ASN1PARS;REQ;DGST;DH;ENC;GENDH;ERRSTR;CA;-
 | 
			
		||||
$!	       PKCS7;CRL2P7;CRL;-
 | 
			
		||||
$!	       RSA;DSA;DSAPARAM;-
 | 
			
		||||
$!	       X509;GENRSA;GENDSA;-
 | 
			
		||||
$!	       S_SERVER,'OBJ_DIR'S_SOCKET.OBJ,'OBJ_DIR'S_CB.OBJ;-
 | 
			
		||||
$!	       S_CLIENT,'OBJ_DIR'S_SOCKET.OBJ,'OBJ_DIR'S_CB.OBJ;-
 | 
			
		||||
$!	       SPEED;-
 | 
			
		||||
$!	       S_TIME,'OBJ_DIR'S_CB.OBJ;VERSION;SESS_ID;CIPHERS;NSEQ
 | 
			
		||||
$!$ TCPIP_PROGRAMS = ",,"
 | 
			
		||||
$!$ IF COMPILER .EQS. "VAXC" THEN -
 | 
			
		||||
$!     TCPIP_PROGRAMS = ",S_SERVER,S_CLIENT,SESS_ID,CIPHERS,S_TIME,"
 | 
			
		||||
$!
 | 
			
		||||
$! Setup exceptional compilations
 | 
			
		||||
$!
 | 
			
		||||
 
 | 
			
		||||
@@ -139,6 +139,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	if (!load_config(bio_err, NULL))
 | 
			
		||||
		goto end;
 | 
			
		||||
	SSL_load_error_strings();
 | 
			
		||||
	OpenSSL_add_ssl_algorithms();
 | 
			
		||||
	args = argv + 1;
 | 
			
		||||
	reqnames = sk_new_null();
 | 
			
		||||
	ids = sk_OCSP_CERTID_new_null();
 | 
			
		||||
@@ -726,6 +727,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			BIO_printf(bio_err, "SSL is disabled\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
#endif
 | 
			
		||||
			if (ctx == NULL)
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err, "Error creating SSL context.\n");
 | 
			
		||||
				goto end;
 | 
			
		||||
				}
 | 
			
		||||
			SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
 | 
			
		||||
			sbio = BIO_new_ssl(ctx, 1);
 | 
			
		||||
			cbio = BIO_push(sbio, cbio);
 | 
			
		||||
@@ -1221,7 +1227,7 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
 | 
			
		||||
		return 0;
 | 
			
		||||
	BIO_printf(cbio, http_resp, i2d_OCSP_RESPONSE(resp, NULL));
 | 
			
		||||
	i2d_OCSP_RESPONSE_bio(cbio, resp);
 | 
			
		||||
	BIO_flush(cbio);
 | 
			
		||||
	(void)BIO_flush(cbio);
 | 
			
		||||
	return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -188,7 +188,7 @@ nsComment			= "OpenSSL Generated Certificate"
 | 
			
		||||
 | 
			
		||||
# PKIX recommendations harmless if included in all certificates.
 | 
			
		||||
subjectKeyIdentifier=hash
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer:always
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer
 | 
			
		||||
 | 
			
		||||
# This stuff is for subjectAltName and issuerAltname.
 | 
			
		||||
# Import the email address.
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
/* ====================================================================
 | 
			
		||||
 * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
@@ -147,6 +147,7 @@ char *default_config_file=NULL;
 | 
			
		||||
#ifdef MONOLITH
 | 
			
		||||
CONF *config=NULL;
 | 
			
		||||
BIO *bio_err=NULL;
 | 
			
		||||
int in_FIPS_mode=0;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -232,6 +233,19 @@ int main(int Argc, char *Argv[])
 | 
			
		||||
	arg.data=NULL;
 | 
			
		||||
	arg.count=0;
 | 
			
		||||
 | 
			
		||||
	in_FIPS_mode = 0;
 | 
			
		||||
 | 
			
		||||
#ifdef OPENSSL_FIPS
 | 
			
		||||
	if(getenv("OPENSSL_FIPS")) {
 | 
			
		||||
		if (!FIPS_mode_set(1)) {
 | 
			
		||||
			ERR_load_crypto_strings();
 | 
			
		||||
			ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
 | 
			
		||||
			EXIT(1);
 | 
			
		||||
		}
 | 
			
		||||
		in_FIPS_mode = 1;
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (bio_err == NULL)
 | 
			
		||||
		if ((bio_err=BIO_new(BIO_s_file())) != NULL)
 | 
			
		||||
			BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 | 
			
		||||
@@ -445,7 +459,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
 | 
			
		||||
		for (fp=functions; fp->name != NULL; fp++)
 | 
			
		||||
			{
 | 
			
		||||
			nl=0;
 | 
			
		||||
#ifdef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			if (((i++) % 5) == 0)
 | 
			
		||||
#else
 | 
			
		||||
			if (((i++) % 4) == 0)
 | 
			
		||||
#endif
 | 
			
		||||
				{
 | 
			
		||||
				BIO_printf(bio_err,"\n");
 | 
			
		||||
				nl=1;
 | 
			
		||||
@@ -466,7 +484,11 @@ static int do_cmd(LHASH *prog, int argc, char *argv[])
 | 
			
		||||
					BIO_printf(bio_err,"\nCipher commands (see the `enc' command for more details)\n");
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
#ifdef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			BIO_printf(bio_err,"%-15s",fp->name);
 | 
			
		||||
#else
 | 
			
		||||
			BIO_printf(bio_err,"%-18s",fp->name);
 | 
			
		||||
#endif
 | 
			
		||||
			}
 | 
			
		||||
		BIO_printf(bio_err,"\n\n");
 | 
			
		||||
		ret=0;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,8 @@
 | 
			
		||||
HOME			= .
 | 
			
		||||
RANDFILE		= $ENV::HOME/.rnd
 | 
			
		||||
 | 
			
		||||
# Extra OBJECT IDENTIFIER info:
 | 
			
		||||
#oid_file		= $ENV::HOME/.oid
 | 
			
		||||
oid_section		= new_oids
 | 
			
		||||
# Uncomment out to enable OpenSSL configuration see config(3)
 | 
			
		||||
# openssl_conf = openssl_init
 | 
			
		||||
 | 
			
		||||
# To use this configuration file with the "-extfile" option of the
 | 
			
		||||
# "openssl x509" utility, name here the section containing the
 | 
			
		||||
@@ -19,13 +18,22 @@ oid_section		= new_oids
 | 
			
		||||
# (Alternatively, use a configuration file that has only
 | 
			
		||||
# X.509v3 extensions in its main [= default] section.)
 | 
			
		||||
 | 
			
		||||
[openssl_init]
 | 
			
		||||
# Extra OBJECT IDENTIFIER info:
 | 
			
		||||
oid_section = new_oids
 | 
			
		||||
alg_section = algs
 | 
			
		||||
 | 
			
		||||
[ new_oids ]
 | 
			
		||||
 | 
			
		||||
# We can add new OIDs in here for use by 'ca' and 'req'.
 | 
			
		||||
# We can add new OIDs in here for use by any config aware application
 | 
			
		||||
# Add a simple OID like this:
 | 
			
		||||
# testoid1=1.2.3.4
 | 
			
		||||
# shortname=Long Object Identifier Name, 1.2.3.4
 | 
			
		||||
# Or use config file substitution like this:
 | 
			
		||||
# testoid2=${testoid1}.5.6
 | 
			
		||||
# testoid2=OID2 LONG NAME, ${testoid1}.5.6, OTHER OID
 | 
			
		||||
 | 
			
		||||
[ algs ]
 | 
			
		||||
# Algorithm configuration options. Currently just fips_mode
 | 
			
		||||
fips_mode = no
 | 
			
		||||
 | 
			
		||||
####################################################################
 | 
			
		||||
[ ca ]
 | 
			
		||||
@@ -188,7 +196,7 @@ nsComment			= "OpenSSL Generated Certificate"
 | 
			
		||||
 | 
			
		||||
# PKIX recommendations harmless if included in all certificates.
 | 
			
		||||
subjectKeyIdentifier=hash
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer:always
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer
 | 
			
		||||
 | 
			
		||||
# This stuff is for subjectAltName and issuerAltname.
 | 
			
		||||
# Import the email address.
 | 
			
		||||
 
 | 
			
		||||
@@ -474,7 +474,8 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
 | 
			
		||||
	if ((strlen(passwd) > pw_maxlen))
 | 
			
		||||
		{
 | 
			
		||||
		if (!quiet)
 | 
			
		||||
			BIO_printf(bio_err, "Warning: truncating password to %u characters\n", pw_maxlen);
 | 
			
		||||
			/* XXX: really we should know how to print a size_t, not cast it */
 | 
			
		||||
			BIO_printf(bio_err, "Warning: truncating password to %u characters\n", (unsigned)pw_maxlen);
 | 
			
		||||
		passwd[pw_maxlen] = 0;
 | 
			
		||||
		}
 | 
			
		||||
	assert(strlen(passwd) <= pw_maxlen);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,9 @@
 | 
			
		||||
/* pkcs12.c */
 | 
			
		||||
#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)
 | 
			
		||||
 | 
			
		||||
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
 | 
			
		||||
 * project.
 | 
			
		||||
 */
 | 
			
		||||
/* ====================================================================
 | 
			
		||||
 * Copyright (c) 1999-2002 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
@@ -58,6 +56,9 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -109,7 +110,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
    int maciter = PKCS12_DEFAULT_ITER;
 | 
			
		||||
    int twopass = 0;
 | 
			
		||||
    int keytype = 0;
 | 
			
		||||
    int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
 | 
			
		||||
    int cert_pbe;
 | 
			
		||||
    int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
 | 
			
		||||
    int ret = 1;
 | 
			
		||||
    int macver = 1;
 | 
			
		||||
@@ -126,6 +127,13 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
 | 
			
		||||
    apps_startup();
 | 
			
		||||
 | 
			
		||||
#ifdef OPENSSL_FIPS
 | 
			
		||||
    if (FIPS_mode())
 | 
			
		||||
	cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
 | 
			
		||||
    else
 | 
			
		||||
#endif
 | 
			
		||||
    cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
 | 
			
		||||
 | 
			
		||||
    enc = EVP_des_ede3_cbc();
 | 
			
		||||
    if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);
 | 
			
		||||
 | 
			
		||||
@@ -152,14 +160,22 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
    			cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
 | 
			
		||||
		else if (!strcmp (*args, "-export")) export_cert = 1;
 | 
			
		||||
		else if (!strcmp (*args, "-des")) enc=EVP_des_cbc();
 | 
			
		||||
		else if (!strcmp (*args, "-des3")) enc = EVP_des_ede3_cbc();
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
		else if (!strcmp (*args, "-idea")) enc=EVP_idea_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
		else if (!strcmp (*args, "-des3")) enc = EVP_des_ede3_cbc();
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		else if (!strcmp(*args, "-seed")) enc=EVP_seed_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		else if (!strcmp(*args,"-aes128")) enc=EVP_aes_128_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-aes192")) enc=EVP_aes_192_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-aes256")) enc=EVP_aes_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		else if (!strcmp(*args,"-camellia128")) enc=EVP_camellia_128_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-camellia192")) enc=EVP_camellia_192_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-camellia256")) enc=EVP_camellia_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
		else if (!strcmp (*args, "-noiter")) iter = 1;
 | 
			
		||||
		else if (!strcmp (*args, "-maciter"))
 | 
			
		||||
@@ -174,7 +190,8 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				args++;
 | 
			
		||||
				if (!strcmp(*args, "NONE"))
 | 
			
		||||
					cert_pbe = -1;
 | 
			
		||||
				cert_pbe=OBJ_txt2nid(*args);
 | 
			
		||||
				else
 | 
			
		||||
					cert_pbe=OBJ_txt2nid(*args);
 | 
			
		||||
				if(cert_pbe == NID_undef) {
 | 
			
		||||
					BIO_printf(bio_err,
 | 
			
		||||
						 "Unknown PBE algorithm %s\n", *args);
 | 
			
		||||
@@ -299,9 +316,16 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	BIO_printf (bio_err, "-idea         encrypt private keys with idea\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	BIO_printf (bio_err, "-seed         encrypt private keys with seed\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
	BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
 | 
			
		||||
	BIO_printf (bio_err, "              encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
	BIO_printf (bio_err, "              encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
	BIO_printf (bio_err, "-nodes        don't encrypt private keys\n");
 | 
			
		||||
	BIO_printf (bio_err, "-noiter       don't use encryption iteration\n");
 | 
			
		||||
@@ -525,8 +549,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		    X509_free(sk_X509_value(chain2, 0));
 | 
			
		||||
		    sk_X509_free(chain2);
 | 
			
		||||
		} else {
 | 
			
		||||
			BIO_printf (bio_err, "Error %s getting chain.\n",
 | 
			
		||||
			if (vret >= 0)
 | 
			
		||||
				BIO_printf (bio_err, "Error %s getting chain.\n",
 | 
			
		||||
					X509_verify_cert_error_string(vret));
 | 
			
		||||
			else
 | 
			
		||||
				ERR_print_errors(bio_err);
 | 
			
		||||
			goto export_end;
 | 
			
		||||
		}			
 | 
			
		||||
    	}
 | 
			
		||||
@@ -800,7 +827,7 @@ int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain)
 | 
			
		||||
{
 | 
			
		||||
	X509_STORE_CTX store_ctx;
 | 
			
		||||
	STACK_OF(X509) *chn;
 | 
			
		||||
	int i;
 | 
			
		||||
	int i = 0;
 | 
			
		||||
 | 
			
		||||
	/* FIXME: Should really check the return status of X509_STORE_CTX_init
 | 
			
		||||
	 * for an error, but how that fits into the return value of this
 | 
			
		||||
@@ -808,13 +835,17 @@ int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain)
 | 
			
		||||
	X509_STORE_CTX_init(&store_ctx, store, cert, NULL);
 | 
			
		||||
	if (X509_verify_cert(&store_ctx) <= 0) {
 | 
			
		||||
		i = X509_STORE_CTX_get_error (&store_ctx);
 | 
			
		||||
		if (i == 0)
 | 
			
		||||
			/* avoid returning 0 if X509_verify_cert() did not
 | 
			
		||||
			 * set an appropriate error value in the context */
 | 
			
		||||
			i = -1;
 | 
			
		||||
		chn = NULL;
 | 
			
		||||
		goto err;
 | 
			
		||||
	}
 | 
			
		||||
	chn =  X509_STORE_CTX_get1_chain(&store_ctx);
 | 
			
		||||
	i = 0;
 | 
			
		||||
	*chain = chn;
 | 
			
		||||
	} else
 | 
			
		||||
		chn = X509_STORE_CTX_get1_chain(&store_ctx);
 | 
			
		||||
err:
 | 
			
		||||
	X509_STORE_CTX_cleanup(&store_ctx);
 | 
			
		||||
	*chain = chn;
 | 
			
		||||
	
 | 
			
		||||
	return i;
 | 
			
		||||
}	
 | 
			
		||||
@@ -824,12 +855,14 @@ int alg_print (BIO *x, X509_ALGOR *alg)
 | 
			
		||||
	PBEPARAM *pbe;
 | 
			
		||||
	const unsigned char *p;
 | 
			
		||||
	p = alg->parameter->value.sequence->data;
 | 
			
		||||
	pbe = d2i_PBEPARAM (NULL, &p, alg->parameter->value.sequence->length);
 | 
			
		||||
	pbe = d2i_PBEPARAM(NULL, &p, alg->parameter->value.sequence->length);
 | 
			
		||||
	if (!pbe)
 | 
			
		||||
		return 1;
 | 
			
		||||
	BIO_printf (bio_err, "%s, Iteration %ld\n", 
 | 
			
		||||
		OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)),
 | 
			
		||||
		ASN1_INTEGER_get(pbe->iter));
 | 
			
		||||
	PBEPARAM_free (pbe);
 | 
			
		||||
	return 0;
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Load all certificates from a given file */
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
 | 
			
		||||
    BN_print(bio_out,bn);
 | 
			
		||||
    BIO_printf(bio_out," is %sprime\n",
 | 
			
		||||
	       BN_is_prime(bn,checks,NULL,NULL,NULL) ? "" : "not ");
 | 
			
		||||
	       BN_is_prime_ex(bn,checks,NULL,NULL) ? "" : "not ");
 | 
			
		||||
 | 
			
		||||
    BN_free(bn);
 | 
			
		||||
    BIO_free_all(bio_out);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										33
									
								
								apps/progs.h
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								apps/progs.h
									
									
									
									
									
								
							@@ -165,6 +165,24 @@ FUNCTION functions[] = {
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"aes-256-ecb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-128-cbc",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-128-ecb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-192-cbc",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-192-ecb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-256-cbc",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"camellia-256-ecb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"base64",enc_main},
 | 
			
		||||
#ifndef OPENSSL_NO_DES
 | 
			
		||||
@@ -179,6 +197,9 @@ FUNCTION functions[] = {
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"idea",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"seed",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC4
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"rc4",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
@@ -245,6 +266,18 @@ FUNCTION functions[] = {
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"idea-ofb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"seed-cbc",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"seed-ecb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"seed-cfb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"seed-ofb",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
	{FUNC_TYPE_CIPHER,"rc2-cbc",enc_main},
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -57,14 +57,18 @@ foreach (
 | 
			
		||||
	"aes-128-cbc", "aes-128-ecb",
 | 
			
		||||
	"aes-192-cbc", "aes-192-ecb",
 | 
			
		||||
	"aes-256-cbc", "aes-256-ecb",
 | 
			
		||||
	"camellia-128-cbc", "camellia-128-ecb",
 | 
			
		||||
	"camellia-192-cbc", "camellia-192-ecb",
 | 
			
		||||
	"camellia-256-cbc", "camellia-256-ecb",
 | 
			
		||||
	"base64",
 | 
			
		||||
	"des", "des3", "desx", "idea", "rc4", "rc4-40",
 | 
			
		||||
	"des", "des3", "desx", "idea", "seed", "rc4", "rc4-40",
 | 
			
		||||
	"rc2", "bf", "cast", "rc5",
 | 
			
		||||
	"des-ecb", "des-ede",    "des-ede3",
 | 
			
		||||
	"des-cbc", "des-ede-cbc","des-ede3-cbc",
 | 
			
		||||
	"des-cfb", "des-ede-cfb","des-ede3-cfb",
 | 
			
		||||
	"des-ofb", "des-ede-ofb","des-ede3-ofb",
 | 
			
		||||
	"idea-cbc","idea-ecb",   "idea-cfb", "idea-ofb",
 | 
			
		||||
	"idea-cbc","idea-ecb",    "idea-cfb", "idea-ofb",
 | 
			
		||||
	"seed-cbc","seed-ecb",    "seed-cfb", "seed-ofb",
 | 
			
		||||
	"rc2-cbc", "rc2-ecb", "rc2-cfb","rc2-ofb", "rc2-64-cbc", "rc2-40-cbc",
 | 
			
		||||
	"bf-cbc",  "bf-ecb",     "bf-cfb",   "bf-ofb",
 | 
			
		||||
	"cast5-cbc","cast5-ecb", "cast5-cfb","cast5-ofb",
 | 
			
		||||
@@ -75,7 +79,9 @@ foreach (
 | 
			
		||||
	$t=sprintf("\t{FUNC_TYPE_CIPHER,\"%s\",enc_main},\n",$_);
 | 
			
		||||
	if    ($_ =~ /des/)  { $t="#ifndef OPENSSL_NO_DES\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /aes/)  { $t="#ifndef OPENSSL_NO_AES\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /camellia/)  { $t="#ifndef OPENSSL_NO_CAMELLIA\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /idea/) { $t="#ifndef OPENSSL_NO_IDEA\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /seed/) { $t="#ifndef OPENSSL_NO_SEED\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /rc4/)  { $t="#ifndef OPENSSL_NO_RC4\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /rc2/)  { $t="#ifndef OPENSSL_NO_RC2\n${t}#endif\n"; }
 | 
			
		||||
	elsif ($_ =~ /bf/)   { $t="#ifndef OPENSSL_NO_BF\n${t}#endif\n"; }
 | 
			
		||||
 
 | 
			
		||||
@@ -213,7 +213,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_write(out, buf, chunk);
 | 
			
		||||
		num -= chunk;
 | 
			
		||||
		}
 | 
			
		||||
	BIO_flush(out);
 | 
			
		||||
	(void)BIO_flush(out);
 | 
			
		||||
 | 
			
		||||
	app_RAND_write_file(NULL, bio_err);
 | 
			
		||||
	ret = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -79,6 +79,13 @@
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#include <openssl/bn.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define SECTION		"req"
 | 
			
		||||
 | 
			
		||||
@@ -724,7 +731,9 @@ bad:
 | 
			
		||||
 | 
			
		||||
	if (newreq && (pkey == NULL))
 | 
			
		||||
		{
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
		BN_GENCB cb;
 | 
			
		||||
#endif
 | 
			
		||||
		char *randfile = NCONF_get_string(req_conf,SECTION,"RANDFILE");
 | 
			
		||||
		if (randfile == NULL)
 | 
			
		||||
			ERR_clear_error();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								apps/rsa.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								apps/rsa.c
									
									
									
									
									
								
							@@ -56,6 +56,7 @@
 | 
			
		||||
 * [including the GNU Public Licence.]
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
@@ -80,9 +81,13 @@
 | 
			
		||||
 * -des		- encrypt output if PEM format with DES in cbc mode
 | 
			
		||||
 * -des3	- encrypt output if PEM format
 | 
			
		||||
 * -idea	- encrypt output if PEM format
 | 
			
		||||
 * -seed	- encrypt output if PEM format
 | 
			
		||||
 * -aes128	- encrypt output if PEM format
 | 
			
		||||
 * -aes192	- encrypt output if PEM format
 | 
			
		||||
 * -aes256	- encrypt output if PEM format
 | 
			
		||||
 * -camellia128 - encrypt output if PEM format
 | 
			
		||||
 * -camellia192 - encrypt output if PEM format
 | 
			
		||||
 * -camellia256 - encrypt output if PEM format
 | 
			
		||||
 * -text	- print a text version
 | 
			
		||||
 * -modulus	- print the RSA key modulus
 | 
			
		||||
 * -check	- verify key consistency
 | 
			
		||||
@@ -207,9 +212,16 @@ bad:
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
		BIO_printf(bio_err," -idea           encrypt PEM output with cbc idea\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		BIO_printf(bio_err," -seed           encrypt PEM output with cbc seed\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
		BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
		BIO_printf(bio_err," -text           print the key in text\n");
 | 
			
		||||
		BIO_printf(bio_err," -noout          don't print key out\n");
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <openssl/opensslconf.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
 | 
			
		||||
#include "apps.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -573,5 +573,5 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void *
 | 
			
		||||
			BIO_printf(bio, " ...");
 | 
			
		||||
		BIO_printf(bio, "\n");
 | 
			
		||||
		}
 | 
			
		||||
	BIO_flush(bio);
 | 
			
		||||
	(void)BIO_flush(bio);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										120
									
								
								apps/s_client.c
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								apps/s_client.c
									
									
									
									
									
								
							@@ -188,7 +188,7 @@ static void sc_usage(void)
 | 
			
		||||
	BIO_printf(bio_err," -port port     - use -connect instead\n");
 | 
			
		||||
	BIO_printf(bio_err," -connect host:port - who to connect to (default is %s:%s)\n",SSL_HOST_NAME,PORT_STR);
 | 
			
		||||
 | 
			
		||||
	BIO_printf(bio_err," -verify arg   - turn on peer certificate verification\n");
 | 
			
		||||
	BIO_printf(bio_err," -verify depth - turn on peer certificate verification\n");
 | 
			
		||||
	BIO_printf(bio_err," -cert arg     - certificate file to use, PEM format assumed\n");
 | 
			
		||||
	BIO_printf(bio_err," -certform arg - certificate format (PEM or DER) PEM default\n");
 | 
			
		||||
	BIO_printf(bio_err," -key arg      - Private key file to use, in cert file if\n");
 | 
			
		||||
@@ -226,7 +226,7 @@ static void sc_usage(void)
 | 
			
		||||
	BIO_printf(bio_err," -starttls prot - use the STARTTLS command before starting TLS\n");
 | 
			
		||||
	BIO_printf(bio_err,"                 for those protocols that support it, where\n");
 | 
			
		||||
	BIO_printf(bio_err,"                 'prot' defines which one to assume.  Currently,\n");
 | 
			
		||||
	BIO_printf(bio_err,"                 only \"smtp\" and \"pop3\" are supported.\n");
 | 
			
		||||
	BIO_printf(bio_err,"                 only \"smtp\", \"pop3\", \"imap\", and \"ftp\" are supported.\n");
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
	BIO_printf(bio_err," -engine id    - Initialise and use the specified engine\n");
 | 
			
		||||
#endif
 | 
			
		||||
@@ -234,6 +234,15 @@ static void sc_usage(void)
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
	PROTO_OFF	= 0,
 | 
			
		||||
	PROTO_SMTP,
 | 
			
		||||
	PROTO_POP3,
 | 
			
		||||
	PROTO_IMAP,
 | 
			
		||||
	PROTO_FTP
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
int MAIN(int, char **);
 | 
			
		||||
 | 
			
		||||
int MAIN(int argc, char **argv)
 | 
			
		||||
@@ -260,12 +269,16 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	int write_tty,read_tty,write_ssl,read_ssl,tty_on,ssl_pending;
 | 
			
		||||
	SSL_CTX *ctx=NULL;
 | 
			
		||||
	int ret=1,in_init=1,i,nbio_test=0;
 | 
			
		||||
	int starttls_proto = 0;
 | 
			
		||||
	int starttls_proto = PROTO_OFF;
 | 
			
		||||
	int prexit = 0, vflags = 0;
 | 
			
		||||
	SSL_METHOD *meth=NULL;
 | 
			
		||||
#ifdef sock_type
 | 
			
		||||
#undef sock_type
 | 
			
		||||
#endif
 | 
			
		||||
	int sock_type=SOCK_STREAM;
 | 
			
		||||
	BIO *sbio;
 | 
			
		||||
	char *inrand=NULL;
 | 
			
		||||
	int mbuf_len=0;
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
	char *engine_id=NULL;
 | 
			
		||||
	ENGINE *e=NULL;
 | 
			
		||||
@@ -463,9 +476,13 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (--argc < 1) goto bad;
 | 
			
		||||
			++argv;
 | 
			
		||||
			if (strcmp(*argv,"smtp") == 0)
 | 
			
		||||
				starttls_proto = 1;
 | 
			
		||||
				starttls_proto = PROTO_SMTP;
 | 
			
		||||
			else if (strcmp(*argv,"pop3") == 0)
 | 
			
		||||
				starttls_proto = 2;
 | 
			
		||||
				starttls_proto = PROTO_POP3;
 | 
			
		||||
			else if (strcmp(*argv,"imap") == 0)
 | 
			
		||||
				starttls_proto = PROTO_IMAP;
 | 
			
		||||
			else if (strcmp(*argv,"ftp") == 0)
 | 
			
		||||
				starttls_proto = PROTO_FTP;
 | 
			
		||||
			else
 | 
			
		||||
				goto bad;
 | 
			
		||||
			}
 | 
			
		||||
@@ -651,7 +668,7 @@ re_start:
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		BIO_ctrl_set_connected(sbio, 1, &peer);
 | 
			
		||||
		(void)BIO_ctrl_set_connected(sbio, 1, &peer);
 | 
			
		||||
 | 
			
		||||
		if ( enable_timeouts)
 | 
			
		||||
			{
 | 
			
		||||
@@ -690,7 +707,7 @@ re_start:
 | 
			
		||||
		{
 | 
			
		||||
		con->debug=1;
 | 
			
		||||
		BIO_set_callback(sbio,bio_dump_callback);
 | 
			
		||||
		BIO_set_callback_arg(sbio,bio_c_out);
 | 
			
		||||
		BIO_set_callback_arg(sbio,(char *)bio_c_out);
 | 
			
		||||
		}
 | 
			
		||||
	if (c_msg)
 | 
			
		||||
		{
 | 
			
		||||
@@ -716,18 +733,93 @@ re_start:
 | 
			
		||||
	sbuf_off=0;
 | 
			
		||||
 | 
			
		||||
	/* This is an ugly hack that does a lot of assumptions */
 | 
			
		||||
	if (starttls_proto == 1)
 | 
			
		||||
	/* We do have to handle multi-line responses which may come
 | 
			
		||||
 	   in a single packet or not. We therefore have to use
 | 
			
		||||
	   BIO_gets() which does need a buffering BIO. So during
 | 
			
		||||
	   the initial chitchat we do push a buffering BIO into the
 | 
			
		||||
	   chain that is removed again later on to not disturb the
 | 
			
		||||
	   rest of the s_client operation. */
 | 
			
		||||
	if (starttls_proto == PROTO_SMTP)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_read(sbio,mbuf,BUFSIZZ);
 | 
			
		||||
		int foundit=0;
 | 
			
		||||
		BIO *fbio = BIO_new(BIO_f_buffer());
 | 
			
		||||
		BIO_push(fbio, sbio);
 | 
			
		||||
		/* wait for multi-line response to end from SMTP */
 | 
			
		||||
		do
 | 
			
		||||
			{
 | 
			
		||||
			mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
 | 
			
		||||
			}
 | 
			
		||||
		while (mbuf_len>3 && mbuf[3]=='-');
 | 
			
		||||
		/* STARTTLS command requires EHLO... */
 | 
			
		||||
		BIO_printf(fbio,"EHLO openssl.client.net\r\n");
 | 
			
		||||
		(void)BIO_flush(fbio);
 | 
			
		||||
		/* wait for multi-line response to end EHLO SMTP response */
 | 
			
		||||
		do
 | 
			
		||||
			{
 | 
			
		||||
			mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
 | 
			
		||||
			if (strstr(mbuf,"STARTTLS"))
 | 
			
		||||
				foundit=1;
 | 
			
		||||
			}
 | 
			
		||||
		while (mbuf_len>3 && mbuf[3]=='-');
 | 
			
		||||
		(void)BIO_flush(fbio);
 | 
			
		||||
		BIO_pop(fbio);
 | 
			
		||||
		BIO_free(fbio);
 | 
			
		||||
		if (!foundit)
 | 
			
		||||
			BIO_printf(bio_err,
 | 
			
		||||
				   "didn't found starttls in server response,"
 | 
			
		||||
				   " try anyway...\n");
 | 
			
		||||
		BIO_printf(sbio,"STARTTLS\r\n");
 | 
			
		||||
		BIO_read(sbio,sbuf,BUFSIZZ);
 | 
			
		||||
		}
 | 
			
		||||
	if (starttls_proto == 2)
 | 
			
		||||
	else if (starttls_proto == PROTO_POP3)
 | 
			
		||||
		{
 | 
			
		||||
		BIO_read(sbio,mbuf,BUFSIZZ);
 | 
			
		||||
		BIO_printf(sbio,"STLS\r\n");
 | 
			
		||||
		BIO_read(sbio,sbuf,BUFSIZZ);
 | 
			
		||||
		}
 | 
			
		||||
	else if (starttls_proto == PROTO_IMAP)
 | 
			
		||||
		{
 | 
			
		||||
		int foundit=0;
 | 
			
		||||
		BIO *fbio = BIO_new(BIO_f_buffer());
 | 
			
		||||
		BIO_push(fbio, sbio);
 | 
			
		||||
		BIO_gets(fbio,mbuf,BUFSIZZ);
 | 
			
		||||
		/* STARTTLS command requires CAPABILITY... */
 | 
			
		||||
		BIO_printf(fbio,". CAPABILITY\r\n");
 | 
			
		||||
		(void)BIO_flush(fbio);
 | 
			
		||||
		/* wait for multi-line CAPABILITY response */
 | 
			
		||||
		do
 | 
			
		||||
			{
 | 
			
		||||
			mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
 | 
			
		||||
			if (strstr(mbuf,"STARTTLS"))
 | 
			
		||||
				foundit=1;
 | 
			
		||||
			}
 | 
			
		||||
		while (mbuf_len>3 && mbuf[0]!='.');
 | 
			
		||||
		(void)BIO_flush(fbio);
 | 
			
		||||
		BIO_pop(fbio);
 | 
			
		||||
		BIO_free(fbio);
 | 
			
		||||
		if (!foundit)
 | 
			
		||||
			BIO_printf(bio_err,
 | 
			
		||||
				   "didn't found STARTTLS in server response,"
 | 
			
		||||
				   " try anyway...\n");
 | 
			
		||||
		BIO_printf(sbio,". STARTTLS\r\n");
 | 
			
		||||
		BIO_read(sbio,sbuf,BUFSIZZ);
 | 
			
		||||
		}
 | 
			
		||||
	else if (starttls_proto == PROTO_FTP)
 | 
			
		||||
		{
 | 
			
		||||
		BIO *fbio = BIO_new(BIO_f_buffer());
 | 
			
		||||
		BIO_push(fbio, sbio);
 | 
			
		||||
		/* wait for multi-line response to end from FTP */
 | 
			
		||||
		do
 | 
			
		||||
			{
 | 
			
		||||
			mbuf_len = BIO_gets(fbio,mbuf,BUFSIZZ);
 | 
			
		||||
			}
 | 
			
		||||
		while (mbuf_len>3 && mbuf[3]=='-');
 | 
			
		||||
		(void)BIO_flush(fbio);
 | 
			
		||||
		BIO_pop(fbio);
 | 
			
		||||
		BIO_free(fbio);
 | 
			
		||||
		BIO_printf(sbio,"AUTH TLS\r\n");
 | 
			
		||||
		BIO_read(sbio,sbuf,BUFSIZZ);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	for (;;)
 | 
			
		||||
		{
 | 
			
		||||
@@ -752,7 +844,7 @@ re_start:
 | 
			
		||||
					{
 | 
			
		||||
					BIO_printf(bio_err,"%s",mbuf);
 | 
			
		||||
					/* We don't need to know any more */
 | 
			
		||||
					starttls_proto = 0;
 | 
			
		||||
					starttls_proto = PROTO_OFF;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
				if (reconnect)
 | 
			
		||||
@@ -1093,7 +1185,9 @@ static void print_stuff(BIO *bio, SSL *s, int full)
 | 
			
		||||
	SSL_CIPHER *c;
 | 
			
		||||
	X509_NAME *xn;
 | 
			
		||||
	int j,i;
 | 
			
		||||
#ifndef OPENSSL_NO_COMP
 | 
			
		||||
	const COMP_METHOD *comp, *expansion;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	if (full)
 | 
			
		||||
		{
 | 
			
		||||
@@ -1196,17 +1290,19 @@ static void print_stuff(BIO *bio, SSL *s, int full)
 | 
			
		||||
							 EVP_PKEY_bits(pktmp));
 | 
			
		||||
		EVP_PKEY_free(pktmp);
 | 
			
		||||
	}
 | 
			
		||||
#ifndef OPENSSL_NO_COMP
 | 
			
		||||
	comp=SSL_get_current_compression(s);
 | 
			
		||||
	expansion=SSL_get_current_expansion(s);
 | 
			
		||||
	BIO_printf(bio,"Compression: %s\n",
 | 
			
		||||
		comp ? SSL_COMP_get_name(comp) : "NONE");
 | 
			
		||||
	BIO_printf(bio,"Expansion: %s\n",
 | 
			
		||||
		expansion ? SSL_COMP_get_name(expansion) : "NONE");
 | 
			
		||||
#endif
 | 
			
		||||
	SSL_SESSION_print(bio,SSL_get_session(s));
 | 
			
		||||
	BIO_printf(bio,"---\n");
 | 
			
		||||
	if (peer != NULL)
 | 
			
		||||
		X509_free(peer);
 | 
			
		||||
	/* flush, or debugging output gets mixed with http response */
 | 
			
		||||
	BIO_flush(bio);
 | 
			
		||||
	(void)BIO_flush(bio);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -153,6 +153,12 @@ typedef unsigned int u_int;
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/ssl.h>
 | 
			
		||||
#include <openssl/rand.h>
 | 
			
		||||
#ifndef OPENSSL_NO_DH
 | 
			
		||||
#include <openssl/dh.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include "s_apps.h"
 | 
			
		||||
#include "timeouts.h"
 | 
			
		||||
 | 
			
		||||
@@ -262,6 +268,9 @@ static char *engine_id=NULL;
 | 
			
		||||
static const char *session_id_prefix=NULL;
 | 
			
		||||
 | 
			
		||||
static int enable_timeouts = 0;
 | 
			
		||||
#ifdef mtu
 | 
			
		||||
#undef mtu
 | 
			
		||||
#endif
 | 
			
		||||
static long mtu;
 | 
			
		||||
static int cert_chain = 0;
 | 
			
		||||
 | 
			
		||||
@@ -527,13 +536,18 @@ int MAIN(int argc, char *argv[])
 | 
			
		||||
	char *CApath=NULL,*CAfile=NULL;
 | 
			
		||||
	unsigned char *context = NULL;
 | 
			
		||||
	char *dhfile = NULL;
 | 
			
		||||
#ifndef OPENSSL_NO_ECDH
 | 
			
		||||
	char *named_curve = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
	int badop=0,bugs=0;
 | 
			
		||||
	int ret=1;
 | 
			
		||||
	int off=0;
 | 
			
		||||
	int no_tmp_rsa=0,no_dhe=0,no_ecdhe=0,nocert=0;
 | 
			
		||||
	int state=0;
 | 
			
		||||
	SSL_METHOD *meth=NULL;
 | 
			
		||||
#ifdef sock_type
 | 
			
		||||
#undef sock_type
 | 
			
		||||
#endif
 | 
			
		||||
    int sock_type=SOCK_STREAM;
 | 
			
		||||
#ifndef OPENSSL_NO_ENGINE
 | 
			
		||||
	ENGINE *e=NULL;
 | 
			
		||||
@@ -818,21 +832,24 @@ bad:
 | 
			
		||||
	if (s_key_file == NULL)
 | 
			
		||||
		s_key_file = s_cert_file;
 | 
			
		||||
 | 
			
		||||
	s_key = load_key(bio_err, s_key_file, s_key_format, 0, pass, e,
 | 
			
		||||
		       "server certificate private key file");
 | 
			
		||||
	if (!s_key)
 | 
			
		||||
	if (nocert == 0)
 | 
			
		||||
		{
 | 
			
		||||
		ERR_print_errors(bio_err);
 | 
			
		||||
		goto end;
 | 
			
		||||
		}
 | 
			
		||||
		s_key = load_key(bio_err, s_key_file, s_key_format, 0, pass, e,
 | 
			
		||||
		       "server certificate private key file");
 | 
			
		||||
		if (!s_key)
 | 
			
		||||
			{
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
	s_cert = load_cert(bio_err,s_cert_file,s_cert_format,
 | 
			
		||||
		s_cert = load_cert(bio_err,s_cert_file,s_cert_format,
 | 
			
		||||
			NULL, e, "server certificate file");
 | 
			
		||||
 | 
			
		||||
	if (!s_cert)
 | 
			
		||||
		{
 | 
			
		||||
		ERR_print_errors(bio_err);
 | 
			
		||||
		goto end;
 | 
			
		||||
		if (!s_cert)
 | 
			
		||||
			{
 | 
			
		||||
			ERR_print_errors(bio_err);
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (s_dcert_file)
 | 
			
		||||
@@ -1217,7 +1234,7 @@ static int sv_body(char *hostname, int s, unsigned char *context)
 | 
			
		||||
		{
 | 
			
		||||
		con->debug=1;
 | 
			
		||||
		BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
 | 
			
		||||
		BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
 | 
			
		||||
		BIO_set_callback_arg(SSL_get_rbio(con),(char *)bio_s_out);
 | 
			
		||||
		}
 | 
			
		||||
	if (s_msg)
 | 
			
		||||
		{
 | 
			
		||||
@@ -1621,7 +1638,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
 | 
			
		||||
		{
 | 
			
		||||
		con->debug=1;
 | 
			
		||||
		BIO_set_callback(SSL_get_rbio(con),bio_dump_callback);
 | 
			
		||||
		BIO_set_callback_arg(SSL_get_rbio(con),bio_s_out);
 | 
			
		||||
		BIO_set_callback_arg(SSL_get_rbio(con),(char *)bio_s_out);
 | 
			
		||||
		}
 | 
			
		||||
	if (s_msg)
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
@@ -87,8 +87,12 @@ typedef unsigned int u_int;
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_NO_SOCK
 | 
			
		||||
 | 
			
		||||
#if defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_BSDSOCK)
 | 
			
		||||
#include "netdb.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static struct hostent *GetHostByName(char *name);
 | 
			
		||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE)
 | 
			
		||||
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
 | 
			
		||||
static void ssl_sock_cleanup(void);
 | 
			
		||||
#endif
 | 
			
		||||
static int ssl_sock_init(void);
 | 
			
		||||
@@ -104,7 +108,7 @@ static int host_ip(char *str, unsigned char ip[4]);
 | 
			
		||||
#define SOCKET_PROTOCOL	IPPROTO_TCP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef OPENSSL_SYS_NETWARE
 | 
			
		||||
#if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
 | 
			
		||||
static int wsa_init_done=0;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -156,7 +160,7 @@ static void ssl_sock_cleanup(void)
 | 
			
		||||
		WSACleanup();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
#elif defined(OPENSSL_SYS_NETWARE)
 | 
			
		||||
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
 | 
			
		||||
static void sock_cleanup(void)
 | 
			
		||||
    {
 | 
			
		||||
    if (wsa_init_done)
 | 
			
		||||
@@ -199,7 +203,7 @@ static int ssl_sock_init(void)
 | 
			
		||||
		SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopHookProc);
 | 
			
		||||
#endif /* OPENSSL_SYS_WIN16 */
 | 
			
		||||
		}
 | 
			
		||||
#elif defined(OPENSSL_SYS_NETWARE)
 | 
			
		||||
#elif defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
 | 
			
		||||
   WORD wVerReq;
 | 
			
		||||
   WSADATA wsaData;
 | 
			
		||||
   int err;
 | 
			
		||||
@@ -398,7 +402,7 @@ redoit:
 | 
			
		||||
	ret=accept(acc_sock,(struct sockaddr *)&from,(void *)&len);
 | 
			
		||||
	if (ret == INVALID_SOCKET)
 | 
			
		||||
		{
 | 
			
		||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_NETWARE)
 | 
			
		||||
#if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
 | 
			
		||||
		i=WSAGetLastError();
 | 
			
		||||
		BIO_printf(bio_err,"accept error %d\n",i);
 | 
			
		||||
#else
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								apps/smime.c
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								apps/smime.c
									
									
									
									
									
								
							@@ -145,6 +145,10 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		else if (!strcmp (*args, "-des")) 
 | 
			
		||||
				cipher = EVP_des_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		else if (!strcmp (*args, "-seed")) 
 | 
			
		||||
				cipher = EVP_seed_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
		else if (!strcmp (*args, "-rc2-40")) 
 | 
			
		||||
				cipher = EVP_rc2_40_cbc();
 | 
			
		||||
@@ -160,6 +164,14 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
				cipher = EVP_aes_192_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-aes256"))
 | 
			
		||||
				cipher = EVP_aes_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		else if (!strcmp(*args,"-camellia128"))
 | 
			
		||||
				cipher = EVP_camellia_128_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-camellia192"))
 | 
			
		||||
				cipher = EVP_camellia_192_cbc();
 | 
			
		||||
		else if (!strcmp(*args,"-camellia256"))
 | 
			
		||||
				cipher = EVP_camellia_256_cbc();
 | 
			
		||||
#endif
 | 
			
		||||
		else if (!strcmp (*args, "-text")) 
 | 
			
		||||
				flags |= PKCS7_TEXT;
 | 
			
		||||
@@ -384,9 +396,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		}
 | 
			
		||||
	else if (operation == SMIME_DECRYPT)
 | 
			
		||||
		{
 | 
			
		||||
		if (!recipfile)
 | 
			
		||||
		if (!recipfile && !keyfile)
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err, "No recipient certificate and key specified\n");
 | 
			
		||||
			BIO_printf(bio_err, "No recipient certificate or key specified\n");
 | 
			
		||||
			badarg = 1;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
@@ -415,6 +427,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		BIO_printf (bio_err, "-des3          encrypt with triple DES\n");
 | 
			
		||||
		BIO_printf (bio_err, "-des           encrypt with DES\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		BIO_printf (bio_err, "-seed          encrypt with SEED\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
		BIO_printf (bio_err, "-rc2-40        encrypt with RC2-40 (default)\n");
 | 
			
		||||
		BIO_printf (bio_err, "-rc2-64        encrypt with RC2-64\n");
 | 
			
		||||
@@ -423,6 +438,10 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
		BIO_printf (bio_err, "-aes128, -aes192, -aes256\n");
 | 
			
		||||
		BIO_printf (bio_err, "               encrypt PEM output with cbc aes\n");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
		BIO_printf (bio_err, "-camellia128, -camellia192, -camellia256\n");
 | 
			
		||||
		BIO_printf (bio_err, "               encrypt PEM output with cbc camellia\n");
 | 
			
		||||
#endif
 | 
			
		||||
		BIO_printf (bio_err, "-nointern      don't search certificates in message for signer\n");
 | 
			
		||||
		BIO_printf (bio_err, "-nosigs        don't verify message signature\n");
 | 
			
		||||
@@ -638,12 +657,6 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		if ((flags & PKCS7_DETACHED) && (outformat == FORMAT_SMIME))
 | 
			
		||||
			flags |= PKCS7_STREAM;
 | 
			
		||||
		p7 = PKCS7_sign(signer, key, other, in, flags);
 | 
			
		||||
		/* Don't need to rewind for partial signing */
 | 
			
		||||
		if (!(flags & PKCS7_STREAM) && (BIO_reset(in) != 0))
 | 
			
		||||
			{
 | 
			
		||||
			BIO_printf(bio_err, "Can't rewind input file\n");
 | 
			
		||||
			goto end;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										249
									
								
								apps/speed.c
									
									
									
									
									
								
							
							
						
						
									
										249
									
								
								apps/speed.c
									
									
									
									
									
								
							@@ -164,6 +164,9 @@
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
#include <openssl/aes.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
#include <openssl/camellia.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_MD2
 | 
			
		||||
#include <openssl/md2.h>
 | 
			
		||||
#endif
 | 
			
		||||
@@ -198,6 +201,9 @@
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
#include <openssl/idea.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
#include <openssl/seed.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_BF
 | 
			
		||||
#include <openssl/blowfish.h>
 | 
			
		||||
#endif
 | 
			
		||||
@@ -269,7 +275,7 @@ static void print_result(int alg,int run_no,int count,double time_used);
 | 
			
		||||
static int do_multi(int multi);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define ALGOR_NUM	21
 | 
			
		||||
#define ALGOR_NUM	28
 | 
			
		||||
#define SIZE_NUM	5
 | 
			
		||||
#define RSA_NUM		4
 | 
			
		||||
#define DSA_NUM		3
 | 
			
		||||
@@ -279,16 +285,27 @@ static int do_multi(int multi);
 | 
			
		||||
 | 
			
		||||
static const char *names[ALGOR_NUM]={
 | 
			
		||||
  "md2","mdc2","md4","md5","hmac(md5)","sha1","rmd160","rc4",
 | 
			
		||||
  "des cbc","des ede3","idea cbc",
 | 
			
		||||
  "des cbc","des ede3","idea cbc","seed cbc",
 | 
			
		||||
  "rc2 cbc","rc5-32/12 cbc","blowfish cbc","cast cbc",
 | 
			
		||||
  "aes-128 cbc","aes-192 cbc","aes-256 cbc","evp","sha256","sha512"};
 | 
			
		||||
  "aes-128 cbc","aes-192 cbc","aes-256 cbc",
 | 
			
		||||
  "camellia-128 cbc","camellia-192 cbc","camellia-256 cbc",
 | 
			
		||||
  "evp","sha256","sha512",
 | 
			
		||||
  "aes-128 ige","aes-192 ige","aes-256 ige"};
 | 
			
		||||
static double results[ALGOR_NUM][SIZE_NUM];
 | 
			
		||||
static int lengths[SIZE_NUM]={16,64,256,1024,8*1024};
 | 
			
		||||
static double rsa_results[RSA_NUM][2];
 | 
			
		||||
static double dsa_results[DSA_NUM][2];
 | 
			
		||||
#ifndef OPENSSL_NO_ECDSA
 | 
			
		||||
static double ecdsa_results[EC_NUM][2];
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_ECDH
 | 
			
		||||
static double ecdh_results[EC_NUM][1];
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(OPENSSL_NO_DSA) && !(defined(OPENSSL_NO_ECDSA) && defined(OPENSSL_NO_ECDH))
 | 
			
		||||
static const char rnd_seed[] = "string to make the random number generator think it has entropy";
 | 
			
		||||
static int rnd_fake = 0;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef SIGALRM
 | 
			
		||||
#if defined(__STDC__) || defined(sgi) || defined(_AIX)
 | 
			
		||||
@@ -448,6 +465,7 @@ static double Time_F(int s)
 | 
			
		||||
#endif /* if defined(OPENSSL_SYS_NETWARE) */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_NO_ECDH
 | 
			
		||||
static const int KDF1_SHA1_len = 20;
 | 
			
		||||
static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
 | 
			
		||||
	{
 | 
			
		||||
@@ -459,8 +477,9 @@ static void *KDF1_SHA1(const void *in, size_t inlen, void *out, size_t *outlen)
 | 
			
		||||
	return SHA1(in, inlen, out);
 | 
			
		||||
#else
 | 
			
		||||
	return NULL;
 | 
			
		||||
#endif
 | 
			
		||||
#endif	/* OPENSSL_NO_SHA */
 | 
			
		||||
	}
 | 
			
		||||
#endif	/* OPENSSL_NO_ECDH */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int MAIN(int, char **);
 | 
			
		||||
@@ -518,6 +537,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	IDEA_KEY_SCHEDULE idea_ks;
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	SEED_KEY_SCHEDULE seed_ks;
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_BF
 | 
			
		||||
	BF_KEY bf_ks;
 | 
			
		||||
#endif
 | 
			
		||||
@@ -527,6 +549,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	static const unsigned char key16[16]=
 | 
			
		||||
		{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
 | 
			
		||||
		 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12};
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
	static const unsigned char key24[24]=
 | 
			
		||||
		{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
 | 
			
		||||
		 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
 | 
			
		||||
@@ -536,6 +559,18 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
 | 
			
		||||
		 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
 | 
			
		||||
		 0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	static const unsigned char ckey24[24]=
 | 
			
		||||
		{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
 | 
			
		||||
		 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
 | 
			
		||||
		 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34};
 | 
			
		||||
	static const unsigned char ckey32[32]=
 | 
			
		||||
		{0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,
 | 
			
		||||
		 0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,
 | 
			
		||||
		 0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,
 | 
			
		||||
		 0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56};
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
#define MAX_BLOCK_SIZE 128
 | 
			
		||||
#else
 | 
			
		||||
@@ -555,6 +590,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
	AES_KEY aes_ks1, aes_ks2, aes_ks3;
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3;
 | 
			
		||||
#endif
 | 
			
		||||
#define	D_MD2		0
 | 
			
		||||
#define	D_MDC2		1
 | 
			
		||||
#define	D_MD4		2
 | 
			
		||||
@@ -566,16 +604,23 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#define	D_CBC_DES	8
 | 
			
		||||
#define	D_EDE3_DES	9
 | 
			
		||||
#define	D_CBC_IDEA	10
 | 
			
		||||
#define	D_CBC_RC2	11
 | 
			
		||||
#define	D_CBC_RC5	12
 | 
			
		||||
#define	D_CBC_BF	13
 | 
			
		||||
#define	D_CBC_CAST	14
 | 
			
		||||
#define D_CBC_128_AES	15
 | 
			
		||||
#define D_CBC_192_AES	16
 | 
			
		||||
#define D_CBC_256_AES	17
 | 
			
		||||
#define D_EVP		18
 | 
			
		||||
#define D_SHA256	19
 | 
			
		||||
#define D_SHA512	20
 | 
			
		||||
#define	D_CBC_SEED	11
 | 
			
		||||
#define	D_CBC_RC2	12
 | 
			
		||||
#define	D_CBC_RC5	13
 | 
			
		||||
#define	D_CBC_BF	14
 | 
			
		||||
#define	D_CBC_CAST	15
 | 
			
		||||
#define D_CBC_128_AES	16
 | 
			
		||||
#define D_CBC_192_AES	17
 | 
			
		||||
#define D_CBC_256_AES	18
 | 
			
		||||
#define D_CBC_128_CML   19 
 | 
			
		||||
#define D_CBC_192_CML   20
 | 
			
		||||
#define D_CBC_256_CML   21 
 | 
			
		||||
#define D_EVP		22
 | 
			
		||||
#define D_SHA256	23	
 | 
			
		||||
#define D_SHA512	24
 | 
			
		||||
#define D_IGE_128_AES   25
 | 
			
		||||
#define D_IGE_192_AES   26
 | 
			
		||||
#define D_IGE_256_AES   27
 | 
			
		||||
	double d=0.0;
 | 
			
		||||
	long c[ALGOR_NUM][SIZE_NUM];
 | 
			
		||||
#define	R_DSA_512	0
 | 
			
		||||
@@ -693,8 +738,12 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
 | 
			
		||||
	int rsa_doit[RSA_NUM];
 | 
			
		||||
	int dsa_doit[DSA_NUM];
 | 
			
		||||
#ifndef OPENSSL_NO_ECDSA
 | 
			
		||||
	int ecdsa_doit[EC_NUM];
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_ECDH
 | 
			
		||||
        int ecdh_doit[EC_NUM];
 | 
			
		||||
#endif
 | 
			
		||||
	int doit[ALGOR_NUM];
 | 
			
		||||
	int pr_header=0;
 | 
			
		||||
	const EVP_CIPHER *evp_cipher=NULL;
 | 
			
		||||
@@ -912,6 +961,15 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			if (strcmp(*argv,"aes-128-cbc") == 0) doit[D_CBC_128_AES]=1;
 | 
			
		||||
		else	if (strcmp(*argv,"aes-192-cbc") == 0) doit[D_CBC_192_AES]=1;
 | 
			
		||||
		else	if (strcmp(*argv,"aes-256-cbc") == 0) doit[D_CBC_256_AES]=1;
 | 
			
		||||
		else    if (strcmp(*argv,"aes-128-ige") == 0) doit[D_IGE_128_AES]=1;
 | 
			
		||||
		else	if (strcmp(*argv,"aes-192-ige") == 0) doit[D_IGE_192_AES]=1;
 | 
			
		||||
		else	if (strcmp(*argv,"aes-256-ige") == 0) doit[D_IGE_256_AES]=1;
 | 
			
		||||
                else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			if (strcmp(*argv,"camellia-128-cbc") == 0) doit[D_CBC_128_CML]=1;
 | 
			
		||||
		else    if (strcmp(*argv,"camellia-192-cbc") == 0) doit[D_CBC_192_CML]=1;
 | 
			
		||||
		else    if (strcmp(*argv,"camellia-256-cbc") == 0) doit[D_CBC_256_CML]=1;
 | 
			
		||||
		else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
@@ -955,6 +1013,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		else if (strcmp(*argv,"idea") == 0) doit[D_CBC_IDEA]=1;
 | 
			
		||||
		else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
		     if (strcmp(*argv,"seed-cbc") == 0) doit[D_CBC_SEED]=1;
 | 
			
		||||
		else if (strcmp(*argv,"seed") == 0) doit[D_CBC_SEED]=1;
 | 
			
		||||
		else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_BF
 | 
			
		||||
		     if (strcmp(*argv,"bf-cbc") == 0) doit[D_CBC_BF]=1;
 | 
			
		||||
		else if (strcmp(*argv,"blowfish") == 0) doit[D_CBC_BF]=1;
 | 
			
		||||
@@ -984,6 +1047,15 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			if (strcmp(*argv,"camellia") == 0)
 | 
			
		||||
			{
 | 
			
		||||
			doit[D_CBC_128_CML]=1;
 | 
			
		||||
			doit[D_CBC_192_CML]=1;
 | 
			
		||||
			doit[D_CBC_256_CML]=1;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
			if (strcmp(*argv,"rsa") == 0)
 | 
			
		||||
			{
 | 
			
		||||
@@ -1091,6 +1163,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
			BIO_printf(bio_err,"idea-cbc ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
			BIO_printf(bio_err,"seed-cbc ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
			BIO_printf(bio_err,"rc2-cbc  ");
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1100,7 +1175,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_BF
 | 
			
		||||
			BIO_printf(bio_err,"bf-cbc");
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_RC2) || \
 | 
			
		||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_SEED) || !defined(OPENSSL_NO_RC2) || \
 | 
			
		||||
    !defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_RC5)
 | 
			
		||||
			BIO_printf(bio_err,"\n");
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1109,6 +1184,11 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
			BIO_printf(bio_err,"aes-128-cbc aes-192-cbc aes-256-cbc ");
 | 
			
		||||
			BIO_printf(bio_err,"aes-128-ige aes-192-ige aes-256-ige ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			BIO_printf(bio_err,"\n");
 | 
			
		||||
			BIO_printf(bio_err,"camellia-128-cbc camellia-192-cbc camellia-256-cbc ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC4
 | 
			
		||||
			BIO_printf(bio_err,"rc4");
 | 
			
		||||
@@ -1138,6 +1218,9 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
			BIO_printf(bio_err,"idea     ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
			BIO_printf(bio_err,"seed     ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
			BIO_printf(bio_err,"rc2      ");
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1147,15 +1230,19 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
#ifndef OPENSSL_NO_AES
 | 
			
		||||
			BIO_printf(bio_err,"aes      ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
			BIO_printf(bio_err,"camellia ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
			BIO_printf(bio_err,"rsa      ");
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_BF
 | 
			
		||||
			BIO_printf(bio_err,"blowfish");
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_RC2) || \
 | 
			
		||||
    !defined(OPENSSL_NO_DES) || !defined(OPENSSL_NO_RSA) || \
 | 
			
		||||
    !defined(OPENSSL_NO_BF) || !defined(OPENSSL_NO_AES)
 | 
			
		||||
#if !defined(OPENSSL_NO_IDEA) || !defined(OPENSSL_NO_SEED) || \
 | 
			
		||||
    !defined(OPENSSL_NO_RC2) || !defined(OPENSSL_NO_DES) || \
 | 
			
		||||
    !defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_BF) || \
 | 
			
		||||
    !defined(OPENSSL_NO_AES) || !defined(OPENSSL_NO_CAMELLIA)
 | 
			
		||||
			BIO_printf(bio_err,"\n");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -1249,9 +1336,17 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	AES_set_encrypt_key(key24,192,&aes_ks2);
 | 
			
		||||
	AES_set_encrypt_key(key32,256,&aes_ks3);
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	Camellia_set_key(key16,128,&camellia_ks1);
 | 
			
		||||
	Camellia_set_key(ckey24,192,&camellia_ks2);
 | 
			
		||||
	Camellia_set_key(ckey32,256,&camellia_ks3);
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	idea_set_encrypt_key(key16,&idea_ks);
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	SEED_set_key(key16,&seed_ks);
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC4
 | 
			
		||||
	RC4_set_key(&rc4_ks,16,key16);
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1295,6 +1390,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	c[D_CBC_DES][0]=count;
 | 
			
		||||
	c[D_EDE3_DES][0]=count/3;
 | 
			
		||||
	c[D_CBC_IDEA][0]=count;
 | 
			
		||||
	c[D_CBC_SEED][0]=count;
 | 
			
		||||
	c[D_CBC_RC2][0]=count;
 | 
			
		||||
	c[D_CBC_RC5][0]=count;
 | 
			
		||||
	c[D_CBC_BF][0]=count;
 | 
			
		||||
@@ -1302,8 +1398,14 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
	c[D_CBC_128_AES][0]=count;
 | 
			
		||||
	c[D_CBC_192_AES][0]=count;
 | 
			
		||||
	c[D_CBC_256_AES][0]=count;
 | 
			
		||||
	c[D_CBC_128_CML][0]=count;
 | 
			
		||||
	c[D_CBC_192_CML][0]=count;
 | 
			
		||||
	c[D_CBC_256_CML][0]=count;
 | 
			
		||||
	c[D_SHA256][0]=count;
 | 
			
		||||
	c[D_SHA512][0]=count;
 | 
			
		||||
	c[D_IGE_128_AES][0]=count;
 | 
			
		||||
	c[D_IGE_192_AES][0]=count;
 | 
			
		||||
	c[D_IGE_256_AES][0]=count;
 | 
			
		||||
 | 
			
		||||
	for (i=1; i<SIZE_NUM; i++)
 | 
			
		||||
		{
 | 
			
		||||
@@ -1327,6 +1429,7 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		c[D_CBC_DES][i]=c[D_CBC_DES][i-1]*l0/l1;
 | 
			
		||||
		c[D_EDE3_DES][i]=c[D_EDE3_DES][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_IDEA][i]=c[D_CBC_IDEA][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_SEED][i]=c[D_CBC_SEED][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_RC2][i]=c[D_CBC_RC2][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_RC5][i]=c[D_CBC_RC5][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_BF][i]=c[D_CBC_BF][i-1]*l0/l1;
 | 
			
		||||
@@ -1334,6 +1437,12 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
		c[D_CBC_128_AES][i]=c[D_CBC_128_AES][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_192_AES][i]=c[D_CBC_192_AES][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_256_AES][i]=c[D_CBC_256_AES][i-1]*l0/l1;
 | 
			
		||||
 		c[D_CBC_128_CML][i]=c[D_CBC_128_CML][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_192_CML][i]=c[D_CBC_192_CML][i-1]*l0/l1;
 | 
			
		||||
		c[D_CBC_256_CML][i]=c[D_CBC_256_CML][i-1]*l0/l1;
 | 
			
		||||
		c[D_IGE_128_AES][i]=c[D_IGE_128_AES][i-1]*l0/l1;
 | 
			
		||||
		c[D_IGE_192_AES][i]=c[D_IGE_192_AES][i-1]*l0/l1;
 | 
			
		||||
		c[D_IGE_256_AES][i]=c[D_IGE_256_AES][i-1]*l0/l1;
 | 
			
		||||
		}
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
	rsa_c[R_RSA_512][0]=count/2000;
 | 
			
		||||
@@ -1727,6 +1836,93 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (doit[D_IGE_128_AES])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_IGE_128_AES],c[D_IGE_128_AES][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_IGE_128_AES][j]); count++)
 | 
			
		||||
				AES_ige_encrypt(buf,buf2,
 | 
			
		||||
					(unsigned long)lengths[j],&aes_ks1,
 | 
			
		||||
					iv,AES_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_IGE_128_AES,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	if (doit[D_IGE_192_AES])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_IGE_192_AES],c[D_IGE_192_AES][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_IGE_192_AES][j]); count++)
 | 
			
		||||
				AES_ige_encrypt(buf,buf2,
 | 
			
		||||
					(unsigned long)lengths[j],&aes_ks2,
 | 
			
		||||
					iv,AES_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_IGE_192_AES,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	if (doit[D_IGE_256_AES])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_IGE_256_AES],c[D_IGE_256_AES][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_IGE_256_AES][j]); count++)
 | 
			
		||||
				AES_ige_encrypt(buf,buf2,
 | 
			
		||||
					(unsigned long)lengths[j],&aes_ks3,
 | 
			
		||||
					iv,AES_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_IGE_256_AES,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_CAMELLIA
 | 
			
		||||
	if (doit[D_CBC_128_CML])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_CBC_128_CML],c[D_CBC_128_CML][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_CBC_128_CML][j]); count++)
 | 
			
		||||
				Camellia_cbc_encrypt(buf,buf,
 | 
			
		||||
				        (unsigned long)lengths[j],&camellia_ks1,
 | 
			
		||||
				        iv,CAMELLIA_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_CBC_128_CML,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	if (doit[D_CBC_192_CML])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_CBC_192_CML],c[D_CBC_192_CML][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_CBC_192_CML][j]); count++)
 | 
			
		||||
				Camellia_cbc_encrypt(buf,buf,
 | 
			
		||||
				        (unsigned long)lengths[j],&camellia_ks2,
 | 
			
		||||
				        iv,CAMELLIA_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_CBC_192_CML,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	if (doit[D_CBC_256_CML])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_CBC_256_CML],c[D_CBC_256_CML][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_CBC_256_CML][j]); count++)
 | 
			
		||||
				Camellia_cbc_encrypt(buf,buf,
 | 
			
		||||
				        (unsigned long)lengths[j],&camellia_ks3,
 | 
			
		||||
				        iv,CAMELLIA_ENCRYPT);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_CBC_256_CML,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_IDEA
 | 
			
		||||
	if (doit[D_CBC_IDEA])
 | 
			
		||||
@@ -1744,6 +1940,21 @@ int MAIN(int argc, char **argv)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_SEED
 | 
			
		||||
	if (doit[D_CBC_SEED])
 | 
			
		||||
		{
 | 
			
		||||
		for (j=0; j<SIZE_NUM; j++)
 | 
			
		||||
			{
 | 
			
		||||
			print_message(names[D_CBC_SEED],c[D_CBC_SEED][j],lengths[j]);
 | 
			
		||||
			Time_F(START);
 | 
			
		||||
			for (count=0,run=1; COND(c[D_CBC_SEED][j]); count++)
 | 
			
		||||
				SEED_cbc_encrypt(buf,buf,
 | 
			
		||||
					(unsigned long)lengths[j],&seed_ks,iv,1);
 | 
			
		||||
			d=Time_F(STOP);
 | 
			
		||||
			print_result(D_CBC_SEED,j,count,d);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RC2
 | 
			
		||||
	if (doit[D_CBC_RC2])
 | 
			
		||||
		{
 | 
			
		||||
@@ -2506,6 +2717,7 @@ static void print_result(int alg,int run_no,int count,double time_used)
 | 
			
		||||
	results[alg][run_no]=((double)count)/time_used*lengths[run_no];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_FORK
 | 
			
		||||
static char *sstrsep(char **string, const char *delim)
 | 
			
		||||
    {
 | 
			
		||||
    char isdelim[256];
 | 
			
		||||
@@ -2537,7 +2749,6 @@ static char *sstrsep(char **string, const char *delim)
 | 
			
		||||
    return token;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_FORK
 | 
			
		||||
static int do_multi(int multi)
 | 
			
		||||
	{
 | 
			
		||||
	int n;
 | 
			
		||||
 
 | 
			
		||||
@@ -73,8 +73,12 @@
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/pem.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#undef PROG
 | 
			
		||||
#define PROG x509_main
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								certs/aol1.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								certs/aol1.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
 | 
			
		||||
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
 | 
			
		||||
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
 | 
			
		||||
MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
 | 
			
		||||
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
 | 
			
		||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
 | 
			
		||||
ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
 | 
			
		||||
hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
 | 
			
		||||
1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
 | 
			
		||||
OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
 | 
			
		||||
2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
 | 
			
		||||
O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
 | 
			
		||||
AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
 | 
			
		||||
AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
 | 
			
		||||
BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
 | 
			
		||||
Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
 | 
			
		||||
LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
 | 
			
		||||
oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
 | 
			
		||||
MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
 | 
			
		||||
sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										33
									
								
								certs/aol2.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								certs/aol2.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
 | 
			
		||||
MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
 | 
			
		||||
bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
 | 
			
		||||
MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
 | 
			
		||||
ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
 | 
			
		||||
Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
 | 
			
		||||
ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
 | 
			
		||||
206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
 | 
			
		||||
KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
 | 
			
		||||
JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
 | 
			
		||||
BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
 | 
			
		||||
Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
 | 
			
		||||
PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
 | 
			
		||||
Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
 | 
			
		||||
Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
 | 
			
		||||
o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
 | 
			
		||||
+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
 | 
			
		||||
YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
 | 
			
		||||
FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
 | 
			
		||||
AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
 | 
			
		||||
xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
 | 
			
		||||
LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
 | 
			
		||||
obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
 | 
			
		||||
CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
 | 
			
		||||
IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
 | 
			
		||||
DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
 | 
			
		||||
AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
 | 
			
		||||
Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
 | 
			
		||||
AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
 | 
			
		||||
Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
 | 
			
		||||
RY8mkaKO/qk=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										23
									
								
								certs/aoltw1.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								certs/aoltw1.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
 | 
			
		||||
HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
 | 
			
		||||
IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
 | 
			
		||||
aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAwMFoXDTM3MTEyMDE1
 | 
			
		||||
MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
 | 
			
		||||
SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
 | 
			
		||||
IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
 | 
			
		||||
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U
 | 
			
		||||
0pPlLYnKhHw/EEMbjIt8hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItI
 | 
			
		||||
TuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAf
 | 
			
		||||
RC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqF
 | 
			
		||||
zQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqh
 | 
			
		||||
BC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEA
 | 
			
		||||
AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jY
 | 
			
		||||
PXy+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
 | 
			
		||||
BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn
 | 
			
		||||
9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7CegCgTXT
 | 
			
		||||
Ct8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77BfWgDrvq2g+EQF
 | 
			
		||||
Z7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
 | 
			
		||||
n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoW
 | 
			
		||||
H1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										34
									
								
								certs/aoltw2.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								certs/aoltw2.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
 | 
			
		||||
HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
 | 
			
		||||
IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
 | 
			
		||||
aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAwMFoXDTM3MDkyODIz
 | 
			
		||||
NDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
 | 
			
		||||
SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
 | 
			
		||||
IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw
 | 
			
		||||
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ
 | 
			
		||||
7ouZzU9AhqS2TcnZsdw8TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilb
 | 
			
		||||
m2BPJoPRYxJWSXakFsKlnUWsi4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOY
 | 
			
		||||
xFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZ
 | 
			
		||||
YYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbq
 | 
			
		||||
JS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fx
 | 
			
		||||
I2rSAG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETz
 | 
			
		||||
kxmlJ85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh
 | 
			
		||||
EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/S
 | 
			
		||||
Btc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJKg71ZDIM
 | 
			
		||||
gtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1ExMVCgyhwn2RAu
 | 
			
		||||
rda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
 | 
			
		||||
FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO
 | 
			
		||||
1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyugu
 | 
			
		||||
h4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdP
 | 
			
		||||
yXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q
 | 
			
		||||
7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKT
 | 
			
		||||
RuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/
 | 
			
		||||
ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyB
 | 
			
		||||
M5kYJRF3p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQ
 | 
			
		||||
my8YJPamTQr5O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xO
 | 
			
		||||
AU++CrYD062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT
 | 
			
		||||
9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H
 | 
			
		||||
hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOLZ8/5
 | 
			
		||||
fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										39
									
								
								certs/argena.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								certs/argena.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIG0zCCBbugAwIBAgIBADANBgkqhkiG9w0BAQUFADCBzDELMAkGA1UEBhMCQVQx
 | 
			
		||||
EDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTE6MDgGA1UEChMxQVJH
 | 
			
		||||
RSBEQVRFTiAtIEF1c3RyaWFuIFNvY2lldHkgZm9yIERhdGEgUHJvdGVjdGlvbjEl
 | 
			
		||||
MCMGA1UECxMcQS1DRVJUIENlcnRpZmljYXRpb24gU2VydmljZTEYMBYGA1UEAxMP
 | 
			
		||||
QS1DRVJUIEFEVkFOQ0VEMR0wGwYJKoZIhvcNAQkBFg5pbmZvQGEtY2VydC5hdDAe
 | 
			
		||||
Fw0wNDEwMjMxNDE0MTRaFw0xMTEwMjMxNDE0MTRaMIHMMQswCQYDVQQGEwJBVDEQ
 | 
			
		||||
MA4GA1UECBMHQXVzdHJpYTEPMA0GA1UEBxMGVmllbm5hMTowOAYDVQQKEzFBUkdF
 | 
			
		||||
IERBVEVOIC0gQXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0aW9uMSUw
 | 
			
		||||
IwYDVQQLExxBLUNFUlQgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRgwFgYDVQQDEw9B
 | 
			
		||||
LUNFUlQgQURWQU5DRUQxHTAbBgkqhkiG9w0BCQEWDmluZm9AYS1jZXJ0LmF0MIIB
 | 
			
		||||
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3euXIy+mnf6BYKbK+QH5k679
 | 
			
		||||
tUFqeT8jlZxMew8eNiHuw9KoxWBzL6KksK+5uK7Gatw+sbAYntEGE80P+Jg1hADM
 | 
			
		||||
e+Fr5V0bc6QS3gkVtfUCW/RIvfMM39oxvmqJmOgPnJU7H6+nmLtsq61tv9kVJi/2
 | 
			
		||||
4Y5wXW3odet72sF57EoG6s78w0BUVLNcMngS9bZZzmdG3/d6JbkGgoNF/8DcgCBJ
 | 
			
		||||
W/t0JrcIzyppXIOVtUzzOrrU86zuUgT3Rtkl5kjG7DEHpFb9H0fTOY1v8+gRoaO6
 | 
			
		||||
2gA0PCiysgVZjwgVeYe3KAg11nznyleDv198uK3Dc1oXIGYjJx2FpKWUvAuAEwID
 | 
			
		||||
AQABo4ICvDCCArgwHQYDVR0OBBYEFDd/Pj6ZcWDKJNSRE3nQdCm0qCTYMIH5BgNV
 | 
			
		||||
HSMEgfEwge6AFDd/Pj6ZcWDKJNSRE3nQdCm0qCTYoYHSpIHPMIHMMQswCQYDVQQG
 | 
			
		||||
EwJBVDEQMA4GA1UECBMHQXVzdHJpYTEPMA0GA1UEBxMGVmllbm5hMTowOAYDVQQK
 | 
			
		||||
EzFBUkdFIERBVEVOIC0gQXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0
 | 
			
		||||
aW9uMSUwIwYDVQQLExxBLUNFUlQgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRgwFgYD
 | 
			
		||||
VQQDEw9BLUNFUlQgQURWQU5DRUQxHTAbBgkqhkiG9w0BCQEWDmluZm9AYS1jZXJ0
 | 
			
		||||
LmF0ggEAMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMEcGA1UdJQRAMD4G
 | 
			
		||||
CCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcD
 | 
			
		||||
CAYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAP8wUQYDVR0gBEowSDBGBggq
 | 
			
		||||
KAAYAQEBAzA6MDgGCCsGAQUFBwIBFixodHRwOi8vd3d3LmEtY2VydC5hdC9jZXJ0
 | 
			
		||||
aWZpY2F0ZS1wb2xpY3kuaHRtbDA7BglghkgBhvhCAQgELhYsaHR0cDovL3d3dy5h
 | 
			
		||||
LWNlcnQuYXQvY2VydGlmaWNhdGUtcG9saWN5Lmh0bWwwGQYDVR0RBBIwEIEOaW5m
 | 
			
		||||
b0BhLWNlcnQuYXQwLwYDVR0SBCgwJoEOaW5mb0BhLWNlcnQuYXSGFGh0dHA6Ly93
 | 
			
		||||
d3cuYS1jZXJ0LmF0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHBzOi8vc2VjdXJlLmEt
 | 
			
		||||
Y2VydC5hdC9jZ2ktYmluL2EtY2VydC1hZHZhbmNlZC5jZ2kwDQYJKoZIhvcNAQEF
 | 
			
		||||
BQADggEBACX1IvgfdG2rvfv35O48vSEvcVaEdlN8USFBHWz3JRAozgzvaBtwHkjK
 | 
			
		||||
Zwt5l/BWOtjbvHfRjDt7ijlBEcxOOrNC1ffyMHwHrXpvff6YpQ5wnxmIYEQcURiG
 | 
			
		||||
HMqruEX0WkuDNgSKwefsgXs27eeBauHgNGVcTYH1rmHu/ZyLpLxOyJQ2PCzA1DzW
 | 
			
		||||
3rWkIX92ogJ7lTRdWrbxwUL1XGinxnnaQ74+/y0pI9JNEv7ic2tpkweRMpkedaLW
 | 
			
		||||
msC1+orfKTebsg69aMaCx7o6jNONRmR/7TVaPf8/k6g52cHZ9YWjQvup22b5rWxG
 | 
			
		||||
J5r5LZ4vCPmF4+T4lutjUYAa/lGuQTg=
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										23
									
								
								certs/argeng.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								certs/argeng.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIDwzCCAyygAwIBAgIBADANBgkqhkiG9w0BAQQFADCBmDELMAkGA1UEBhMCQVQx
 | 
			
		||||
EDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTFCMEAGA1UEChM5QXJn
 | 
			
		||||
ZSBEYXRlbiBPZXN0ZXJyZWljaGlzY2hlIEdlc2VsbHNjaGFmdCBmdWVyIERhdGVu
 | 
			
		||||
c2NodXR6MSIwIAYJKoZIhvcNAQkBFhNhLWNlcnRAYXJnZWRhdGVuLmF0MB4XDTAx
 | 
			
		||||
MDIxMjExMzAzMFoXDTA5MDIxMjExMzAzMFowgZgxCzAJBgNVBAYTAkFUMRAwDgYD
 | 
			
		||||
VQQIEwdBdXN0cmlhMQ8wDQYDVQQHEwZWaWVubmExQjBABgNVBAoTOUFyZ2UgRGF0
 | 
			
		||||
ZW4gT2VzdGVycmVpY2hpc2NoZSBHZXNlbGxzY2hhZnQgZnVlciBEYXRlbnNjaHV0
 | 
			
		||||
ejEiMCAGCSqGSIb3DQEJARYTYS1jZXJ0QGFyZ2VkYXRlbi5hdDCBnzANBgkqhkiG
 | 
			
		||||
9w0BAQEFAAOBjQAwgYkCgYEAwgsHqoNtmmrJ86+e1I4hOVBaL4kokqKN2IPOIL+1
 | 
			
		||||
XwY8vfOOUfPEdhWpaC0ldt7VYrksgDiUccgH0FROANWK2GkfKMDzjjXHysR04uEb
 | 
			
		||||
Om7Kqjqn0nproOGkFG+QvBZgs+Ws+HXNFJA6V76fU4+JXq4452LSK4Lr5YcBquu3
 | 
			
		||||
NJECAwEAAaOCARkwggEVMB0GA1UdDgQWBBQ0j59zH/G31zRjgK1y2P//tSAWZjCB
 | 
			
		||||
xQYDVR0jBIG9MIG6gBQ0j59zH/G31zRjgK1y2P//tSAWZqGBnqSBmzCBmDELMAkG
 | 
			
		||||
A1UEBhMCQVQxEDAOBgNVBAgTB0F1c3RyaWExDzANBgNVBAcTBlZpZW5uYTFCMEAG
 | 
			
		||||
A1UEChM5QXJnZSBEYXRlbiBPZXN0ZXJyZWljaGlzY2hlIEdlc2VsbHNjaGFmdCBm
 | 
			
		||||
dWVyIERhdGVuc2NodXR6MSIwIAYJKoZIhvcNAQkBFhNhLWNlcnRAYXJnZWRhdGVu
 | 
			
		||||
LmF0ggEAMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQE
 | 
			
		||||
AwICBDANBgkqhkiG9w0BAQQFAAOBgQBFuJYncqMYB6gXQS3eDOI90BEHfFTKy/dV
 | 
			
		||||
AV+K7QdAYikWmqgBheRdPKddJdccPy/Zl/p3ZT7GhDyC5f3wZjcuu8AJ27BNwbCA
 | 
			
		||||
x54dgxgCNcyPm79nY8MRtEdEpoRGdSsFKJemz6hpXM++MWFciyrRWIIA44XB0Gv3
 | 
			
		||||
US0spjsDPQ==
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
							
								
								
									
										58
									
								
								config
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								config
									
									
									
									
									
								
							@@ -84,7 +84,7 @@ if [ "x$XREL" != "x" ]; then
 | 
			
		||||
	    4.2)
 | 
			
		||||
		echo "whatever-whatever-unixware1"; exit 0
 | 
			
		||||
		;;
 | 
			
		||||
	    5)
 | 
			
		||||
	    5*)
 | 
			
		||||
		case "x${VERSION}" in
 | 
			
		||||
		    # We hardcode i586 in place of ${MACHINE} for the
 | 
			
		||||
		    # following reason. The catch is that even though Pentium
 | 
			
		||||
@@ -93,8 +93,7 @@ if [ "x$XREL" != "x" ]; then
 | 
			
		||||
		    # with i386 is that it makes ./config pass 386 to
 | 
			
		||||
		    # ./Configure, which in turn makes make generate
 | 
			
		||||
		    # inefficient SHA-1 (for this moment) code.
 | 
			
		||||
		    x7*)  echo "i586-sco-unixware7";           exit 0 ;;
 | 
			
		||||
		    x8*)  echo "i586-unkn-OpenUNIX${VERSION}"; exit 0 ;;
 | 
			
		||||
		    x[678]*)  echo "i586-sco-unixware7"; exit 0 ;;
 | 
			
		||||
		esac
 | 
			
		||||
		;;
 | 
			
		||||
	esac
 | 
			
		||||
@@ -407,7 +406,7 @@ if [ "$GCCVER" != "" ]; then
 | 
			
		||||
  CC=gcc
 | 
			
		||||
  # then strip off whatever prefix egcs prepends the number with...
 | 
			
		||||
  # Hopefully, this will work for any future prefixes as well.
 | 
			
		||||
  GCCVER=`echo $GCCVER | sed 's/^[a-zA-Z]*\-//'`
 | 
			
		||||
  GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
 | 
			
		||||
  # Since gcc 3.1 gcc --version behaviour has changed.  gcc -dumpversion
 | 
			
		||||
  # does give us what we want though, so we use that.  We just just the
 | 
			
		||||
  # major and minor version numbers.
 | 
			
		||||
@@ -452,8 +451,6 @@ if [ "$SYSTEM" = "SunOS" ]; then
 | 
			
		||||
      echo "         patch #107357-01 or later applied."
 | 
			
		||||
      sleep 5
 | 
			
		||||
    fi
 | 
			
		||||
  elif [ "$CC" = "cc" -a $CCVER -gt 0 ]; then
 | 
			
		||||
    CC=sc3
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -588,23 +585,27 @@ case "$GUESSOS" in
 | 
			
		||||
	OUT="linux-generic32" ;;
 | 
			
		||||
  arm*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
 | 
			
		||||
  arm*l-*-linux2) OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
 | 
			
		||||
  s390*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;;
 | 
			
		||||
  sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
 | 
			
		||||
  sh*-*-linux2)  OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
 | 
			
		||||
  m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
 | 
			
		||||
  s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN -DNO_ASM" ;;
 | 
			
		||||
  s390x-*-linux2) OUT="linux-generic64"; options="$options -DB_ENDIAN" ;;
 | 
			
		||||
  x86_64-*-linux?) OUT="linux-x86_64" ;;
 | 
			
		||||
  *86-*-linux2) OUT="linux-elf"
 | 
			
		||||
	if [ "$GCCVER" -gt 28 ]; then
 | 
			
		||||
          if grep '^model.*Pentium' /proc/cpuinfo >/dev/null ; then
 | 
			
		||||
	    options="$options -mcpu=pentium"
 | 
			
		||||
	    options="$options -march=pentium"
 | 
			
		||||
          fi
 | 
			
		||||
          if grep '^model.*Pentium Pro' /proc/cpuinfo >/dev/null ; then
 | 
			
		||||
	    options="$options -mcpu=pentiumpro"
 | 
			
		||||
	    options="$options -march=pentiumpro"
 | 
			
		||||
          fi
 | 
			
		||||
          if grep '^model.*K6' /proc/cpuinfo >/dev/null ; then
 | 
			
		||||
	    options="$options -mcpu=k6"
 | 
			
		||||
	    options="$options -march=k6"
 | 
			
		||||
          fi
 | 
			
		||||
        fi ;;
 | 
			
		||||
  *-*-linux1) OUT="linux-aout" ;;
 | 
			
		||||
  *-*-linux2) OUT="linux-generic32" ;;
 | 
			
		||||
  sun4u*-*-solaris2)
 | 
			
		||||
  sun4[uv]*-*-solaris2)
 | 
			
		||||
	OUT="solaris-sparcv9-$CC"
 | 
			
		||||
	ISA64=`(isalist) 2>/dev/null | grep sparcv9`
 | 
			
		||||
	if [ "$ISA64" != "" ]; then
 | 
			
		||||
@@ -654,13 +655,20 @@ case "$GUESSOS" in
 | 
			
		||||
	;;
 | 
			
		||||
  *-*-sunos4)		OUT="sunos-$CC" ;;
 | 
			
		||||
 | 
			
		||||
  *86*-*-bsdi4)		OUT="bsdi-elf-gcc"; options="$options no-sse2" ;;
 | 
			
		||||
  *86*-*-bsdi4)		OUT="BSD-x86-elf"; options="$options no-sse2 -ldl" ;;
 | 
			
		||||
  alpha*-*-*bsd*)	OUT="BSD-generic64; options="$options -DL_ENDIAN" ;;
 | 
			
		||||
  powerpc64-*-*bsd*)	OUT="BSD-generic64; options="$options -DB_ENDIAN" ;;
 | 
			
		||||
  sparc64-*-*bsd*)	OUT="BSD-sparc64" ;;
 | 
			
		||||
  ia64-*-*bsd*)		OUT="BSD-ia64" ;;
 | 
			
		||||
  amd64-*-*bsd*)	OUT="BSD-x86_64" ;;
 | 
			
		||||
  *86*-*-*bsd*)		case "`(file -L /usr/lib/libc.so.*) 2>/dev/null`" in
 | 
			
		||||
  *86*-*-*bsd*)		# mimic ld behaviour when it's looking for libc...
 | 
			
		||||
			if [ -L /usr/lib/libc.so ]; then	# [Free|Net]BSD
 | 
			
		||||
			    libc=/usr/lib/libc.so
 | 
			
		||||
			else					# OpenBSD
 | 
			
		||||
			    # ld searches for highest libc.so.* and so do we
 | 
			
		||||
			    libc=`(ls /usr/lib/libc.so.* | tail -1) 2>/dev/null`
 | 
			
		||||
			fi
 | 
			
		||||
			case "`(file -L $libc) 2>/dev/null`" in
 | 
			
		||||
			*ELF*)	OUT="BSD-x86-elf" ;;
 | 
			
		||||
			*)	OUT="BSD-x86"; options="$options no-sse2" ;;
 | 
			
		||||
			esac ;;
 | 
			
		||||
@@ -668,16 +676,15 @@ case "$GUESSOS" in
 | 
			
		||||
 | 
			
		||||
  *-*-osf)		OUT="osf1-alpha-cc" ;;
 | 
			
		||||
  *-*-tru64)		OUT="tru64-alpha-cc" ;;
 | 
			
		||||
  *-*-OpenUNIX*)
 | 
			
		||||
  *-*-[Uu]nix[Ww]are7)
 | 
			
		||||
	if [ "$CC" = "gcc" ]; then
 | 
			
		||||
	  OUT="OpenUNIX-8-gcc" 
 | 
			
		||||
	  OUT="unixware-7-gcc" ; options="$options no-sse2"
 | 
			
		||||
	else    
 | 
			
		||||
	  OUT="OpenUNIX-8" 
 | 
			
		||||
	  OUT="unixware-7" ; options="$options no-sse2 -D__i386__"
 | 
			
		||||
	fi
 | 
			
		||||
	;;
 | 
			
		||||
  *-*-[Uu]nix[Ww]are7) OUT="unixware-7" ;;
 | 
			
		||||
  *-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0" ;;
 | 
			
		||||
  *-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1" ;;
 | 
			
		||||
  *-*-[Uu]nix[Ww]are20*) OUT="unixware-2.0"; options="$options no-sse2 no-sha512" ;;
 | 
			
		||||
  *-*-[Uu]nix[Ww]are21*) OUT="unixware-2.1"; options="$options no-sse2 no-sha512" ;;
 | 
			
		||||
  *-*-vos)
 | 
			
		||||
	options="$options no-threads no-shared no-asm no-dso"
 | 
			
		||||
	EXE=".pm"
 | 
			
		||||
@@ -714,9 +721,9 @@ case "$GUESSOS" in
 | 
			
		||||
		fi
 | 
			
		||||
	     fi
 | 
			
		||||
	elif [ $CPU_VERSION -ge 528 ]; then	# PA-RISC 1.1+ CPU
 | 
			
		||||
	     OUT="hpux-parisc-${CC}
 | 
			
		||||
	     OUT="hpux-parisc-${CC}"
 | 
			
		||||
	elif [ $CPU_VERSION -ge 523 ]; then	# PA-RISC 1.0 CPU
 | 
			
		||||
	     OUT="hpux-parisc-${CC}
 | 
			
		||||
	     OUT="hpux-parisc-${CC}"
 | 
			
		||||
	else					# Motorola(?) CPU
 | 
			
		||||
	     OUT="hpux-$CC"
 | 
			
		||||
	fi
 | 
			
		||||
@@ -742,6 +749,11 @@ case "$GUESSOS" in
 | 
			
		||||
		fi
 | 
			
		||||
	    fi
 | 
			
		||||
	fi
 | 
			
		||||
	if (lsattr -E -O -l `lsdev -c processor|awk '{print$1;exit}'` | grep -i powerpc) >/dev/null 2>&1; then
 | 
			
		||||
	    :	# this applies even to Power3 and later, as they return PowerPC_POWER[345]
 | 
			
		||||
	else
 | 
			
		||||
	    options="$options no-asm"
 | 
			
		||||
	fi
 | 
			
		||||
	;;
 | 
			
		||||
  # these are all covered by the catchall below
 | 
			
		||||
  # *-dgux) OUT="dgux" ;;
 | 
			
		||||
@@ -766,7 +778,7 @@ esac
 | 
			
		||||
#  options="$options -DATALLA"
 | 
			
		||||
#fi
 | 
			
		||||
 | 
			
		||||
# gcc < 2.8 does not support -mcpu=ultrasparc
 | 
			
		||||
# gcc < 2.8 does not support -march=ultrasparc
 | 
			
		||||
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
 | 
			
		||||
then
 | 
			
		||||
  echo "WARNING! Falling down to 'solaris-sparcv8-gcc'."
 | 
			
		||||
@@ -786,7 +798,7 @@ case "$GUESSOS" in
 | 
			
		||||
  i386-*) options="$options 386" ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
for i in bf cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 aes ripemd rsa sha
 | 
			
		||||
for i in aes bf camellia cast des dh dsa ec hmac idea md2 md5 mdc2 rc2 rc4 rc5 ripemd rsa seed sha
 | 
			
		||||
do
 | 
			
		||||
  if [ ! -d crypto/$i ]
 | 
			
		||||
  then
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										145
									
								
								crypto/Makefile
									
									
									
									
									
								
							
							
						
						
									
										145
									
								
								crypto/Makefile
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
#
 | 
			
		||||
# SSLeay/crypto/Makefile
 | 
			
		||||
# OpenSSL/crypto/Makefile
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
DIR=		crypto
 | 
			
		||||
@@ -15,6 +15,11 @@ MAKEFILE=       Makefile
 | 
			
		||||
RM=             rm -f
 | 
			
		||||
AR=		ar r
 | 
			
		||||
 | 
			
		||||
RECURSIVE_MAKE=	[ -n "$(SDIRS)" ] && for i in $(SDIRS) ; do \
 | 
			
		||||
		    (cd $$i && echo "making $$target in $(DIR)/$$i..." && \
 | 
			
		||||
		    $(MAKE) -e TOP=../.. DIR=$$i INCLUDES='${INCLUDES}' $$target ) || exit 1; \
 | 
			
		||||
		done;
 | 
			
		||||
 | 
			
		||||
PEX_LIBS=
 | 
			
		||||
EX_LIBS=
 | 
			
		||||
 
 | 
			
		||||
@@ -24,20 +29,12 @@ AFLAGS=$(ASFLAGS)
 | 
			
		||||
 | 
			
		||||
LIBS=
 | 
			
		||||
 | 
			
		||||
SDIRS=	objects \
 | 
			
		||||
	md2 md4 md5 sha mdc2 hmac ripemd \
 | 
			
		||||
	des rc2 rc4 rc5 idea bf cast \
 | 
			
		||||
	bn ec rsa dsa ecdsa ecdh dh dso engine aes \
 | 
			
		||||
	buffer bio stack lhash rand err \
 | 
			
		||||
	evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
 | 
			
		||||
	store pqueue
 | 
			
		||||
 | 
			
		||||
GENERAL=Makefile README crypto-lib.com install.com
 | 
			
		||||
 | 
			
		||||
LIB= $(TOP)/libcrypto.a
 | 
			
		||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
 | 
			
		||||
LIBSRC=	cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c
 | 
			
		||||
LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o $(CPUID_OBJ)
 | 
			
		||||
LIBSRC=	cryptlib.c dyn_lck.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c o_init.c fips_err.c 
 | 
			
		||||
LIBOBJ= cryptlib.o dyn_lck.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o o_init.o fips_err.o $(CPUID_OBJ)
 | 
			
		||||
 | 
			
		||||
SRC= $(LIBSRC)
 | 
			
		||||
 | 
			
		||||
@@ -52,30 +49,6 @@ top:
 | 
			
		||||
 | 
			
		||||
all: shared
 | 
			
		||||
 | 
			
		||||
BUILDENV=	PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
 | 
			
		||||
		CC='${CC}' CFLAG='${CFLAG}' 			\
 | 
			
		||||
		AS='${CC}' ASFLAG='${CFLAG} -c'			\
 | 
			
		||||
		AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}'	\
 | 
			
		||||
		SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/lib'		\
 | 
			
		||||
		INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}'	\
 | 
			
		||||
		MAKEDEPEND='$$(TOP)/util/domd $$(TOP) -MD $(MAKEDEPPROG)'\
 | 
			
		||||
		DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}'	\
 | 
			
		||||
		MAKEDEPPROG='${MAKEDEPPROG}'			\
 | 
			
		||||
		LDFLAGS="$(LDFLAGS)" SHARED_LDFLAGS="$(SHARED_LDFLAGS)"	\
 | 
			
		||||
		KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}'	\
 | 
			
		||||
		EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}'	\
 | 
			
		||||
		SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}'	\
 | 
			
		||||
		PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}'	\
 | 
			
		||||
		CPUID_OBJ='${CPUID_OBJ}'			\
 | 
			
		||||
		BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' 	\
 | 
			
		||||
		AES_ASM_OBJ='${AES_ASM_OBJ}'			\
 | 
			
		||||
		BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}'	\
 | 
			
		||||
		RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}'	\
 | 
			
		||||
		SHA1_ASM_OBJ='${SHA1_ASM_OBJ}'			\
 | 
			
		||||
		MD5_ASM_OBJ='${MD5_ASM_OBJ}'			\
 | 
			
		||||
		RMD160_ASM_OBJ='${RMD160_ASM_OBJ}'		\
 | 
			
		||||
		THIS=$${THIS:-$@}
 | 
			
		||||
 | 
			
		||||
buildinf.h: ../Makefile
 | 
			
		||||
	( echo "#ifndef MK1MF_BUILD"; \
 | 
			
		||||
	echo '  /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
 | 
			
		||||
@@ -103,39 +76,30 @@ ia64cpuid.s: ia64cpuid.S
 | 
			
		||||
	$(CC) $(CFLAGS) -E ia64cpuid.S > $@
 | 
			
		||||
 | 
			
		||||
testapps:
 | 
			
		||||
	[ -z "$(THIS)" ] || ( if echo ${SDIRS} | fgrep ' des '; \
 | 
			
		||||
	then cd des && $(MAKE) des; fi )
 | 
			
		||||
	[ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) testapps );
 | 
			
		||||
	[ -z "$(THIS)" ] || (	if echo ${SDIRS} | fgrep ' des '; \
 | 
			
		||||
				then cd des && $(MAKE) -e des; fi )
 | 
			
		||||
	[ -z "$(THIS)" ] || ( cd pkcs7 && $(MAKE) -e testapps );
 | 
			
		||||
	@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
 | 
			
		||||
 | 
			
		||||
subdirs:
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making all in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) $(BUILDENV) INCLUDES='${INCLUDES}' all ) || exit 1; \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=all; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
files:
 | 
			
		||||
	$(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making 'files' in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) files ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=files; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
links:
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl ../test $(TEST)
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl ../apps $(APPS)
 | 
			
		||||
	@for i in $(SDIRS); do \
 | 
			
		||||
	    (cd $$i && echo "making links in crypto/$$i..." && \
 | 
			
		||||
	    $(MAKE) links ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=links; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB) || echo Never mind.
 | 
			
		||||
# lib: and $(LIB): are splitted to avoid end-less loop
 | 
			
		||||
lib:	$(LIB)
 | 
			
		||||
	@touch lib
 | 
			
		||||
$(LIB):	$(LIBOBJ)
 | 
			
		||||
	$(ARX) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB) || echo Never mind.
 | 
			
		||||
 | 
			
		||||
shared: buildinf.h lib subdirs
 | 
			
		||||
	if [ -n "$(SHARED_LIBS)" ]; then \
 | 
			
		||||
@@ -143,19 +107,7 @@ shared: buildinf.h lib subdirs
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
libs:
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making libs in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) lib );
 | 
			
		||||
	done;
 | 
			
		||||
 | 
			
		||||
tests:
 | 
			
		||||
	@[ -z "$(THIS)" ] || (for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making tests in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) tests ); \
 | 
			
		||||
	done; )
 | 
			
		||||
	@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
 | 
			
		||||
	@target=lib; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
	@[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
 | 
			
		||||
@@ -164,47 +116,26 @@ install:
 | 
			
		||||
	(cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
 | 
			
		||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making install in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) install ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=install; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
lint:
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making lint in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) lint ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=lint; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
depend:
 | 
			
		||||
	[ -z "$(THIS)" -o -f buildinf.h ] || touch buildinf.h # fake buildinf.h if it does not exist
 | 
			
		||||
	[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
 | 
			
		||||
	[ -z "$(THIS)" -o -s buildinf.h ] || rm buildinf.h
 | 
			
		||||
	@[ -z "$(THIS)" ] || (set -e; \
 | 
			
		||||
	for i in $(SDIRS) ; do \
 | 
			
		||||
	    (	cd $$i && echo "making depend in crypto/$$i..." && \
 | 
			
		||||
		$(MAKE) INCLUDES='${INCLUDES}' depend \
 | 
			
		||||
	    ); \
 | 
			
		||||
	done; )
 | 
			
		||||
	@[ -z "$(THIS)" -o -f buildinf.h ] || touch buildinf.h # fake buildinf.h if it does not exist
 | 
			
		||||
	@[ -z "$(THIS)" ] || $(MAKEDEPEND) -- $(CFLAG) $(INCLUDE) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
 | 
			
		||||
	@[ -z "$(THIS)" -o -s buildinf.h ] || rm buildinf.h
 | 
			
		||||
	@[ -z "$(THIS)" ] || (set -e; target=depend; $(RECURSIVE_MAKE) )
 | 
			
		||||
	@if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f buildinf.h *.s *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making clean in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) clean ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=clean; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
dclean:
 | 
			
		||||
	$(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
 | 
			
		||||
	mv -f Makefile.new $(MAKEFILE)
 | 
			
		||||
	@for i in $(SDIRS) ;\
 | 
			
		||||
	do \
 | 
			
		||||
	(cd $$i && echo "making dclean in crypto/$$i..." && \
 | 
			
		||||
	$(MAKE) dclean ); \
 | 
			
		||||
	done;
 | 
			
		||||
	@target=dclean; $(RECURSIVE_MAKE)
 | 
			
		||||
 | 
			
		||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
 | 
			
		||||
 | 
			
		||||
@@ -228,6 +159,13 @@ cversion.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
cversion.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
 | 
			
		||||
cversion.o: ../include/openssl/stack.h ../include/openssl/symhacks.h buildinf.h
 | 
			
		||||
cversion.o: cryptlib.h cversion.c
 | 
			
		||||
dyn_lck.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 | 
			
		||||
dyn_lck.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 | 
			
		||||
dyn_lck.o: ../include/openssl/err.h ../include/openssl/lhash.h
 | 
			
		||||
dyn_lck.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
dyn_lck.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
 | 
			
		||||
dyn_lck.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
 | 
			
		||||
dyn_lck.o: dyn_lck.c
 | 
			
		||||
ebcdic.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h ebcdic.c
 | 
			
		||||
ex_data.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 | 
			
		||||
ex_data.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 | 
			
		||||
@@ -236,6 +174,13 @@ ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
ex_data.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
 | 
			
		||||
ex_data.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
 | 
			
		||||
ex_data.o: ex_data.c
 | 
			
		||||
fips_err.o: ../include/openssl/bio.h ../include/openssl/crypto.h
 | 
			
		||||
fips_err.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
fips_err.o: ../include/openssl/fips.h ../include/openssl/lhash.h
 | 
			
		||||
fips_err.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
			
		||||
fips_err.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
 | 
			
		||||
fips_err.o: ../include/openssl/stack.h ../include/openssl/symhacks.h fips_err.c
 | 
			
		||||
fips_err.o: fips_err.h
 | 
			
		||||
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 | 
			
		||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 | 
			
		||||
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
 | 
			
		||||
@@ -256,6 +201,12 @@ mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
 | 
			
		||||
mem_dbg.o: mem_dbg.c
 | 
			
		||||
o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
 | 
			
		||||
o_dir.o: LPdir_unix.c o_dir.c o_dir.h
 | 
			
		||||
o_init.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/crypto.h
 | 
			
		||||
o_init.o: ../include/openssl/e_os2.h ../include/openssl/err.h
 | 
			
		||||
o_init.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
 | 
			
		||||
o_init.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
 | 
			
		||||
o_init.o: ../include/openssl/safestack.h ../include/openssl/stack.h
 | 
			
		||||
o_init.o: ../include/openssl/symhacks.h o_init.c
 | 
			
		||||
o_str.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
 | 
			
		||||
o_str.o: o_str.c o_str.h
 | 
			
		||||
o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
 | 
			
		||||
 
 | 
			
		||||
@@ -23,8 +23,10 @@ TEST=
 | 
			
		||||
APPS=
 | 
			
		||||
 | 
			
		||||
LIB=$(TOP)/libcrypto.a
 | 
			
		||||
LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c aes_ctr.c
 | 
			
		||||
LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o $(AES_ASM_OBJ)
 | 
			
		||||
LIBSRC=aes_core.c aes_misc.c aes_ecb.c aes_cbc.c aes_cfb.c aes_ofb.c \
 | 
			
		||||
       aes_ctr.c aes_ige.c
 | 
			
		||||
LIBOBJ=aes_misc.o aes_ecb.o aes_cfb.o aes_ofb.o aes_ctr.o aes_ige.o \
 | 
			
		||||
       $(AES_ASM_OBJ)
 | 
			
		||||
 | 
			
		||||
SRC= $(LIBSRC)
 | 
			
		||||
 | 
			
		||||
@@ -39,7 +41,7 @@ top:
 | 
			
		||||
all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(ARX) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB) || echo Never mind.
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
@@ -103,6 +105,13 @@ aes_ctr.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
 | 
			
		||||
aes_ctr.o: ../../include/openssl/opensslconf.h aes_ctr.c aes_locl.h
 | 
			
		||||
aes_ecb.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
 | 
			
		||||
aes_ecb.o: ../../include/openssl/opensslconf.h aes_ecb.c aes_locl.h
 | 
			
		||||
aes_ige.o: ../../e_os.h ../../include/openssl/aes.h ../../include/openssl/bio.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
aes_ige.o: ../../include/openssl/symhacks.h ../cryptlib.h aes_ige.c aes_locl.h
 | 
			
		||||
aes_misc.o: ../../include/openssl/aes.h ../../include/openssl/e_os2.h
 | 
			
		||||
aes_misc.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
aes_misc.o: ../../include/openssl/opensslv.h aes_locl.h aes_misc.c
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,10 @@
 | 
			
		||||
#define AES_MAXNR 14
 | 
			
		||||
#define AES_BLOCK_SIZE 16
 | 
			
		||||
 | 
			
		||||
#ifdef OPENSSL_FIPS
 | 
			
		||||
#define FIPS_AES_SIZE_T	int
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef  __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
@@ -119,6 +123,17 @@ void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
	unsigned char ecount_buf[AES_BLOCK_SIZE],
 | 
			
		||||
	unsigned int *num);
 | 
			
		||||
 | 
			
		||||
/* For IGE, see also http://www.links.org/files/openssl-ige.pdf */
 | 
			
		||||
/* NB: the IV is _two_ blocks long */
 | 
			
		||||
void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
		     const unsigned long length, const AES_KEY *key,
 | 
			
		||||
		     unsigned char *ivec, const int enc);
 | 
			
		||||
/* NB: the IV is _four_ blocks long */
 | 
			
		||||
void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
			const unsigned long length, const AES_KEY *key,
 | 
			
		||||
			const AES_KEY *key2, const unsigned char *ivec,
 | 
			
		||||
			const int enc);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef  __cplusplus
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,7 @@
 | 
			
		||||
#include <openssl/aes.h>
 | 
			
		||||
#include "aes_locl.h"
 | 
			
		||||
 | 
			
		||||
#if !defined(OPENSSL_FIPS_AES_ASM)
 | 
			
		||||
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
		     const unsigned long length, const AES_KEY *key,
 | 
			
		||||
		     unsigned char *ivec, const int enc) {
 | 
			
		||||
@@ -129,3 +130,4 @@ void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -39,27 +39,21 @@
 | 
			
		||||
#include <openssl/aes.h>
 | 
			
		||||
#include "aes_locl.h"
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_FIPS
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Te0[x] = S [x].[02, 01, 01, 03];
 | 
			
		||||
Te1[x] = S [x].[03, 02, 01, 01];
 | 
			
		||||
Te2[x] = S [x].[01, 03, 02, 01];
 | 
			
		||||
Te3[x] = S [x].[01, 01, 03, 02];
 | 
			
		||||
Te4[x] = S [x].[01, 01, 01, 01];
 | 
			
		||||
 | 
			
		||||
Td0[x] = Si[x].[0e, 09, 0d, 0b];
 | 
			
		||||
Td1[x] = Si[x].[0b, 0e, 09, 0d];
 | 
			
		||||
Td2[x] = Si[x].[0d, 0b, 0e, 09];
 | 
			
		||||
Td3[x] = Si[x].[09, 0d, 0b, 0e];
 | 
			
		||||
Td4[x] = Si[x].[01, 01, 01, 01];
 | 
			
		||||
Td4[x] = Si[x].[01];
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#ifdef AES_ASM
 | 
			
		||||
extern const u32 AES_Te[5][256];
 | 
			
		||||
#define Te0 AES_Te[0]
 | 
			
		||||
#define Te1 AES_Te[1]
 | 
			
		||||
#define Te2 AES_Te[2]
 | 
			
		||||
#define Te3 AES_Te[3]
 | 
			
		||||
#else
 | 
			
		||||
static const u32 Te0[256] = {
 | 
			
		||||
    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
 | 
			
		||||
    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
 | 
			
		||||
@@ -324,81 +318,7 @@ static const u32 Te3[256] = {
 | 
			
		||||
    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
 | 
			
		||||
    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
static const u32 Te4[256] = {
 | 
			
		||||
    0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
 | 
			
		||||
    0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
 | 
			
		||||
    0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
 | 
			
		||||
    0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
 | 
			
		||||
    0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
 | 
			
		||||
    0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
 | 
			
		||||
    0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
 | 
			
		||||
    0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
 | 
			
		||||
    0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
 | 
			
		||||
    0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
 | 
			
		||||
    0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
 | 
			
		||||
    0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
 | 
			
		||||
    0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
 | 
			
		||||
    0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
 | 
			
		||||
    0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
 | 
			
		||||
    0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
 | 
			
		||||
    0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
 | 
			
		||||
    0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
 | 
			
		||||
    0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
 | 
			
		||||
    0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
 | 
			
		||||
    0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
 | 
			
		||||
    0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
 | 
			
		||||
    0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
 | 
			
		||||
    0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
 | 
			
		||||
    0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
 | 
			
		||||
    0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
 | 
			
		||||
    0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
 | 
			
		||||
    0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
 | 
			
		||||
    0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
 | 
			
		||||
    0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
 | 
			
		||||
    0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
 | 
			
		||||
    0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
 | 
			
		||||
    0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
 | 
			
		||||
    0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
 | 
			
		||||
    0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
 | 
			
		||||
    0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
 | 
			
		||||
    0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
 | 
			
		||||
    0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
 | 
			
		||||
    0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
 | 
			
		||||
    0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
 | 
			
		||||
    0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
 | 
			
		||||
    0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
 | 
			
		||||
    0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
 | 
			
		||||
    0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
 | 
			
		||||
    0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
 | 
			
		||||
    0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
 | 
			
		||||
    0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
 | 
			
		||||
    0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
 | 
			
		||||
    0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
 | 
			
		||||
    0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
 | 
			
		||||
    0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
 | 
			
		||||
    0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
 | 
			
		||||
    0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
 | 
			
		||||
    0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
 | 
			
		||||
    0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
 | 
			
		||||
    0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
 | 
			
		||||
    0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
 | 
			
		||||
    0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
 | 
			
		||||
    0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
 | 
			
		||||
    0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
 | 
			
		||||
    0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
 | 
			
		||||
    0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
 | 
			
		||||
    0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
 | 
			
		||||
    0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef AES_ASM
 | 
			
		||||
extern const u32 AES_Td[5][256];
 | 
			
		||||
#define Td0 AES_Td[0]
 | 
			
		||||
#define Td1 AES_Td[1]
 | 
			
		||||
#define Td2 AES_Td[2]
 | 
			
		||||
#define Td3 AES_Td[3]
 | 
			
		||||
#else
 | 
			
		||||
static const u32 Td0[256] = {
 | 
			
		||||
    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
 | 
			
		||||
    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
 | 
			
		||||
@@ -663,72 +583,39 @@ static const u32 Td3[256] = {
 | 
			
		||||
    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
 | 
			
		||||
    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
static const u32 Td4[256] = {
 | 
			
		||||
    0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
 | 
			
		||||
    0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
 | 
			
		||||
    0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
 | 
			
		||||
    0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
 | 
			
		||||
    0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
 | 
			
		||||
    0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
 | 
			
		||||
    0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
 | 
			
		||||
    0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
 | 
			
		||||
    0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
 | 
			
		||||
    0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
 | 
			
		||||
    0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
 | 
			
		||||
    0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
 | 
			
		||||
    0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
 | 
			
		||||
    0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
 | 
			
		||||
    0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
 | 
			
		||||
    0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
 | 
			
		||||
    0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
 | 
			
		||||
    0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
 | 
			
		||||
    0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
 | 
			
		||||
    0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
 | 
			
		||||
    0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
 | 
			
		||||
    0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
 | 
			
		||||
    0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
 | 
			
		||||
    0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
 | 
			
		||||
    0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
 | 
			
		||||
    0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
 | 
			
		||||
    0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
 | 
			
		||||
    0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
 | 
			
		||||
    0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
 | 
			
		||||
    0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
 | 
			
		||||
    0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
 | 
			
		||||
    0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
 | 
			
		||||
    0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
 | 
			
		||||
    0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
 | 
			
		||||
    0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
 | 
			
		||||
    0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
 | 
			
		||||
    0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
 | 
			
		||||
    0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
 | 
			
		||||
    0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
 | 
			
		||||
    0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
 | 
			
		||||
    0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
 | 
			
		||||
    0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
 | 
			
		||||
    0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
 | 
			
		||||
    0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
 | 
			
		||||
    0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
 | 
			
		||||
    0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
 | 
			
		||||
    0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
 | 
			
		||||
    0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
 | 
			
		||||
    0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
 | 
			
		||||
    0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
 | 
			
		||||
    0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
 | 
			
		||||
    0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
 | 
			
		||||
    0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
 | 
			
		||||
    0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
 | 
			
		||||
    0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
 | 
			
		||||
    0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
 | 
			
		||||
    0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
 | 
			
		||||
    0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
 | 
			
		||||
    0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
 | 
			
		||||
    0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
 | 
			
		||||
    0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
 | 
			
		||||
    0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
 | 
			
		||||
    0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
 | 
			
		||||
    0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
 | 
			
		||||
static const u8 Td4[256] = {
 | 
			
		||||
    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
 | 
			
		||||
    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
 | 
			
		||||
    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
 | 
			
		||||
    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
 | 
			
		||||
    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
 | 
			
		||||
    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
 | 
			
		||||
    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
 | 
			
		||||
    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
 | 
			
		||||
    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
 | 
			
		||||
    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
 | 
			
		||||
    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
 | 
			
		||||
    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
 | 
			
		||||
    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
 | 
			
		||||
    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
 | 
			
		||||
    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
 | 
			
		||||
    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
 | 
			
		||||
    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
 | 
			
		||||
    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
 | 
			
		||||
    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
 | 
			
		||||
    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
 | 
			
		||||
    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
 | 
			
		||||
    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
 | 
			
		||||
    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
 | 
			
		||||
    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
 | 
			
		||||
    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
 | 
			
		||||
    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
 | 
			
		||||
    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
 | 
			
		||||
    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
 | 
			
		||||
    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
 | 
			
		||||
    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
 | 
			
		||||
    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
 | 
			
		||||
    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
 | 
			
		||||
};
 | 
			
		||||
static const u32 rcon[] = {
 | 
			
		||||
	0x01000000, 0x02000000, 0x04000000, 0x08000000,
 | 
			
		||||
@@ -768,10 +655,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
			
		||||
		while (1) {
 | 
			
		||||
			temp  = rk[3];
 | 
			
		||||
			rk[4] = rk[0] ^
 | 
			
		||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				rcon[i];
 | 
			
		||||
			rk[5] = rk[1] ^ rk[4];
 | 
			
		||||
			rk[6] = rk[2] ^ rk[5];
 | 
			
		||||
@@ -788,10 +675,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
			
		||||
		while (1) {
 | 
			
		||||
			temp = rk[ 5];
 | 
			
		||||
			rk[ 6] = rk[ 0] ^
 | 
			
		||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				rcon[i];
 | 
			
		||||
			rk[ 7] = rk[ 1] ^ rk[ 6];
 | 
			
		||||
			rk[ 8] = rk[ 2] ^ rk[ 7];
 | 
			
		||||
@@ -810,10 +697,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
			
		||||
		while (1) {
 | 
			
		||||
			temp = rk[ 7];
 | 
			
		||||
			rk[ 8] = rk[ 0] ^
 | 
			
		||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
			
		||||
				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
			
		||||
				rcon[i];
 | 
			
		||||
			rk[ 9] = rk[ 1] ^ rk[ 8];
 | 
			
		||||
			rk[10] = rk[ 2] ^ rk[ 9];
 | 
			
		||||
@@ -823,10 +710,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
			
		||||
			}
 | 
			
		||||
			temp = rk[11];
 | 
			
		||||
			rk[12] = rk[ 4] ^
 | 
			
		||||
				(Te4[(temp >> 24)       ] & 0xff000000) ^
 | 
			
		||||
				(Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te4[(temp >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te4[(temp      ) & 0xff] & 0x000000ff);
 | 
			
		||||
				(Te2[(temp >> 24)       ] & 0xff000000) ^
 | 
			
		||||
				(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
				(Te0[(temp >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
				(Te1[(temp      ) & 0xff] & 0x000000ff);
 | 
			
		||||
			rk[13] = rk[ 5] ^ rk[12];
 | 
			
		||||
			rk[14] = rk[ 6] ^ rk[13];
 | 
			
		||||
			rk[15] = rk[ 7] ^ rk[14];
 | 
			
		||||
@@ -865,25 +752,25 @@ int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
 | 
			
		||||
	for (i = 1; i < (key->rounds); i++) {
 | 
			
		||||
		rk += 4;
 | 
			
		||||
		rk[0] =
 | 
			
		||||
			Td0[Te4[(rk[0] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te4[(rk[0] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te4[(rk[0]      ) & 0xff] & 0xff];
 | 
			
		||||
			Td0[Te1[(rk[0] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te1[(rk[0] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te1[(rk[0]      ) & 0xff] & 0xff];
 | 
			
		||||
		rk[1] =
 | 
			
		||||
			Td0[Te4[(rk[1] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te4[(rk[1] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te4[(rk[1]      ) & 0xff] & 0xff];
 | 
			
		||||
			Td0[Te1[(rk[1] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te1[(rk[1] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te1[(rk[1]      ) & 0xff] & 0xff];
 | 
			
		||||
		rk[2] =
 | 
			
		||||
			Td0[Te4[(rk[2] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te4[(rk[2] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te4[(rk[2]      ) & 0xff] & 0xff];
 | 
			
		||||
			Td0[Te1[(rk[2] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te1[(rk[2] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te1[(rk[2]      ) & 0xff] & 0xff];
 | 
			
		||||
		rk[3] =
 | 
			
		||||
			Td0[Te4[(rk[3] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te4[(rk[3] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te4[(rk[3]      ) & 0xff] & 0xff];
 | 
			
		||||
			Td0[Te1[(rk[3] >> 24)       ] & 0xff] ^
 | 
			
		||||
			Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
 | 
			
		||||
			Td2[Te1[(rk[3] >>  8) & 0xff] & 0xff] ^
 | 
			
		||||
			Td3[Te1[(rk[3]      ) & 0xff] & 0xff];
 | 
			
		||||
	}
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
@@ -1051,31 +938,31 @@ void AES_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
	 * map cipher state to byte array block:
 | 
			
		||||
	 */
 | 
			
		||||
	s0 =
 | 
			
		||||
		(Te4[(t0 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te4[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te4[(t3      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		(Te2[(t0 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te0[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te1[(t3      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		rk[0];
 | 
			
		||||
	PUTU32(out     , s0);
 | 
			
		||||
	s1 =
 | 
			
		||||
		(Te4[(t1 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te4[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te4[(t0      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		(Te2[(t1 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te0[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te1[(t0      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		rk[1];
 | 
			
		||||
	PUTU32(out +  4, s1);
 | 
			
		||||
	s2 =
 | 
			
		||||
		(Te4[(t2 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te4[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te4[(t1      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		(Te2[(t2 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te0[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te1[(t1      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		rk[2];
 | 
			
		||||
	PUTU32(out +  8, s2);
 | 
			
		||||
	s3 =
 | 
			
		||||
		(Te4[(t3 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te4[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te4[(t2      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		(Te2[(t3 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
		(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
		(Te0[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
		(Te1[(t2      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
		rk[3];
 | 
			
		||||
	PUTU32(out + 12, s3);
 | 
			
		||||
}
 | 
			
		||||
@@ -1242,33 +1129,35 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
	 * map cipher state to byte array block:
 | 
			
		||||
	 */
 | 
			
		||||
   	s0 =
 | 
			
		||||
   		(Td4[(t0 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
   		(Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
   		(Td4[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
   		(Td4[(t1      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
   		(Td4[(t0 >> 24)       ] << 24) ^
 | 
			
		||||
   		(Td4[(t3 >> 16) & 0xff] << 16) ^
 | 
			
		||||
   		(Td4[(t2 >>  8) & 0xff] <<  8) ^
 | 
			
		||||
   		(Td4[(t1      ) & 0xff])       ^
 | 
			
		||||
   		rk[0];
 | 
			
		||||
	PUTU32(out     , s0);
 | 
			
		||||
   	s1 =
 | 
			
		||||
   		(Td4[(t1 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
   		(Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
   		(Td4[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
   		(Td4[(t2      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
   		(Td4[(t1 >> 24)       ] << 24) ^
 | 
			
		||||
   		(Td4[(t0 >> 16) & 0xff] << 16) ^
 | 
			
		||||
   		(Td4[(t3 >>  8) & 0xff] <<  8) ^
 | 
			
		||||
   		(Td4[(t2      ) & 0xff])       ^
 | 
			
		||||
   		rk[1];
 | 
			
		||||
	PUTU32(out +  4, s1);
 | 
			
		||||
   	s2 =
 | 
			
		||||
   		(Td4[(t2 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
   		(Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
   		(Td4[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
   		(Td4[(t3      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
   		(Td4[(t2 >> 24)       ] << 24) ^
 | 
			
		||||
   		(Td4[(t1 >> 16) & 0xff] << 16) ^
 | 
			
		||||
   		(Td4[(t0 >>  8) & 0xff] <<  8) ^
 | 
			
		||||
   		(Td4[(t3      ) & 0xff])       ^
 | 
			
		||||
   		rk[2];
 | 
			
		||||
	PUTU32(out +  8, s2);
 | 
			
		||||
   	s3 =
 | 
			
		||||
   		(Td4[(t3 >> 24)       ] & 0xff000000) ^
 | 
			
		||||
   		(Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
			
		||||
   		(Td4[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
			
		||||
   		(Td4[(t0      ) & 0xff] & 0x000000ff) ^
 | 
			
		||||
   		(Td4[(t3 >> 24)       ] << 24) ^
 | 
			
		||||
   		(Td4[(t2 >> 16) & 0xff] << 16) ^
 | 
			
		||||
   		(Td4[(t1 >>  8) & 0xff] <<  8) ^
 | 
			
		||||
   		(Td4[(t0      ) & 0xff])       ^
 | 
			
		||||
   		rk[3];
 | 
			
		||||
	PUTU32(out + 12, s3);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* AES_ASM */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										319
									
								
								crypto/aes/aes_ige.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								crypto/aes/aes_ige.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,319 @@
 | 
			
		||||
/* crypto/aes/aes_ige.c -*- mode:C; c-file-style: "eay" -*- */
 | 
			
		||||
/* ====================================================================
 | 
			
		||||
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Redistribution and use in source and binary forms, with or without
 | 
			
		||||
 * modification, are permitted provided that the following conditions
 | 
			
		||||
 * are met:
 | 
			
		||||
 *
 | 
			
		||||
 * 1. Redistributions of source code must retain the above copyright
 | 
			
		||||
 *    notice, this list of conditions and the following disclaimer. 
 | 
			
		||||
 *
 | 
			
		||||
 * 2. Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
 *    notice, this list of conditions and the following disclaimer in
 | 
			
		||||
 *    the documentation and/or other materials provided with the
 | 
			
		||||
 *    distribution.
 | 
			
		||||
 *
 | 
			
		||||
 * 3. All advertising materials mentioning features or use of this
 | 
			
		||||
 *    software must display the following acknowledgment:
 | 
			
		||||
 *    "This product includes software developed by the OpenSSL Project
 | 
			
		||||
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 | 
			
		||||
 *
 | 
			
		||||
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 | 
			
		||||
 *    endorse or promote products derived from this software without
 | 
			
		||||
 *    prior written permission. For written permission, please contact
 | 
			
		||||
 *    openssl-core@openssl.org.
 | 
			
		||||
 *
 | 
			
		||||
 * 5. Products derived from this software may not be called "OpenSSL"
 | 
			
		||||
 *    nor may "OpenSSL" appear in their names without prior written
 | 
			
		||||
 *    permission of the OpenSSL Project.
 | 
			
		||||
 *
 | 
			
		||||
 * 6. Redistributions of any form whatsoever must retain the following
 | 
			
		||||
 *    acknowledgment:
 | 
			
		||||
 *    "This product includes software developed by the OpenSSL Project
 | 
			
		||||
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 | 
			
		||||
 *
 | 
			
		||||
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 | 
			
		||||
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | 
			
		||||
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 | 
			
		||||
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
			
		||||
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 | 
			
		||||
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
			
		||||
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
			
		||||
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 | 
			
		||||
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
			
		||||
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 | 
			
		||||
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 * ====================================================================
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
 | 
			
		||||
#include <openssl/aes.h>
 | 
			
		||||
#include "aes_locl.h"
 | 
			
		||||
 | 
			
		||||
#define N_WORDS (AES_BLOCK_SIZE / sizeof(unsigned long))
 | 
			
		||||
typedef struct {
 | 
			
		||||
        unsigned long data[N_WORDS];
 | 
			
		||||
} aes_block_t;
 | 
			
		||||
 | 
			
		||||
/* XXX: probably some better way to do this */
 | 
			
		||||
#if defined(__i386__) || defined(__x86_64__)
 | 
			
		||||
#define UNALIGNED_MEMOPS_ARE_FAST 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef UNALIGNED_MEMOPS_ARE_FAST
 | 
			
		||||
#define load_block(d, s)        (d) = *(const aes_block_t *)(s)
 | 
			
		||||
#define store_block(d, s)       *(aes_block_t *)(d) = (s)
 | 
			
		||||
#else
 | 
			
		||||
#define load_block(d, s)        memcpy((d).data, (s), AES_BLOCK_SIZE)
 | 
			
		||||
#define store_block(d, s)       memcpy((d), (s).data, AES_BLOCK_SIZE)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* N.B. The IV for this mode is _twice_ the block size */
 | 
			
		||||
 | 
			
		||||
void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
					 const unsigned long length, const AES_KEY *key,
 | 
			
		||||
					 unsigned char *ivec, const int enc)
 | 
			
		||||
	{
 | 
			
		||||
	unsigned long n;
 | 
			
		||||
	unsigned long len;
 | 
			
		||||
 | 
			
		||||
	OPENSSL_assert(in && out && key && ivec);
 | 
			
		||||
	OPENSSL_assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
 | 
			
		||||
	OPENSSL_assert((length%AES_BLOCK_SIZE) == 0);
 | 
			
		||||
 | 
			
		||||
	len = length / AES_BLOCK_SIZE;
 | 
			
		||||
 | 
			
		||||
	if (AES_ENCRYPT == enc)
 | 
			
		||||
		{
 | 
			
		||||
		if (in != out)
 | 
			
		||||
			{
 | 
			
		||||
			aes_block_t *ivp = (aes_block_t *)ivec;
 | 
			
		||||
			aes_block_t *iv2p = (aes_block_t *)(ivec + AES_BLOCK_SIZE);
 | 
			
		||||
 | 
			
		||||
			while (len)
 | 
			
		||||
				{
 | 
			
		||||
				aes_block_t *inp = (aes_block_t *)in;
 | 
			
		||||
				aes_block_t *outp = (aes_block_t *)out;
 | 
			
		||||
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					outp->data[n] = inp->data[n] ^ ivp->data[n];
 | 
			
		||||
				AES_encrypt((unsigned char *)outp->data, (unsigned char *)outp->data, key);
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					outp->data[n] ^= iv2p->data[n];
 | 
			
		||||
				ivp = outp;
 | 
			
		||||
				iv2p = inp;
 | 
			
		||||
				--len;
 | 
			
		||||
				in += AES_BLOCK_SIZE;
 | 
			
		||||
				out += AES_BLOCK_SIZE;
 | 
			
		||||
				}
 | 
			
		||||
			memcpy(ivec, ivp->data, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(ivec + AES_BLOCK_SIZE, iv2p->data, AES_BLOCK_SIZE);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			aes_block_t tmp, tmp2;
 | 
			
		||||
			aes_block_t iv;
 | 
			
		||||
			aes_block_t iv2;
 | 
			
		||||
 | 
			
		||||
			load_block(iv, ivec);
 | 
			
		||||
			load_block(iv2, ivec + AES_BLOCK_SIZE);
 | 
			
		||||
 | 
			
		||||
			while (len)
 | 
			
		||||
				{
 | 
			
		||||
				load_block(tmp, in);
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					tmp2.data[n] = tmp.data[n] ^ iv.data[n];
 | 
			
		||||
				AES_encrypt((unsigned char *)tmp2.data, (unsigned char *)tmp2.data, key);
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					tmp2.data[n] ^= iv2.data[n];
 | 
			
		||||
				store_block(out, tmp2);
 | 
			
		||||
				iv = tmp2;
 | 
			
		||||
				iv2 = tmp;
 | 
			
		||||
				--len;
 | 
			
		||||
				in += AES_BLOCK_SIZE;
 | 
			
		||||
				out += AES_BLOCK_SIZE;
 | 
			
		||||
				}
 | 
			
		||||
			memcpy(ivec, iv.data, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(ivec + AES_BLOCK_SIZE, iv2.data, AES_BLOCK_SIZE);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		if(in != out)
 | 
			
		||||
			{
 | 
			
		||||
			aes_block_t *ivp = (aes_block_t *)ivec;
 | 
			
		||||
			aes_block_t *iv2p = (aes_block_t *)(ivec + AES_BLOCK_SIZE);
 | 
			
		||||
 | 
			
		||||
			while (len)
 | 
			
		||||
				{
 | 
			
		||||
				aes_block_t tmp;
 | 
			
		||||
				aes_block_t *inp = (aes_block_t *)in;
 | 
			
		||||
				aes_block_t *outp = (aes_block_t *)out;
 | 
			
		||||
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					tmp.data[n] = inp->data[n] ^ iv2p->data[n];
 | 
			
		||||
				AES_decrypt((unsigned char *)tmp.data, (unsigned char *)outp->data, key);
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					outp->data[n] ^= ivp->data[n];
 | 
			
		||||
				ivp = inp;
 | 
			
		||||
				iv2p = outp;
 | 
			
		||||
				--len;
 | 
			
		||||
				in += AES_BLOCK_SIZE;
 | 
			
		||||
				out += AES_BLOCK_SIZE;
 | 
			
		||||
				}
 | 
			
		||||
			memcpy(ivec, ivp->data, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(ivec + AES_BLOCK_SIZE, iv2p->data, AES_BLOCK_SIZE);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
			aes_block_t tmp, tmp2;
 | 
			
		||||
			aes_block_t iv;
 | 
			
		||||
			aes_block_t iv2;
 | 
			
		||||
 | 
			
		||||
			load_block(iv, ivec);
 | 
			
		||||
			load_block(iv2, ivec + AES_BLOCK_SIZE);
 | 
			
		||||
 | 
			
		||||
			while (len)
 | 
			
		||||
				{
 | 
			
		||||
				load_block(tmp, in);
 | 
			
		||||
				tmp2 = tmp;
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					tmp.data[n] ^= iv2.data[n];
 | 
			
		||||
				AES_decrypt((unsigned char *)tmp.data, (unsigned char *)tmp.data, key);
 | 
			
		||||
				for(n=0 ; n < N_WORDS; ++n)
 | 
			
		||||
					tmp.data[n] ^= iv.data[n];
 | 
			
		||||
				store_block(out, tmp);
 | 
			
		||||
				iv = tmp2;
 | 
			
		||||
				iv2 = tmp;
 | 
			
		||||
				--len;
 | 
			
		||||
				in += AES_BLOCK_SIZE;
 | 
			
		||||
				out += AES_BLOCK_SIZE;
 | 
			
		||||
				}
 | 
			
		||||
			memcpy(ivec, iv.data, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(ivec + AES_BLOCK_SIZE, iv2.data, AES_BLOCK_SIZE);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Note that its effectively impossible to do biIGE in anything other
 | 
			
		||||
 * than a single pass, so no provision is made for chaining.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* N.B. The IV for this mode is _four times_ the block size */
 | 
			
		||||
 | 
			
		||||
void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
 | 
			
		||||
						const unsigned long length, const AES_KEY *key,
 | 
			
		||||
						const AES_KEY *key2, const unsigned char *ivec,
 | 
			
		||||
						const int enc)
 | 
			
		||||
	{
 | 
			
		||||
	unsigned long n;
 | 
			
		||||
	unsigned long len = length;
 | 
			
		||||
	unsigned char tmp[AES_BLOCK_SIZE];
 | 
			
		||||
	unsigned char tmp2[AES_BLOCK_SIZE];
 | 
			
		||||
	unsigned char tmp3[AES_BLOCK_SIZE];
 | 
			
		||||
	unsigned char prev[AES_BLOCK_SIZE];
 | 
			
		||||
	const unsigned char *iv;
 | 
			
		||||
	const unsigned char *iv2;
 | 
			
		||||
 | 
			
		||||
	OPENSSL_assert(in && out && key && ivec);
 | 
			
		||||
	OPENSSL_assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
 | 
			
		||||
	OPENSSL_assert((length%AES_BLOCK_SIZE) == 0);
 | 
			
		||||
 | 
			
		||||
	if (AES_ENCRYPT == enc)
 | 
			
		||||
		{
 | 
			
		||||
		/* XXX: Do a separate case for when in != out (strictly should
 | 
			
		||||
		   check for overlap, too) */
 | 
			
		||||
 | 
			
		||||
		/* First the forward pass */ 
 | 
			
		||||
		iv = ivec;
 | 
			
		||||
		iv2 = ivec + AES_BLOCK_SIZE;
 | 
			
		||||
		while (len >= AES_BLOCK_SIZE)
 | 
			
		||||
			{
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] = in[n] ^ iv[n];
 | 
			
		||||
			AES_encrypt(out, out, key);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] ^= iv2[n];
 | 
			
		||||
			iv = out;
 | 
			
		||||
			memcpy(prev, in, AES_BLOCK_SIZE);
 | 
			
		||||
			iv2 = prev;
 | 
			
		||||
			len -= AES_BLOCK_SIZE;
 | 
			
		||||
			in += AES_BLOCK_SIZE;
 | 
			
		||||
			out += AES_BLOCK_SIZE;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		/* And now backwards */
 | 
			
		||||
		iv = ivec + AES_BLOCK_SIZE*2;
 | 
			
		||||
		iv2 = ivec + AES_BLOCK_SIZE*3;
 | 
			
		||||
		len = length;
 | 
			
		||||
		while(len >= AES_BLOCK_SIZE)
 | 
			
		||||
			{
 | 
			
		||||
			out -= AES_BLOCK_SIZE;
 | 
			
		||||
			/* XXX: reduce copies by alternating between buffers */
 | 
			
		||||
			memcpy(tmp, out, AES_BLOCK_SIZE);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] ^= iv[n];
 | 
			
		||||
			/*			hexdump(stdout, "out ^ iv", out, AES_BLOCK_SIZE); */
 | 
			
		||||
			AES_encrypt(out, out, key);
 | 
			
		||||
			/*			hexdump(stdout,"enc", out, AES_BLOCK_SIZE); */
 | 
			
		||||
			/*			hexdump(stdout,"iv2", iv2, AES_BLOCK_SIZE); */
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] ^= iv2[n];
 | 
			
		||||
			/*			hexdump(stdout,"out", out, AES_BLOCK_SIZE); */
 | 
			
		||||
			iv = out;
 | 
			
		||||
			memcpy(prev, tmp, AES_BLOCK_SIZE);
 | 
			
		||||
			iv2 = prev;
 | 
			
		||||
			len -= AES_BLOCK_SIZE;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		/* First backwards */
 | 
			
		||||
		iv = ivec + AES_BLOCK_SIZE*2;
 | 
			
		||||
		iv2 = ivec + AES_BLOCK_SIZE*3;
 | 
			
		||||
		in += length;
 | 
			
		||||
		out += length;
 | 
			
		||||
		while (len >= AES_BLOCK_SIZE)
 | 
			
		||||
			{
 | 
			
		||||
			in -= AES_BLOCK_SIZE;
 | 
			
		||||
			out -= AES_BLOCK_SIZE;
 | 
			
		||||
			memcpy(tmp, in, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(tmp2, in, AES_BLOCK_SIZE);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				tmp[n] ^= iv2[n];
 | 
			
		||||
			AES_decrypt(tmp, out, key);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] ^= iv[n];
 | 
			
		||||
			memcpy(tmp3, tmp2, AES_BLOCK_SIZE);
 | 
			
		||||
			iv = tmp3;
 | 
			
		||||
			iv2 = out;
 | 
			
		||||
			len -= AES_BLOCK_SIZE;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		/* And now forwards */
 | 
			
		||||
		iv = ivec;
 | 
			
		||||
		iv2 = ivec + AES_BLOCK_SIZE;
 | 
			
		||||
		len = length;
 | 
			
		||||
		while (len >= AES_BLOCK_SIZE)
 | 
			
		||||
			{
 | 
			
		||||
			memcpy(tmp, out, AES_BLOCK_SIZE);
 | 
			
		||||
			memcpy(tmp2, out, AES_BLOCK_SIZE);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				tmp[n] ^= iv2[n];
 | 
			
		||||
			AES_decrypt(tmp, out, key);
 | 
			
		||||
			for(n=0 ; n < AES_BLOCK_SIZE ; ++n)
 | 
			
		||||
				out[n] ^= iv[n];
 | 
			
		||||
			memcpy(tmp3, tmp2, AES_BLOCK_SIZE);
 | 
			
		||||
			iv = tmp3;
 | 
			
		||||
			iv2 = out;
 | 
			
		||||
			len -= AES_BLOCK_SIZE;
 | 
			
		||||
			in += AES_BLOCK_SIZE;
 | 
			
		||||
			out += AES_BLOCK_SIZE;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@@ -62,7 +62,7 @@
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && !defined(_M_IA64) && !defined(OPENSSL_SYS_WINCE)
 | 
			
		||||
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
 | 
			
		||||
# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
 | 
			
		||||
# define GETU32(p) SWAP(*((u32 *)(p)))
 | 
			
		||||
# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
#include <openssl/aes.h>
 | 
			
		||||
#include "aes_locl.h"
 | 
			
		||||
 | 
			
		||||
const char *AES_version="AES" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
const char AES_version[]="AES" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
 | 
			
		||||
const char *AES_options(void) {
 | 
			
		||||
#ifdef FULL_UNROLL
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
# forms are granted according to the OpenSSL license.
 | 
			
		||||
# ====================================================================
 | 
			
		||||
#
 | 
			
		||||
# Version 3.4.
 | 
			
		||||
# Version 3.6.
 | 
			
		||||
#
 | 
			
		||||
# You might fail to appreciate this module performance from the first
 | 
			
		||||
# try. If compared to "vanilla" linux-ia32-icc target, i.e. considered
 | 
			
		||||
@@ -66,6 +66,13 @@
 | 
			
		||||
# stack. This unfortunately has rather strong impact on small block CBC
 | 
			
		||||
# performance, ~2x deterioration on 16-byte block if compared to 3.3.
 | 
			
		||||
#
 | 
			
		||||
# Version 3.5 checks if there is L1 cache aliasing between user-supplied
 | 
			
		||||
# key schedule and S-boxes and abstains from copying the former if
 | 
			
		||||
# there is no. This allows end-user to consciously retain small block
 | 
			
		||||
# performance by aligning key schedule in specific manner.
 | 
			
		||||
#
 | 
			
		||||
# Version 3.6 compresses Td4 to 256 bytes and prefetches it in ECB.
 | 
			
		||||
#
 | 
			
		||||
# Current ECB performance numbers for 128-bit key in CPU cycles per
 | 
			
		||||
# processed byte [measure commonly used by AES benchmarkers] are:
 | 
			
		||||
#
 | 
			
		||||
@@ -505,28 +512,27 @@ sub declast()
 | 
			
		||||
	if($i==3)   {	&mov	($key,&DWP(12,"esp"));		}
 | 
			
		||||
	else        {	&mov	($out,$s[0]);			}
 | 
			
		||||
			&and	($out,0xFF);
 | 
			
		||||
			&mov	($out,&DWP(2048,$td,$out,4));
 | 
			
		||||
			&and	($out,0x000000ff);
 | 
			
		||||
			&movz	($out,&BP(2048,$td,$out,1));
 | 
			
		||||
 | 
			
		||||
	if ($i==3)  {	$tmp=$s[1];				}
 | 
			
		||||
			&movz	($tmp,&HB($s[1]));
 | 
			
		||||
			&mov	($tmp,&DWP(2048,$td,$tmp,4));
 | 
			
		||||
			&and	($tmp,0x0000ff00);
 | 
			
		||||
			&movz	($tmp,&BP(2048,$td,$tmp,1));
 | 
			
		||||
			&shl	($tmp,8);
 | 
			
		||||
			&xor	($out,$tmp);
 | 
			
		||||
 | 
			
		||||
	if ($i==3)  {	$tmp=$s[2]; &mov ($s[1],$acc);		}
 | 
			
		||||
	else        {	mov	($tmp,$s[2]);			}
 | 
			
		||||
			&shr	($tmp,16);
 | 
			
		||||
			&and	($tmp,0xFF);
 | 
			
		||||
			&mov	($tmp,&DWP(2048,$td,$tmp,4));
 | 
			
		||||
			&and	($tmp,0x00ff0000);
 | 
			
		||||
			&movz	($tmp,&BP(2048,$td,$tmp,1));
 | 
			
		||||
			&shl	($tmp,16);
 | 
			
		||||
			&xor	($out,$tmp);
 | 
			
		||||
 | 
			
		||||
	if ($i==3)  {	$tmp=$s[3]; &mov ($s[2],&DWP(8,"esp"));	}
 | 
			
		||||
	else        {	&mov	($tmp,$s[3]);			}
 | 
			
		||||
			&shr	($tmp,24);
 | 
			
		||||
			&mov	($tmp,&DWP(2048,$td,$tmp,4));
 | 
			
		||||
			&and	($tmp,0xff000000);
 | 
			
		||||
			&movz	($tmp,&BP(2048,$td,$tmp,1));
 | 
			
		||||
			&shl	($tmp,24);
 | 
			
		||||
			&xor	($out,$tmp);
 | 
			
		||||
	if ($i<2)   {	&mov	(&DWP(4+4*$i,"esp"),$out);	}
 | 
			
		||||
	if ($i==3)  {	&mov	($s[3],&DWP(4,"esp"));		}
 | 
			
		||||
@@ -687,70 +693,38 @@ sub declast()
 | 
			
		||||
	&_data_word(0x7101a839, 0xdeb30c08, 0x9ce4b4d8, 0x90c15664);
 | 
			
		||||
	&_data_word(0x6184cb7b, 0x70b632d5, 0x745c6c48, 0x4257b8d0);
 | 
			
		||||
#Td4:
 | 
			
		||||
	&data_word(0x52525252, 0x09090909, 0x6a6a6a6a, 0xd5d5d5d5);
 | 
			
		||||
	&data_word(0x30303030, 0x36363636, 0xa5a5a5a5, 0x38383838);
 | 
			
		||||
	&data_word(0xbfbfbfbf, 0x40404040, 0xa3a3a3a3, 0x9e9e9e9e);
 | 
			
		||||
	&data_word(0x81818181, 0xf3f3f3f3, 0xd7d7d7d7, 0xfbfbfbfb);
 | 
			
		||||
	&data_word(0x7c7c7c7c, 0xe3e3e3e3, 0x39393939, 0x82828282);
 | 
			
		||||
	&data_word(0x9b9b9b9b, 0x2f2f2f2f, 0xffffffff, 0x87878787);
 | 
			
		||||
	&data_word(0x34343434, 0x8e8e8e8e, 0x43434343, 0x44444444);
 | 
			
		||||
	&data_word(0xc4c4c4c4, 0xdededede, 0xe9e9e9e9, 0xcbcbcbcb);
 | 
			
		||||
	&data_word(0x54545454, 0x7b7b7b7b, 0x94949494, 0x32323232);
 | 
			
		||||
	&data_word(0xa6a6a6a6, 0xc2c2c2c2, 0x23232323, 0x3d3d3d3d);
 | 
			
		||||
	&data_word(0xeeeeeeee, 0x4c4c4c4c, 0x95959595, 0x0b0b0b0b);
 | 
			
		||||
	&data_word(0x42424242, 0xfafafafa, 0xc3c3c3c3, 0x4e4e4e4e);
 | 
			
		||||
	&data_word(0x08080808, 0x2e2e2e2e, 0xa1a1a1a1, 0x66666666);
 | 
			
		||||
	&data_word(0x28282828, 0xd9d9d9d9, 0x24242424, 0xb2b2b2b2);
 | 
			
		||||
	&data_word(0x76767676, 0x5b5b5b5b, 0xa2a2a2a2, 0x49494949);
 | 
			
		||||
	&data_word(0x6d6d6d6d, 0x8b8b8b8b, 0xd1d1d1d1, 0x25252525);
 | 
			
		||||
	&data_word(0x72727272, 0xf8f8f8f8, 0xf6f6f6f6, 0x64646464);
 | 
			
		||||
	&data_word(0x86868686, 0x68686868, 0x98989898, 0x16161616);
 | 
			
		||||
	&data_word(0xd4d4d4d4, 0xa4a4a4a4, 0x5c5c5c5c, 0xcccccccc);
 | 
			
		||||
	&data_word(0x5d5d5d5d, 0x65656565, 0xb6b6b6b6, 0x92929292);
 | 
			
		||||
	&data_word(0x6c6c6c6c, 0x70707070, 0x48484848, 0x50505050);
 | 
			
		||||
	&data_word(0xfdfdfdfd, 0xedededed, 0xb9b9b9b9, 0xdadadada);
 | 
			
		||||
	&data_word(0x5e5e5e5e, 0x15151515, 0x46464646, 0x57575757);
 | 
			
		||||
	&data_word(0xa7a7a7a7, 0x8d8d8d8d, 0x9d9d9d9d, 0x84848484);
 | 
			
		||||
	&data_word(0x90909090, 0xd8d8d8d8, 0xabababab, 0x00000000);
 | 
			
		||||
	&data_word(0x8c8c8c8c, 0xbcbcbcbc, 0xd3d3d3d3, 0x0a0a0a0a);
 | 
			
		||||
	&data_word(0xf7f7f7f7, 0xe4e4e4e4, 0x58585858, 0x05050505);
 | 
			
		||||
	&data_word(0xb8b8b8b8, 0xb3b3b3b3, 0x45454545, 0x06060606);
 | 
			
		||||
	&data_word(0xd0d0d0d0, 0x2c2c2c2c, 0x1e1e1e1e, 0x8f8f8f8f);
 | 
			
		||||
	&data_word(0xcacacaca, 0x3f3f3f3f, 0x0f0f0f0f, 0x02020202);
 | 
			
		||||
	&data_word(0xc1c1c1c1, 0xafafafaf, 0xbdbdbdbd, 0x03030303);
 | 
			
		||||
	&data_word(0x01010101, 0x13131313, 0x8a8a8a8a, 0x6b6b6b6b);
 | 
			
		||||
	&data_word(0x3a3a3a3a, 0x91919191, 0x11111111, 0x41414141);
 | 
			
		||||
	&data_word(0x4f4f4f4f, 0x67676767, 0xdcdcdcdc, 0xeaeaeaea);
 | 
			
		||||
	&data_word(0x97979797, 0xf2f2f2f2, 0xcfcfcfcf, 0xcececece);
 | 
			
		||||
	&data_word(0xf0f0f0f0, 0xb4b4b4b4, 0xe6e6e6e6, 0x73737373);
 | 
			
		||||
	&data_word(0x96969696, 0xacacacac, 0x74747474, 0x22222222);
 | 
			
		||||
	&data_word(0xe7e7e7e7, 0xadadadad, 0x35353535, 0x85858585);
 | 
			
		||||
	&data_word(0xe2e2e2e2, 0xf9f9f9f9, 0x37373737, 0xe8e8e8e8);
 | 
			
		||||
	&data_word(0x1c1c1c1c, 0x75757575, 0xdfdfdfdf, 0x6e6e6e6e);
 | 
			
		||||
	&data_word(0x47474747, 0xf1f1f1f1, 0x1a1a1a1a, 0x71717171);
 | 
			
		||||
	&data_word(0x1d1d1d1d, 0x29292929, 0xc5c5c5c5, 0x89898989);
 | 
			
		||||
	&data_word(0x6f6f6f6f, 0xb7b7b7b7, 0x62626262, 0x0e0e0e0e);
 | 
			
		||||
	&data_word(0xaaaaaaaa, 0x18181818, 0xbebebebe, 0x1b1b1b1b);
 | 
			
		||||
	&data_word(0xfcfcfcfc, 0x56565656, 0x3e3e3e3e, 0x4b4b4b4b);
 | 
			
		||||
	&data_word(0xc6c6c6c6, 0xd2d2d2d2, 0x79797979, 0x20202020);
 | 
			
		||||
	&data_word(0x9a9a9a9a, 0xdbdbdbdb, 0xc0c0c0c0, 0xfefefefe);
 | 
			
		||||
	&data_word(0x78787878, 0xcdcdcdcd, 0x5a5a5a5a, 0xf4f4f4f4);
 | 
			
		||||
	&data_word(0x1f1f1f1f, 0xdddddddd, 0xa8a8a8a8, 0x33333333);
 | 
			
		||||
	&data_word(0x88888888, 0x07070707, 0xc7c7c7c7, 0x31313131);
 | 
			
		||||
	&data_word(0xb1b1b1b1, 0x12121212, 0x10101010, 0x59595959);
 | 
			
		||||
	&data_word(0x27272727, 0x80808080, 0xecececec, 0x5f5f5f5f);
 | 
			
		||||
	&data_word(0x60606060, 0x51515151, 0x7f7f7f7f, 0xa9a9a9a9);
 | 
			
		||||
	&data_word(0x19191919, 0xb5b5b5b5, 0x4a4a4a4a, 0x0d0d0d0d);
 | 
			
		||||
	&data_word(0x2d2d2d2d, 0xe5e5e5e5, 0x7a7a7a7a, 0x9f9f9f9f);
 | 
			
		||||
	&data_word(0x93939393, 0xc9c9c9c9, 0x9c9c9c9c, 0xefefefef);
 | 
			
		||||
	&data_word(0xa0a0a0a0, 0xe0e0e0e0, 0x3b3b3b3b, 0x4d4d4d4d);
 | 
			
		||||
	&data_word(0xaeaeaeae, 0x2a2a2a2a, 0xf5f5f5f5, 0xb0b0b0b0);
 | 
			
		||||
	&data_word(0xc8c8c8c8, 0xebebebeb, 0xbbbbbbbb, 0x3c3c3c3c);
 | 
			
		||||
	&data_word(0x83838383, 0x53535353, 0x99999999, 0x61616161);
 | 
			
		||||
	&data_word(0x17171717, 0x2b2b2b2b, 0x04040404, 0x7e7e7e7e);
 | 
			
		||||
	&data_word(0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626);
 | 
			
		||||
	&data_word(0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363);
 | 
			
		||||
	&data_word(0x55555555, 0x21212121, 0x0c0c0c0c, 0x7d7d7d7d);
 | 
			
		||||
	&data_byte(0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38);
 | 
			
		||||
	&data_byte(0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb);
 | 
			
		||||
	&data_byte(0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87);
 | 
			
		||||
	&data_byte(0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb);
 | 
			
		||||
	&data_byte(0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d);
 | 
			
		||||
	&data_byte(0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e);
 | 
			
		||||
	&data_byte(0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2);
 | 
			
		||||
	&data_byte(0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25);
 | 
			
		||||
	&data_byte(0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16);
 | 
			
		||||
	&data_byte(0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92);
 | 
			
		||||
	&data_byte(0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda);
 | 
			
		||||
	&data_byte(0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84);
 | 
			
		||||
	&data_byte(0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a);
 | 
			
		||||
	&data_byte(0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06);
 | 
			
		||||
	&data_byte(0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02);
 | 
			
		||||
	&data_byte(0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b);
 | 
			
		||||
	&data_byte(0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea);
 | 
			
		||||
	&data_byte(0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73);
 | 
			
		||||
	&data_byte(0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85);
 | 
			
		||||
	&data_byte(0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e);
 | 
			
		||||
	&data_byte(0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89);
 | 
			
		||||
	&data_byte(0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b);
 | 
			
		||||
	&data_byte(0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20);
 | 
			
		||||
	&data_byte(0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4);
 | 
			
		||||
	&data_byte(0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31);
 | 
			
		||||
	&data_byte(0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f);
 | 
			
		||||
	&data_byte(0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d);
 | 
			
		||||
	&data_byte(0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef);
 | 
			
		||||
	&data_byte(0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0);
 | 
			
		||||
	&data_byte(0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61);
 | 
			
		||||
	&data_byte(0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26);
 | 
			
		||||
	&data_byte(0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d);
 | 
			
		||||
&function_end_B("_x86_AES_decrypt");
 | 
			
		||||
 | 
			
		||||
# void AES_decrypt (const void *inp,void *out,const AES_KEY *key);
 | 
			
		||||
@@ -770,6 +744,18 @@ sub declast()
 | 
			
		||||
	&blindpop("ebp");
 | 
			
		||||
	&lea    ("ebp",&DWP(&label("AES_Td")."-".&label("pic_point"),"ebp"));
 | 
			
		||||
 | 
			
		||||
	# prefetch Td4
 | 
			
		||||
	&lea	("ebp",&DWP(2048+128,"ebp"));
 | 
			
		||||
	&mov	($s0,&DWP(0-128,"ebp"));
 | 
			
		||||
	&mov	($s1,&DWP(32-128,"ebp"));
 | 
			
		||||
	&mov	($s2,&DWP(64-128,"ebp"));
 | 
			
		||||
	&mov	($s3,&DWP(96-128,"ebp"));
 | 
			
		||||
	&mov	($s0,&DWP(128-128,"ebp"));
 | 
			
		||||
	&mov	($s1,&DWP(160-128,"ebp"));
 | 
			
		||||
	&mov	($s2,&DWP(192-128,"ebp"));
 | 
			
		||||
	&mov	($s3,&DWP(224-128,"ebp"));
 | 
			
		||||
	&lea	("ebp",&DWP(-2048-128,"ebp"));
 | 
			
		||||
 | 
			
		||||
	&mov	($s0,&DWP(0,$acc));		# load input data
 | 
			
		||||
	&mov	($s1,&DWP(4,$acc));
 | 
			
		||||
	&mov	($s2,&DWP(8,$acc));
 | 
			
		||||
@@ -805,6 +791,7 @@ my $_ivp=&DWP(36,"esp");	#copy of wparam(4)
 | 
			
		||||
my $_tmp=&DWP(40,"esp");	#volatile variable
 | 
			
		||||
my $ivec=&DWP(44,"esp");	#ivec[16]
 | 
			
		||||
my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
my $mark=&DWP(60+240,"esp");	#copy of aes_key->rounds
 | 
			
		||||
 | 
			
		||||
&public_label("AES_Te");
 | 
			
		||||
&public_label("AES_Td");
 | 
			
		||||
@@ -865,18 +852,27 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&mov	($_key,$s3);		# save copy of key
 | 
			
		||||
	&mov	($_ivp,$acc);		# save copy of ivp
 | 
			
		||||
 | 
			
		||||
	&mov	($mark,0);		# copy of aes_key->rounds = 0;
 | 
			
		||||
	if ($compromise) {
 | 
			
		||||
		&cmp	($s2,$compromise);
 | 
			
		||||
		&jb	(&label("skip_ecopy"));
 | 
			
		||||
	}
 | 
			
		||||
	# copy key schedule to stack
 | 
			
		||||
	&mov	("ecx",244/4);
 | 
			
		||||
	# do we copy key schedule to stack?
 | 
			
		||||
	&mov	($s1 eq "ebx" ? $s1 : "",$s3);
 | 
			
		||||
	&mov	($s2 eq "ecx" ? $s2 : "",244/4);
 | 
			
		||||
	&sub	($s1,"ebp");
 | 
			
		||||
	&mov	("esi",$s3);
 | 
			
		||||
	&and	($s1,0xfff);
 | 
			
		||||
	&lea	("edi",$aes_key);
 | 
			
		||||
	&mov	($_key,"edi");
 | 
			
		||||
	&cmp	($s1,2048);
 | 
			
		||||
	&jb	(&label("do_ecopy"));
 | 
			
		||||
	&cmp	($s1,4096-244);
 | 
			
		||||
	&jb	(&label("skip_ecopy"));
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&data_word(0xF689A5F3);	# rep movsd
 | 
			
		||||
	&set_label("skip_ecopy") if ($compromise);
 | 
			
		||||
	&set_label("do_ecopy");
 | 
			
		||||
		&mov	($_key,"edi");
 | 
			
		||||
		&data_word(0xA5F3F689);	# rep movsd
 | 
			
		||||
	&set_label("skip_ecopy");
 | 
			
		||||
 | 
			
		||||
	&mov	($acc,$s0);
 | 
			
		||||
	&mov	($key,16);
 | 
			
		||||
@@ -942,18 +938,16 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&mov	(&DWP(8,$acc),$s2);
 | 
			
		||||
	&mov	(&DWP(12,$acc),$s3);
 | 
			
		||||
 | 
			
		||||
	&cmp	($mark,0);		# was the key schedule copied?
 | 
			
		||||
	&mov	("edi",$_key);
 | 
			
		||||
	&mov	("esp",$_esp);
 | 
			
		||||
	if ($compromise) {
 | 
			
		||||
		&cmp	(&wparam(2),$compromise);
 | 
			
		||||
		&jb	(&label("skip_ezero"));
 | 
			
		||||
	}
 | 
			
		||||
	&je	(&label("skip_ezero"));
 | 
			
		||||
	# zero copy of key schedule
 | 
			
		||||
	&mov	("ecx",240/4);
 | 
			
		||||
	&xor	("eax","eax");
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&data_word(0xF689ABF3);	# rep stosd
 | 
			
		||||
	&set_label("skip_ezero") if ($compromise);
 | 
			
		||||
	&data_word(0xABF3F689);	# rep stosd
 | 
			
		||||
	&set_label("skip_ezero")
 | 
			
		||||
	&popf	();
 | 
			
		||||
    &set_label("enc_out");
 | 
			
		||||
	&function_end_A();
 | 
			
		||||
@@ -968,7 +962,7 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&cmp	($key,$acc);			# compare with inp
 | 
			
		||||
	&je	(&label("enc_in_place"));
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&data_word(0xF689A4F3);	# rep movsb	# copy input
 | 
			
		||||
	&data_word(0xA4F3F689);	# rep movsb	# copy input
 | 
			
		||||
	&jmp	(&label("enc_skip_in_place"));
 | 
			
		||||
    &set_label("enc_in_place");
 | 
			
		||||
	&lea	($key,&DWP(0,$key,$s2));
 | 
			
		||||
@@ -976,7 +970,7 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&mov	($s2,$s1);
 | 
			
		||||
	&xor	($s0,$s0);
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&data_word(0xF689AAF3);	# rep stosb	# zero tail
 | 
			
		||||
	&data_word(0xAAF3F689);	# rep stosb	# zero tail
 | 
			
		||||
	&pop	($key);				# pop ivp
 | 
			
		||||
 | 
			
		||||
	&mov	($acc,$_out);			# output as input
 | 
			
		||||
@@ -996,10 +990,10 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
 | 
			
		||||
	# ... and make sure it doesn't alias with AES_Td modulo 4096
 | 
			
		||||
	&mov	($s0,"ebp");
 | 
			
		||||
	&lea	($s1,&DWP(3072,"ebp"));
 | 
			
		||||
	&lea	($s1,&DWP(2048+256,"ebp"));
 | 
			
		||||
	&mov	($s3,$key);
 | 
			
		||||
	&and	($s0,0xfff);		# s = %ebp&0xfff
 | 
			
		||||
	&and	($s1,0xfff);		# e = (%ebp+3072)&0xfff
 | 
			
		||||
	&and	($s1,0xfff);		# e = (%ebp+2048+256)&0xfff
 | 
			
		||||
	&and	($s3,0xfff);		# p = %esp&0xfff
 | 
			
		||||
 | 
			
		||||
	&cmp	($s3,$s1);		# if (p>=e) %esp =- (p-e);
 | 
			
		||||
@@ -1030,21 +1024,30 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&mov	($_key,$s3);		# save copy of key
 | 
			
		||||
	&mov	($_ivp,$acc);		# save copy of ivp
 | 
			
		||||
 | 
			
		||||
	&mov	($mark,0);		# copy of aes_key->rounds = 0;
 | 
			
		||||
	if ($compromise) {
 | 
			
		||||
		&cmp	($s2,$compromise);
 | 
			
		||||
		&jb	(&label("skip_dcopy"));
 | 
			
		||||
	}
 | 
			
		||||
	# copy key schedule to stack
 | 
			
		||||
	&mov	("ecx",244/4);
 | 
			
		||||
	# do we copy key schedule to stack?
 | 
			
		||||
	&mov	($s1 eq "ebx" ? $s1 : "",$s3);
 | 
			
		||||
	&mov	($s2 eq "ecx" ? $s2 : "",244/4);
 | 
			
		||||
	&sub	($s1,"ebp");
 | 
			
		||||
	&mov	("esi",$s3);
 | 
			
		||||
	&and	($s1,0xfff);
 | 
			
		||||
	&lea	("edi",$aes_key);
 | 
			
		||||
	&mov	($_key,"edi");
 | 
			
		||||
	&cmp	($s1,2048+256);
 | 
			
		||||
	&jb	(&label("do_dcopy"));
 | 
			
		||||
	&cmp	($s1,4096-244);
 | 
			
		||||
	&jb	(&label("skip_dcopy"));
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&data_word(0xF689A5F3);	# rep movsd
 | 
			
		||||
	&set_label("skip_dcopy") if ($compromise);
 | 
			
		||||
	&set_label("do_dcopy");
 | 
			
		||||
		&mov	($_key,"edi");
 | 
			
		||||
		&data_word(0xA5F3F689);	# rep movsd
 | 
			
		||||
	&set_label("skip_dcopy");
 | 
			
		||||
 | 
			
		||||
	&mov	($acc,$s0);
 | 
			
		||||
	&mov	($key,24);
 | 
			
		||||
	&mov	($key,18);
 | 
			
		||||
	&align	(4);
 | 
			
		||||
	&set_label("prefetch_td");
 | 
			
		||||
		&mov	($s0,&DWP(0,"ebp"));
 | 
			
		||||
@@ -1054,7 +1057,7 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
		&lea	("ebp",&DWP(128,"ebp"));
 | 
			
		||||
		&dec	($key);
 | 
			
		||||
	&jnz	(&label("prefetch_td"));
 | 
			
		||||
	&sub	("ebp",3072);
 | 
			
		||||
	&sub	("ebp",2048+256);
 | 
			
		||||
 | 
			
		||||
	&cmp	($acc,$_out);
 | 
			
		||||
	&je	(&label("dec_in_place"));	# in-place processing...
 | 
			
		||||
@@ -1121,7 +1124,7 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&lea	($s2 eq "ecx" ? $s2 : "",&DWP(16,$acc));
 | 
			
		||||
	&mov	($acc eq "esi" ? $acc : "",$key);
 | 
			
		||||
	&mov	($key eq "edi" ? $key : "",$_out);	# load out
 | 
			
		||||
	&data_word(0xF689A4F3);	# rep movsb		# copy output
 | 
			
		||||
	&data_word(0xA4F3F689);	# rep movsb		# copy output
 | 
			
		||||
	&mov	($key,$_inp);				# use inp as temp ivp
 | 
			
		||||
	&jmp	(&label("dec_end"));
 | 
			
		||||
 | 
			
		||||
@@ -1188,22 +1191,20 @@ my $aes_key=&DWP(60,"esp");	#copy of aes_key
 | 
			
		||||
	&lea	($key,&DWP(0,$key,$s2));
 | 
			
		||||
	&lea	($acc,&DWP(16,$acc,$s2));
 | 
			
		||||
	&neg	($s2 eq "ecx" ? $s2 : "");
 | 
			
		||||
	&data_word(0xF689A4F3);	# rep movsb	# restore tail
 | 
			
		||||
	&data_word(0xA4F3F689);	# rep movsb	# restore tail
 | 
			
		||||
 | 
			
		||||
    &align	(4);
 | 
			
		||||
    &set_label("dec_out");
 | 
			
		||||
    &cmp	($mark,0);		# was the key schedule copied?
 | 
			
		||||
    &mov	("edi",$_key);
 | 
			
		||||
    &mov	("esp",$_esp);
 | 
			
		||||
    if ($compromise) {
 | 
			
		||||
	&cmp	(&wparam(2),$compromise);
 | 
			
		||||
	&jb	(&label("skip_dzero"));
 | 
			
		||||
    }
 | 
			
		||||
    &je		(&label("skip_dzero"));
 | 
			
		||||
    # zero copy of key schedule
 | 
			
		||||
    &mov	("ecx",240/4);
 | 
			
		||||
    &xor	("eax","eax");
 | 
			
		||||
    &align	(4);
 | 
			
		||||
    &data_word(0xF689ABF3);	# rep stosd
 | 
			
		||||
    &set_label("skip_dzero") if ($compromise);
 | 
			
		||||
    &data_word(0xABF3F689);	# rep stosd
 | 
			
		||||
    &set_label("skip_dzero")
 | 
			
		||||
    &popf	();
 | 
			
		||||
&function_end("AES_cbc_encrypt");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
#
 | 
			
		||||
# SSLeay/crypto/asn1/Makefile
 | 
			
		||||
# OpenSSL/crypto/asn1/Makefile
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
DIR=	asn1
 | 
			
		||||
@@ -63,7 +63,7 @@ pk:	pk.c
 | 
			
		||||
all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(ARX) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB) || echo Never mind.
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
@@ -142,9 +142,9 @@ a_digest.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
a_digest.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
a_digest.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
a_digest.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
a_digest.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
a_digest.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
a_digest.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
a_digest.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
a_digest.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
a_digest.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
a_digest.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
a_digest.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
a_digest.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
@@ -250,27 +250,27 @@ a_sign.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
a_sign.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
a_sign.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
a_sign.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
a_sign.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
a_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
a_sign.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
a_sign.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
a_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
a_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
a_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
a_sign.o: ../cryptlib.h a_sign.c
 | 
			
		||||
a_sign.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
a_sign.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
a_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
a_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
a_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
a_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
a_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
a_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_sign.c
 | 
			
		||||
a_strex.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
a_strex.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
a_strex.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
a_strex.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
a_strex.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
a_strex.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
a_strex.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
a_strex.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
a_strex.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
a_strex.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
a_strex.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
a_strex.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
a_strex.o: ../cryptlib.h a_strex.c charmap.h
 | 
			
		||||
a_strex.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
a_strex.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
a_strex.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
a_strex.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
a_strex.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
a_strex.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
a_strex.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
a_strex.o: ../../include/openssl/x509_vfy.h ../cryptlib.h a_strex.c charmap.h
 | 
			
		||||
a_strnid.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
a_strnid.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
a_strnid.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
@@ -317,8 +317,9 @@ a_verify.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
a_verify.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
a_verify.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
a_verify.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
a_verify.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
a_verify.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
a_verify.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
a_verify.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
a_verify.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
a_verify.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
a_verify.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
a_verify.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
@@ -337,8 +338,9 @@ asn1_gen.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
asn1_gen.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
@@ -368,9 +370,9 @@ asn_moid.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
asn_moid.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
@@ -389,23 +391,23 @@ d2i_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
d2i_pr.o: ../cryptlib.h d2i_pr.c
 | 
			
		||||
d2i_pr.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
d2i_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h d2i_pr.c
 | 
			
		||||
d2i_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
d2i_pu.o: ../cryptlib.h d2i_pu.c
 | 
			
		||||
d2i_pu.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
d2i_pu.o: ../../include/openssl/symhacks.h ../cryptlib.h d2i_pu.c
 | 
			
		||||
evp_asn1.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
evp_asn1.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
 | 
			
		||||
evp_asn1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
@@ -441,71 +443,73 @@ i2d_pr.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
i2d_pr.o: ../cryptlib.h i2d_pr.c
 | 
			
		||||
i2d_pr.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
i2d_pr.o: ../../include/openssl/symhacks.h ../cryptlib.h i2d_pr.c
 | 
			
		||||
i2d_pu.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
i2d_pu.o: ../cryptlib.h i2d_pu.c
 | 
			
		||||
i2d_pu.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
i2d_pu.o: ../../include/openssl/symhacks.h ../cryptlib.h i2d_pu.c
 | 
			
		||||
n_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/asn1t.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h n_pkey.c
 | 
			
		||||
n_pkey.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
n_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
n_pkey.o: ../cryptlib.h n_pkey.c
 | 
			
		||||
nsseq.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 | 
			
		||||
nsseq.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
nsseq.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
nsseq.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
nsseq.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
 | 
			
		||||
nsseq.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
nsseq.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
nsseq.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
nsseq.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
nsseq.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
nsseq.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
nsseq.o: ../../include/openssl/x509_vfy.h nsseq.c
 | 
			
		||||
nsseq.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
nsseq.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
nsseq.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
nsseq.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
nsseq.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
nsseq.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
nsseq.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h nsseq.c
 | 
			
		||||
p5_pbe.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
p5_pbe.o: ../cryptlib.h p5_pbe.c
 | 
			
		||||
p5_pbe.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
p5_pbe.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p5_pbe.c
 | 
			
		||||
p5_pbev2.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
 | 
			
		||||
p5_pbev2.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
@@ -518,41 +522,42 @@ p8_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h p8_pkey.c
 | 
			
		||||
p8_pkey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
p8_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
p8_pkey.o: ../cryptlib.h p8_pkey.c
 | 
			
		||||
t_bitst.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
 | 
			
		||||
t_bitst.o: ../cryptlib.h t_bitst.c
 | 
			
		||||
t_bitst.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_bitst.o: ../../include/openssl/x509v3.h ../cryptlib.h t_bitst.c
 | 
			
		||||
t_crl.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
t_crl.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
t_crl.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
t_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
t_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
t_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
t_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_crl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_crl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
t_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_crl.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
 | 
			
		||||
t_crl.o: ../cryptlib.h t_crl.c
 | 
			
		||||
t_crl.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
t_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_crl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_crl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_crl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_crl.o: ../../include/openssl/x509v3.h ../cryptlib.h t_crl.c
 | 
			
		||||
t_pkey.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
t_pkey.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
t_pkey.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
 | 
			
		||||
@@ -570,57 +575,57 @@ t_req.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
t_req.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
 | 
			
		||||
t_req.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
t_req.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
t_req.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
t_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_req.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
t_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_req.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
 | 
			
		||||
t_req.o: ../cryptlib.h t_req.c
 | 
			
		||||
t_req.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
t_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
 | 
			
		||||
t_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_req.o: ../../include/openssl/x509v3.h ../cryptlib.h t_req.c
 | 
			
		||||
t_spki.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
t_spki.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
t_spki.o: ../../include/openssl/crypto.h ../../include/openssl/dsa.h
 | 
			
		||||
t_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
t_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
t_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
t_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
 | 
			
		||||
t_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_spki.o: ../cryptlib.h t_spki.c
 | 
			
		||||
t_spki.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
t_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_spki.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
t_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_spki.c
 | 
			
		||||
t_x509.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
t_x509.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
t_x509.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
 | 
			
		||||
t_x509.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
 | 
			
		||||
t_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
t_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
t_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
t_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_x509.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
 | 
			
		||||
t_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
 | 
			
		||||
t_x509.o: ../cryptlib.h t_x509.c
 | 
			
		||||
t_x509.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
t_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
 | 
			
		||||
t_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h t_x509.c
 | 
			
		||||
t_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
t_x509a.o: ../cryptlib.h t_x509a.c
 | 
			
		||||
t_x509a.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
t_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h t_x509a.c
 | 
			
		||||
tasn_dec.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 | 
			
		||||
tasn_dec.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
tasn_dec.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
@@ -630,13 +635,15 @@ tasn_dec.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
tasn_dec.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
tasn_dec.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
tasn_dec.o: ../../include/openssl/symhacks.h tasn_dec.c
 | 
			
		||||
tasn_enc.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/obj_mac.h
 | 
			
		||||
tasn_enc.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
 | 
			
		||||
tasn_enc.o: ../../include/openssl/symhacks.h tasn_enc.c
 | 
			
		||||
tasn_enc.o: ../../include/openssl/symhacks.h ../cryptlib.h tasn_enc.c
 | 
			
		||||
tasn_fre.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 | 
			
		||||
tasn_fre.o: ../../include/openssl/bio.h ../../include/openssl/crypto.h
 | 
			
		||||
tasn_fre.o: ../../include/openssl/e_os2.h ../../include/openssl/obj_mac.h
 | 
			
		||||
@@ -671,21 +678,23 @@ x_algor.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
x_algor.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
x_algor.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
x_algor.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
 | 
			
		||||
x_algor.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_algor.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_algor.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_algor.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_algor.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_algor.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_algor.o: ../../include/openssl/x509_vfy.h x_algor.c
 | 
			
		||||
x_algor.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_algor.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_algor.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_algor.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_algor.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_algor.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_algor.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_algor.o: x_algor.c
 | 
			
		||||
x_attrib.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_attrib.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
@@ -706,37 +715,40 @@ x_crl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_crl.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_crl.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_crl.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_crl.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_crl.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_crl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_crl.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_crl.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_crl.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_crl.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_crl.c
 | 
			
		||||
x_crl.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_crl.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_crl.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_crl.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_crl.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_crl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_crl.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_crl.o: ../cryptlib.h x_crl.c
 | 
			
		||||
x_exten.o: ../../include/openssl/asn1.h ../../include/openssl/asn1t.h
 | 
			
		||||
x_exten.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
 | 
			
		||||
x_exten.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
x_exten.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
x_exten.o: ../../include/openssl/ecdsa.h ../../include/openssl/evp.h
 | 
			
		||||
x_exten.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_exten.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_exten.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_exten.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_exten.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_exten.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_exten.o: ../../include/openssl/x509_vfy.h x_exten.c
 | 
			
		||||
x_exten.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_exten.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_exten.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_exten.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_exten.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_exten.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_exten.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_exten.o: x_exten.c
 | 
			
		||||
x_info.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
 | 
			
		||||
x_info.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_info.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_info.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_info.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_info.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_info.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_info.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_info.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_info.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_info.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_info.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_info.c
 | 
			
		||||
x_info.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_info.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_info.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_info.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_info.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_info.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_info.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_info.o: ../cryptlib.h x_info.c
 | 
			
		||||
x_long.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_long.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_long.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
 | 
			
		||||
@@ -752,35 +764,37 @@ x_name.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_name.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_name.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_name.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_name.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_name.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_name.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_name.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_name.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_name.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_name.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_name.c
 | 
			
		||||
x_name.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_name.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_name.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_name.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_name.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_name.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_name.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_name.o: ../cryptlib.h x_name.c
 | 
			
		||||
x_pkey.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_pkey.c
 | 
			
		||||
x_pkey.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_pkey.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_pkey.o: ../cryptlib.h x_pkey.c
 | 
			
		||||
x_pubkey.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/opensslconf.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h
 | 
			
		||||
x_pubkey.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
@@ -793,76 +807,82 @@ x_req.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_req.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_req.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_req.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_req.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_req.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_req.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_req.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_req.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_req.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_req.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_req.c
 | 
			
		||||
x_req.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_req.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_req.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_req.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_req.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_req.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_req.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_req.o: ../cryptlib.h x_req.c
 | 
			
		||||
x_sig.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_sig.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_sig.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_sig.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_sig.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_sig.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_sig.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_sig.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_sig.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_sig.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_sig.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_sig.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_sig.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_sig.c
 | 
			
		||||
x_sig.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_sig.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_sig.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_sig.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_sig.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_sig.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_sig.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_sig.o: ../cryptlib.h x_sig.c
 | 
			
		||||
x_spki.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_spki.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_spki.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_spki.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_spki.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_spki.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_spki.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_spki.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_spki.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_spki.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_spki.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_spki.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_spki.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_spki.c
 | 
			
		||||
x_spki.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_spki.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_spki.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_spki.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_spki.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_spki.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_spki.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_spki.o: ../cryptlib.h x_spki.c
 | 
			
		||||
x_val.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_val.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_val.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_val.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_val.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_val.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_val.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_val.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_val.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_val.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_val.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_val.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_val.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_val.c
 | 
			
		||||
x_val.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_val.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_val.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_val.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_val.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_val.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_val.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_val.o: ../cryptlib.h x_val.c
 | 
			
		||||
x_x509.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_x509.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_x509.o: ../../include/openssl/buffer.h ../../include/openssl/conf.h
 | 
			
		||||
x_x509.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h
 | 
			
		||||
x_x509.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h
 | 
			
		||||
x_x509.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h
 | 
			
		||||
x_x509.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h
 | 
			
		||||
x_x509.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_x509.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_x509.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_x509.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_x509.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_x509.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_x509.o: ../../include/openssl/x509v3.h ../cryptlib.h x_x509.c
 | 
			
		||||
x_x509.o: ../../include/openssl/evp.h ../../include/openssl/fips.h
 | 
			
		||||
x_x509.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_x509.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_x509.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_x509.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_x509.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_x509.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_x509.o: ../../include/openssl/x509_vfy.h ../../include/openssl/x509v3.h
 | 
			
		||||
x_x509.o: ../cryptlib.h x_x509.c
 | 
			
		||||
x_x509a.o: ../../e_os.h ../../include/openssl/asn1.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/asn1t.h ../../include/openssl/bio.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/err.h ../../include/openssl/evp.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/x509_vfy.h ../cryptlib.h x_x509a.c
 | 
			
		||||
x_x509a.o: ../../include/openssl/fips.h ../../include/openssl/lhash.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
x_x509a.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
 | 
			
		||||
x_x509a.o: ../cryptlib.h x_x509a.c
 | 
			
		||||
 
 | 
			
		||||
@@ -183,9 +183,11 @@ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
 | 
			
		||||
	iv= ~v;
 | 
			
		||||
	if (!value) v=0;
 | 
			
		||||
 | 
			
		||||
	if (a == NULL)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	a->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear, set on write */
 | 
			
		||||
 | 
			
		||||
	if (a == NULL) return(0);
 | 
			
		||||
	if ((a->length < (w+1)) || (a->data == NULL))
 | 
			
		||||
		{
 | 
			
		||||
		if (!value) return(1); /* Don't need to set */
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include <openssl/buffer.h>
 | 
			
		||||
#include <openssl/asn1.h>
 | 
			
		||||
@@ -83,10 +84,12 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp)
 | 
			
		||||
 | 
			
		||||
int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
	{
 | 
			
		||||
	int i,first,len=0,c;
 | 
			
		||||
	char tmp[24];
 | 
			
		||||
	int i,first,len=0,c, use_bn;
 | 
			
		||||
	char ftmp[24], *tmp = ftmp;
 | 
			
		||||
	int tmpsize = sizeof ftmp;
 | 
			
		||||
	const char *p;
 | 
			
		||||
	unsigned long l;
 | 
			
		||||
	BIGNUM *bl = NULL;
 | 
			
		||||
 | 
			
		||||
	if (num == 0)
 | 
			
		||||
		return(0);
 | 
			
		||||
@@ -98,7 +101,7 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
	num--;
 | 
			
		||||
	if ((c >= '0') && (c <= '2'))
 | 
			
		||||
		{
 | 
			
		||||
		first=(c-'0')*40;
 | 
			
		||||
		first= c-'0';
 | 
			
		||||
		}
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
@@ -122,6 +125,7 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		l=0;
 | 
			
		||||
		use_bn = 0;
 | 
			
		||||
		for (;;)
 | 
			
		||||
			{
 | 
			
		||||
			if (num <= 0) break;
 | 
			
		||||
@@ -134,7 +138,22 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_DIGIT);
 | 
			
		||||
				goto err;
 | 
			
		||||
				}
 | 
			
		||||
			l=l*10L+(long)(c-'0');
 | 
			
		||||
			if (!use_bn && l > (ULONG_MAX / 10L))
 | 
			
		||||
				{
 | 
			
		||||
				use_bn = 1;
 | 
			
		||||
				if (!bl)
 | 
			
		||||
					bl = BN_new();
 | 
			
		||||
				if (!bl || !BN_set_word(bl, l))
 | 
			
		||||
					goto err;
 | 
			
		||||
				}
 | 
			
		||||
			if (use_bn)
 | 
			
		||||
				{
 | 
			
		||||
				if (!BN_mul_word(bl, 10L)
 | 
			
		||||
					|| !BN_add_word(bl, c-'0'))
 | 
			
		||||
					goto err;
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				l=l*10L+(long)(c-'0');
 | 
			
		||||
			}
 | 
			
		||||
		if (len == 0)
 | 
			
		||||
			{
 | 
			
		||||
@@ -143,14 +162,42 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_SECOND_NUMBER_TOO_LARGE);
 | 
			
		||||
				goto err;
 | 
			
		||||
				}
 | 
			
		||||
			l+=(long)first;
 | 
			
		||||
			if (use_bn)
 | 
			
		||||
				{
 | 
			
		||||
				if (!BN_add_word(bl, first * 40))
 | 
			
		||||
					goto err;
 | 
			
		||||
				}
 | 
			
		||||
			else
 | 
			
		||||
				l+=(long)first*40;
 | 
			
		||||
			}
 | 
			
		||||
		i=0;
 | 
			
		||||
		for (;;)
 | 
			
		||||
		if (use_bn)
 | 
			
		||||
			{
 | 
			
		||||
			tmp[i++]=(unsigned char)l&0x7f;
 | 
			
		||||
			l>>=7L;
 | 
			
		||||
			if (l == 0L) break;
 | 
			
		||||
			int blsize;
 | 
			
		||||
			blsize = BN_num_bits(bl);
 | 
			
		||||
			blsize = (blsize + 6)/7;
 | 
			
		||||
			if (blsize > tmpsize)
 | 
			
		||||
				{
 | 
			
		||||
				if (tmp != ftmp)
 | 
			
		||||
					OPENSSL_free(tmp);
 | 
			
		||||
				tmpsize = blsize + 32;
 | 
			
		||||
				tmp = OPENSSL_malloc(tmpsize);
 | 
			
		||||
				if (!tmp)
 | 
			
		||||
					goto err;
 | 
			
		||||
				}
 | 
			
		||||
			while(blsize--)
 | 
			
		||||
				tmp[i++] = (unsigned char)BN_div_word(bl, 0x80L);
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
			{
 | 
			
		||||
					
 | 
			
		||||
			for (;;)
 | 
			
		||||
				{
 | 
			
		||||
				tmp[i++]=(unsigned char)l&0x7f;
 | 
			
		||||
				l>>=7L;
 | 
			
		||||
				if (l == 0L) break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
		if (out != NULL)
 | 
			
		||||
			{
 | 
			
		||||
@@ -166,8 +213,16 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
 | 
			
		||||
		else
 | 
			
		||||
			len+=i;
 | 
			
		||||
		}
 | 
			
		||||
	if (tmp != ftmp)
 | 
			
		||||
		OPENSSL_free(tmp);
 | 
			
		||||
	if (bl)
 | 
			
		||||
		BN_free(bl);
 | 
			
		||||
	return(len);
 | 
			
		||||
err:
 | 
			
		||||
	if (tmp != ftmp)
 | 
			
		||||
		OPENSSL_free(tmp);
 | 
			
		||||
	if (bl)
 | 
			
		||||
		BN_free(bl);
 | 
			
		||||
	return(0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -178,14 +233,24 @@ int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a)
 | 
			
		||||
 | 
			
		||||
int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a)
 | 
			
		||||
	{
 | 
			
		||||
	char buf[80];
 | 
			
		||||
	char buf[80], *p = buf;
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	if ((a == NULL) || (a->data == NULL))
 | 
			
		||||
		return(BIO_write(bp,"NULL",4));
 | 
			
		||||
	i=i2t_ASN1_OBJECT(buf,sizeof buf,a);
 | 
			
		||||
	if (i > (int)sizeof(buf)) i=sizeof buf;
 | 
			
		||||
	BIO_write(bp,buf,i);
 | 
			
		||||
	if (i > (int)(sizeof(buf) - 1))
 | 
			
		||||
		{
 | 
			
		||||
		p = OPENSSL_malloc(i + 1);
 | 
			
		||||
		if (!p)
 | 
			
		||||
			return -1;
 | 
			
		||||
		i2t_ASN1_OBJECT(p,i + 1,a);
 | 
			
		||||
		}
 | 
			
		||||
	if (i <= 0)
 | 
			
		||||
		return BIO_write(bp, "<INVALID>", 9);
 | 
			
		||||
	BIO_write(bp,p,i);
 | 
			
		||||
	if (p != buf)
 | 
			
		||||
		OPENSSL_free(p);
 | 
			
		||||
	return(i);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -170,7 +170,7 @@ static int do_buf(unsigned char *buf, int buflen,
 | 
			
		||||
	q = buf + buflen;
 | 
			
		||||
	outlen = 0;
 | 
			
		||||
	while(p != q) {
 | 
			
		||||
		if(p == buf) orflags = CHARTYPE_FIRST_ESC_2253;
 | 
			
		||||
		if(p == buf && flags & ASN1_STRFLGS_ESC_2253) orflags = CHARTYPE_FIRST_ESC_2253;
 | 
			
		||||
		else orflags = 0;
 | 
			
		||||
		switch(type & BUF_TYPE_WIDTH_MASK) {
 | 
			
		||||
			case 4:
 | 
			
		||||
@@ -194,8 +194,10 @@ static int do_buf(unsigned char *buf, int buflen,
 | 
			
		||||
			if(i < 0) return -1;	/* Invalid UTF8String */
 | 
			
		||||
			p += i;
 | 
			
		||||
			break;
 | 
			
		||||
			default:
 | 
			
		||||
			return -1;	/* invalid width */
 | 
			
		||||
		}
 | 
			
		||||
		if (p == q) orflags = CHARTYPE_LAST_ESC_2253;
 | 
			
		||||
		if (p == q && flags & ASN1_STRFLGS_ESC_2253) orflags = CHARTYPE_LAST_ESC_2253;
 | 
			
		||||
		if(type & BUF_TYPE_CONVUTF8) {
 | 
			
		||||
			unsigned char utfbuf[6];
 | 
			
		||||
			int utflen;
 | 
			
		||||
@@ -223,7 +225,7 @@ static int do_buf(unsigned char *buf, int buflen,
 | 
			
		||||
 | 
			
		||||
static int do_hex_dump(char_io *io_ch, void *arg, unsigned char *buf, int buflen)
 | 
			
		||||
{
 | 
			
		||||
	const static char hexdig[] = "0123456789ABCDEF";
 | 
			
		||||
	static const char hexdig[] = "0123456789ABCDEF";
 | 
			
		||||
	unsigned char *p, *q;
 | 
			
		||||
	char hextmp[2];
 | 
			
		||||
	if(arg) {
 | 
			
		||||
@@ -279,7 +281,7 @@ static int do_dump(unsigned long lflags, char_io *io_ch, void *arg, ASN1_STRING
 | 
			
		||||
 * otherwise it is the number of bytes per character
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
const static signed char tag2nbyte[] = {
 | 
			
		||||
static const signed char tag2nbyte[] = {
 | 
			
		||||
	-1, -1, -1, -1, -1,	/* 0-4 */
 | 
			
		||||
	-1, -1, -1, -1, -1,	/* 5-9 */
 | 
			
		||||
	-1, -1, 0, -1,		/* 10-13 */
 | 
			
		||||
@@ -356,12 +358,13 @@ static int do_print_ex(char_io *io_ch, void *arg, unsigned long lflags, ASN1_STR
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	len = do_buf(str->data, str->length, type, flags, "es, io_ch, NULL);
 | 
			
		||||
	if(outlen < 0) return -1;
 | 
			
		||||
	if(len < 0) return -1;
 | 
			
		||||
	outlen += len;
 | 
			
		||||
	if(quotes) outlen += 2;
 | 
			
		||||
	if(!arg) return outlen;
 | 
			
		||||
	if(quotes && !io_ch(arg, "\"", 1)) return -1;
 | 
			
		||||
	do_buf(str->data, str->length, type, flags, NULL, io_ch, arg);
 | 
			
		||||
	if(do_buf(str->data, str->length, type, flags, NULL, io_ch, arg) < 0)
 | 
			
		||||
		return -1;
 | 
			
		||||
	if(quotes && !io_ch(arg, "\"", 1)) return -1;
 | 
			
		||||
	return outlen;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -149,6 +149,7 @@ extern "C" {
 | 
			
		||||
#define B_ASN1_UTF8STRING	0x2000
 | 
			
		||||
#define B_ASN1_UTCTIME		0x4000
 | 
			
		||||
#define B_ASN1_GENERALIZEDTIME	0x8000
 | 
			
		||||
#define B_ASN1_SEQUENCE		0x10000
 | 
			
		||||
 | 
			
		||||
/* For use with ASN1_mbstring_copy() */
 | 
			
		||||
#define MBSTRING_FLAG		0x1000
 | 
			
		||||
@@ -594,6 +595,7 @@ typedef struct BIT_STRING_BITNAME_st {
 | 
			
		||||
			B_ASN1_UNIVERSALSTRING|\
 | 
			
		||||
			B_ASN1_BMPSTRING|\
 | 
			
		||||
			B_ASN1_UTF8STRING|\
 | 
			
		||||
			B_ASN1_SEQUENCE|\
 | 
			
		||||
			B_ASN1_UNKNOWN
 | 
			
		||||
 | 
			
		||||
#define B_ASN1_DIRECTORYSTRING \
 | 
			
		||||
@@ -1045,7 +1047,7 @@ void ERR_load_ASN1_strings(void);
 | 
			
		||||
#define ASN1_F_ASN1_I2D_FP				 117
 | 
			
		||||
#define ASN1_F_ASN1_INTEGER_SET				 118
 | 
			
		||||
#define ASN1_F_ASN1_INTEGER_TO_BN			 119
 | 
			
		||||
#define ASN1_F_ASN1_ITEM_D2I_FP				 190
 | 
			
		||||
#define ASN1_F_ASN1_ITEM_D2I_FP				 206
 | 
			
		||||
#define ASN1_F_ASN1_ITEM_DUP				 191
 | 
			
		||||
#define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW			 121
 | 
			
		||||
#define ASN1_F_ASN1_ITEM_EX_D2I				 120
 | 
			
		||||
@@ -1058,6 +1060,7 @@ void ERR_load_ASN1_strings(void);
 | 
			
		||||
#define ASN1_F_ASN1_MBSTRING_NCOPY			 122
 | 
			
		||||
#define ASN1_F_ASN1_OBJECT_NEW				 123
 | 
			
		||||
#define ASN1_F_ASN1_PACK_STRING				 124
 | 
			
		||||
#define ASN1_F_ASN1_PCTX_NEW				 205
 | 
			
		||||
#define ASN1_F_ASN1_PKCS5_PBE_SET			 125
 | 
			
		||||
#define ASN1_F_ASN1_SEQ_PACK				 126
 | 
			
		||||
#define ASN1_F_ASN1_SEQ_UNPACK				 127
 | 
			
		||||
 
 | 
			
		||||
@@ -111,6 +111,7 @@ static ERR_STRING_DATA ASN1_str_functs[]=
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_MBSTRING_NCOPY),	"ASN1_mbstring_ncopy"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_OBJECT_NEW),	"ASN1_OBJECT_new"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_PACK_STRING),	"ASN1_pack_string"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_PCTX_NEW),	"ASN1_PCTX_NEW"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_PKCS5_PBE_SET),	"ASN1_PKCS5_PBE_SET"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_SEQ_PACK),	"ASN1_seq_pack"},
 | 
			
		||||
{ERR_FUNC(ASN1_F_ASN1_SEQ_UNPACK),	"ASN1_seq_unpack"},
 | 
			
		||||
@@ -286,15 +287,12 @@ static ERR_STRING_DATA ASN1_str_reasons[]=
 | 
			
		||||
 | 
			
		||||
void ERR_load_ASN1_strings(void)
 | 
			
		||||
	{
 | 
			
		||||
	static int init=1;
 | 
			
		||||
 | 
			
		||||
	if (init)
 | 
			
		||||
		{
 | 
			
		||||
		init=0;
 | 
			
		||||
#ifndef OPENSSL_NO_ERR
 | 
			
		||||
 | 
			
		||||
	if (ERR_func_error_string(ASN1_str_functs[0].error) == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		ERR_load_strings(0,ASN1_str_functs);
 | 
			
		||||
		ERR_load_strings(0,ASN1_str_reasons);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -658,6 +658,8 @@ static ASN1_TYPE *asn1_str2type(const char *str, int format, int utype)
 | 
			
		||||
			ASN1err(ASN1_F_ASN1_STR2TYPE, ASN1_R_NOT_ASCII_FORMAT);
 | 
			
		||||
			goto bad_form;
 | 
			
		||||
			}
 | 
			
		||||
		vtmp.name = NULL;
 | 
			
		||||
		vtmp.section = NULL;
 | 
			
		||||
		vtmp.value = (char *)str;
 | 
			
		||||
		if (!X509V3_get_value_bool(&vtmp, &atmp->value.boolean))
 | 
			
		||||
			{
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@
 | 
			
		||||
 | 
			
		||||
static int asn1_get_length(const unsigned char **pp,int *inf,long *rl,int max);
 | 
			
		||||
static void asn1_put_length(unsigned char **pp, int length);
 | 
			
		||||
const char *ASN1_version="ASN.1" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
const char ASN1_version[]="ASN.1" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
 | 
			
		||||
static int _asn1_check_infinite_end(const unsigned char **p, long len)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,10 @@ static int asn1_print_info(BIO *bp, int tag, int xclass, int constructed,
 | 
			
		||||
		BIO_snprintf(str,sizeof str,"cont [ %d ]",tag);
 | 
			
		||||
	else if ((xclass & V_ASN1_APPLICATION) == V_ASN1_APPLICATION)
 | 
			
		||||
		BIO_snprintf(str,sizeof str,"appl [ %d ]",tag);
 | 
			
		||||
	else p = ASN1_tag2str(tag);
 | 
			
		||||
	else if (tag > 30)
 | 
			
		||||
		BIO_snprintf(str,sizeof str,"<ASN1 %d>",tag);
 | 
			
		||||
	else
 | 
			
		||||
		p = ASN1_tag2str(tag);
 | 
			
		||||
 | 
			
		||||
	if (p2 != NULL)
 | 
			
		||||
		{
 | 
			
		||||
@@ -419,7 +422,7 @@ end:
 | 
			
		||||
 | 
			
		||||
const char *ASN1_tag2str(int tag)
 | 
			
		||||
{
 | 
			
		||||
	const static char *tag2str[] = {
 | 
			
		||||
	static const char *tag2str[] = {
 | 
			
		||||
	 "EOC", "BOOLEAN", "INTEGER", "BIT STRING", "OCTET STRING", /* 0-4 */
 | 
			
		||||
	 "NULL", "OBJECT", "OBJECT DESCRIPTOR", "EXTERNAL", "REAL", /* 5-9 */
 | 
			
		||||
	 "ENUMERATED", "<ASN1 11>", "UTF8STRING", "<ASN1 13>", 	    /* 10-13 */
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,7 @@ extern "C" {
 | 
			
		||||
#define ASN1_ITEM_start(itname) \
 | 
			
		||||
	const ASN1_ITEM * itname##_it(void) \
 | 
			
		||||
	{ \
 | 
			
		||||
		static const ASN1_ITEM local_it = { \
 | 
			
		||||
		static const ASN1_ITEM local_it = { 
 | 
			
		||||
 | 
			
		||||
#define ASN1_ITEM_end(itname) \
 | 
			
		||||
		}; \
 | 
			
		||||
 
 | 
			
		||||
@@ -149,7 +149,7 @@ static int do_create(char *value, char *name)
 | 
			
		||||
		if (lntmp == NULL)
 | 
			
		||||
			return 0;
 | 
			
		||||
		memcpy(lntmp, ln, p - ln);
 | 
			
		||||
		lntmp[p - ln + 1] = 0;
 | 
			
		||||
		lntmp[p - ln] = 0;
 | 
			
		||||
		oid = OBJ_nid2obj(nid);
 | 
			
		||||
		oid->ln = lntmp;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -81,8 +81,10 @@
 | 
			
		||||
 | 
			
		||||
static int print(BIO *fp,const char *str, const BIGNUM *num,
 | 
			
		||||
		unsigned char *buf,int off);
 | 
			
		||||
#ifndef OPENSSL_NO_EC
 | 
			
		||||
static int print_bin(BIO *fp, const char *str, const unsigned char *num,
 | 
			
		||||
		size_t len, int off);
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#ifndef OPENSSL_NO_FP_API
 | 
			
		||||
int RSA_print_fp(FILE *fp, const RSA *x, int off)
 | 
			
		||||
@@ -107,7 +109,7 @@ int RSA_print(BIO *bp, const RSA *x, int off)
 | 
			
		||||
	char str[128];
 | 
			
		||||
	const char *s;
 | 
			
		||||
	unsigned char *m=NULL;
 | 
			
		||||
	int ret=0;
 | 
			
		||||
	int ret=0, mod_len = 0;
 | 
			
		||||
	size_t buf_len=0, i;
 | 
			
		||||
 | 
			
		||||
	if (x->n)
 | 
			
		||||
@@ -141,27 +143,37 @@ int RSA_print(BIO *bp, const RSA *x, int off)
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (x->n != NULL)
 | 
			
		||||
		mod_len = BN_num_bits(x->n);
 | 
			
		||||
 | 
			
		||||
	if (x->d != NULL)
 | 
			
		||||
		{
 | 
			
		||||
		if(!BIO_indent(bp,off,128))
 | 
			
		||||
		   goto err;
 | 
			
		||||
		if (BIO_printf(bp,"Private-Key: (%d bit)\n",BN_num_bits(x->n))
 | 
			
		||||
		if (BIO_printf(bp,"Private-Key: (%d bit)\n", mod_len)
 | 
			
		||||
			<= 0) goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (x->d == NULL)
 | 
			
		||||
		BIO_snprintf(str,sizeof str,"Modulus (%d bit):",BN_num_bits(x->n));
 | 
			
		||||
		BIO_snprintf(str,sizeof str,"Modulus (%d bit):", mod_len);
 | 
			
		||||
	else
 | 
			
		||||
		BUF_strlcpy(str,"modulus:",sizeof str);
 | 
			
		||||
	if (!print(bp,str,x->n,m,off)) goto err;
 | 
			
		||||
	s=(x->d == NULL)?"Exponent:":"publicExponent:";
 | 
			
		||||
	if (!print(bp,s,x->e,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"privateExponent:",x->d,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"prime1:",x->p,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"prime2:",x->q,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"exponent1:",x->dmp1,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"exponent2:",x->dmq1,m,off)) goto err;
 | 
			
		||||
	if (!print(bp,"coefficient:",x->iqmp,m,off)) goto err;
 | 
			
		||||
	if ((x->e != NULL) && !print(bp,s,x->e,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->d != NULL) && !print(bp,"privateExponent:",x->d,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->p != NULL) && !print(bp,"prime1:",x->p,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->q != NULL) && !print(bp,"prime2:",x->q,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->dmp1 != NULL) && !print(bp,"exponent1:",x->dmp1,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->dmq1 != NULL) && !print(bp,"exponent2:",x->dmq1,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	if ((x->iqmp != NULL) && !print(bp,"coefficient:",x->iqmp,m,off))
 | 
			
		||||
		goto err;
 | 
			
		||||
	ret=1;
 | 
			
		||||
err:
 | 
			
		||||
	if (m != NULL) OPENSSL_free(m);
 | 
			
		||||
@@ -196,6 +208,11 @@ int DSA_print(BIO *bp, const DSA *x, int off)
 | 
			
		||||
 | 
			
		||||
	if (x->p)
 | 
			
		||||
		buf_len = (size_t)BN_num_bytes(x->p);
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		DSAerr(DSA_F_DSA_PRINT,DSA_R_MISSING_PARAMETERS);
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
	if (x->q)
 | 
			
		||||
		if (buf_len < (i = (size_t)BN_num_bytes(x->q)))
 | 
			
		||||
			buf_len = i;
 | 
			
		||||
@@ -601,6 +618,7 @@ static int print(BIO *bp, const char *number, const BIGNUM *num, unsigned char *
 | 
			
		||||
	return(1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_NO_EC
 | 
			
		||||
static int print_bin(BIO *fp, const char *name, const unsigned char *buf,
 | 
			
		||||
		size_t len, int off)
 | 
			
		||||
	{
 | 
			
		||||
@@ -638,6 +656,7 @@ static int print_bin(BIO *fp, const char *name, const unsigned char *buf,
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_NO_DH
 | 
			
		||||
#ifndef OPENSSL_NO_FP_API
 | 
			
		||||
@@ -666,6 +685,11 @@ int DHparams_print(BIO *bp, const DH *x)
 | 
			
		||||
 | 
			
		||||
	if (x->p)
 | 
			
		||||
		buf_len = (size_t)BN_num_bytes(x->p);
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		reason = ERR_R_PASSED_NULL_PARAMETER;
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
	if (x->g)
 | 
			
		||||
		if (buf_len < (i = (size_t)BN_num_bytes(x->g)))
 | 
			
		||||
			buf_len = i;
 | 
			
		||||
@@ -719,11 +743,16 @@ int DSAparams_print_fp(FILE *fp, const DSA *x)
 | 
			
		||||
int DSAparams_print(BIO *bp, const DSA *x)
 | 
			
		||||
	{
 | 
			
		||||
	unsigned char *m=NULL;
 | 
			
		||||
	int reason=ERR_R_BUF_LIB,ret=0;
 | 
			
		||||
	int ret=0;
 | 
			
		||||
	size_t buf_len=0,i;
 | 
			
		||||
 | 
			
		||||
	if (x->p)
 | 
			
		||||
		buf_len = (size_t)BN_num_bytes(x->p);
 | 
			
		||||
	else
 | 
			
		||||
		{
 | 
			
		||||
		DSAerr(DSA_F_DSAPARAMS_PRINT,DSA_R_MISSING_PARAMETERS);
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
	if (x->q)
 | 
			
		||||
		if (buf_len < (i = (size_t)BN_num_bytes(x->q)))
 | 
			
		||||
			buf_len = i;
 | 
			
		||||
@@ -733,7 +762,7 @@ int DSAparams_print(BIO *bp, const DSA *x)
 | 
			
		||||
	m=(unsigned char *)OPENSSL_malloc(buf_len+10);
 | 
			
		||||
	if (m == NULL)
 | 
			
		||||
		{
 | 
			
		||||
		reason=ERR_R_MALLOC_FAILURE;
 | 
			
		||||
		DSAerr(DSA_F_DSAPARAMS_PRINT,ERR_R_MALLOC_FAILURE);
 | 
			
		||||
		goto err;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -741,12 +770,11 @@ int DSAparams_print(BIO *bp, const DSA *x)
 | 
			
		||||
		BN_num_bits(x->p)) <= 0)
 | 
			
		||||
		goto err;
 | 
			
		||||
	if (!print(bp,"p:",x->p,m,4)) goto err;
 | 
			
		||||
	if (!print(bp,"q:",x->q,m,4)) goto err;
 | 
			
		||||
	if (!print(bp,"g:",x->g,m,4)) goto err;
 | 
			
		||||
	if ((x->q != NULL) && !print(bp,"q:",x->q,m,4)) goto err;
 | 
			
		||||
	if ((x->g != NULL) && !print(bp,"g:",x->g,m,4)) goto err;
 | 
			
		||||
	ret=1;
 | 
			
		||||
err:
 | 
			
		||||
	if (m != NULL) OPENSSL_free(m);
 | 
			
		||||
	DSAerr(DSA_F_DSAPARAMS_PRINT,reason);
 | 
			
		||||
	return(ret);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -63,8 +63,12 @@
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/x509v3.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef OPENSSL_NO_FP_API
 | 
			
		||||
int X509_REQ_print_fp(FILE *fp, X509_REQ *x)
 | 
			
		||||
 
 | 
			
		||||
@@ -60,8 +60,12 @@
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#include <openssl/asn1.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <openssl/bn.h>
 | 
			
		||||
 | 
			
		||||
/* Print out an SPKI */
 | 
			
		||||
 
 | 
			
		||||
@@ -445,9 +445,9 @@ err:
 | 
			
		||||
int X509_NAME_print(BIO *bp, X509_NAME *name, int obase)
 | 
			
		||||
	{
 | 
			
		||||
	char *s,*c,*b;
 | 
			
		||||
	int ret=0,l,ll,i,first=1;
 | 
			
		||||
	int ret=0,l,i;
 | 
			
		||||
 | 
			
		||||
	ll=80-2-obase;
 | 
			
		||||
	l=80-2-obase;
 | 
			
		||||
 | 
			
		||||
	b=s=X509_NAME_oneline(name,NULL,0);
 | 
			
		||||
	if (!*s)
 | 
			
		||||
@@ -457,7 +457,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase)
 | 
			
		||||
		}
 | 
			
		||||
	s++; /* skip the first slash */
 | 
			
		||||
 | 
			
		||||
	l=ll;
 | 
			
		||||
	c=s;
 | 
			
		||||
	for (;;)
 | 
			
		||||
		{
 | 
			
		||||
@@ -479,16 +478,6 @@ int X509_NAME_print(BIO *bp, X509_NAME *name, int obase)
 | 
			
		||||
			(*s == '\0'))
 | 
			
		||||
#endif
 | 
			
		||||
			{
 | 
			
		||||
			if ((l <= 0) && !first)
 | 
			
		||||
				{
 | 
			
		||||
				first=0;
 | 
			
		||||
				if (BIO_write(bp,"\n",1) != 1) goto err;
 | 
			
		||||
				for (i=0; i<obase; i++)
 | 
			
		||||
					{
 | 
			
		||||
					if (BIO_write(bp," ",1) != 1) goto err;
 | 
			
		||||
					}
 | 
			
		||||
				l=ll;
 | 
			
		||||
				}
 | 
			
		||||
			i=s-c;
 | 
			
		||||
			if (BIO_write(bp,c,i) != i) goto err;
 | 
			
		||||
			c+=i;
 | 
			
		||||
 
 | 
			
		||||
@@ -93,12 +93,12 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
 | 
			
		||||
				int tag, int aclass, char opt, ASN1_TLC *ctx);
 | 
			
		||||
 | 
			
		||||
/* Table to convert tags to bit values, used for MSTRING type */
 | 
			
		||||
static unsigned long tag2bit[32] = {
 | 
			
		||||
static const unsigned long tag2bit[32] = {
 | 
			
		||||
0,	0,	0,	B_ASN1_BIT_STRING,	/* tags  0 -  3 */
 | 
			
		||||
B_ASN1_OCTET_STRING,	0,	0,		B_ASN1_UNKNOWN,/* tags  4- 7 */
 | 
			
		||||
B_ASN1_UNKNOWN,	B_ASN1_UNKNOWN,	B_ASN1_UNKNOWN,	B_ASN1_UNKNOWN,/* tags  8-11 */
 | 
			
		||||
B_ASN1_UTF8STRING,B_ASN1_UNKNOWN,B_ASN1_UNKNOWN,B_ASN1_UNKNOWN,/* tags 12-15 */
 | 
			
		||||
0,	0,	B_ASN1_NUMERICSTRING,B_ASN1_PRINTABLESTRING,   /* tags 16-19 */
 | 
			
		||||
B_ASN1_SEQUENCE,0,B_ASN1_NUMERICSTRING,B_ASN1_PRINTABLESTRING, /* tags 16-19 */
 | 
			
		||||
B_ASN1_T61STRING,B_ASN1_VIDEOTEXSTRING,B_ASN1_IA5STRING,       /* tags 20-22 */
 | 
			
		||||
B_ASN1_UTCTIME, B_ASN1_GENERALIZEDTIME,			       /* tags 23-24 */	
 | 
			
		||||
B_ASN1_GRAPHICSTRING,B_ASN1_ISO64STRING,B_ASN1_GENERALSTRING,  /* tags 25-27 */
 | 
			
		||||
@@ -158,7 +158,7 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
 | 
			
		||||
	const ASN1_EXTERN_FUNCS *ef;
 | 
			
		||||
	const ASN1_AUX *aux = it->funcs;
 | 
			
		||||
	ASN1_aux_cb *asn1_cb;
 | 
			
		||||
	const unsigned char *p, *q;
 | 
			
		||||
	const unsigned char *p = NULL, *q;
 | 
			
		||||
	unsigned char *wp=NULL;	/* BIG FAT WARNING!  BREAKS CONST WHERE USED */
 | 
			
		||||
	unsigned char imphack = 0, oclass;
 | 
			
		||||
	char seq_eoc, seq_nolen, cst, isopt;
 | 
			
		||||
@@ -283,6 +283,12 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
 | 
			
		||||
			{
 | 
			
		||||
			wp = *(unsigned char **)in;
 | 
			
		||||
			imphack = *wp;
 | 
			
		||||
			if (p == NULL)
 | 
			
		||||
				{
 | 
			
		||||
				ASN1err(ASN1_F_ASN1_ITEM_EX_D2I,
 | 
			
		||||
					ERR_R_NESTED_ASN1_ERROR);
 | 
			
		||||
				goto err;
 | 
			
		||||
				}
 | 
			
		||||
			*wp = (unsigned char)((*p & V_ASN1_CONSTRUCTED)
 | 
			
		||||
								| it->utype);
 | 
			
		||||
			}
 | 
			
		||||
@@ -826,6 +832,7 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
 | 
			
		||||
		}
 | 
			
		||||
	else if (ret == -1)
 | 
			
		||||
		return -1;
 | 
			
		||||
        ret = 0;
 | 
			
		||||
	/* SEQUENCE, SET and "OTHER" are left in encoded form */
 | 
			
		||||
	if ((utype == V_ASN1_SEQUENCE)
 | 
			
		||||
		|| (utype == V_ASN1_SET) || (utype == V_ASN1_OTHER))
 | 
			
		||||
@@ -872,7 +879,10 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
 | 
			
		||||
		 * for UNIVERSAL class and ignore the tag.
 | 
			
		||||
		 */
 | 
			
		||||
		if (!asn1_collect(&buf, &p, plen, inf, -1, V_ASN1_UNIVERSAL))
 | 
			
		||||
			{
 | 
			
		||||
			free_cont = 1;
 | 
			
		||||
			goto err;
 | 
			
		||||
			}
 | 
			
		||||
		len = buf.length;
 | 
			
		||||
		/* Append a final null to string */
 | 
			
		||||
		if (!BUF_MEM_grow_clean(&buf, len + 1))
 | 
			
		||||
@@ -924,6 +934,8 @@ int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
 | 
			
		||||
		if (!*pval)
 | 
			
		||||
			{
 | 
			
		||||
			typ = ASN1_TYPE_new();
 | 
			
		||||
			if (typ == NULL)
 | 
			
		||||
				goto err;
 | 
			
		||||
			*pval = (ASN1_VALUE *)typ;
 | 
			
		||||
			}
 | 
			
		||||
		else
 | 
			
		||||
@@ -1167,7 +1179,7 @@ static int asn1_collect(BUF_MEM *buf, const unsigned char **in, long len,
 | 
			
		||||
			return 0;
 | 
			
		||||
#endif
 | 
			
		||||
			}
 | 
			
		||||
		else if (!collect_data(buf, &p, plen))
 | 
			
		||||
		else if (plen && !collect_data(buf, &p, plen))
 | 
			
		||||
			return 0;
 | 
			
		||||
		len -= p - q;
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -59,6 +59,7 @@
 | 
			
		||||
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include <openssl/asn1.h>
 | 
			
		||||
#include <openssl/asn1t.h>
 | 
			
		||||
#include <openssl/objects.h>
 | 
			
		||||
@@ -617,11 +618,14 @@ int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype,
 | 
			
		||||
		tbool = (ASN1_BOOLEAN *)pval;
 | 
			
		||||
		if (*tbool == -1)
 | 
			
		||||
			return -1;
 | 
			
		||||
		/* Default handling if value == size field then omit */
 | 
			
		||||
		if (*tbool && (it->size > 0))
 | 
			
		||||
			return -1;
 | 
			
		||||
		if (!*tbool && !it->size)
 | 
			
		||||
			return -1;
 | 
			
		||||
		if (it->utype != V_ASN1_ANY)
 | 
			
		||||
			{
 | 
			
		||||
			/* Default handling if value == size field then omit */
 | 
			
		||||
			if (*tbool && (it->size > 0))
 | 
			
		||||
				return -1;
 | 
			
		||||
			if (!*tbool && !it->size)
 | 
			
		||||
				return -1;
 | 
			
		||||
			}
 | 
			
		||||
		c = (unsigned char)*tbool;
 | 
			
		||||
		cont = &c;
 | 
			
		||||
		len = 1;
 | 
			
		||||
 
 | 
			
		||||
@@ -326,11 +326,13 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
	{
 | 
			
		||||
	ASN1_TYPE *typ;
 | 
			
		||||
	int utype;
 | 
			
		||||
	const ASN1_PRIMITIVE_FUNCS *pf;
 | 
			
		||||
	pf = it->funcs;
 | 
			
		||||
 | 
			
		||||
	if (pf && pf->prim_new)
 | 
			
		||||
		return pf->prim_new(pval, it);
 | 
			
		||||
	if (it && it->funcs)
 | 
			
		||||
		{
 | 
			
		||||
		const ASN1_PRIMITIVE_FUNCS *pf = it->funcs;
 | 
			
		||||
		if (pf->prim_new)
 | 
			
		||||
			return pf->prim_new(pval, it);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	if (!it || (it->itype == ASN1_ITYPE_MSTRING))
 | 
			
		||||
		utype = -1;
 | 
			
		||||
@@ -374,10 +376,9 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
	{
 | 
			
		||||
	int utype;
 | 
			
		||||
	const ASN1_PRIMITIVE_FUNCS *pf;
 | 
			
		||||
	pf = it->funcs;
 | 
			
		||||
	if (pf)
 | 
			
		||||
	if (it && it->funcs)
 | 
			
		||||
		{
 | 
			
		||||
		const ASN1_PRIMITIVE_FUNCS *pf = it->funcs;
 | 
			
		||||
		if (pf->prim_clear)
 | 
			
		||||
			pf->prim_clear(pval, it);
 | 
			
		||||
		else 
 | 
			
		||||
 
 | 
			
		||||
@@ -60,8 +60,12 @@
 | 
			
		||||
#include "cryptlib.h"
 | 
			
		||||
#include <openssl/asn1t.h>
 | 
			
		||||
#include <openssl/x509.h>
 | 
			
		||||
#ifndef OPENSSL_NO_RSA
 | 
			
		||||
#include <openssl/rsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef OPENSSL_NO_DSA
 | 
			
		||||
#include <openssl/dsa.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Minor tweak to operation: free up EVP_PKEY */
 | 
			
		||||
static int pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
 
 | 
			
		||||
@@ -102,7 +102,7 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = {
 | 
			
		||||
 | 
			
		||||
IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO)
 | 
			
		||||
 | 
			
		||||
ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_INFO) = {
 | 
			
		||||
ASN1_SEQUENCE_ref(X509_REQ, 0, CRYPTO_LOCK_X509_REQ) = {
 | 
			
		||||
	ASN1_SIMPLE(X509_REQ, req_info, X509_REQ_INFO),
 | 
			
		||||
	ASN1_SIMPLE(X509_REQ, sig_alg, X509_ALGOR),
 | 
			
		||||
	ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
 | 
			
		||||
 
 | 
			
		||||
@@ -94,6 +94,10 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
		ret->ex_pathlen = -1;
 | 
			
		||||
		ret->skid = NULL;
 | 
			
		||||
		ret->akid = NULL;
 | 
			
		||||
#ifndef OPENSSL_NO_RFC3779
 | 
			
		||||
		ret->rfc3779_addr = NULL;
 | 
			
		||||
		ret->rfc3779_asid = NULL;
 | 
			
		||||
#endif
 | 
			
		||||
		ret->aux = NULL;
 | 
			
		||||
		CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data);
 | 
			
		||||
		break;
 | 
			
		||||
@@ -109,6 +113,10 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
			
		||||
		ASN1_OCTET_STRING_free(ret->skid);
 | 
			
		||||
		AUTHORITY_KEYID_free(ret->akid);
 | 
			
		||||
		policy_cache_free(ret->policy_cache);
 | 
			
		||||
#ifndef OPENSSL_NO_RFC3779
 | 
			
		||||
		sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free);
 | 
			
		||||
		ASIdentifiers_free(ret->rfc3779_asid);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		if (ret->name != NULL) OPENSSL_free(ret->name);
 | 
			
		||||
		break;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
#
 | 
			
		||||
# SSLeay/crypto/blowfish/Makefile
 | 
			
		||||
# OpenSSL/crypto/blowfish/Makefile
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
DIR=	bf
 | 
			
		||||
@@ -40,7 +40,7 @@ top:
 | 
			
		||||
all:	lib
 | 
			
		||||
 | 
			
		||||
lib:	$(LIBOBJ)
 | 
			
		||||
	$(AR) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(ARX) $(LIB) $(LIBOBJ)
 | 
			
		||||
	$(RANLIB) $(LIB) || echo Never mind.
 | 
			
		||||
	@touch lib
 | 
			
		||||
 | 
			
		||||
@@ -62,7 +62,10 @@ links:
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
 | 
			
		||||
	@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
# We need to use force because 'install' matches 'INSTALL' on case
 | 
			
		||||
# insensitive systems
 | 
			
		||||
FRC.install:
 | 
			
		||||
install: FRC.install
 | 
			
		||||
	@[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
 | 
			
		||||
	@headerlist="$(EXHEADER)"; for i in $$headerlist ; \
 | 
			
		||||
	do  \
 | 
			
		||||
@@ -100,5 +103,9 @@ bf_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
 | 
			
		||||
bf_enc.o: ../../include/openssl/opensslconf.h bf_enc.c bf_locl.h
 | 
			
		||||
bf_ofb64.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
 | 
			
		||||
bf_ofb64.o: ../../include/openssl/opensslconf.h bf_locl.h bf_ofb64.c
 | 
			
		||||
bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/e_os2.h
 | 
			
		||||
bf_skey.o: ../../include/openssl/opensslconf.h bf_locl.h bf_pi.h bf_skey.c
 | 
			
		||||
bf_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/crypto.h
 | 
			
		||||
bf_skey.o: ../../include/openssl/e_os2.h ../../include/openssl/fips.h
 | 
			
		||||
bf_skey.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
 | 
			
		||||
bf_skey.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
 | 
			
		||||
bf_skey.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
			
		||||
bf_skey.o: bf_locl.h bf_pi.h bf_skey.c
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@
 | 
			
		||||
 * CAMBRIDGE SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
const char *BF_version="Blowfish" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
const char BF_version[]="Blowfish" OPENSSL_VERSION_PTEXT;
 | 
			
		||||
 | 
			
		||||
const char *BF_options(void)
 | 
			
		||||
	{
 | 
			
		||||
 
 | 
			
		||||
@@ -73,7 +73,7 @@ void BF_encrypt(BF_LONG *data, const BF_KEY *key)
 | 
			
		||||
	{
 | 
			
		||||
#ifndef BF_PTR2
 | 
			
		||||
	register BF_LONG l,r;
 | 
			
		||||
    const register BF_LONG *p,*s;
 | 
			
		||||
	register const BF_LONG *p,*s;
 | 
			
		||||
 | 
			
		||||
	p=key->P;
 | 
			
		||||
	s= &(key->S[0]);
 | 
			
		||||
@@ -150,7 +150,7 @@ void BF_decrypt(BF_LONG *data, const BF_KEY *key)
 | 
			
		||||
	{
 | 
			
		||||
#ifndef BF_PTR2
 | 
			
		||||
	register BF_LONG l,r;
 | 
			
		||||
    const register BF_LONG *p,*s;
 | 
			
		||||
	register const BF_LONG *p,*s;
 | 
			
		||||
 | 
			
		||||
	p=key->P;
 | 
			
		||||
	s= &(key->S[0]);
 | 
			
		||||
 
 | 
			
		||||
@@ -59,10 +59,12 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <openssl/blowfish.h>
 | 
			
		||||
#include <openssl/crypto.h>
 | 
			
		||||
#include <openssl/fips.h>
 | 
			
		||||
#include "bf_locl.h"
 | 
			
		||||
#include "bf_pi.h"
 | 
			
		||||
 | 
			
		||||
void BF_set_key(BF_KEY *key, int len, const unsigned char *data)
 | 
			
		||||
FIPS_NON_FIPS_VCIPHER_Init(BF)
 | 
			
		||||
	{
 | 
			
		||||
	int i;
 | 
			
		||||
	BF_LONG *p,ri,in[2];
 | 
			
		||||
 
 | 
			
		||||
@@ -104,7 +104,9 @@ typedef struct bf_key_st
 | 
			
		||||
	BF_LONG S[4*256];
 | 
			
		||||
	} BF_KEY;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
#ifdef OPENSSL_FIPS 
 | 
			
		||||
void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data);
 | 
			
		||||
#endif
 | 
			
		||||
void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
 | 
			
		||||
 | 
			
		||||
void BF_encrypt(BF_LONG *data,const BF_KEY *key);
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user