Compare commits
	
		
			197 Commits
		
	
	
		
			FIPS_TEST_
			...
			OpenSSL-fi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					7e9826109c | ||
| 
						 | 
					79f67018b0 | ||
| 
						 | 
					090f0f3d0c | ||
| 
						 | 
					e29f1da219 | ||
| 
						 | 
					89b439fbf4 | ||
| 
						 | 
					7e92432b39 | ||
| 
						 | 
					28def5dc99 | ||
| 
						 | 
					e3435a51f7 | ||
| 
						 | 
					91588bbb6e | ||
| 
						 | 
					a8a7887ee2 | ||
| 
						 | 
					c9e912599f | ||
| 
						 | 
					53ddf0cc10 | ||
| 
						 | 
					43df8ea9d8 | ||
| 
						 | 
					7fa5c5a9f6 | ||
| 
						 | 
					16fc2d25d3 | ||
| 
						 | 
					ca36b0969a | ||
| 
						 | 
					913236a4f8 | ||
| 
						 | 
					c6292a2636 | ||
| 
						 | 
					1d7cec1013 | ||
| 
						 | 
					385075063e | ||
| 
						 | 
					f47f786fe9 | ||
| 
						 | 
					fa57af81a1 | ||
| 
						 | 
					5ae2774b89 | ||
| 
						 | 
					89d18a93bf | ||
| 
						 | 
					f1c2ab35db | ||
| 
						 | 
					7506ac8d25 | ||
| 
						 | 
					a98be6cfc2 | ||
| 
						 | 
					613f1c7e91 | ||
| 
						 | 
					9c823a2ab4 | ||
| 
						 | 
					77116a52d9 | ||
| 
						 | 
					af10d72e10 | ||
| 
						 | 
					8e664b2055 | ||
| 
						 | 
					d02dab1b32 | ||
| 
						 | 
					19b4199dd7 | ||
| 
						 | 
					510b3a14c6 | ||
| 
						 | 
					c2c47c7f95 | ||
| 
						 | 
					37e8a08075 | ||
| 
						 | 
					1f1790d15b | ||
| 
						 | 
					ab8c8aa404 | ||
| 
						 | 
					2ea17f9ddd | ||
| 
						 | 
					566933a8ba | ||
| 
						 | 
					5190ddd445 | ||
| 
						 | 
					2a4684e7fd | ||
| 
						 | 
					b1fa6d01f5 | ||
| 
						 | 
					2be44edb14 | ||
| 
						 | 
					af094ed124 | ||
| 
						 | 
					83a3805771 | ||
| 
						 | 
					2af6370bd7 | ||
| 
						 | 
					eee04c54ae | ||
| 
						 | 
					f899ad275d | ||
| 
						 | 
					ac0c33796f | ||
| 
						 | 
					580b60047b | ||
| 
						 | 
					e1a5486f5d | ||
| 
						 | 
					caf8fc0b3b | ||
| 
						 | 
					0395795181 | ||
| 
						 | 
					88490fb44f | ||
| 
						 | 
					5bb0216ea4 | ||
| 
						 | 
					dbb75190cd | ||
| 
						 | 
					18051aa815 | ||
| 
						 | 
					22f531f55c | ||
| 
						 | 
					0ab595d6f7 | ||
| 
						 | 
					d107905b31 | ||
| 
						 | 
					7c4dd3fefe | ||
| 
						 | 
					bdc778a795 | ||
| 
						 | 
					618def59f7 | ||
| 
						 | 
					54a2631eb3 | ||
| 
						 | 
					492a907089 | ||
| 
						 | 
					9dc705a2ac | ||
| 
						 | 
					ea474c567f | ||
| 
						 | 
					f6cdaa96c0 | ||
| 
						 | 
					0e5d87d76f | ||
| 
						 | 
					055fa1c35c | ||
| 
						 | 
					90a63277e2 | ||
| 
						 | 
					6b131d9c45 | ||
| 
						 | 
					c830c1a209 | ||
| 
						 | 
					b213966415 | ||
| 
						 | 
					8db3f4ace9 | ||
| 
						 | 
					4ebd255a5b | ||
| 
						 | 
					d9d294463e | ||
| 
						 | 
					ea43804bda | ||
| 
						 | 
					c2293d2e9a | ||
| 
						 | 
					e872398844 | ||
| 
						 | 
					60bee5d44c | ||
| 
						 | 
					975a7a483f | ||
| 
						 | 
					ffa0407233 | ||
| 
						 | 
					6f414aef0e | ||
| 
						 | 
					45e33ebeab | ||
| 
						 | 
					0f562e2a2c | ||
| 
						 | 
					ae2684851f | ||
| 
						 | 
					feee55c65d | ||
| 
						 | 
					81edd235b1 | ||
| 
						 | 
					23c13189e9 | ||
| 
						 | 
					bdd00f8c8a | ||
| 
						 | 
					30c99d45b7 | ||
| 
						 | 
					e4a901b0b3 | ||
| 
						 | 
					e25a2423da | ||
| 
						 | 
					094c6aa51d | ||
| 
						 | 
					c098e8b6ca | ||
| 
						 | 
					019a63f9c9 | ||
| 
						 | 
					6651ac386e | ||
| 
						 | 
					0be0592ec4 | ||
| 
						 | 
					a6fb8a8203 | ||
| 
						 | 
					d26d236162 | ||
| 
						 | 
					3dcd6cf004 | ||
| 
						 | 
					daaca57e55 | ||
| 
						 | 
					309d74c8f0 | ||
| 
						 | 
					234f2f67ac | ||
| 
						 | 
					d4e81773cc | ||
| 
						 | 
					d366bf7948 | ||
| 
						 | 
					6c9cd652f7 | ||
| 
						 | 
					dd4263d906 | ||
| 
						 | 
					f4e43726a8 | ||
| 
						 | 
					6fa6e3e2df | ||
| 
						 | 
					fcdf1d3fc7 | ||
| 
						 | 
					e0fe7abeec | ||
| 
						 | 
					e8518f847e | ||
| 
						 | 
					8299069b8e | ||
| 
						 | 
					5dc96f40ce | ||
| 
						 | 
					7775bf5564 | ||
| 
						 | 
					a0a82def50 | ||
| 
						 | 
					9a2c519d4b | ||
| 
						 | 
					f3fc016c08 | ||
| 
						 | 
					8d6e32a07c | ||
| 
						 | 
					bf059c2efc | ||
| 
						 | 
					417d5af7c7 | ||
| 
						 | 
					33d3b6043a | ||
| 
						 | 
					c7e1e48908 | ||
| 
						 | 
					7f3a22803c | ||
| 
						 | 
					386ec8fc15 | ||
| 
						 | 
					8aecae520c | ||
| 
						 | 
					571d90db24 | ||
| 
						 | 
					4a54d594e1 | ||
| 
						 | 
					bd6ae6579e | ||
| 
						 | 
					85ca1d2c86 | ||
| 
						 | 
					3c1ee6c147 | ||
| 
						 | 
					a13e6553ad | ||
| 
						 | 
					b1971b067a | ||
| 
						 | 
					a5319427a2 | ||
| 
						 | 
					e0a4dc3b66 | ||
| 
						 | 
					0b51beff26 | ||
| 
						 | 
					6a9f9aed30 | ||
| 
						 | 
					3ae83be021 | ||
| 
						 | 
					d2ab6fa4ae | ||
| 
						 | 
					0a2466a08d | ||
| 
						 | 
					172bb3734a | ||
| 
						 | 
					b7508d8396 | ||
| 
						 | 
					fd27364317 | ||
| 
						 | 
					d37ca24da9 | ||
| 
						 | 
					1ce2fb42de | ||
| 
						 | 
					4ca47e6db9 | ||
| 
						 | 
					fbe6969a0d | ||
| 
						 | 
					7dfd94a088 | ||
| 
						 | 
					f6bbb5b67d | ||
| 
						 | 
					c9f4204ae8 | ||
| 
						 | 
					29c18b0112 | ||
| 
						 | 
					e2e28a6bb6 | ||
| 
						 | 
					5a175fe228 | ||
| 
						 | 
					15a6cf7d14 | ||
| 
						 | 
					ed457c6e1c | ||
| 
						 | 
					c1e67d9856 | ||
| 
						 | 
					0c91b0eaff | ||
| 
						 | 
					e886317f9b | ||
| 
						 | 
					015d162d41 | ||
| 
						 | 
					211ce24020 | ||
| 
						 | 
					8750e911f1 | ||
| 
						 | 
					d9ba7079b8 | ||
| 
						 | 
					21a0819274 | ||
| 
						 | 
					2d96867e30 | ||
| 
						 | 
					4c80a153cb | ||
| 
						 | 
					3dd5699238 | ||
| 
						 | 
					bffe708e47 | ||
| 
						 | 
					7606bb65ea | ||
| 
						 | 
					2f4d5c6542 | ||
| 
						 | 
					deab8d9392 | ||
| 
						 | 
					c12ba74f1d | ||
| 
						 | 
					9c6413521d | ||
| 
						 | 
					c892524146 | ||
| 
						 | 
					473a1324fc | ||
| 
						 | 
					49a305e7ef | ||
| 
						 | 
					a40916cbba | ||
| 
						 | 
					62ecdf077f | ||
| 
						 | 
					5905787c6d | ||
| 
						 | 
					9f03d028e7 | ||
| 
						 | 
					10f8acdf4c | ||
| 
						 | 
					cd029eb6f0 | ||
| 
						 | 
					f6fefec921 | ||
| 
						 | 
					ec5a7681fe | ||
| 
						 | 
					a21ce67a63 | ||
| 
						 | 
					e2f0d879b1 | ||
| 
						 | 
					017f35edba | ||
| 
						 | 
					a0434788ce | ||
| 
						 | 
					b269af6829 | ||
| 
						 | 
					9273be0795 | ||
| 
						 | 
					6c8a3344b6 | ||
| 
						 | 
					e80f233749 | ||
| 
						 | 
					6835cdf3b4 | ||
| 
						 | 
					c0c943e82b | 
@@ -13,6 +13,7 @@ cctest
 | 
				
			|||||||
cctest.c
 | 
					cctest.c
 | 
				
			||||||
cctest.a
 | 
					cctest.a
 | 
				
			||||||
libcrypto.so.*
 | 
					libcrypto.so.*
 | 
				
			||||||
 | 
					libfips.so.*
 | 
				
			||||||
libssl.so.*
 | 
					libssl.so.*
 | 
				
			||||||
libcrypto.sha1
 | 
					libcrypto.sha1
 | 
				
			||||||
libcrypto.a.sha1
 | 
					libcrypto.a.sha1
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										188
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										188
									
								
								CHANGES
									
									
									
									
									
								
							@@ -2,7 +2,162 @@
 | 
				
			|||||||
 OpenSSL CHANGES
 | 
					 OpenSSL CHANGES
 | 
				
			||||||
 _______________
 | 
					 _______________
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Changes between 0.9.7g and 0.9.7h  [XX xxx XXXX]
 | 
					 Changes between 0.9.7l and 0.9.7m-fips2 [xx XXX xxxx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) Replace FIPS PRNG with AES based version based on ANSI X9.31 A.2.4 .
 | 
				
			||||||
 | 
					     This supports larger keys (up to 256 bits) and large seeding and DT
 | 
				
			||||||
 | 
					     vectors (128 bits each). Update tests for modified PRNG.
 | 
				
			||||||
 | 
					     [Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) FIPS portability patches.
 | 
				
			||||||
 | 
					     [Brad House <brad@mainstreetsoftworks.com>]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) Move error strings for remaing libraries into separate files to avoid 
 | 
				
			||||||
 | 
					     unnecessary dependencies for fipscanister.o which doesn't require the
 | 
				
			||||||
 | 
					     loading of error strings.
 | 
				
			||||||
 | 
					     [Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) New build option fipsdso to link fipscanister.o into a DSO called 
 | 
				
			||||||
 | 
					     libfips.so and modify build system to link against it. Preliminary changes
 | 
				
			||||||
 | 
					     to VC++ build system to accomodate fipsdso.
 | 
				
			||||||
 | 
					     [Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) New version of RSA_{sign,verify} for FIPS code. This uses pregenerated
 | 
				
			||||||
 | 
					     DigestInfo encodings and thus avoids all ASN1 library dependencies. Update
 | 
				
			||||||
 | 
					     FIPS digests to use new functions. Remove large numbers of obsolete 
 | 
				
			||||||
 | 
					     dependencies from fipscanister.o
 | 
				
			||||||
 | 
					     [Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Changes between 0.9.7l and 0.9.7m  [xx XXX xxxx]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  *) 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
 | 
					  *) Minimal support for X9.31 signatures and PSS padding modes. This is
 | 
				
			||||||
     mainly for FIPS compliance and not fully integrated at this stage.
 | 
					     mainly for FIPS compliance and not fully integrated at this stage.
 | 
				
			||||||
@@ -53,6 +208,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 Changes between 0.9.7f and 0.9.7g  [11 Apr 2005]
 | 
					 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
 | 
					  *) Fixes for newer kerberos headers. NB: the casts are needed because
 | 
				
			||||||
     the 'length' field is signed on one version and unsigned on another
 | 
					     the 'length' field is signed on one version and unsigned on another
 | 
				
			||||||
     with no (?) obvious way to tell the difference, without these VC++
 | 
					     with no (?) obvious way to tell the difference, without these VC++
 | 
				
			||||||
@@ -160,11 +318,11 @@
 | 
				
			|||||||
 Changes between 0.9.7c and 0.9.7d  [17 Mar 2004]
 | 
					 Changes between 0.9.7c and 0.9.7d  [17 Mar 2004]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Fix null-pointer assignment in do_change_cipher_spec() revealed           
 | 
					  *) 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]   
 | 
					     [Joe Orton, Steve Henson]   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Fix flaw in SSL/TLS handshaking when using Kerberos ciphersuites
 | 
					  *) Fix flaw in SSL/TLS handshaking when using Kerberos ciphersuites
 | 
				
			||||||
     (CAN-2004-0112)
 | 
					     (CVE-2004-0112)
 | 
				
			||||||
     [Joe Orton, Steve Henson]   
 | 
					     [Joe Orton, Steve Henson]   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Make it possible to have multiple active certificates with the same
 | 
					  *) Make it possible to have multiple active certificates with the same
 | 
				
			||||||
@@ -207,9 +365,9 @@
 | 
				
			|||||||
  *) Fix various bugs revealed by running the NISCC test suite:
 | 
					  *) Fix various bugs revealed by running the NISCC test suite:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     Stop out of bounds reads in the ASN1 code when presented with
 | 
					     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
 | 
					     If verify callback ignores invalid public key errors don't try to check
 | 
				
			||||||
     certificate signature with the NULL public key.
 | 
					     certificate signature with the NULL public key.
 | 
				
			||||||
@@ -294,7 +452,7 @@
 | 
				
			|||||||
     via timing by performing a MAC computation even if incorrrect
 | 
					     via timing by performing a MAC computation even if incorrrect
 | 
				
			||||||
     block cipher padding has been found.  This is a countermeasure
 | 
					     block cipher padding has been found.  This is a countermeasure
 | 
				
			||||||
     against active attacks where the attacker has to distinguish
 | 
					     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),
 | 
					     [Bodo Moeller; problem pointed out by Brice Canvel (EPFL),
 | 
				
			||||||
     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
					     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
				
			||||||
@@ -511,7 +669,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
     Remote buffer overflow in SSL3 protocol - an attacker could
 | 
					     Remote buffer overflow in SSL3 protocol - an attacker could
 | 
				
			||||||
     supply an oversized master key in Kerberos-enabled versions.
 | 
					     supply an oversized master key in Kerberos-enabled versions.
 | 
				
			||||||
     (CAN-2002-0657)
 | 
					     (CVE-2002-0657)
 | 
				
			||||||
     [Ben Laurie (CHATS)]
 | 
					     [Ben Laurie (CHATS)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Change the SSL kerb5 codes to match RFC 2712.
 | 
					  *) Change the SSL kerb5 codes to match RFC 2712.
 | 
				
			||||||
@@ -2195,7 +2353,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]
 | 
					 Changes between 0.9.6l and 0.9.6m  [17 Mar 2004]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Fix null-pointer assignment in do_change_cipher_spec() revealed
 | 
					  *) 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]
 | 
					     [Joe Orton, Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Changes between 0.9.6k and 0.9.6l  [04 Nov 2003]
 | 
					 Changes between 0.9.6k and 0.9.6l  [04 Nov 2003]
 | 
				
			||||||
@@ -2203,7 +2361,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
				
			|||||||
  *) Fix additional bug revealed by the NISCC test suite:
 | 
					  *) Fix additional bug revealed by the NISCC test suite:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     Stop bug triggering large recursion when presented with
 | 
					     Stop bug triggering large recursion when presented with
 | 
				
			||||||
     certain ASN.1 tags (CAN-2003-0851)
 | 
					     certain ASN.1 tags (CVE-2003-0851)
 | 
				
			||||||
     [Steve Henson]
 | 
					     [Steve Henson]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Changes between 0.9.6j and 0.9.6k  [30 Sep 2003]
 | 
					 Changes between 0.9.6j and 0.9.6k  [30 Sep 2003]
 | 
				
			||||||
@@ -2211,7 +2369,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
				
			|||||||
  *) Fix various bugs revealed by running the NISCC test suite:
 | 
					  *) Fix various bugs revealed by running the NISCC test suite:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     Stop out of bounds reads in the ASN1 code when presented with
 | 
					     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
 | 
					     If verify callback ignores invalid public key errors don't try to check
 | 
				
			||||||
     certificate signature with the NULL public key.
 | 
					     certificate signature with the NULL public key.
 | 
				
			||||||
@@ -2263,7 +2421,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
				
			|||||||
     via timing by performing a MAC computation even if incorrrect
 | 
					     via timing by performing a MAC computation even if incorrrect
 | 
				
			||||||
     block cipher padding has been found.  This is a countermeasure
 | 
					     block cipher padding has been found.  This is a countermeasure
 | 
				
			||||||
     against active attacks where the attacker has to distinguish
 | 
					     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),
 | 
					     [Bodo Moeller; problem pointed out by Brice Canvel (EPFL),
 | 
				
			||||||
     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
					     Alain Hiltgen (UBS), Serge Vaudenay (EPFL), and
 | 
				
			||||||
@@ -2396,7 +2554,7 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
				
			|||||||
  *) Add various sanity checks to asn1_get_length() to reject
 | 
					  *) Add various sanity checks to asn1_get_length() to reject
 | 
				
			||||||
     the ASN1 length bytes if they exceed sizeof(long), will appear
 | 
					     the ASN1 length bytes if they exceed sizeof(long), will appear
 | 
				
			||||||
     negative or the content length exceeds the length of the
 | 
					     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>]
 | 
					     [Steve Henson, Adi Stav <stav@mercury.co.il>, James Yonan <jim@ntlp.com>]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Assertions for various potential buffer overflows, not known to
 | 
					  *) Assertions for various potential buffer overflows, not known to
 | 
				
			||||||
@@ -2404,15 +2562,15 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 | 
				
			|||||||
     [Ben Laurie (CHATS)]
 | 
					     [Ben Laurie (CHATS)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Various temporary buffers to hold ASCII versions of integers were
 | 
					  *) 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)>
 | 
					     [Matthew Byng-Maddick <mbm@aldigital.co.uk> and Ben Laurie (CHATS)>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Remote buffer overflow in SSL3 protocol - an attacker could
 | 
					  *) 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)]
 | 
					     [Ben Laurie (CHATS)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  *) Remote buffer overflow in SSL2 protocol - an attacker could
 | 
					  *) 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)]
 | 
					     [Ben Laurie (CHATS)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Changes between 0.9.6c and 0.9.6d  [9 May 2002]
 | 
					 Changes between 0.9.6c and 0.9.6d  [9 May 2002]
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										143
									
								
								Configure
									
									
									
									
									
								
							
							
						
						
									
										143
									
								
								Configure
									
									
									
									
									
								
							@@ -144,12 +144,12 @@ my %table=(
 | 
				
			|||||||
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
					"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
				
			||||||
"debug-bodo",	"gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -m486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
					"debug-bodo",	"gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -m486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
				
			||||||
"debug-ulf",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT:::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
					"debug-ulf",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -g -O2 -m486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT:::${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 | 
				
			||||||
"debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
					"debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -march=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
				
			||||||
"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::dlfcn",
 | 
					"debug-steve-linux-pseudo64",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -march=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT::dlfcn",
 | 
				
			||||||
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -march=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -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_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -march=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wmissing-prototypes -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wmissing-prototypes -Wconversion -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -march=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wmissing-prototypes -Wconversion -Wno-long-long -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_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wmissing-prototypes -Wconversion -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -march=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wmissing-prototypes -Wconversion -Wno-long-long -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"dist",		"cc:-O::(unknown)::::::",
 | 
					"dist",		"cc:-O::(unknown)::::::",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Basic configs that should work on any (32 and less bit) box
 | 
					# Basic configs that should work on any (32 and less bit) box
 | 
				
			||||||
@@ -186,17 +186,17 @@ my %table=(
 | 
				
			|||||||
#### SPARC Solaris with GNU C setups
 | 
					#### SPARC Solaris with GNU C setups
 | 
				
			||||||
"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
# -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc
 | 
					# -m32 should be safe to add as long as driver recognizes -march=ultrasparc
 | 
				
			||||||
"solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv9-gcc","gcc:-m32 -march=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:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"solaris64-sparcv9-gcc31","gcc:-mcpu=ultrasparc -m64 -O3 -fomit-frame-pointer -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::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris64-sparcv9-gcc31","gcc:-march=ultrasparc -m64 -O3 -fomit-frame-pointer -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::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
# gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
 | 
					# gcc pre-2.8 doesn't understand -march=ultrasparc, so fall down to -mv8
 | 
				
			||||||
# but keep the assembler modules.
 | 
					# but keep the assembler modules.
 | 
				
			||||||
"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv9-gcc27","gcc:-mv8 -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:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.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::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris64-sparcv9-gcc","gcc:-m64 -march=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::::asm/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:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-fPIC:-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:asm/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 -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -O -g -march=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### SPARC Solaris with Sun C setups
 | 
					#### SPARC Solaris with Sun C setups
 | 
				
			||||||
# DO NOT use /xO[34] on sparc with SC3.0.  It is broken, and will not pass the tests
 | 
					# DO NOT use /xO[34] on sparc with SC3.0.  It is broken, and will not pass the tests
 | 
				
			||||||
@@ -205,7 +205,7 @@ my %table=(
 | 
				
			|||||||
# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
 | 
					# SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
 | 
				
			||||||
# SC5.0 note: Compiler common patch 107357-01 or later is required!
 | 
					# SC5.0 note: Compiler common patch 107357-01 or later is required!
 | 
				
			||||||
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/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::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
 | 
					"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
 | 
				
			||||||
####
 | 
					####
 | 
				
			||||||
@@ -217,11 +217,11 @@ my %table=(
 | 
				
			|||||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
 | 
					# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
 | 
				
			||||||
# assisted with debugging of following two configs.
 | 
					# assisted with debugging of following two configs.
 | 
				
			||||||
"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
# it's a real mess with -mcpu=ultrasparc option under Linux, but
 | 
					# it's a real mess with -march=ultrasparc option under Linux, but
 | 
				
			||||||
# -Wa,-Av8plus should do the trick no matter what.
 | 
					# -Wa,-Av8plus should do the trick no matter what.
 | 
				
			||||||
"linux-sparcv9","gcc:-mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"linux-sparcv9","gcc:-march=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
# GCC 3.1 is a requirement
 | 
					# GCC 3.1 is a requirement
 | 
				
			||||||
"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"linux64-sparcv9","gcc:-m64 -march=ultrasparc -DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Sunos configs, assuming sparc for the gcc one.
 | 
					# Sunos configs, assuming sparc for the gcc one.
 | 
				
			||||||
##"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:::",
 | 
					##"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:::",
 | 
				
			||||||
@@ -373,7 +373,7 @@ my %table=(
 | 
				
			|||||||
# Special notes:
 | 
					# Special notes:
 | 
				
			||||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
 | 
					# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
 | 
				
			||||||
#   ought to run './Configure linux-alpha+bwx-gcc' manually, do
 | 
					#   ought to run './Configure linux-alpha+bwx-gcc' manually, do
 | 
				
			||||||
#   complement the command line with -mcpu=ev56, -mcpu=ev6 or whatever
 | 
					#   complement the command line with -march=ev56, -march=ev6 or whatever
 | 
				
			||||||
#   which is appropriate.
 | 
					#   which is appropriate.
 | 
				
			||||||
# - If you use ccc keep in mind that -fast implies -arch host and the
 | 
					# - If you use ccc keep in mind that -fast implies -arch host and the
 | 
				
			||||||
#   compiler is free to issue instructions which gonna make elder CPU
 | 
					#   compiler is free to issue instructions which gonna make elder CPU
 | 
				
			||||||
@@ -393,11 +393,11 @@ my %table=(
 | 
				
			|||||||
# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
 | 
					# The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
 | 
				
			||||||
# bn86-elf.o file file since it is hand tweaked assembler.
 | 
					# bn86-elf.o file file since it is hand tweaked assembler.
 | 
				
			||||||
"linux-elf",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"linux-elf",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"linux-pentium",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentium -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-pentium",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=pentium -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-ppro",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=pentiumpro -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-ppro",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=pentiumpro -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-k6",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=k6 -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-k6",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -march=k6 -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 -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
					"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
				
			||||||
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
					"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 | 
				
			||||||
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -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-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)",
 | 
				
			||||||
"linux-aout",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
 | 
					"linux-aout",	"gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
 | 
				
			||||||
@@ -460,13 +460,14 @@ my %table=(
 | 
				
			|||||||
# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the SCO cc.
 | 
					# SCO 5 - Ben Laurie <ben@algroup.co.uk> says the -O breaks the SCO cc.
 | 
				
			||||||
"sco5-cc",  "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"sco5-cc",  "cc:-belf::(unknown)::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
"sco5-gcc",  "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
					"sco5-gcc",  "gcc:-O3 -fomit-frame-pointer::(unknown)::-lsocket -lnsl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
 | 
					"sco6-cc",  "cc:-O::-Kpthread::-lsocket -lnsl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:svr3-shared:-Kpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# IBM's AIX.
 | 
					# IBM's AIX.
 | 
				
			||||||
"aix3-cc",    "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
 | 
					"aix3-cc",    "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
 | 
				
			||||||
"aix-gcc",    "gcc:-O3 -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:",
 | 
					"aix-gcc",    "gcc:-O3 -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:",
 | 
				
			||||||
"aix-cc",     "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 | 
					"aix-cc",     "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::BN_LLONG RC4_CHAR:asm/aix_ppc32.o:::::::::dlfcn:aix-shared::-q32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
 | 
				
			||||||
"aix64-cc",   "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:asm/aix_ppc64.o:::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 | 
					"aix64-cc",   "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:asm/aix_ppc64.o:::::::::dlfcn:aix-shared::-q64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 | 
				
			||||||
 | 
					"aix64-gcc",   "gcc:-maix64 -O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:asm/aix_ppc64.o:::::::::dlfcn:aix-shared::-maix64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Cray T90 and similar (SDSC)
 | 
					# Cray T90 and similar (SDSC)
 | 
				
			||||||
@@ -563,7 +564,7 @@ my %table=(
 | 
				
			|||||||
##### MacOS X (a.k.a. Rhapsody or Darwin) setup
 | 
					##### MacOS X (a.k.a. Rhapsody or Darwin) setup
 | 
				
			||||||
"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
 | 
					"rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown):MACOSX_RHAPSODY::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
 | 
				
			||||||
"darwin-ppc-cc","cc:-O3 -fomit-frame-pointer -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/osx_ppc32.o:::::::::dlfcn:darwin-shared:-fPIC -fno-common::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
					"darwin-ppc-cc","cc:-O3 -fomit-frame-pointer -DB_ENDIAN::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/osx_ppc32.o:::::::::dlfcn:darwin-shared:-fPIC -fno-common::.\$(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:::::::::::darwin-shared:-fPIC::.\$(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:::::::::::darwin-shared:-fPIC::.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### A/UX
 | 
					##### A/UX
 | 
				
			||||||
"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
 | 
					"aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::",
 | 
				
			||||||
@@ -621,6 +622,11 @@ my $prefix="";
 | 
				
			|||||||
my $openssldir="";
 | 
					my $openssldir="";
 | 
				
			||||||
my $exe_ext="";
 | 
					my $exe_ext="";
 | 
				
			||||||
my $install_prefix="";
 | 
					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 $no_threads=0;
 | 
				
			||||||
my $no_shared=1;
 | 
					my $no_shared=1;
 | 
				
			||||||
my $zlib=0;
 | 
					my $zlib=0;
 | 
				
			||||||
@@ -806,7 +812,7 @@ PROCESS_ARGS:
 | 
				
			|||||||
				{
 | 
									{
 | 
				
			||||||
				while (<IN>)
 | 
									while (<IN>)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
					chop;
 | 
										chomp;
 | 
				
			||||||
					if (/^CONFIGURE_ARGS=(.*)/)
 | 
										if (/^CONFIGURE_ARGS=(.*)/)
 | 
				
			||||||
						{
 | 
											{
 | 
				
			||||||
						$argvstring=$1;
 | 
											$argvstring=$1;
 | 
				
			||||||
@@ -839,6 +845,27 @@ PROCESS_ARGS:
 | 
				
			|||||||
			# The check for the option is there so scripts aren't
 | 
								# The check for the option is there so scripts aren't
 | 
				
			||||||
			# broken
 | 
								# broken
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							elsif (/^nofipscanistercheck$/)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								$fips = 1;
 | 
				
			||||||
 | 
								$nofipscanistercheck = 1;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							elsif (/^fipscanisterbuild$/)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								$fips = 1;
 | 
				
			||||||
 | 
								$nofipscanistercheck = 1;
 | 
				
			||||||
 | 
								$fipslibdir="";
 | 
				
			||||||
 | 
								$fipscanisterinternal="y";
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							elsif (/^fipsdso$/)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								$fips = 1;
 | 
				
			||||||
 | 
								$nofipscanistercheck = 1;
 | 
				
			||||||
 | 
								$fipslibdir="";
 | 
				
			||||||
 | 
								$fipscanisterinternal="y";
 | 
				
			||||||
 | 
								$fipsdso = 1;
 | 
				
			||||||
 | 
								$no_shared = 0;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		elsif (/^[-+]/)
 | 
							elsif (/^[-+]/)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			if (/^-[lL](.*)$/)
 | 
								if (/^-[lL](.*)$/)
 | 
				
			||||||
@@ -865,6 +892,22 @@ PROCESS_ARGS:
 | 
				
			|||||||
				{
 | 
									{
 | 
				
			||||||
				$withargs{"krb5-".$1}=$2;
 | 
									$withargs{"krb5-".$1}=$2;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
								elsif (/^--with-zlib-lib=(.*)$/)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									$withargs{"zlib-lib"}=$1;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								elsif (/^--with-fipslibdir=(.*)$/)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									$fipslibdir="$1/";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								elsif (/^--with-baseaddr=(.*)$/)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									$baseaddr="$1";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								elsif (/^--with-zlib-include=(.*)$/)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									$withargs{"zlib-include"}="-I$1";
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
				print STDERR $usage;
 | 
									print STDERR $usage;
 | 
				
			||||||
@@ -949,6 +992,8 @@ print "Configuring for $target\n";
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
my $IsWindows=scalar grep /^$target$/,@WinTargets;
 | 
					my $IsWindows=scalar grep /^$target$/,@WinTargets;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$no_shared = 1 if ($IsWindows && $fipsdso);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
 | 
					$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
 | 
				
			||||||
$exe_ext=".pm" if ($target eq "vos-gcc" or $target eq "debug-vos-gcc" or $target eq "vos-vcc" or $target eq "debug-vos-vcc");
 | 
					$exe_ext=".pm" if ($target eq "vos-gcc" or $target eq "debug-vos-gcc" or $target eq "vos-vcc" or $target eq "debug-vos-vcc");
 | 
				
			||||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
 | 
					$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
 | 
				
			||||||
@@ -964,6 +1009,21 @@ chop $prefix if $prefix =~ /\/$/;
 | 
				
			|||||||
$openssldir=$prefix . "/ssl" if $openssldir eq "";
 | 
					$openssldir=$prefix . "/ssl" if $openssldir eq "";
 | 
				
			||||||
$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
 | 
					$openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if ($fips && !$nofipscanistercheck && ! -f "${fipslibdir}fipscanister.o")
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						my $fipswinerr = "";
 | 
				
			||||||
 | 
						$fipswinerr = <<EOF if $IsWindows;
 | 
				
			||||||
 | 
					 Ensure that the correct path to the FIPS module directory
 | 
				
			||||||
 | 
					has been given to the --with-fipslibdir option.
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
						print STDERR <<EOF;
 | 
				
			||||||
 | 
					The file fipscanister.o could not be located. Please build and install the
 | 
				
			||||||
 | 
					FIPS module using the instructions in the user guide before compiling OpenSSL
 | 
				
			||||||
 | 
					in FIPS mode.$fipswinerr
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
						exit 1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print "IsWindows=$IsWindows\n";
 | 
					print "IsWindows=$IsWindows\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1152,6 +1212,7 @@ if (!$no_shared)
 | 
				
			|||||||
	if ($shared_cflag ne "")
 | 
						if ($shared_cflag ne "")
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		$cflags = "$shared_cflag -DOPENSSL_PIC $cflags";
 | 
							$cflags = "$shared_cflag -DOPENSSL_PIC $cflags";
 | 
				
			||||||
 | 
							$shared_ldflag = "$shared_ldflag $shared_cflag" if($fips);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1261,7 +1322,7 @@ print OUT "### Generated automatically from Makefile.org by Configure.\n\n";
 | 
				
			|||||||
my $sdirs=0;
 | 
					my $sdirs=0;
 | 
				
			||||||
while (<IN>)
 | 
					while (<IN>)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	chop;
 | 
						chomp;
 | 
				
			||||||
	$sdirs = 1 if /^SDIRS=/;
 | 
						$sdirs = 1 if /^SDIRS=/;
 | 
				
			||||||
	if ($sdirs) {
 | 
						if ($sdirs) {
 | 
				
			||||||
		my $dir;
 | 
							my $dir;
 | 
				
			||||||
@@ -1308,9 +1369,26 @@ while (<IN>)
 | 
				
			|||||||
	s/^PERL=.*/PERL= $perl/;
 | 
						s/^PERL=.*/PERL= $perl/;
 | 
				
			||||||
	s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
 | 
						s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/;
 | 
				
			||||||
	s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
 | 
						s/^LIBKRB5=.*/LIBKRB5=$withargs{"krb5-lib"}/;
 | 
				
			||||||
 | 
						s/^LIBZLIB=.*/LIBZLIB=$withargs{"zlib-lib"}/;
 | 
				
			||||||
 | 
						s/^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/;
 | 
				
			||||||
 | 
							s/^SHARED_FIPS=.*/SHARED_FIPS=/;
 | 
				
			||||||
 | 
							s/^SHLIBDIRS=.*/SHLIBDIRS= crypto ssl/;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						s/^FIPSCANISTERINTERNAL=.*/FIPSCANISTERINTERNAL=$fipscanisterinternal/;
 | 
				
			||||||
 | 
						s/^BASEADDR=.*/BASEADDR=$baseaddr/;
 | 
				
			||||||
 | 
						s/^ZLIB_INCLUDE=.*/ZLIB_INCLUDE=$withargs{"zlib-include"}/;
 | 
				
			||||||
	s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
 | 
						s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
 | 
				
			||||||
	s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
 | 
						s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
 | 
				
			||||||
	s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if (!$no_shared);
 | 
						s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL) \$(SHARED_FIPS)/ if (!$no_shared);
 | 
				
			||||||
	if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
 | 
						if ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*$/)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		my $sotmp = $1;
 | 
							my $sotmp = $1;
 | 
				
			||||||
@@ -1589,6 +1667,17 @@ libraries on this platform, they will at least look at it and try their best
 | 
				
			|||||||
(but please first make sure you have tried with a current version of OpenSSL).
 | 
					(but please first make sure you have tried with a current version of OpenSSL).
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print <<\EOF if ($fipscanisterinternal eq "y");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WARNING: OpenSSL has been configured using unsupported option(s) to internally
 | 
				
			||||||
 | 
					generate a fipscanister.o object module for TESTING PURPOSES ONLY; that
 | 
				
			||||||
 | 
					compiled module is NOT FIPS 140-2 validated and CANNOT be used to replace the
 | 
				
			||||||
 | 
					OpenSSL FIPS Object Module as identified by the CMVP
 | 
				
			||||||
 | 
					(http://csrc.nist.gov/cryptval/) in any application requiring the use of FIPS
 | 
				
			||||||
 | 
					140-2 validated software. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit(0);
 | 
					exit(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub usage
 | 
					sub usage
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								FAQ
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								FAQ
									
									
									
									
									
								
							@@ -70,7 +70,7 @@ OpenSSL  -  Frequently Asked Questions
 | 
				
			|||||||
* Which is the current version of OpenSSL?
 | 
					* Which is the current version of OpenSSL?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The current version is available from <URL: http://www.openssl.org>.
 | 
					The current version is available from <URL: http://www.openssl.org>.
 | 
				
			||||||
OpenSSL 0.9.7g was released on April 11, 2005.
 | 
					OpenSSL 0.9.7l was released on September 28, 2006.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In addition to the current stable release, you can also access daily
 | 
					In addition to the current stable release, you can also access daily
 | 
				
			||||||
snapshots of the OpenSSL development version at <URL:
 | 
					snapshots of the OpenSSL development version at <URL:
 | 
				
			||||||
@@ -608,8 +608,9 @@ libraries.  If your platform is not one of these, consult the INSTALL
 | 
				
			|||||||
file.
 | 
					file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Multi-threaded applications must provide two callback functions to
 | 
					Multi-threaded applications must provide two callback functions to
 | 
				
			||||||
OpenSSL.  This is described in the threads(3) manpage.
 | 
					OpenSSL by calling CRYPTO_set_locking_callback() and
 | 
				
			||||||
 | 
					CRYPTO_set_id_callback().  This is described in the threads(3)
 | 
				
			||||||
 | 
					manpage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* I've compiled a program under Windows and it crashes: why?
 | 
					* I've compiled a program under Windows and it crashes: why?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -12,7 +12,7 @@
 | 
				
			|||||||
  ---------------
 | 
					  ---------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1998-2007 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										103
									
								
								Makefile.org
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								Makefile.org
									
									
									
									
									
								
							@@ -66,6 +66,7 @@ EX_LIBS=
 | 
				
			|||||||
EXE_EXT= 
 | 
					EXE_EXT= 
 | 
				
			||||||
ARFLAGS=
 | 
					ARFLAGS=
 | 
				
			||||||
AR=ar $(ARFLAGS) r
 | 
					AR=ar $(ARFLAGS) r
 | 
				
			||||||
 | 
					ARD=ar $(ARFLAGS) d
 | 
				
			||||||
RANLIB= ranlib
 | 
					RANLIB= ranlib
 | 
				
			||||||
PERL= perl
 | 
					PERL= perl
 | 
				
			||||||
TAR= tar
 | 
					TAR= tar
 | 
				
			||||||
@@ -172,12 +173,32 @@ RMD160_ASM_OBJ= asm/rm86-out.o
 | 
				
			|||||||
KRB5_INCLUDES=
 | 
					KRB5_INCLUDES=
 | 
				
			||||||
LIBKRB5=
 | 
					LIBKRB5=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Zlib stuff
 | 
				
			||||||
 | 
					ZLIB_INCLUDE=
 | 
				
			||||||
 | 
					LIBZLIB=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is the location of fipscanister.o and friends.
 | 
				
			||||||
 | 
					# The FIPS module build will place it $(INSTALLTOP)/lib
 | 
				
			||||||
 | 
					# but since $(INSTALLTOP) can only take the default value
 | 
				
			||||||
 | 
					# when the module is built it will be in /usr/local/ssl/lib
 | 
				
			||||||
 | 
					# $(INSTALLTOP) for this build make be different so hard
 | 
				
			||||||
 | 
					# code the path.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FIPSLIBDIR=/usr/local/ssl/lib/
 | 
				
			||||||
 | 
					FIPSCANISTERINTERNAL=n
 | 
				
			||||||
 | 
					FIPSCANLIB=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Shared library base address. Currently only used on Windows.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BASEADDR=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# When we're prepared to use shared libraries in the programs we link here
 | 
					# When we're prepared to use shared libraries in the programs we link here
 | 
				
			||||||
# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
 | 
					# we might set SHLIB_MARK to '$(SHARED_LIBS)'.
 | 
				
			||||||
SHLIB_MARK=
 | 
					SHLIB_MARK=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIRS=   crypto fips ssl $(SHLIB_MARK) sigs apps test tools
 | 
					DIRS=   crypto fips-1.0 ssl $(SHLIB_MARK) apps test tools
 | 
				
			||||||
SHLIBDIRS= crypto ssl
 | 
					SHLIBDIRS= crypto ssl fips
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# dirs in crypto to build
 | 
					# dirs in crypto to build
 | 
				
			||||||
SDIRS=  objects \
 | 
					SDIRS=  objects \
 | 
				
			||||||
@@ -206,9 +227,9 @@ ONEDIRS=out tmp
 | 
				
			|||||||
EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
 | 
					EDIRS=  times doc bugs util include certs ms shlib mt demos perl sf dep VMS
 | 
				
			||||||
WDIRS=  windows
 | 
					WDIRS=  windows
 | 
				
			||||||
LIBS=   libcrypto.a libssl.a
 | 
					LIBS=   libcrypto.a libssl.a
 | 
				
			||||||
SIGS=	libcrypto.a.sha1
 | 
					 | 
				
			||||||
SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
 | 
					SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
 | 
				
			||||||
SHARED_SSL=libssl$(SHLIB_EXT)
 | 
					SHARED_SSL=libssl$(SHLIB_EXT)
 | 
				
			||||||
 | 
					SHARED_FIPS=
 | 
				
			||||||
SHARED_LIBS=
 | 
					SHARED_LIBS=
 | 
				
			||||||
SHARED_LIBS_LINK_EXTS=
 | 
					SHARED_LIBS_LINK_EXTS=
 | 
				
			||||||
SHARED_LDFLAGS=
 | 
					SHARED_LDFLAGS=
 | 
				
			||||||
@@ -226,19 +247,12 @@ HEADER=         e_os.h
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
all: Makefile sub_all openssl.pc
 | 
					all: Makefile sub_all openssl.pc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sigs:	$(SIGS)
 | 
					 | 
				
			||||||
libcrypto.a.sha1: libcrypto.a
 | 
					 | 
				
			||||||
	@if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
 | 
					 | 
				
			||||||
		$(RANLIB) libcrypto.a; \
 | 
					 | 
				
			||||||
		fips/sha/fips_standalone_sha1 libcrypto.a > libcrypto.a.sha1; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub_all:
 | 
					sub_all:
 | 
				
			||||||
	@for i in $(DIRS); \
 | 
						@for i in $(DIRS); \
 | 
				
			||||||
	do \
 | 
						do \
 | 
				
			||||||
	if [ -d "$$i" ]; then \
 | 
						if [ -d "$$i" ]; then \
 | 
				
			||||||
		(cd $$i && echo "making all in $$i..." && \
 | 
							(cd $$i && echo "making all in $$i..." && \
 | 
				
			||||||
		$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' FIPS_AES_ENC='${FIPS_AES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' all ) || exit 1; \
 | 
							$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' AS='${AS}' ASFLAG='${ASFLAG}' SDIRS='$(SDIRS)' FDIRS='$(FDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' FIPS_DES_ENC='${FIPS_DES_ENC}' FIPS_AES_ENC='${FIPS_AES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' FIPS_SHA1_ASM_OBJ='${FIPS_SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' FIPSCANISTERINTERNAL='${FIPSCANISTERINTERNAL}' FIPSLIBDIR='${FIPSLIBDIR}' FIPSCANLIB='${FIPSCANLIB}' all ) || exit 1; \
 | 
				
			||||||
	else \
 | 
						else \
 | 
				
			||||||
		$(MAKE) $$i; \
 | 
							$(MAKE) $$i; \
 | 
				
			||||||
	fi; \
 | 
						fi; \
 | 
				
			||||||
@@ -255,12 +269,15 @@ sub_target:
 | 
				
			|||||||
	fi; \
 | 
						fi; \
 | 
				
			||||||
	done;
 | 
						done;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
libcrypto$(SHLIB_EXT): libcrypto.a
 | 
					libcrypto$(SHLIB_EXT): libcrypto.a $(SHARED_FIPS)
 | 
				
			||||||
	@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
						@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
				
			||||||
		$(MAKE) SHLIBDIRS=crypto build-shared; \
 | 
							if [ "$(FIPSCANLIB)" = "libfips" ]; then \
 | 
				
			||||||
        	if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
 | 
								$(ARD) libcrypto.a fipscanister.o ; \
 | 
				
			||||||
                    fips/sha/fips_standalone_sha1 -binary $@ > $@.$${HMAC_EXT:-sha1}; \
 | 
								$(MAKE) SHLIBDIRS='crypto' SHLIBDEPS='-lfips' build-shared; \
 | 
				
			||||||
		fi; \
 | 
								$(AR) libcrypto.a fips-1.0/fipscanister.o ; \
 | 
				
			||||||
 | 
							else \
 | 
				
			||||||
 | 
								$(MAKE) SHLIBDIRS='crypto' build-shared; \
 | 
				
			||||||
 | 
							fi \
 | 
				
			||||||
	else \
 | 
						else \
 | 
				
			||||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
							echo "There's no support for shared libraries on this platform" >&2; \
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
@@ -272,6 +289,13 @@ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
 | 
				
			|||||||
		echo "There's no support for shared libraries on this platform" >&2; \
 | 
							echo "There's no support for shared libraries on this platform" >&2; \
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					libfips$(SHLIB_EXT):
 | 
				
			||||||
 | 
						@if [ "$(SHLIB_TARGET)" != "" ]; then \
 | 
				
			||||||
 | 
							$(MAKE) SHLIBDIRS=fips build-shared; \
 | 
				
			||||||
 | 
						else \
 | 
				
			||||||
 | 
							echo "There's no support for shared libraries on this platform" >&2; \
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean-shared:
 | 
					clean-shared:
 | 
				
			||||||
	@for i in $(SHLIBDIRS); do \
 | 
						@for i in $(SHLIBDIRS); do \
 | 
				
			||||||
		if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
 | 
							if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
 | 
				
			||||||
@@ -308,7 +332,7 @@ do_gnu-shared:
 | 
				
			|||||||
	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
						if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
				
			||||||
		libs="$(LIBKRB5) $$libs"; \
 | 
							libs="$(LIBKRB5) $$libs"; \
 | 
				
			||||||
	fi; \
 | 
						fi; \
 | 
				
			||||||
	( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
						( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
		-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
							-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
		-Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
							-Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
		-Wl,-Bsymbolic \
 | 
							-Wl,-Bsymbolic \
 | 
				
			||||||
@@ -325,7 +349,7 @@ do_darwin-shared:
 | 
				
			|||||||
	if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
						if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
				
			||||||
		libs="$(LIBKRB5) $$libs"; \
 | 
							libs="$(LIBKRB5) $$libs"; \
 | 
				
			||||||
	fi; \
 | 
						fi; \
 | 
				
			||||||
	( set -x; ${CC} ${SHARED_LDFLAGS}
 | 
						( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
		--verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
 | 
							--verbose -dynamiclib -o lib$$i${SHLIB_EXT} \
 | 
				
			||||||
		lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
							lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
		-compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \
 | 
							-compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \
 | 
				
			||||||
@@ -344,13 +368,14 @@ do_cygwin-shared:
 | 
				
			|||||||
	[ -f apps/$$shlib ] && rm apps/$$shlib; \
 | 
						[ -f apps/$$shlib ] && rm apps/$$shlib; \
 | 
				
			||||||
	[ -f test/$$shlib ] && rm test/$$shlib; \
 | 
						[ -f test/$$shlib ] && rm test/$$shlib; \
 | 
				
			||||||
	base=;  [ $$i = "crypto" ] && base=-Wl,--image-base,0x63000000; \
 | 
						base=;  [ $$i = "crypto" ] && base=-Wl,--image-base,0x63000000; \
 | 
				
			||||||
	( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
						( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
		-shared $$base -o $$shlib \
 | 
							-shared $$base -o $$shlib \
 | 
				
			||||||
		-Wl,-Bsymbolic \
 | 
							-Wl,-Bsymbolic \
 | 
				
			||||||
		-Wl,--whole-archive lib$$i.a \
 | 
							-Wl,--whole-archive lib$$i.a \
 | 
				
			||||||
		-Wl,--out-implib,lib$$i.dll.a \
 | 
							-Wl,--out-implib,lib$$i.dll.a \
 | 
				
			||||||
		-Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
 | 
							-Wl,--no-whole-archive $$libs ${EX_LIBS} ) || exit 1; \
 | 
				
			||||||
	cp -p $$shlib apps/; cp -p $$shlib test/; \
 | 
						cp -p $$shlib apps/; cp -p $$shlib test/; \
 | 
				
			||||||
 | 
						touch -c lib$$i.dll.a; \
 | 
				
			||||||
	libs="-l$$i $$libs"; \
 | 
						libs="-l$$i $$libs"; \
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -363,7 +388,7 @@ do_alpha-osf1-shared:
 | 
				
			|||||||
		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
							if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
				
			||||||
			libs="$(LIBKRB5) $$libs"; \
 | 
								libs="$(LIBKRB5) $$libs"; \
 | 
				
			||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
		( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-shared -o lib$$i.so \
 | 
								-shared -o lib$$i.so \
 | 
				
			||||||
			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
								-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
				
			||||||
			-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
 | 
								-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
 | 
				
			||||||
@@ -382,7 +407,7 @@ do_tru64-shared:
 | 
				
			|||||||
		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
							if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
				
			||||||
			libs="$(LIBKRB5) $$libs"; \
 | 
								libs="$(LIBKRB5) $$libs"; \
 | 
				
			||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
		( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-shared -msym -o lib$$i.so \
 | 
								-shared -msym -o lib$$i.so \
 | 
				
			||||||
			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
								-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
				
			||||||
			-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
 | 
								-all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \
 | 
				
			||||||
@@ -401,7 +426,7 @@ do_tru64-shared-rpath:
 | 
				
			|||||||
		if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
							if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
 | 
				
			||||||
			libs="$(LIBKRB5) $$libs"; \
 | 
								libs="$(LIBKRB5) $$libs"; \
 | 
				
			||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
		( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-shared -msym -o lib$$i.so \
 | 
								-shared -msym -o lib$$i.so \
 | 
				
			||||||
			-rpath  ${INSTALLTOP}/lib \
 | 
								-rpath  ${INSTALLTOP}/lib \
 | 
				
			||||||
			-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
								-set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
 | 
				
			||||||
@@ -423,7 +448,7 @@ do_solaris-shared:
 | 
				
			|||||||
		( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
 | 
							( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
 | 
				
			||||||
		  MINUSZ='-z '; \
 | 
							  MINUSZ='-z '; \
 | 
				
			||||||
		  (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
 | 
							  (${CC} -v 2>&1 | grep gcc) > /dev/null && MINUSZ='-Wl,-z,'; \
 | 
				
			||||||
		  set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			-Wl,-Bsymbolic \
 | 
								-Wl,-Bsymbolic \
 | 
				
			||||||
@@ -448,7 +473,7 @@ do_svr3-shared:
 | 
				
			|||||||
		  for obj in `ar t lib$$i.a` ; do \
 | 
							  for obj in `ar t lib$$i.a` ; do \
 | 
				
			||||||
		    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
 | 
							    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
 | 
				
			||||||
		  done ; \
 | 
							  done ; \
 | 
				
			||||||
		  set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
 | 
								$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
 | 
				
			||||||
@@ -474,7 +499,7 @@ do_svr5-shared:
 | 
				
			|||||||
		    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
 | 
							    OBJS="$${OBJS} `grep /$$obj allobjs`" ; \
 | 
				
			||||||
		  done ; \
 | 
							  done ; \
 | 
				
			||||||
		  set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
 | 
							  set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
 | 
				
			||||||
			${CC} ${SHARED_LDFLAGS} \
 | 
								$${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			$${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								$${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
 | 
								$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
 | 
				
			||||||
@@ -493,7 +518,7 @@ do_irix-shared:
 | 
				
			|||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
		( WHOLELIB="-all lib$$i.a -none"; \
 | 
							( WHOLELIB="-all lib$$i.a -none"; \
 | 
				
			||||||
		  (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \
 | 
							  (${CC} -v 2>&1 | grep gcc) > /dev/null && WHOLELIB="-Wl,-all,lib$$i.a,-none"; \
 | 
				
			||||||
		  set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
							  set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
			-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			-Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
								-Wl,-soname,lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
 | 
				
			||||||
			$${WHOLELIB} $$libs ${EX_LIBS}) || exit 1; \
 | 
								$${WHOLELIB} $$libs ${EX_LIBS}) || exit 1; \
 | 
				
			||||||
@@ -516,7 +541,7 @@ do_hpux-shared:
 | 
				
			|||||||
	[ -f $$shlib ] && rm -f $$shlib; \
 | 
						[ -f $$shlib ] && rm -f $$shlib; \
 | 
				
			||||||
	ALLSYMSFLAGS='-Wl,-Fl'; \
 | 
						ALLSYMSFLAGS='-Wl,-Fl'; \
 | 
				
			||||||
	expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
 | 
						expr $(PLATFORM) : 'hpux64' > /dev/null && ALLSYMSFLAGS='-Wl,+forceload'; \
 | 
				
			||||||
	( set -x; ${CC} ${SHARED_LDFLAGS} \
 | 
						( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \
 | 
				
			||||||
		-Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \
 | 
							-Wl,-B,symbolic,+vnocompatwarnings,-z,+h,$$shlib \
 | 
				
			||||||
		-o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \
 | 
							-o $$shlib $$ALLSYMSFLAGS,lib$$i.a -ldld ) || exit 1; \
 | 
				
			||||||
	chmod a=rx $$shlib; \
 | 
						chmod a=rx $$shlib; \
 | 
				
			||||||
@@ -564,7 +589,7 @@ do_aix-shared:
 | 
				
			|||||||
	  OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
 | 
						  OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \
 | 
				
			||||||
	  ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
 | 
						  ld -r -o lib$$i.o $(ALLSYMSFLAG) lib$$i.a && \
 | 
				
			||||||
	  ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
 | 
						  ( nm -Pg lib$$i.o | grep ' [BD] ' | cut -f1 -d' ' > lib$$i.exp; \
 | 
				
			||||||
	    $(SHAREDCMD) $(SHAREDFLAGS) \
 | 
						    $${FIPSLD:-${CC}} $(SHAREDFLAGS) \
 | 
				
			||||||
		-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \
 | 
							-o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} lib$$i.o \
 | 
				
			||||||
		$$libs ${EX_LIBS} ) ) \
 | 
							$$libs ${EX_LIBS} ) ) \
 | 
				
			||||||
	|| exit 1; \
 | 
						|| exit 1; \
 | 
				
			||||||
@@ -580,7 +605,7 @@ do_reliantunix-shared:
 | 
				
			|||||||
	( set -x; \
 | 
						( set -x; \
 | 
				
			||||||
	  ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \
 | 
						  ( Opwd=`pwd` ; mkdir $$tmpdir || exit 1; \
 | 
				
			||||||
	    cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \
 | 
						    cd $$tmpdir || exit 1 ; ar x $$Opwd/lib$$i.a ; \
 | 
				
			||||||
	    ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \
 | 
						    $${FIPSLD:-${CC}} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} *.o \
 | 
				
			||||||
	  ) || exit 1; \
 | 
						  ) || exit 1; \
 | 
				
			||||||
	  cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \
 | 
						  cp $$tmpdir/lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} . ; \
 | 
				
			||||||
	) || exit 1; \
 | 
						) || exit 1; \
 | 
				
			||||||
@@ -816,16 +841,7 @@ install_sw:
 | 
				
			|||||||
				if [ "$(PLATFORM)" != "Cygwin" ]; then \
 | 
									if [ "$(PLATFORM)" != "Cygwin" ]; then \
 | 
				
			||||||
					cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
										cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
				
			||||||
					chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
										chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
				
			||||||
					mv -f	$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new \
 | 
										mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
 | 
				
			||||||
						$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
 | 
					 | 
				
			||||||
					sig="$$i.$${HMAC_EXT:-sha1}"; \
 | 
					 | 
				
			||||||
					if [ -f $$sig ]; then \
 | 
					 | 
				
			||||||
						echo installing $$sig; \
 | 
					 | 
				
			||||||
						cp $$sig $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$sig.new; \
 | 
					 | 
				
			||||||
						chmod 444 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$sig.new; \
 | 
					 | 
				
			||||||
						mv -f	$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$sig.new \
 | 
					 | 
				
			||||||
							$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$sig; \
 | 
					 | 
				
			||||||
					fi; \
 | 
					 | 
				
			||||||
				else \
 | 
									else \
 | 
				
			||||||
					c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
 | 
										c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
 | 
				
			||||||
					cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
 | 
										cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
 | 
				
			||||||
@@ -848,15 +864,6 @@ install_sw:
 | 
				
			|||||||
			sed -e '1,/^$$/d' doc/openssl-shared.txt; \
 | 
								sed -e '1,/^$$/d' doc/openssl-shared.txt; \
 | 
				
			||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	@for i in $(SIGS) ;\
 | 
					 | 
				
			||||||
	do \
 | 
					 | 
				
			||||||
		if [ -f "$$i" ]; then \
 | 
					 | 
				
			||||||
		(       echo installing $$i; \
 | 
					 | 
				
			||||||
			cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
					 | 
				
			||||||
			chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \
 | 
					 | 
				
			||||||
			mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
 | 
					 | 
				
			||||||
		fi; \
 | 
					 | 
				
			||||||
	done;
 | 
					 | 
				
			||||||
	cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
 | 
						cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
 | 
				
			||||||
	chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
 | 
						chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								NEWS
									
									
									
									
									
								
							@@ -5,6 +5,30 @@
 | 
				
			|||||||
  This file gives a brief overview of the major changes between each OpenSSL
 | 
					  This file gives a brief overview of the major changes between each OpenSSL
 | 
				
			||||||
  release. For more details please read the CHANGES file.
 | 
					  release. For more details please read the CHANGES file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
 | 
				
			||||||
 | 
					      o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      o Visual C++ 2005 fixes.
 | 
				
			||||||
 | 
					      o Update Windows build system for FIPS.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      o Fix SSL 2.0 Rollback, CVE-2005-2969
 | 
				
			||||||
 | 
					      o Allow use of fixed-length exponent on DSA signing
 | 
				
			||||||
 | 
					      o Default fixed-window RSA, DSA, DH private-key operations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
 | 
					  Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      o More compilation issues fixed.
 | 
					      o More compilation issues fixed.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								README
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 OpenSSL 0.9.7h-dev XX xxx XXXX
 | 
					 OpenSSL 0.9.7m-dev xx XXX xxxx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 Copyright (c) 1998-2005 The OpenSSL Project
 | 
					 Copyright (c) 1998-2007 The OpenSSL Project
 | 
				
			||||||
 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
 | 
					 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
 | 
				
			||||||
 All rights reserved.
 | 
					 All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								STATUS
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								STATUS
									
									
									
									
									
								
							@@ -1,10 +1,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  OpenSSL STATUS                           Last modified at
 | 
					  OpenSSL STATUS                           Last modified at
 | 
				
			||||||
  ______________                           $Date: 2005/04/11 15:10:06 $
 | 
					  ______________                           $Date: 2006/09/28 11:56:56 $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  DEVELOPMENT STATE
 | 
					  DEVELOPMENT STATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    o  OpenSSL 0.9.8:  Under development...
 | 
					    o  OpenSSL 0.9.9:  Under development...
 | 
				
			||||||
 | 
					    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.7l: Released on September 28th, 2006
 | 
				
			||||||
 | 
					    o  OpenSSL 0.9.7k: Released on September  5th, 2006
 | 
				
			||||||
 | 
					    o  OpenSSL 0.9.7j: Released on May        4th, 2006
 | 
				
			||||||
 | 
					    o  OpenSSL 0.9.7i: Released on October   14th, 2005
 | 
				
			||||||
 | 
					    o  OpenSSL 0.9.7h: Released on October   11th, 2005
 | 
				
			||||||
    o  OpenSSL 0.9.7g: Released on April     11th, 2005
 | 
					    o  OpenSSL 0.9.7g: Released on April     11th, 2005
 | 
				
			||||||
    o  OpenSSL 0.9.7f: Released on March     22nd, 2005
 | 
					    o  OpenSSL 0.9.7f: Released on March     22nd, 2005
 | 
				
			||||||
    o  OpenSSL 0.9.7e: Released on October   25th, 2004
 | 
					    o  OpenSSL 0.9.7e: Released on October   25th, 2004
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								TABLE
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								TABLE
									
									
									
									
									
								
							@@ -1402,7 +1402,7 @@ $arflags      =
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
*** darwin-i386-cc
 | 
					*** darwin-i386-cc
 | 
				
			||||||
$cc           = cc
 | 
					$cc           = cc
 | 
				
			||||||
$cflags       = -O3 -fomit-frame-pointer -fno-common -DB_ENDIAN
 | 
					$cflags       = -O3 -fomit-frame-pointer -fno-common
 | 
				
			||||||
$unistd       = 
 | 
					$unistd       = 
 | 
				
			||||||
$thread_cflag = -D_REENTRANT
 | 
					$thread_cflag = -D_REENTRANT
 | 
				
			||||||
$sys_id       = MACOSX
 | 
					$sys_id       = MACOSX
 | 
				
			||||||
@@ -3920,7 +3920,7 @@ $rc5_obj      =
 | 
				
			|||||||
$dso_scheme   = dlfcn
 | 
					$dso_scheme   = dlfcn
 | 
				
			||||||
$shared_target= solaris-shared
 | 
					$shared_target= solaris-shared
 | 
				
			||||||
$shared_cflag = -KPIC
 | 
					$shared_cflag = -KPIC
 | 
				
			||||||
$shared_ldflag = 
 | 
					$shared_ldflag = -G -dy -z text
 | 
				
			||||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
					$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 | 
				
			||||||
$ranlib       = 
 | 
					$ranlib       = 
 | 
				
			||||||
$arflags      = 
 | 
					$arflags      = 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -66,19 +66,19 @@ foreach (@ARGV) {
 | 
				
			|||||||
	    exit 0;
 | 
						    exit 0;
 | 
				
			||||||
	} elsif (/^-newcert$/) {
 | 
						} elsif (/^-newcert$/) {
 | 
				
			||||||
	    # create a certificate
 | 
						    # create a certificate
 | 
				
			||||||
	    system ("$REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS");
 | 
						    system ("$REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS");
 | 
				
			||||||
	    $RET=$?;
 | 
						    $RET=$?;
 | 
				
			||||||
	    print "Certificate (and private key) is in newreq.pem\n"
 | 
						    print "Certificate is in newcert.pem, private key is in newkey.pem\n"
 | 
				
			||||||
	} elsif (/^-newreq$/) {
 | 
						} elsif (/^-newreq$/) {
 | 
				
			||||||
	    # create a certificate request
 | 
						    # create a certificate request
 | 
				
			||||||
	    system ("$REQ -new -keyout newreq.pem -out newreq.pem $DAYS");
 | 
						    system ("$REQ -new -keyout newkey.pem -out newreq.pem $DAYS");
 | 
				
			||||||
	    $RET=$?;
 | 
						    $RET=$?;
 | 
				
			||||||
	    print "Request (and private key) is in newreq.pem\n";
 | 
						    print "Request is in newreq.pem, private key is in newkey.pem\n";
 | 
				
			||||||
	} elsif (/^-newreq-nodes$/) {
 | 
						} elsif (/^-newreq-nodes$/) {
 | 
				
			||||||
	    # create a certificate request
 | 
						    # create a certificate request
 | 
				
			||||||
	    system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS");
 | 
						    system ("$REQ -new -nodes -keyout newkey.pem -out newreq.pem $DAYS");
 | 
				
			||||||
	    $RET=$?;
 | 
						    $RET=$?;
 | 
				
			||||||
	    print "Request (and private key) is in newreq.pem\n";
 | 
						    print "Request is in newreq.pem, private key is in newkey.pem\n";
 | 
				
			||||||
	} elsif (/^-newca$/) {
 | 
						} elsif (/^-newca$/) {
 | 
				
			||||||
		# if explicitly asked for or it doesn't exist then setup the
 | 
							# if explicitly asked for or it doesn't exist then setup the
 | 
				
			||||||
		# directory structure that Eric likes to manage things 
 | 
							# directory structure that Eric likes to manage things 
 | 
				
			||||||
@@ -118,10 +118,11 @@ foreach (@ARGV) {
 | 
				
			|||||||
	} elsif (/^-pkcs12$/) {
 | 
						} elsif (/^-pkcs12$/) {
 | 
				
			||||||
	    my $cname = $ARGV[1];
 | 
						    my $cname = $ARGV[1];
 | 
				
			||||||
	    $cname = "My Certificate" unless defined $cname;
 | 
						    $cname = "My Certificate" unless defined $cname;
 | 
				
			||||||
	    system ("$PKCS12 -in newcert.pem -inkey newreq.pem " .
 | 
						    system ("$PKCS12 -in newcert.pem -inkey newkey.pem " .
 | 
				
			||||||
			"-certfile ${CATOP}/$CACERT -out newcert.p12 " .
 | 
								"-certfile ${CATOP}/$CACERT -out newcert.p12 " .
 | 
				
			||||||
			"-export -name \"$cname\"");
 | 
								"-export -name \"$cname\"");
 | 
				
			||||||
	    $RET=$?;
 | 
						    $RET=$?;
 | 
				
			||||||
 | 
						    print "PKCS #12 file is in newcert.p12\n";
 | 
				
			||||||
	    exit $RET;
 | 
						    exit $RET;
 | 
				
			||||||
	} elsif (/^-xsign$/) {
 | 
						} elsif (/^-xsign$/) {
 | 
				
			||||||
	    system ("$CA -policy policy_anything -infiles newreq.pem");
 | 
						    system ("$CA -policy policy_anything -infiles newreq.pem");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,15 +51,15 @@ case $i in
 | 
				
			|||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
-newcert) 
 | 
					-newcert) 
 | 
				
			||||||
    # create a certificate
 | 
					    # create a certificate
 | 
				
			||||||
    $REQ -new -x509 -keyout newreq.pem -out newreq.pem $DAYS
 | 
					    $REQ -new -x509 -keyout newkey.pem -out newcert.pem $DAYS
 | 
				
			||||||
    RET=$?
 | 
					    RET=$?
 | 
				
			||||||
    echo "Certificate (and private key) is in newreq.pem"
 | 
					    echo "Certificate is in newcert.pem, private key is in newkey.pem"
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
-newreq) 
 | 
					-newreq) 
 | 
				
			||||||
    # create a certificate request
 | 
					    # create a certificate request
 | 
				
			||||||
    $REQ -new -keyout newreq.pem -out newreq.pem $DAYS
 | 
					    $REQ -new -keyout newkey.pem -out newreq.pem $DAYS
 | 
				
			||||||
    RET=$?
 | 
					    RET=$?
 | 
				
			||||||
    echo "Request (and private key) is in newreq.pem"
 | 
					    echo "Request is in newreq.pem, private key is in newkey.pem"
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
-newca)     
 | 
					-newca)     
 | 
				
			||||||
    # if explicitly asked for or it doesn't exist then setup the directory
 | 
					    # if explicitly asked for or it doesn't exist then setup the directory
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -103,14 +103,6 @@ install:
 | 
				
			|||||||
	 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
 | 
						 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
 | 
				
			||||||
	 mv -f  $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \
 | 
						 mv -f  $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \
 | 
				
			||||||
	 	$(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
 | 
						 	$(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \
 | 
				
			||||||
	 sig="$$i.$${HMAC_EXT:-sha1}"; \
 | 
					 | 
				
			||||||
	 if [ -f $$sig ]; then \
 | 
					 | 
				
			||||||
	  echo installing $$sig; \
 | 
					 | 
				
			||||||
	  cp $$sig $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$sig.new; \
 | 
					 | 
				
			||||||
	  chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$sig.new; \
 | 
					 | 
				
			||||||
	  mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$sig.new \
 | 
					 | 
				
			||||||
		$(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$sig; \
 | 
					 | 
				
			||||||
	 fi; \
 | 
					 | 
				
			||||||
	) done;
 | 
						) done;
 | 
				
			||||||
	@for i in $(SCRIPTS); \
 | 
						@for i in $(SCRIPTS); \
 | 
				
			||||||
	do  \
 | 
						do  \
 | 
				
			||||||
@@ -152,20 +144,18 @@ $(DLIBCRYPTO):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
 | 
					$(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
 | 
				
			||||||
	$(RM) $(EXE)
 | 
						$(RM) $(EXE)
 | 
				
			||||||
 | 
						@if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
 | 
				
			||||||
 | 
						  FIPSLD_CC=$(CC); CC=$(TOP)/fips-1.0/fipsld; export CC FIPSLD_CC; \
 | 
				
			||||||
 | 
						fi; \
 | 
				
			||||||
	SHARED_LIBS="$(SHARED_LIBS)"; \
 | 
						SHARED_LIBS="$(SHARED_LIBS)"; \
 | 
				
			||||||
	if [ "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
 | 
						if [ "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
 | 
				
			||||||
	  SHARED_LIBS=""; \
 | 
						  SHARED_LIBS=""; \
 | 
				
			||||||
	fi; \
 | 
						fi; \
 | 
				
			||||||
	if [ -z "$(SHARED_LIBS)" ]; then \
 | 
						if [ -z "$$SHARED_LIBS" ]; then \
 | 
				
			||||||
	  set -x; $${CC:-$(CC)} -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
 | 
						  set -x; $${CC:-$(CC)} -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
 | 
				
			||||||
	else \
 | 
						else \
 | 
				
			||||||
	  set -x; LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
 | 
						  set -x; LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
 | 
				
			||||||
	  $(CC) -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
 | 
						  $(CC) -o $(EXE) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
 | 
				
			||||||
	fi; \
 | 
					 | 
				
			||||||
	if [ -z "$$SHARED_LIBS" ]; then \
 | 
					 | 
				
			||||||
	  if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \
 | 
					 | 
				
			||||||
	    TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a $(EXE); \
 | 
					 | 
				
			||||||
	  fi; \
 | 
					 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	-(cd ..; \
 | 
						-(cd ..; \
 | 
				
			||||||
	  OPENSSL="`pwd`/util/opensslwrap.sh"; export OPENSSL; \
 | 
						  OPENSSL="`pwd`/util/opensslwrap.sh"; export OPENSSL; \
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								apps/apps.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								apps/apps.c
									
									
									
									
									
								
							@@ -361,10 +361,17 @@ int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
 | 
				
			|||||||
		/* The start of something good :-) */
 | 
							/* The start of something good :-) */
 | 
				
			||||||
		if (num >= arg->count)
 | 
							if (num >= arg->count)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			arg->count+=20;
 | 
								char **tmp_p;
 | 
				
			||||||
			arg->data=(char **)OPENSSL_realloc(arg->data,
 | 
								int tlen = arg->count + 20;
 | 
				
			||||||
				sizeof(char *)*arg->count);
 | 
								tmp_p = (char **)OPENSSL_realloc(arg->data,
 | 
				
			||||||
			if (argc == 0) return(0);
 | 
									sizeof(char *)*tlen);
 | 
				
			||||||
 | 
								if (tmp_p == NULL)
 | 
				
			||||||
 | 
									return 0;
 | 
				
			||||||
 | 
								arg->data  = tmp_p;
 | 
				
			||||||
 | 
								arg->count = tlen;
 | 
				
			||||||
 | 
								/* initialize newly allocated data */
 | 
				
			||||||
 | 
								for (i = num; i < arg->count; i++)
 | 
				
			||||||
 | 
									arg->data[i] = NULL;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		arg->data[num++]=p;
 | 
							arg->data[num++]=p;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -182,7 +182,7 @@ int MAIN(int argc, char **argv)
 | 
				
			|||||||
bad:
 | 
					bad:
 | 
				
			||||||
		BIO_printf(bio_err,"%s [options] <infile\n",prog);
 | 
							BIO_printf(bio_err,"%s [options] <infile\n",prog);
 | 
				
			||||||
		BIO_printf(bio_err,"where options are\n");
 | 
							BIO_printf(bio_err,"where options are\n");
 | 
				
			||||||
		BIO_printf(bio_err," -inform arg   input format - one of DER TXT PEM\n");
 | 
							BIO_printf(bio_err," -inform arg   input format - one of DER PEM\n");
 | 
				
			||||||
		BIO_printf(bio_err," -in arg       input file\n");
 | 
							BIO_printf(bio_err," -in arg       input file\n");
 | 
				
			||||||
		BIO_printf(bio_err," -out arg      output file (output format is always DER\n");
 | 
							BIO_printf(bio_err," -out arg      output file (output format is always DER\n");
 | 
				
			||||||
		BIO_printf(bio_err," -noout arg    don't produce any output\n");
 | 
							BIO_printf(bio_err," -noout arg    don't produce any output\n");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -943,7 +943,6 @@ bad:
 | 
				
			|||||||
			if (verbose) BIO_printf(bio_err,
 | 
								if (verbose) BIO_printf(bio_err,
 | 
				
			||||||
				"Done. %d entries marked as expired\n",i); 
 | 
									"Done. %d entries marked as expired\n",i); 
 | 
				
			||||||
	      		}
 | 
						      		}
 | 
				
			||||||
			goto err;
 | 
					 | 
				
			||||||
	  	}
 | 
						  	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 	/*****************************************************************/
 | 
					 	/*****************************************************************/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -346,7 +346,7 @@ bad:
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* It must be large enough for a base64 encoded line */
 | 
							/* It must be large enough for a base64 encoded line */
 | 
				
			||||||
		if (n < 80) n=80;
 | 
							if (base64 && n < 80) n=80;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		bsize=(int)n;
 | 
							bsize=(int)n;
 | 
				
			||||||
		if (verbose) BIO_printf(bio_err,"bufsize=%d\n",bsize);
 | 
							if (verbose) BIO_printf(bio_err,"bufsize=%d\n",bsize);
 | 
				
			||||||
@@ -376,7 +376,11 @@ bad:
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (inf == NULL)
 | 
						if (inf == NULL)
 | 
				
			||||||
 | 
						        {
 | 
				
			||||||
 | 
							if (bufsize != NULL)
 | 
				
			||||||
 | 
								setvbuf(stdin, (char *)NULL, _IONBF, 0);
 | 
				
			||||||
		BIO_set_fp(in,stdin,BIO_NOCLOSE);
 | 
							BIO_set_fp(in,stdin,BIO_NOCLOSE);
 | 
				
			||||||
 | 
						        }
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		if (BIO_read_filename(in,inf) <= 0)
 | 
							if (BIO_read_filename(in,inf) <= 0)
 | 
				
			||||||
@@ -427,6 +431,8 @@ bad:
 | 
				
			|||||||
	if (outf == NULL)
 | 
						if (outf == NULL)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		BIO_set_fp(out,stdout,BIO_NOCLOSE);
 | 
							BIO_set_fp(out,stdout,BIO_NOCLOSE);
 | 
				
			||||||
 | 
							if (bufsize != NULL)
 | 
				
			||||||
 | 
								setvbuf(stdout, (char *)NULL, _IONBF, 0);
 | 
				
			||||||
#ifdef OPENSSL_SYS_VMS
 | 
					#ifdef OPENSSL_SYS_VMS
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		BIO *tmpbio = BIO_new(BIO_f_linebuffer());
 | 
							BIO *tmpbio = BIO_new(BIO_f_linebuffer());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -237,14 +237,7 @@ int main(int Argc, char *Argv[])
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
	if(getenv("OPENSSL_FIPS")) {
 | 
						if(getenv("OPENSSL_FIPS")) {
 | 
				
			||||||
#if defined(_WIN32)
 | 
							if (!FIPS_mode_set(1)) {
 | 
				
			||||||
		char filename[MAX_PATH] = "";
 | 
					 | 
				
			||||||
		GetModuleFileNameA( NULL, filename, MAX_PATH) ;
 | 
					 | 
				
			||||||
		p = filename;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
		p = Argv[0];
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
		if (!FIPS_mode_set(1,p)) {
 | 
					 | 
				
			||||||
			ERR_load_crypto_strings();
 | 
								ERR_load_crypto_strings();
 | 
				
			||||||
			ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
 | 
								ERR_print_errors(BIO_new_fp(stderr,BIO_NOCLOSE));
 | 
				
			||||||
			EXIT(1);
 | 
								EXIT(1);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -873,10 +873,12 @@ int alg_print (BIO *x, X509_ALGOR *alg)
 | 
				
			|||||||
	unsigned char *p;
 | 
						unsigned char *p;
 | 
				
			||||||
	p = alg->parameter->value.sequence->data;
 | 
						p = alg->parameter->value.sequence->data;
 | 
				
			||||||
	pbe = d2i_PBEPARAM (NULL, &p, alg->parameter->value.sequence->length);
 | 
						pbe = d2i_PBEPARAM (NULL, &p, alg->parameter->value.sequence->length);
 | 
				
			||||||
 | 
						if (!pbe)
 | 
				
			||||||
 | 
							return 1;
 | 
				
			||||||
	BIO_printf (bio_err, "%s, Iteration %d\n", 
 | 
						BIO_printf (bio_err, "%s, Iteration %d\n", 
 | 
				
			||||||
	OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)), ASN1_INTEGER_get(pbe->iter));
 | 
						OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)), ASN1_INTEGER_get(pbe->iter));
 | 
				
			||||||
	PBEPARAM_free (pbe);
 | 
						PBEPARAM_free (pbe);
 | 
				
			||||||
	return 0;
 | 
						return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Load all certificates from a given file */
 | 
					/* Load all certificates from a given file */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -483,7 +483,8 @@ int MAIN(int argc, char **argv)
 | 
				
			|||||||
		p7 = PKCS7_encrypt(encerts, in, cipher, flags);
 | 
							p7 = PKCS7_encrypt(encerts, in, cipher, flags);
 | 
				
			||||||
	} else if(operation == SMIME_SIGN) {
 | 
						} else if(operation == SMIME_SIGN) {
 | 
				
			||||||
		p7 = PKCS7_sign(signer, key, other, in, flags);
 | 
							p7 = PKCS7_sign(signer, key, other, in, flags);
 | 
				
			||||||
		if (BIO_reset(in) != 0 && (flags & PKCS7_DETACHED)) {
 | 
							if ((flags & PKCS7_DETACHED) && (outformat == FORMAT_SMIME)
 | 
				
			||||||
 | 
								&& (BIO_reset(in) != 0)) {
 | 
				
			||||||
		  BIO_printf(bio_err, "Can't rewind input file\n");
 | 
							  BIO_printf(bio_err, "Can't rewind input file\n");
 | 
				
			||||||
		  goto end;
 | 
							  goto end;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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-----
 | 
				
			||||||
							
								
								
									
										30
									
								
								config
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								config
									
									
									
									
									
								
							@@ -54,6 +54,22 @@ SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
 | 
				
			|||||||
VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
 | 
					VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check for VC++ presence first.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#if [ "x$MSVCDIR" != "x" -o "x$VCINSTALLDIR" != "x" ]; then
 | 
				
			||||||
 | 
					#	perl Configure VC-WIN32 $*
 | 
				
			||||||
 | 
					#	cmd /c ms\\do_masm.bat
 | 
				
			||||||
 | 
					#	perl util/mk1mf.pl VC-WIN32-GMAKE >mak.tmp
 | 
				
			||||||
 | 
					#	rm Makefile
 | 
				
			||||||
 | 
					#	mv mak.tmp Makefile
 | 
				
			||||||
 | 
					#	echo "Configured for VC++ using GNU make"
 | 
				
			||||||
 | 
					#	exit 0
 | 
				
			||||||
 | 
					#fi
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Now test for ISC and SCO, since it is has a braindamaged uname.
 | 
					# Now test for ISC and SCO, since it is has a braindamaged uname.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# We need to work around FreeBSD 1.1.5.1 
 | 
					# We need to work around FreeBSD 1.1.5.1 
 | 
				
			||||||
@@ -339,6 +355,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    MINGW*)
 | 
					    MINGW*)
 | 
				
			||||||
	echo "${MACHINE}-whatever-mingw"; echo 0;
 | 
						echo "${MACHINE}-whatever-mingw"; echo 0;
 | 
				
			||||||
 | 
						# Save fipslib path so VC++ build can find it
 | 
				
			||||||
 | 
						(cd /usr/local/ssl/lib ; pwd -W ) > util/fipslib_path.txt
 | 
				
			||||||
 | 
						# Extract _chkstk.o so VC++ can use it, to avoid __alloca link error
 | 
				
			||||||
 | 
						(cd ms ; ar x `gcc -print-libgcc-file-name` _chkstk.o)
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
    CYGWIN*)
 | 
					    CYGWIN*)
 | 
				
			||||||
	case "$RELEASE" in
 | 
						case "$RELEASE" in
 | 
				
			||||||
@@ -407,7 +427,7 @@ if [ "$GCCVER" != "" ]; then
 | 
				
			|||||||
  CC=gcc
 | 
					  CC=gcc
 | 
				
			||||||
  # then strip off whatever prefix egcs prepends the number with...
 | 
					  # then strip off whatever prefix egcs prepends the number with...
 | 
				
			||||||
  # Hopefully, this will work for any future prefixes as well.
 | 
					  # Hopefully, this will work for any future prefixes as well.
 | 
				
			||||||
  GCCVER=`echo $GCCVER | sed 's/^[a-zA-Z]*\-//'`
 | 
					  GCCVER=`echo $GCCVER | LC_ALL=C sed 's/^[a-zA-Z]*\-//'`
 | 
				
			||||||
  # Since gcc 3.1 gcc --version behaviour has changed.  gcc -dumpversion
 | 
					  # Since gcc 3.1 gcc --version behaviour has changed.  gcc -dumpversion
 | 
				
			||||||
  # does give us what we want though, so we use that.  We just just the
 | 
					  # does give us what we want though, so we use that.  We just just the
 | 
				
			||||||
  # major and minor version numbers.
 | 
					  # major and minor version numbers.
 | 
				
			||||||
@@ -527,9 +547,9 @@ case "$GUESSOS" in
 | 
				
			|||||||
	esac
 | 
						esac
 | 
				
			||||||
	if [ "$CC" = "gcc" ]; then
 | 
						if [ "$CC" = "gcc" ]; then
 | 
				
			||||||
	    case ${ISA:-generic} in
 | 
						    case ${ISA:-generic} in
 | 
				
			||||||
	    EV5|EV45)		options="$options -mcpu=ev5";;
 | 
						    EV5|EV45)		options="$options -march=ev5";;
 | 
				
			||||||
	    EV56|PCA56)		options="$options -mcpu=ev56";;
 | 
						    EV56|PCA56)		options="$options -march=ev56";;
 | 
				
			||||||
	    EV6|EV67|PCA57)	options="$options -mcpu=ev6";;
 | 
						    EV6|EV67|PCA57)	options="$options -march=ev6";;
 | 
				
			||||||
	    esac
 | 
						    esac
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
@@ -802,7 +822,7 @@ esac
 | 
				
			|||||||
#  options="$options -DATALLA"
 | 
					#  options="$options -DATALLA"
 | 
				
			||||||
#fi
 | 
					#fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# gcc < 2.8 does not support -mcpu=ultrasparc
 | 
					# gcc < 2.8 does not support -march=ultrasparc
 | 
				
			||||||
if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
 | 
					if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
  echo "WARNING! Do consider upgrading to gcc-2.8 or later."
 | 
					  echo "WARNING! Do consider upgrading to gcc-2.8 or later."
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/Makefile
 | 
					# OpenSSL/crypto/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=		crypto
 | 
					DIR=		crypto
 | 
				
			||||||
@@ -35,8 +35,8 @@ GENERAL=Makefile README crypto-lib.com install.com
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
LIB= $(TOP)/libcrypto.a
 | 
					LIB= $(TOP)/libcrypto.a
 | 
				
			||||||
SHARED_LIB= libcrypto$(SHLIB_EXT)
 | 
					SHARED_LIB= libcrypto$(SHLIB_EXT)
 | 
				
			||||||
LIBSRC=	cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c
 | 
					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 fips_err.c
 | 
				
			||||||
LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o
 | 
					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 fips_err.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRC= $(LIBSRC)
 | 
					SRC= $(LIBSRC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -185,6 +185,7 @@ ex_data.o: ../include/openssl/err.h ../include/openssl/lhash.h
 | 
				
			|||||||
ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
					ex_data.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
 | 
				
			||||||
ex_data.o: ../include/openssl/safestack.h ../include/openssl/stack.h
 | 
					ex_data.o: ../include/openssl/safestack.h ../include/openssl/stack.h
 | 
				
			||||||
ex_data.o: ../include/openssl/symhacks.h cryptlib.h ex_data.c
 | 
					ex_data.o: ../include/openssl/symhacks.h cryptlib.h ex_data.c
 | 
				
			||||||
 | 
					fips_err.o: ../include/openssl/opensslconf.h fips_err.c
 | 
				
			||||||
mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 | 
					mem.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/buffer.h
 | 
				
			||||||
mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 | 
					mem.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
 | 
				
			||||||
mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
 | 
					mem.o: ../include/openssl/err.h ../include/openssl/lhash.h
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,13 +47,12 @@ Te0[x] = S [x].[02, 01, 01, 03];
 | 
				
			|||||||
Te1[x] = S [x].[03, 02, 01, 01];
 | 
					Te1[x] = S [x].[03, 02, 01, 01];
 | 
				
			||||||
Te2[x] = S [x].[01, 03, 02, 01];
 | 
					Te2[x] = S [x].[01, 03, 02, 01];
 | 
				
			||||||
Te3[x] = S [x].[01, 01, 03, 02];
 | 
					Te3[x] = S [x].[01, 01, 03, 02];
 | 
				
			||||||
Te4[x] = S [x].[01, 01, 01, 01];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Td0[x] = Si[x].[0e, 09, 0d, 0b];
 | 
					Td0[x] = Si[x].[0e, 09, 0d, 0b];
 | 
				
			||||||
Td1[x] = Si[x].[0b, 0e, 09, 0d];
 | 
					Td1[x] = Si[x].[0b, 0e, 09, 0d];
 | 
				
			||||||
Td2[x] = Si[x].[0d, 0b, 0e, 09];
 | 
					Td2[x] = Si[x].[0d, 0b, 0e, 09];
 | 
				
			||||||
Td3[x] = Si[x].[09, 0d, 0b, 0e];
 | 
					Td3[x] = Si[x].[09, 0d, 0b, 0e];
 | 
				
			||||||
Td4[x] = Si[x].[01, 01, 01, 01];
 | 
					Td4[x] = Si[x].[01];
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const u32 Te0[256] = {
 | 
					static const u32 Te0[256] = {
 | 
				
			||||||
@@ -255,7 +254,6 @@ static const u32 Te2[256] = {
 | 
				
			|||||||
    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
 | 
					    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static const u32 Te3[256] = {
 | 
					static const u32 Te3[256] = {
 | 
				
			||||||
 | 
					 | 
				
			||||||
    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
 | 
					    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
 | 
				
			||||||
    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
 | 
					    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
 | 
				
			||||||
    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
 | 
					    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
 | 
				
			||||||
@@ -321,72 +319,7 @@ static const u32 Te3[256] = {
 | 
				
			|||||||
    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
 | 
					    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
 | 
				
			||||||
    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
 | 
					    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
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,
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
static const u32 Td0[256] = {
 | 
					static const u32 Td0[256] = {
 | 
				
			||||||
    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
 | 
					    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
 | 
				
			||||||
    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
 | 
					    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
 | 
				
			||||||
@@ -540,7 +473,6 @@ static const u32 Td2[256] = {
 | 
				
			|||||||
    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
 | 
					    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
 | 
				
			||||||
    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
 | 
					    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
 | 
				
			||||||
    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
 | 
					    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
 | 
				
			||||||
 | 
					 | 
				
			||||||
    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
 | 
					    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
 | 
				
			||||||
    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
 | 
					    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
 | 
				
			||||||
    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
 | 
					    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
 | 
				
			||||||
@@ -652,71 +584,39 @@ static const u32 Td3[256] = {
 | 
				
			|||||||
    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
 | 
					    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
 | 
				
			||||||
    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
 | 
					    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static const u32 Td4[256] = {
 | 
					static const u8 Td4[256] = {
 | 
				
			||||||
    0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
 | 
					    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
 | 
				
			||||||
    0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
 | 
					    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
 | 
				
			||||||
    0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
 | 
					    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
 | 
				
			||||||
    0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
 | 
					    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
 | 
				
			||||||
    0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
 | 
					    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
 | 
				
			||||||
    0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
 | 
					    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
 | 
				
			||||||
    0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
 | 
					    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
 | 
				
			||||||
    0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
 | 
					    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
 | 
				
			||||||
    0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
 | 
					    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
 | 
				
			||||||
    0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
 | 
					    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
 | 
				
			||||||
    0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
 | 
					    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
 | 
				
			||||||
    0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
 | 
					    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
 | 
				
			||||||
    0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
 | 
					    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
 | 
				
			||||||
    0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
 | 
					    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
 | 
				
			||||||
    0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
 | 
					    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
 | 
				
			||||||
    0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
 | 
					    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
 | 
				
			||||||
    0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
 | 
					    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
 | 
				
			||||||
    0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
 | 
					    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
 | 
				
			||||||
    0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
 | 
					    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
 | 
				
			||||||
    0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
 | 
					    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
 | 
				
			||||||
    0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
 | 
					    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
 | 
				
			||||||
    0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
 | 
					    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
 | 
				
			||||||
    0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
 | 
					    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
 | 
				
			||||||
    0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
 | 
					    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
 | 
				
			||||||
    0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
 | 
					    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
 | 
				
			||||||
    0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
 | 
					    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
 | 
				
			||||||
    0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
 | 
					    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
 | 
				
			||||||
    0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
 | 
					    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
 | 
				
			||||||
    0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
 | 
					    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
 | 
				
			||||||
    0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
 | 
					    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
 | 
				
			||||||
    0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
 | 
					    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
 | 
				
			||||||
    0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
 | 
					    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
 | 
				
			||||||
    0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
 | 
					 | 
				
			||||||
    0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
 | 
					 | 
				
			||||||
    0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
 | 
					 | 
				
			||||||
    0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
 | 
					 | 
				
			||||||
    0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
 | 
					 | 
				
			||||||
    0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
 | 
					 | 
				
			||||||
    0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
 | 
					 | 
				
			||||||
    0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
 | 
					 | 
				
			||||||
    0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
 | 
					 | 
				
			||||||
    0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
 | 
					 | 
				
			||||||
    0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
 | 
					 | 
				
			||||||
    0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
 | 
					 | 
				
			||||||
    0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
 | 
					 | 
				
			||||||
    0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
 | 
					 | 
				
			||||||
    0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
 | 
					 | 
				
			||||||
    0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
 | 
					 | 
				
			||||||
    0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
 | 
					 | 
				
			||||||
    0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
 | 
					 | 
				
			||||||
    0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
 | 
					 | 
				
			||||||
    0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
 | 
					 | 
				
			||||||
    0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
 | 
					 | 
				
			||||||
    0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
 | 
					 | 
				
			||||||
    0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
 | 
					 | 
				
			||||||
    0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
 | 
					 | 
				
			||||||
    0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
 | 
					 | 
				
			||||||
    0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
 | 
					 | 
				
			||||||
    0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
 | 
					 | 
				
			||||||
    0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
 | 
					 | 
				
			||||||
    0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
 | 
					 | 
				
			||||||
    0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
 | 
					 | 
				
			||||||
    0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
 | 
					 | 
				
			||||||
    0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
static const u32 rcon[] = {
 | 
					static const u32 rcon[] = {
 | 
				
			||||||
	0x01000000, 0x02000000, 0x04000000, 0x08000000,
 | 
						0x01000000, 0x02000000, 0x04000000, 0x08000000,
 | 
				
			||||||
@@ -756,10 +656,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
				
			|||||||
		while (1) {
 | 
							while (1) {
 | 
				
			||||||
			temp  = rk[3];
 | 
								temp  = rk[3];
 | 
				
			||||||
			rk[4] = rk[0] ^
 | 
								rk[4] = rk[0] ^
 | 
				
			||||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
									(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
				
			||||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
									(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
									(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
									(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
				
			||||||
				rcon[i];
 | 
									rcon[i];
 | 
				
			||||||
			rk[5] = rk[1] ^ rk[4];
 | 
								rk[5] = rk[1] ^ rk[4];
 | 
				
			||||||
			rk[6] = rk[2] ^ rk[5];
 | 
								rk[6] = rk[2] ^ rk[5];
 | 
				
			||||||
@@ -776,10 +676,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
				
			|||||||
		while (1) {
 | 
							while (1) {
 | 
				
			||||||
			temp = rk[ 5];
 | 
								temp = rk[ 5];
 | 
				
			||||||
			rk[ 6] = rk[ 0] ^
 | 
								rk[ 6] = rk[ 0] ^
 | 
				
			||||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
									(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
				
			||||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
									(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
									(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
									(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
				
			||||||
				rcon[i];
 | 
									rcon[i];
 | 
				
			||||||
			rk[ 7] = rk[ 1] ^ rk[ 6];
 | 
								rk[ 7] = rk[ 1] ^ rk[ 6];
 | 
				
			||||||
			rk[ 8] = rk[ 2] ^ rk[ 7];
 | 
								rk[ 8] = rk[ 2] ^ rk[ 7];
 | 
				
			||||||
@@ -798,10 +698,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
				
			|||||||
		while (1) {
 | 
							while (1) {
 | 
				
			||||||
			temp = rk[ 7];
 | 
								temp = rk[ 7];
 | 
				
			||||||
			rk[ 8] = rk[ 0] ^
 | 
								rk[ 8] = rk[ 0] ^
 | 
				
			||||||
				(Te4[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
									(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
 | 
				
			||||||
				(Te4[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
									(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
				(Te4[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
									(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
				(Te4[(temp >> 24)       ] & 0x000000ff) ^
 | 
									(Te1[(temp >> 24)       ] & 0x000000ff) ^
 | 
				
			||||||
				rcon[i];
 | 
									rcon[i];
 | 
				
			||||||
			rk[ 9] = rk[ 1] ^ rk[ 8];
 | 
								rk[ 9] = rk[ 1] ^ rk[ 8];
 | 
				
			||||||
			rk[10] = rk[ 2] ^ rk[ 9];
 | 
								rk[10] = rk[ 2] ^ rk[ 9];
 | 
				
			||||||
@@ -811,10 +711,10 @@ int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			temp = rk[11];
 | 
								temp = rk[11];
 | 
				
			||||||
			rk[12] = rk[ 4] ^
 | 
								rk[12] = rk[ 4] ^
 | 
				
			||||||
				(Te4[(temp >> 24)       ] & 0xff000000) ^
 | 
									(Te2[(temp >> 24)       ] & 0xff000000) ^
 | 
				
			||||||
				(Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
 | 
									(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
				(Te4[(temp >>  8) & 0xff] & 0x0000ff00) ^
 | 
									(Te0[(temp >>  8) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
				(Te4[(temp      ) & 0xff] & 0x000000ff);
 | 
									(Te1[(temp      ) & 0xff] & 0x000000ff);
 | 
				
			||||||
			rk[13] = rk[ 5] ^ rk[12];
 | 
								rk[13] = rk[ 5] ^ rk[12];
 | 
				
			||||||
			rk[14] = rk[ 6] ^ rk[13];
 | 
								rk[14] = rk[ 6] ^ rk[13];
 | 
				
			||||||
			rk[15] = rk[ 7] ^ rk[14];
 | 
								rk[15] = rk[ 7] ^ rk[14];
 | 
				
			||||||
@@ -853,25 +753,25 @@ int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
 | 
				
			|||||||
	for (i = 1; i < (key->rounds); i++) {
 | 
						for (i = 1; i < (key->rounds); i++) {
 | 
				
			||||||
		rk += 4;
 | 
							rk += 4;
 | 
				
			||||||
		rk[0] =
 | 
							rk[0] =
 | 
				
			||||||
			Td0[Te4[(rk[0] >> 24)       ] & 0xff] ^
 | 
								Td0[Te1[(rk[0] >> 24)       ] & 0xff] ^
 | 
				
			||||||
			Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
 | 
								Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td2[Te4[(rk[0] >>  8) & 0xff] & 0xff] ^
 | 
								Td2[Te1[(rk[0] >>  8) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td3[Te4[(rk[0]      ) & 0xff] & 0xff];
 | 
								Td3[Te1[(rk[0]      ) & 0xff] & 0xff];
 | 
				
			||||||
		rk[1] =
 | 
							rk[1] =
 | 
				
			||||||
			Td0[Te4[(rk[1] >> 24)       ] & 0xff] ^
 | 
								Td0[Te1[(rk[1] >> 24)       ] & 0xff] ^
 | 
				
			||||||
			Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
 | 
								Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td2[Te4[(rk[1] >>  8) & 0xff] & 0xff] ^
 | 
								Td2[Te1[(rk[1] >>  8) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td3[Te4[(rk[1]      ) & 0xff] & 0xff];
 | 
								Td3[Te1[(rk[1]      ) & 0xff] & 0xff];
 | 
				
			||||||
		rk[2] =
 | 
							rk[2] =
 | 
				
			||||||
			Td0[Te4[(rk[2] >> 24)       ] & 0xff] ^
 | 
								Td0[Te1[(rk[2] >> 24)       ] & 0xff] ^
 | 
				
			||||||
			Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
 | 
								Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td2[Te4[(rk[2] >>  8) & 0xff] & 0xff] ^
 | 
								Td2[Te1[(rk[2] >>  8) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td3[Te4[(rk[2]      ) & 0xff] & 0xff];
 | 
								Td3[Te1[(rk[2]      ) & 0xff] & 0xff];
 | 
				
			||||||
		rk[3] =
 | 
							rk[3] =
 | 
				
			||||||
			Td0[Te4[(rk[3] >> 24)       ] & 0xff] ^
 | 
								Td0[Te1[(rk[3] >> 24)       ] & 0xff] ^
 | 
				
			||||||
			Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
 | 
								Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td2[Te4[(rk[3] >>  8) & 0xff] & 0xff] ^
 | 
								Td2[Te1[(rk[3] >>  8) & 0xff] & 0xff] ^
 | 
				
			||||||
			Td3[Te4[(rk[3]      ) & 0xff] & 0xff];
 | 
								Td3[Te1[(rk[3]      ) & 0xff] & 0xff];
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1038,31 +938,31 @@ void AES_encrypt(const unsigned char *in, unsigned char *out,
 | 
				
			|||||||
	 * map cipher state to byte array block:
 | 
						 * map cipher state to byte array block:
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	s0 =
 | 
						s0 =
 | 
				
			||||||
		(Te4[(t0 >> 24)       ] & 0xff000000) ^
 | 
							(Te2[(t0 >> 24)       ] & 0xff000000) ^
 | 
				
			||||||
		(Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
							(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
		(Te4[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
							(Te0[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
		(Te4[(t3      ) & 0xff] & 0x000000ff) ^
 | 
							(Te1[(t3      ) & 0xff] & 0x000000ff) ^
 | 
				
			||||||
		rk[0];
 | 
							rk[0];
 | 
				
			||||||
	PUTU32(out     , s0);
 | 
						PUTU32(out     , s0);
 | 
				
			||||||
	s1 =
 | 
						s1 =
 | 
				
			||||||
		(Te4[(t1 >> 24)       ] & 0xff000000) ^
 | 
							(Te2[(t1 >> 24)       ] & 0xff000000) ^
 | 
				
			||||||
		(Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
							(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
		(Te4[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
							(Te0[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
		(Te4[(t0      ) & 0xff] & 0x000000ff) ^
 | 
							(Te1[(t0      ) & 0xff] & 0x000000ff) ^
 | 
				
			||||||
		rk[1];
 | 
							rk[1];
 | 
				
			||||||
	PUTU32(out +  4, s1);
 | 
						PUTU32(out +  4, s1);
 | 
				
			||||||
	s2 =
 | 
						s2 =
 | 
				
			||||||
		(Te4[(t2 >> 24)       ] & 0xff000000) ^
 | 
							(Te2[(t2 >> 24)       ] & 0xff000000) ^
 | 
				
			||||||
		(Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
							(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
		(Te4[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
							(Te0[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
		(Te4[(t1      ) & 0xff] & 0x000000ff) ^
 | 
							(Te1[(t1      ) & 0xff] & 0x000000ff) ^
 | 
				
			||||||
		rk[2];
 | 
							rk[2];
 | 
				
			||||||
	PUTU32(out +  8, s2);
 | 
						PUTU32(out +  8, s2);
 | 
				
			||||||
	s3 =
 | 
						s3 =
 | 
				
			||||||
		(Te4[(t3 >> 24)       ] & 0xff000000) ^
 | 
							(Te2[(t3 >> 24)       ] & 0xff000000) ^
 | 
				
			||||||
		(Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
							(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
				
			||||||
		(Te4[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
							(Te0[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
				
			||||||
		(Te4[(t2      ) & 0xff] & 0x000000ff) ^
 | 
							(Te1[(t2      ) & 0xff] & 0x000000ff) ^
 | 
				
			||||||
		rk[3];
 | 
							rk[3];
 | 
				
			||||||
	PUTU32(out + 12, s3);
 | 
						PUTU32(out + 12, s3);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1229,31 +1129,31 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
 | 
				
			|||||||
	 * map cipher state to byte array block:
 | 
						 * map cipher state to byte array block:
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
   	s0 =
 | 
					   	s0 =
 | 
				
			||||||
   		(Td4[(t0 >> 24)       ] & 0xff000000) ^
 | 
					   		(Td4[(t0 >> 24)       ] << 24) ^
 | 
				
			||||||
   		(Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
 | 
					   		(Td4[(t3 >> 16) & 0xff] << 16) ^
 | 
				
			||||||
   		(Td4[(t2 >>  8) & 0xff] & 0x0000ff00) ^
 | 
					   		(Td4[(t2 >>  8) & 0xff] <<  8) ^
 | 
				
			||||||
   		(Td4[(t1      ) & 0xff] & 0x000000ff) ^
 | 
					   		(Td4[(t1      ) & 0xff])       ^
 | 
				
			||||||
   		rk[0];
 | 
					   		rk[0];
 | 
				
			||||||
	PUTU32(out     , s0);
 | 
						PUTU32(out     , s0);
 | 
				
			||||||
   	s1 =
 | 
					   	s1 =
 | 
				
			||||||
   		(Td4[(t1 >> 24)       ] & 0xff000000) ^
 | 
					   		(Td4[(t1 >> 24)       ] << 24) ^
 | 
				
			||||||
   		(Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
 | 
					   		(Td4[(t0 >> 16) & 0xff] << 16) ^
 | 
				
			||||||
   		(Td4[(t3 >>  8) & 0xff] & 0x0000ff00) ^
 | 
					   		(Td4[(t3 >>  8) & 0xff] <<  8) ^
 | 
				
			||||||
   		(Td4[(t2      ) & 0xff] & 0x000000ff) ^
 | 
					   		(Td4[(t2      ) & 0xff])       ^
 | 
				
			||||||
   		rk[1];
 | 
					   		rk[1];
 | 
				
			||||||
	PUTU32(out +  4, s1);
 | 
						PUTU32(out +  4, s1);
 | 
				
			||||||
   	s2 =
 | 
					   	s2 =
 | 
				
			||||||
   		(Td4[(t2 >> 24)       ] & 0xff000000) ^
 | 
					   		(Td4[(t2 >> 24)       ] << 24) ^
 | 
				
			||||||
   		(Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
 | 
					   		(Td4[(t1 >> 16) & 0xff] << 16) ^
 | 
				
			||||||
   		(Td4[(t0 >>  8) & 0xff] & 0x0000ff00) ^
 | 
					   		(Td4[(t0 >>  8) & 0xff] <<  8) ^
 | 
				
			||||||
   		(Td4[(t3      ) & 0xff] & 0x000000ff) ^
 | 
					   		(Td4[(t3      ) & 0xff])       ^
 | 
				
			||||||
   		rk[2];
 | 
					   		rk[2];
 | 
				
			||||||
	PUTU32(out +  8, s2);
 | 
						PUTU32(out +  8, s2);
 | 
				
			||||||
   	s3 =
 | 
					   	s3 =
 | 
				
			||||||
   		(Td4[(t3 >> 24)       ] & 0xff000000) ^
 | 
					   		(Td4[(t3 >> 24)       ] << 24) ^
 | 
				
			||||||
   		(Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
 | 
					   		(Td4[(t2 >> 16) & 0xff] << 16) ^
 | 
				
			||||||
   		(Td4[(t1 >>  8) & 0xff] & 0x0000ff00) ^
 | 
					   		(Td4[(t1 >>  8) & 0xff] <<  8) ^
 | 
				
			||||||
   		(Td4[(t0      ) & 0xff] & 0x000000ff) ^
 | 
					   		(Td4[(t0      ) & 0xff])       ^
 | 
				
			||||||
   		rk[3];
 | 
					   		rk[3];
 | 
				
			||||||
	PUTU32(out + 12, s3);
 | 
						PUTU32(out + 12, s3);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,7 +53,7 @@
 | 
				
			|||||||
#include <openssl/aes.h>
 | 
					#include <openssl/aes.h>
 | 
				
			||||||
#include "aes_locl.h"
 | 
					#include "aes_locl.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *AES_version="AES" OPENSSL_VERSION_PTEXT;
 | 
					const char AES_version[]="AES" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *AES_options(void) {
 | 
					const char *AES_options(void) {
 | 
				
			||||||
#ifdef FULL_UNROLL
 | 
					#ifdef FULL_UNROLL
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/asn1/Makefile
 | 
					# OpenSSL/crypto/asn1/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	asn1
 | 
					DIR=	asn1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/asn1/asn1_err.c */
 | 
					/* crypto/asn1/asn1_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -240,15 +240,12 @@ static ERR_STRING_DATA ASN1_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_ASN1_strings(void)
 | 
					void ERR_load_ASN1_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#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_functs);
 | 
				
			||||||
		ERR_load_strings(0,ASN1_str_reasons);
 | 
							ERR_load_strings(0,ASN1_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static int asn1_get_length(unsigned char **pp,int *inf,long *rl,int max);
 | 
					static int asn1_get_length(unsigned char **pp,int *inf,long *rl,int max);
 | 
				
			||||||
static void asn1_put_length(unsigned char **pp, int length);
 | 
					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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int ASN1_check_infinite_end(unsigned char **p, long len)
 | 
					int ASN1_check_infinite_end(unsigned char **p, long len)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,7 +77,7 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, unsigned char **in, long len
 | 
				
			|||||||
					const ASN1_ITEM *it, int tag, int aclass, char opt, ASN1_TLC *ctx);
 | 
										const ASN1_ITEM *it, int tag, int aclass, char opt, ASN1_TLC *ctx);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Table to convert tags to bit values, used for MSTRING type */
 | 
					/* 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 */
 | 
					0,	0,	0,	B_ASN1_BIT_STRING,	/* tags  0 -  3 */
 | 
				
			||||||
B_ASN1_OCTET_STRING,	0,	0,		B_ASN1_UNKNOWN,/* tags  4- 7 */
 | 
					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_UNKNOWN,	B_ASN1_UNKNOWN,	B_ASN1_UNKNOWN,	B_ASN1_UNKNOWN,/* tags  8-11 */
 | 
				
			||||||
@@ -629,6 +629,7 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, unsigned char **in, long inl
 | 
				
			|||||||
		ASN1err(ASN1_F_ASN1_D2I_EX_PRIMITIVE, ERR_R_NESTED_ASN1_ERROR);
 | 
							ASN1err(ASN1_F_ASN1_D2I_EX_PRIMITIVE, ERR_R_NESTED_ASN1_ERROR);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	} else if(ret == -1) return -1;
 | 
						} else if(ret == -1) return -1;
 | 
				
			||||||
 | 
					        ret = 0;
 | 
				
			||||||
	/* SEQUENCE, SET and "OTHER" are left in encoded form */
 | 
						/* SEQUENCE, SET and "OTHER" are left in encoded form */
 | 
				
			||||||
	if((utype == V_ASN1_SEQUENCE) || (utype == V_ASN1_SET) || (utype == V_ASN1_OTHER)) {
 | 
						if((utype == V_ASN1_SEQUENCE) || (utype == V_ASN1_SET) || (utype == V_ASN1_OTHER)) {
 | 
				
			||||||
		/* Clear context cache for type OTHER because the auto clear when
 | 
							/* Clear context cache for type OTHER because the auto clear when
 | 
				
			||||||
@@ -662,7 +663,11 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, unsigned char **in, long inl
 | 
				
			|||||||
		 * internally irrespective of the type. So instead just check
 | 
							 * internally irrespective of the type. So instead just check
 | 
				
			||||||
		 * for UNIVERSAL class and ignore the tag.
 | 
							 * for UNIVERSAL class and ignore the tag.
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if(!asn1_collect(&buf, &p, plen, inf, -1, V_ASN1_UNIVERSAL)) goto err;
 | 
							if(!asn1_collect(&buf, &p, plen, inf, -1, V_ASN1_UNIVERSAL))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								free_cont = 1;
 | 
				
			||||||
 | 
								goto err;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		len = buf.length;
 | 
							len = buf.length;
 | 
				
			||||||
		/* Append a final null to string */
 | 
							/* Append a final null to string */
 | 
				
			||||||
		if(!BUF_MEM_grow_clean(&buf, len + 1)) {
 | 
							if(!BUF_MEM_grow_clean(&buf, len + 1)) {
 | 
				
			||||||
@@ -903,7 +908,7 @@ static int asn1_collect(BUF_MEM *buf, unsigned char **in, long len, char inf, in
 | 
				
			|||||||
			return 0;
 | 
								return 0;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			if(!collect_data(buf, &p, plen)) return 0;
 | 
								if(plen && !collect_data(buf, &p, plen)) return 0;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		len -= p - q;
 | 
							len -= p - q;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -445,9 +445,12 @@ int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype, const ASN1_
 | 
				
			|||||||
		case V_ASN1_BOOLEAN:
 | 
							case V_ASN1_BOOLEAN:
 | 
				
			||||||
		tbool = (ASN1_BOOLEAN *)pval;
 | 
							tbool = (ASN1_BOOLEAN *)pval;
 | 
				
			||||||
		if(*tbool == -1) return -1;
 | 
							if(*tbool == -1) return -1;
 | 
				
			||||||
 | 
							if (it->utype != V_ASN1_ANY)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
			/* Default handling if value == size field then omit */
 | 
								/* Default handling if value == size field then omit */
 | 
				
			||||||
			if(*tbool && (it->size > 0)) return -1;
 | 
								if(*tbool && (it->size > 0)) return -1;
 | 
				
			||||||
			if(!*tbool && !it->size) return -1;
 | 
								if(!*tbool && !it->size) return -1;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		c = (unsigned char)*tbool;
 | 
							c = (unsigned char)*tbool;
 | 
				
			||||||
		cont = &c;
 | 
							cont = &c;
 | 
				
			||||||
		len = 1;
 | 
							len = 1;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -102,7 +102,7 @@ ASN1_SEQUENCE_enc(X509_REQ_INFO, enc, rinf_cb) = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
IMPLEMENT_ASN1_FUNCTIONS(X509_REQ_INFO)
 | 
					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, req_info, X509_REQ_INFO),
 | 
				
			||||||
	ASN1_SIMPLE(X509_REQ, sig_alg, X509_ALGOR),
 | 
						ASN1_SIMPLE(X509_REQ, sig_alg, X509_ALGOR),
 | 
				
			||||||
	ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
 | 
						ASN1_SIMPLE(X509_REQ, signature, ASN1_BIT_STRING)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/blowfish/Makefile
 | 
					# OpenSSL/crypto/blowfish/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	bf
 | 
					DIR=	bf
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,7 @@
 | 
				
			|||||||
 * CAMBRIDGE SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993)
 | 
					 * 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)
 | 
					const char *BF_options(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/bio/Makefile
 | 
					# OpenSSL/crypto/bio/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	bio
 | 
					DIR=	bio
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/bio/bio_err.c */
 | 
					/* crypto/bio/bio_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -142,15 +142,12 @@ static ERR_STRING_DATA BIO_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_BIO_strings(void)
 | 
					void ERR_load_BIO_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(BIO_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,BIO_str_functs);
 | 
							ERR_load_strings(0,BIO_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,BIO_str_reasons);
 | 
							ERR_load_strings(0,BIO_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -469,7 +469,7 @@ static long conn_ctrl(BIO *b, int cmd, long num, void *ptr)
 | 
				
			|||||||
		break;
 | 
							break;
 | 
				
			||||||
	case BIO_C_DO_STATE_MACHINE:
 | 
						case BIO_C_DO_STATE_MACHINE:
 | 
				
			||||||
		/* use this one to start the connection */
 | 
							/* use this one to start the connection */
 | 
				
			||||||
		if (!(data->state != BIO_CONN_S_OK))
 | 
							if (data->state != BIO_CONN_S_OK)
 | 
				
			||||||
			ret=(long)conn_state(b,data);
 | 
								ret=(long)conn_state(b,data);
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			ret=1;
 | 
								ret=1;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/bn/Makefile
 | 
					# OpenSSL/crypto/bn/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	bn
 | 
					DIR=	bn
 | 
				
			||||||
@@ -329,3 +329,5 @@ bn_word.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
 | 
				
			|||||||
bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
					bn_word.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
				
			||||||
bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
					bn_word.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
				
			||||||
bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c
 | 
					bn_word.o: ../cryptlib.h bn_lcl.h bn_word.c
 | 
				
			||||||
 | 
					bn_x931p.o: ../../include/openssl/bn.h ../../include/openssl/e_os2.h
 | 
				
			||||||
 | 
					bn_x931p.o: ../../include/openssl/opensslconf.h bn_x931p.c
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -116,7 +116,7 @@ if ($opf =~ /32\.s/) {
 | 
				
			|||||||
	$UDIV=	"divwu";	# unsigned divide
 | 
						$UDIV=	"divwu";	# unsigned divide
 | 
				
			||||||
	$UCMPI=	"cmplwi";	# unsigned compare with immediate
 | 
						$UCMPI=	"cmplwi";	# unsigned compare with immediate
 | 
				
			||||||
	$UCMP=	"cmplw";	# unsigned compare
 | 
						$UCMP=	"cmplw";	# unsigned compare
 | 
				
			||||||
	$COUNTZ="cntlzw";	# count leading zeros
 | 
						$CNTLZ=	"cntlzw";	# count leading zeros
 | 
				
			||||||
	$SHL=	"slw";		# shift left
 | 
						$SHL=	"slw";		# shift left
 | 
				
			||||||
	$SHR=	"srw";		# unsigned shift right
 | 
						$SHR=	"srw";		# unsigned shift right
 | 
				
			||||||
	$SHRI=	"srwi";		# unsigned shift right by immediate	
 | 
						$SHRI=	"srwi";		# unsigned shift right by immediate	
 | 
				
			||||||
@@ -124,6 +124,7 @@ if ($opf =~ /32\.s/) {
 | 
				
			|||||||
	$CLRU=	"clrlwi";	# clear upper bits
 | 
						$CLRU=	"clrlwi";	# clear upper bits
 | 
				
			||||||
	$INSR=	"insrwi";	# insert right
 | 
						$INSR=	"insrwi";	# insert right
 | 
				
			||||||
	$ROTL=	"rotlwi";	# rotate left by immediate
 | 
						$ROTL=	"rotlwi";	# rotate left by immediate
 | 
				
			||||||
 | 
						$TR=	"tw";		# conditional trap
 | 
				
			||||||
} elsif ($opf =~ /64\.s/) {
 | 
					} elsif ($opf =~ /64\.s/) {
 | 
				
			||||||
	$BITS=	64;
 | 
						$BITS=	64;
 | 
				
			||||||
	$BNSZ=	$BITS/8;
 | 
						$BNSZ=	$BITS/8;
 | 
				
			||||||
@@ -139,7 +140,7 @@ if ($opf =~ /32\.s/) {
 | 
				
			|||||||
	$UDIV=	"divdu";	# unsigned divide
 | 
						$UDIV=	"divdu";	# unsigned divide
 | 
				
			||||||
	$UCMPI=	"cmpldi";	# unsigned compare with immediate
 | 
						$UCMPI=	"cmpldi";	# unsigned compare with immediate
 | 
				
			||||||
	$UCMP=	"cmpld";	# unsigned compare
 | 
						$UCMP=	"cmpld";	# unsigned compare
 | 
				
			||||||
	$COUNTZ="cntlzd";	# count leading zeros
 | 
						$CNTLZ=	"cntlzd";	# count leading zeros
 | 
				
			||||||
	$SHL=	"sld";		# shift left
 | 
						$SHL=	"sld";		# shift left
 | 
				
			||||||
	$SHR=	"srd";		# unsigned shift right
 | 
						$SHR=	"srd";		# unsigned shift right
 | 
				
			||||||
	$SHRI=	"srdi";		# unsigned shift right by immediate	
 | 
						$SHRI=	"srdi";		# unsigned shift right by immediate	
 | 
				
			||||||
@@ -147,6 +148,7 @@ if ($opf =~ /32\.s/) {
 | 
				
			|||||||
	$CLRU=	"clrldi";	# clear upper bits
 | 
						$CLRU=	"clrldi";	# clear upper bits
 | 
				
			||||||
	$INSR=	"insrdi";	# insert right 
 | 
						$INSR=	"insrdi";	# insert right 
 | 
				
			||||||
	$ROTL=	"rotldi";	# rotate left by immediate
 | 
						$ROTL=	"rotldi";	# rotate left by immediate
 | 
				
			||||||
 | 
						$TR=	"td";		# conditional trap
 | 
				
			||||||
} else { die "nonsense $opf"; }
 | 
					} else { die "nonsense $opf"; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
( defined shift || open STDOUT,">$opf" ) || die "can't open $opf: $!";
 | 
					( defined shift || open STDOUT,">$opf" ) || die "can't open $opf: $!";
 | 
				
			||||||
@@ -1710,17 +1712,12 @@ Lppcasm_add_adios:
 | 
				
			|||||||
	bclr	BO_ALWAYS,CR0_LT	
 | 
						bclr	BO_ALWAYS,CR0_LT	
 | 
				
			||||||
Lppcasm_div1:
 | 
					Lppcasm_div1:
 | 
				
			||||||
	xor	r0,r0,r0		#r0=0
 | 
						xor	r0,r0,r0		#r0=0
 | 
				
			||||||
	$COUNTZ	r7,r5			#r7 = num leading 0s in d.
 | 
						li	r8,$BITS
 | 
				
			||||||
	subfic	r8,r7,$BITS		#r8 = BN_num_bits_word(d)
 | 
						$CNTLZ.	r7,r5			#r7 = num leading 0s in d.
 | 
				
			||||||
	cmpi	0,0,r8,$BITS		#
 | 
						bc	BO_IF,CR0_EQ,Lppcasm_div2	#proceed if no leading zeros
 | 
				
			||||||
	bc	BO_IF,CR0_EQ,Lppcasm_div2	#proceed if (r8==$BITS)	
 | 
						subf	r8,r7,r8		#r8 = BN_num_bits_word(d)
 | 
				
			||||||
	li	r9,1			# r9=1
 | 
						$SHR.	r9,r3,r8		#are there any bits above r8'th?
 | 
				
			||||||
	$SHL	r10,r9,r8		# r9<<=r8
 | 
						$TR	16,r9,r0		#if there're, signal to dump core...
 | 
				
			||||||
	$UCMP	0,r3,r10		#	
 | 
					 | 
				
			||||||
	bc	BO_IF,CR0_GT,Lppcasm_div2	#or if (h > (1<<r8))
 | 
					 | 
				
			||||||
	$UDIV	r3,r3,r0		#if not assert(0) divide by 0!
 | 
					 | 
				
			||||||
					#that's how we signal overflow
 | 
					 | 
				
			||||||
	bclr	BO_ALWAYS,CR0_LT	#return. NEVER REACHED.
 | 
					 | 
				
			||||||
Lppcasm_div2:
 | 
					Lppcasm_div2:
 | 
				
			||||||
	$UCMP	0,r3,r5			#h>=d?
 | 
						$UCMP	0,r3,r5			#h>=d?
 | 
				
			||||||
	bc	BO_IF,CR0_LT,Lppcasm_div3	#goto Lppcasm_div3 if not
 | 
						bc	BO_IF,CR0_LT,Lppcasm_div3	#goto Lppcasm_div3 if not
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,10 +162,14 @@
 | 
				
			|||||||
 * BN_ULONG w;
 | 
					 * BN_ULONG w;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bn_mul_add_words:
 | 
					bn_mul_add_words:
 | 
				
			||||||
 | 
						sra	%o2,%g0,%o2	! signx %o2
 | 
				
			||||||
	brgz,a	%o2,.L_bn_mul_add_words_proceed
 | 
						brgz,a	%o2,.L_bn_mul_add_words_proceed
 | 
				
			||||||
	lduw	[%o1],%g2
 | 
						lduw	[%o1],%g2
 | 
				
			||||||
	retl
 | 
						retl
 | 
				
			||||||
	clr	%o0
 | 
						clr	%o0
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.L_bn_mul_add_words_proceed:
 | 
					.L_bn_mul_add_words_proceed:
 | 
				
			||||||
	srl	%o3,%g0,%o3	! clruw	%o3
 | 
						srl	%o3,%g0,%o3	! clruw	%o3
 | 
				
			||||||
@@ -260,10 +264,14 @@ bn_mul_add_words:
 | 
				
			|||||||
 * BN_ULONG w;
 | 
					 * BN_ULONG w;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bn_mul_words:
 | 
					bn_mul_words:
 | 
				
			||||||
 | 
						sra	%o2,%g0,%o2	! signx %o2
 | 
				
			||||||
	brgz,a	%o2,.L_bn_mul_words_proceeed
 | 
						brgz,a	%o2,.L_bn_mul_words_proceeed
 | 
				
			||||||
	lduw	[%o1],%g2
 | 
						lduw	[%o1],%g2
 | 
				
			||||||
	retl
 | 
						retl
 | 
				
			||||||
	clr	%o0
 | 
						clr	%o0
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.L_bn_mul_words_proceeed:
 | 
					.L_bn_mul_words_proceeed:
 | 
				
			||||||
	srl	%o3,%g0,%o3	! clruw	%o3
 | 
						srl	%o3,%g0,%o3	! clruw	%o3
 | 
				
			||||||
@@ -344,10 +352,14 @@ bn_mul_words:
 | 
				
			|||||||
 * int n;
 | 
					 * int n;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bn_sqr_words:
 | 
					bn_sqr_words:
 | 
				
			||||||
 | 
						sra	%o2,%g0,%o2	! signx %o2
 | 
				
			||||||
	brgz,a	%o2,.L_bn_sqr_words_proceeed
 | 
						brgz,a	%o2,.L_bn_sqr_words_proceeed
 | 
				
			||||||
	lduw	[%o1],%g2
 | 
						lduw	[%o1],%g2
 | 
				
			||||||
	retl
 | 
						retl
 | 
				
			||||||
	clr	%o0
 | 
						clr	%o0
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
						nop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.L_bn_sqr_words_proceeed:
 | 
					.L_bn_sqr_words_proceeed:
 | 
				
			||||||
	andcc	%o2,-4,%g0
 | 
						andcc	%o2,-4,%g0
 | 
				
			||||||
@@ -445,6 +457,7 @@ bn_div_words:
 | 
				
			|||||||
 * int n;
 | 
					 * int n;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bn_add_words:
 | 
					bn_add_words:
 | 
				
			||||||
 | 
						sra	%o3,%g0,%o3	! signx %o3
 | 
				
			||||||
	brgz,a	%o3,.L_bn_add_words_proceed
 | 
						brgz,a	%o3,.L_bn_add_words_proceed
 | 
				
			||||||
	lduw	[%o1],%o4
 | 
						lduw	[%o1],%o4
 | 
				
			||||||
	retl
 | 
						retl
 | 
				
			||||||
@@ -454,7 +467,6 @@ bn_add_words:
 | 
				
			|||||||
	andcc	%o3,-4,%g0
 | 
						andcc	%o3,-4,%g0
 | 
				
			||||||
	bz,pn	%icc,.L_bn_add_words_tail
 | 
						bz,pn	%icc,.L_bn_add_words_tail
 | 
				
			||||||
	addcc	%g0,0,%g0	! clear carry flag
 | 
						addcc	%g0,0,%g0	! clear carry flag
 | 
				
			||||||
	nop
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.L_bn_add_words_loop:		! wow! 32 aligned!
 | 
					.L_bn_add_words_loop:		! wow! 32 aligned!
 | 
				
			||||||
	dec	4,%o3
 | 
						dec	4,%o3
 | 
				
			||||||
@@ -523,6 +535,7 @@ bn_add_words:
 | 
				
			|||||||
 * int n;
 | 
					 * int n;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
bn_sub_words:
 | 
					bn_sub_words:
 | 
				
			||||||
 | 
						sra	%o3,%g0,%o3	! signx %o3
 | 
				
			||||||
	brgz,a	%o3,.L_bn_sub_words_proceed
 | 
						brgz,a	%o3,.L_bn_sub_words_proceed
 | 
				
			||||||
	lduw	[%o1],%o4
 | 
						lduw	[%o1],%o4
 | 
				
			||||||
	retl
 | 
						retl
 | 
				
			||||||
@@ -532,7 +545,6 @@ bn_sub_words:
 | 
				
			|||||||
	andcc	%o3,-4,%g0
 | 
						andcc	%o3,-4,%g0
 | 
				
			||||||
	bz,pn	%icc,.L_bn_sub_words_tail
 | 
						bz,pn	%icc,.L_bn_sub_words_tail
 | 
				
			||||||
	addcc	%g0,0,%g0	! clear carry flag
 | 
						addcc	%g0,0,%g0	! clear carry flag
 | 
				
			||||||
	nop
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.L_bn_sub_words_loop:		! wow! 32 aligned!
 | 
					.L_bn_sub_words_loop:		! wow! 32 aligned!
 | 
				
			||||||
	dec	4,%o3
 | 
						dec	4,%o3
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/bn/bn_err.c */
 | 
					/* crypto/bn/bn_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -125,15 +125,12 @@ static ERR_STRING_DATA BN_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_BN_strings(void)
 | 
					void ERR_load_BN_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(BN_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,BN_str_functs);
 | 
							ERR_load_strings(0,BN_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,BN_str_reasons);
 | 
							ERR_load_strings(0,BN_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,7 @@
 | 
				
			|||||||
#include "cryptlib.h"
 | 
					#include "cryptlib.h"
 | 
				
			||||||
#include "bn_lcl.h"
 | 
					#include "bn_lcl.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *BN_version="Big Number" OPENSSL_VERSION_PTEXT;
 | 
					const char BN_version[]="Big Number" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* For a 32 bit machine
 | 
					/* For a 32 bit machine
 | 
				
			||||||
 * 2 -   4 ==  128
 | 
					 * 2 -   4 ==  128
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,6 +55,59 @@
 | 
				
			|||||||
 * copied and put under another distribution licence
 | 
					 * copied and put under another distribution licence
 | 
				
			||||||
 * [including the GNU Public Licence.]
 | 
					 * [including the GNU Public Licence.]
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					/* ====================================================================
 | 
				
			||||||
 | 
					 * 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
 | 
				
			||||||
 | 
					 * 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.
 | 
				
			||||||
 | 
					 * ====================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This product includes cryptographic software written by Eric Young
 | 
				
			||||||
 | 
					 * (eay@cryptsoft.com).  This product includes software written by Tim
 | 
				
			||||||
 | 
					 * Hudson (tjh@cryptsoft.com).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Details about Montgomery multiplication algorithms can be found at
 | 
					 * Details about Montgomery multiplication algorithms can be found at
 | 
				
			||||||
@@ -350,20 +403,32 @@ BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from)
 | 
				
			|||||||
BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
 | 
					BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock,
 | 
				
			||||||
					const BIGNUM *mod, BN_CTX *ctx)
 | 
										const BIGNUM *mod, BN_CTX *ctx)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	if (*pmont)
 | 
						int got_write_lock = 0;
 | 
				
			||||||
		return *pmont;
 | 
						BN_MONT_CTX *ret;
 | 
				
			||||||
	CRYPTO_w_lock(lock);
 | 
					
 | 
				
			||||||
 | 
						CRYPTO_r_lock(lock);
 | 
				
			||||||
	if (!*pmont)
 | 
						if (!*pmont)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		*pmont = BN_MONT_CTX_new();
 | 
							CRYPTO_r_unlock(lock);
 | 
				
			||||||
		if (*pmont && !BN_MONT_CTX_set(*pmont, mod, ctx))
 | 
							CRYPTO_w_lock(lock);
 | 
				
			||||||
 | 
							got_write_lock = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (!*pmont)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			BN_MONT_CTX_free(*pmont);
 | 
								ret = BN_MONT_CTX_new();
 | 
				
			||||||
			*pmont = NULL;
 | 
								if (ret && !BN_MONT_CTX_set(ret, mod, ctx))
 | 
				
			||||||
 | 
									BN_MONT_CTX_free(ret);
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									*pmont = ret;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						ret = *pmont;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if (got_write_lock)
 | 
				
			||||||
		CRYPTO_w_unlock(lock);
 | 
							CRYPTO_w_unlock(lock);
 | 
				
			||||||
	return *pmont;
 | 
						else
 | 
				
			||||||
 | 
							CRYPTO_r_unlock(lock);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -350,13 +350,14 @@ static int probable_prime(BIGNUM *rnd, int bits)
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
	BN_ULONG mods[NUMPRIMES];
 | 
						BN_ULONG mods[NUMPRIMES];
 | 
				
			||||||
	BN_ULONG delta,d;
 | 
						BN_ULONG delta,maxdelta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
again:
 | 
					again:
 | 
				
			||||||
	if (!BN_rand(rnd,bits,1,1)) return(0);
 | 
						if (!BN_rand(rnd,bits,1,1)) return(0);
 | 
				
			||||||
	/* we now have a random number 'rand' to test. */
 | 
						/* we now have a random number 'rand' to test. */
 | 
				
			||||||
	for (i=1; i<NUMPRIMES; i++)
 | 
						for (i=1; i<NUMPRIMES; i++)
 | 
				
			||||||
		mods[i]=BN_mod_word(rnd,(BN_ULONG)primes[i]);
 | 
							mods[i]=BN_mod_word(rnd,(BN_ULONG)primes[i]);
 | 
				
			||||||
 | 
						maxdelta=BN_MASK2 - primes[NUMPRIMES-1];
 | 
				
			||||||
	delta=0;
 | 
						delta=0;
 | 
				
			||||||
	loop: for (i=1; i<NUMPRIMES; i++)
 | 
						loop: for (i=1; i<NUMPRIMES; i++)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -364,12 +365,8 @@ again:
 | 
				
			|||||||
		 * that gcd(rnd-1,primes) == 1 (except for 2) */
 | 
							 * that gcd(rnd-1,primes) == 1 (except for 2) */
 | 
				
			||||||
		if (((mods[i]+delta)%primes[i]) <= 1)
 | 
							if (((mods[i]+delta)%primes[i]) <= 1)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
			d=delta;
 | 
					 | 
				
			||||||
			delta+=2;
 | 
								delta+=2;
 | 
				
			||||||
			/* perhaps need to check for overflow of
 | 
								if (delta > maxdelta) goto again;
 | 
				
			||||||
			 * delta (but delta can be up to 2^32)
 | 
					 | 
				
			||||||
			 * 21-May-98 eay - added overflow check */
 | 
					 | 
				
			||||||
			if (delta < d) goto again;
 | 
					 | 
				
			||||||
			goto loop;
 | 
								goto loop;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,7 +62,7 @@
 | 
				
			|||||||
#include <openssl/buffer.h>
 | 
					#include <openssl/buffer.h>
 | 
				
			||||||
#include "bn_lcl.h"
 | 
					#include "bn_lcl.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char *Hex="0123456789ABCDEF";
 | 
					static const char Hex[]="0123456789ABCDEF";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Must 'OPENSSL_free' the returned data */
 | 
					/* Must 'OPENSSL_free' the returned data */
 | 
				
			||||||
char *BN_bn2hex(const BIGNUM *a)
 | 
					char *BN_bn2hex(const BIGNUM *a)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/buffer/Makefile
 | 
					# OpenSSL/crypto/buffer/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	buffer
 | 
					DIR=	buffer
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/buffer/buf_err.c */
 | 
					/* crypto/buffer/buf_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -85,15 +85,12 @@ static ERR_STRING_DATA BUF_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_BUF_strings(void)
 | 
					void ERR_load_BUF_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(BUF_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,BUF_str_functs);
 | 
							ERR_load_strings(0,BUF_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,BUF_str_reasons);
 | 
							ERR_load_strings(0,BUF_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/cast/Makefile
 | 
					# OpenSSL/crypto/cast/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	cast
 | 
					DIR=	cast
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,7 @@
 | 
				
			|||||||
#include "cast_lcl.h"
 | 
					#include "cast_lcl.h"
 | 
				
			||||||
#include <openssl/opensslv.h>
 | 
					#include <openssl/opensslv.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *CAST_version="CAST" OPENSSL_VERSION_PTEXT;
 | 
					const char CAST_version[]="CAST" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out,
 | 
					void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out,
 | 
				
			||||||
		      CAST_KEY *ks, int enc)
 | 
							      CAST_KEY *ks, int enc)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/comp/Makefile
 | 
					# OpenSSL/crypto/comp/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	comp
 | 
					DIR=	comp
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -51,32 +51,17 @@ static COMP_METHOD zlib_method={
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
 | 
					#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
 | 
				
			||||||
# include <windows.h>
 | 
					# include <windows.h>
 | 
				
			||||||
 | 
					 | 
				
			||||||
# define Z_CALLCONV _stdcall
 | 
					 | 
				
			||||||
# ifndef ZLIB_SHARED
 | 
					 | 
				
			||||||
#  define ZLIB_SHARED
 | 
					 | 
				
			||||||
# endif
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
# define Z_CALLCONV
 | 
					 | 
				
			||||||
#endif /* !(OPENSSL_SYS_WINDOWS || OPENSSL_SYS_WIN32) */
 | 
					#endif /* !(OPENSSL_SYS_WINDOWS || OPENSSL_SYS_WIN32) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ZLIB_SHARED
 | 
					#ifdef ZLIB_SHARED
 | 
				
			||||||
#include <openssl/dso.h>
 | 
					#include <openssl/dso.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Prototypes for built in stubs */
 | 
					 | 
				
			||||||
static int stub_compress(Bytef *dest,uLongf *destLen,
 | 
					 | 
				
			||||||
	const Bytef *source, uLong sourceLen);
 | 
					 | 
				
			||||||
static int stub_inflateEnd(z_streamp strm);
 | 
					 | 
				
			||||||
static int stub_inflate(z_streamp strm, int flush);
 | 
					 | 
				
			||||||
static int stub_inflateInit_(z_streamp strm, const char * version,
 | 
					 | 
				
			||||||
	int stream_size);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Function pointers */
 | 
					/* Function pointers */
 | 
				
			||||||
typedef int (Z_CALLCONV *compress_ft)(Bytef *dest,uLongf *destLen,
 | 
					typedef int (*compress_ft)(Bytef *dest,uLongf *destLen,
 | 
				
			||||||
	const Bytef *source, uLong sourceLen);
 | 
						const Bytef *source, uLong sourceLen);
 | 
				
			||||||
typedef int (Z_CALLCONV *inflateEnd_ft)(z_streamp strm);
 | 
					typedef int (*inflateEnd_ft)(z_streamp strm);
 | 
				
			||||||
typedef int (Z_CALLCONV *inflate_ft)(z_streamp strm, int flush);
 | 
					typedef int (*inflate_ft)(z_streamp strm, int flush);
 | 
				
			||||||
typedef int (Z_CALLCONV *inflateInit__ft)(z_streamp strm,
 | 
					typedef int (*inflateInit__ft)(z_streamp strm,
 | 
				
			||||||
	const char * version, int stream_size);
 | 
						const char * version, int stream_size);
 | 
				
			||||||
static compress_ft	p_compress=NULL;
 | 
					static compress_ft	p_compress=NULL;
 | 
				
			||||||
static inflateEnd_ft	p_inflateEnd=NULL;
 | 
					static inflateEnd_ft	p_inflateEnd=NULL;
 | 
				
			||||||
@@ -86,10 +71,10 @@ static inflateInit__ft	p_inflateInit_=NULL;
 | 
				
			|||||||
static int zlib_loaded = 0;     /* only attempt to init func pts once */
 | 
					static int zlib_loaded = 0;     /* only attempt to init func pts once */
 | 
				
			||||||
static DSO *zlib_dso = NULL;
 | 
					static DSO *zlib_dso = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define compress                stub_compress
 | 
					#define compress                p_compress
 | 
				
			||||||
#define inflateEnd              stub_inflateEnd
 | 
					#define inflateEnd              p_inflateEnd
 | 
				
			||||||
#define inflate                 stub_inflate
 | 
					#define inflate                 p_inflate
 | 
				
			||||||
#define inflateInit_            stub_inflateInit_
 | 
					#define inflateInit_            p_inflateInit_
 | 
				
			||||||
#endif /* ZLIB_SHARED */
 | 
					#endif /* ZLIB_SHARED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int zlib_compress_block(COMP_CTX *ctx, unsigned char *out,
 | 
					static int zlib_compress_block(COMP_CTX *ctx, unsigned char *out,
 | 
				
			||||||
@@ -193,16 +178,6 @@ COMP_METHOD *COMP_zlib(void)
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
 | 
					#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
 | 
				
			||||||
		zlib_dso = DSO_load(NULL, "ZLIB1", NULL, 0);
 | 
							zlib_dso = DSO_load(NULL, "ZLIB1", NULL, 0);
 | 
				
			||||||
		if (!zlib_dso)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
			zlib_dso = DSO_load(NULL, "ZLIB", NULL, 0);
 | 
					 | 
				
			||||||
			if (zlib_dso)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
				/* Clear the errors from the first failed
 | 
					 | 
				
			||||||
				   DSO_load() */
 | 
					 | 
				
			||||||
				ERR_clear_error();
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
		zlib_dso = DSO_load(NULL, "z", NULL, 0);
 | 
							zlib_dso = DSO_load(NULL, "z", NULL, 0);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -220,11 +195,17 @@ COMP_METHOD *COMP_zlib(void)
 | 
				
			|||||||
			p_inflateInit_
 | 
								p_inflateInit_
 | 
				
			||||||
				= (inflateInit__ft) DSO_bind_func(zlib_dso,
 | 
									= (inflateInit__ft) DSO_bind_func(zlib_dso,
 | 
				
			||||||
					"inflateInit_");
 | 
										"inflateInit_");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (p_compress && p_inflateEnd && p_inflate
 | 
				
			||||||
 | 
									&& p_inflateInit_)
 | 
				
			||||||
				zlib_loaded++;
 | 
									zlib_loaded++;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef ZLIB_SHARED
 | 
				
			||||||
 | 
						if (zlib_loaded)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#if defined(ZLIB) || defined(ZLIB_SHARED)
 | 
					#if defined(ZLIB) || defined(ZLIB_SHARED)
 | 
				
			||||||
		meth = &zlib_method;
 | 
							meth = &zlib_method;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -232,42 +213,3 @@ COMP_METHOD *COMP_zlib(void)
 | 
				
			|||||||
	return(meth);
 | 
						return(meth);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ZLIB_SHARED
 | 
					 | 
				
			||||||
/* Stubs for each function to be dynamicly loaded */
 | 
					 | 
				
			||||||
static int 
 | 
					 | 
				
			||||||
stub_compress(Bytef *dest,uLongf *destLen,const Bytef *source, uLong sourceLen)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	if (p_compress)
 | 
					 | 
				
			||||||
		return(p_compress(dest,destLen,source,sourceLen));
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		return(Z_MEM_ERROR);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int
 | 
					 | 
				
			||||||
stub_inflateEnd(z_streamp strm)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	if ( p_inflateEnd )
 | 
					 | 
				
			||||||
		return(p_inflateEnd(strm));
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		return(Z_MEM_ERROR);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int
 | 
					 | 
				
			||||||
stub_inflate(z_streamp strm, int flush)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	if ( p_inflate )
 | 
					 | 
				
			||||||
		return(p_inflate(strm,flush));
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		return(Z_MEM_ERROR);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int
 | 
					 | 
				
			||||||
stub_inflateInit_(z_streamp strm, const char * version, int stream_size)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	if ( p_inflateInit_ )
 | 
					 | 
				
			||||||
		return(p_inflateInit_(strm,version,stream_size));
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		return(Z_MEM_ERROR);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif /* ZLIB_SHARED */
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/conf/Makefile
 | 
					# OpenSSL/crypto/conf/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	conf
 | 
					DIR=	conf
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,7 +88,7 @@ static int def_dump(const CONF *conf, BIO *bp);
 | 
				
			|||||||
static int def_is_number(const CONF *conf, char c);
 | 
					static int def_is_number(const CONF *conf, char c);
 | 
				
			||||||
static int def_to_int(const CONF *conf, char c);
 | 
					static int def_to_int(const CONF *conf, char c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *CONF_def_version="CONF_def" OPENSSL_VERSION_PTEXT;
 | 
					const char CONF_def_version[]="CONF_def" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CONF_METHOD default_method = {
 | 
					static CONF_METHOD default_method = {
 | 
				
			||||||
	"OpenSSL default",
 | 
						"OpenSSL default",
 | 
				
			||||||
@@ -613,13 +613,13 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
 | 
				
			|||||||
				e++;
 | 
									e++;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			/* So at this point we have
 | 
								/* So at this point we have
 | 
				
			||||||
			 * ns which is the start of the name string which is
 | 
								 * np which is the start of the name string which is
 | 
				
			||||||
			 *   '\0' terminated. 
 | 
								 *   '\0' terminated. 
 | 
				
			||||||
			 * cs which is the start of the section string which is
 | 
								 * cp which is the start of the section string which is
 | 
				
			||||||
			 *   '\0' terminated.
 | 
								 *   '\0' terminated.
 | 
				
			||||||
			 * e is the 'next point after'.
 | 
								 * e is the 'next point after'.
 | 
				
			||||||
			 * r and s are the chars replaced by the '\0'
 | 
								 * r and rr are the chars replaced by the '\0'
 | 
				
			||||||
			 * rp and sp is where 'r' and 's' came from.
 | 
								 * rp and rrp is where 'r' and 'rr' came from.
 | 
				
			||||||
			 */
 | 
								 */
 | 
				
			||||||
			p=_CONF_get_string(conf,cp,np);
 | 
								p=_CONF_get_string(conf,cp,np);
 | 
				
			||||||
			if (rrp != NULL) *rrp=rr;
 | 
								if (rrp != NULL) *rrp=rr;
 | 
				
			||||||
@@ -638,6 +638,11 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from)
 | 
				
			|||||||
			   points at.  /RL */
 | 
								   points at.  /RL */
 | 
				
			||||||
			len -= e-from;
 | 
								len -= e-from;
 | 
				
			||||||
			from=e;
 | 
								from=e;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								/* In case there were no braces or parenthesis around
 | 
				
			||||||
 | 
								   the variable reference, we have to put back the
 | 
				
			||||||
 | 
								   character that was replaced with a '\0'.  /RL */
 | 
				
			||||||
 | 
								*rp = r;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			buf->data[to++]= *(from++);
 | 
								buf->data[to++]= *(from++);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/conf/conf_err.c */
 | 
					/* crypto/conf/conf_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -116,15 +116,12 @@ static ERR_STRING_DATA CONF_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_CONF_strings(void)
 | 
					void ERR_load_CONF_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(CONF_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,CONF_str_functs);
 | 
							ERR_load_strings(0,CONF_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,CONF_str_reasons);
 | 
							ERR_load_strings(0,CONF_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,7 +63,7 @@
 | 
				
			|||||||
#include <openssl/conf_api.h>
 | 
					#include <openssl/conf_api.h>
 | 
				
			||||||
#include <openssl/lhash.h>
 | 
					#include <openssl/lhash.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *CONF_version="CONF" OPENSSL_VERSION_PTEXT;
 | 
					const char CONF_version[]="CONF" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CONF_METHOD *default_CONF_method=NULL;
 | 
					static CONF_METHOD *default_CONF_method=NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/cpt_err.c */
 | 
					/* crypto/cpt_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -92,15 +92,12 @@ static ERR_STRING_DATA CRYPTO_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_CRYPTO_strings(void)
 | 
					void ERR_load_CRYPTO_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(CRYPTO_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,CRYPTO_str_functs);
 | 
							ERR_load_strings(0,CRYPTO_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,CRYPTO_str_reasons);
 | 
							ERR_load_strings(0,CRYPTO_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,7 +70,7 @@ DECLARE_STACK_OF(CRYPTO_dynlock)
 | 
				
			|||||||
IMPLEMENT_STACK_OF(CRYPTO_dynlock)
 | 
					IMPLEMENT_STACK_OF(CRYPTO_dynlock)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* real #defines in crypto.h, keep these upto date */
 | 
					/* real #defines in crypto.h, keep these upto date */
 | 
				
			||||||
static const char* lock_names[CRYPTO_NUM_LOCKS] =
 | 
					static const char* const lock_names[CRYPTO_NUM_LOCKS] =
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	"<<ERROR>>",
 | 
						"<<ERROR>>",
 | 
				
			||||||
	"err",
 | 
						"err",
 | 
				
			||||||
@@ -734,5 +734,11 @@ int fips_clear_owning_thread(void)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned char *fips_signature_witness(void)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						extern unsigned char FIPS_signature[];
 | 
				
			||||||
 | 
						return FIPS_signature;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
#endif /* OPENSSL_FIPS */
 | 
					#endif /* OPENSSL_FIPS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -247,7 +247,7 @@ $ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ -
 | 
				
			|||||||
$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
 | 
					$ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ -
 | 
				
			||||||
	"v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
 | 
						"v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ -
 | 
				
			||||||
	"v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
 | 
						"v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ -
 | 
				
			||||||
	"v3_ocsp,v3_akeya,v3_pcia,v3_pci"
 | 
						"v3_ocsp,v3_akeya,v3_pcia,v3_pci,v3_hex"
 | 
				
			||||||
$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
 | 
					$ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap"
 | 
				
			||||||
$ LIB_TXT_DB = "txt_db"
 | 
					$ LIB_TXT_DB = "txt_db"
 | 
				
			||||||
$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
 | 
					$ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ -
 | 
				
			||||||
@@ -265,10 +265,15 @@ $ LIB_KRB5 = "krb5_asn"
 | 
				
			|||||||
$!
 | 
					$!
 | 
				
			||||||
$! Setup exceptional compilations
 | 
					$! Setup exceptional compilations
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
 | 
					$ ! Add definitions for no threads on OpenVMS 7.1 and higher
 | 
				
			||||||
$ COMPILEWITH_CC3 = ",bss_rtcp,"
 | 
					$ COMPILEWITH_CC3 = ",bss_rtcp,"
 | 
				
			||||||
 | 
					$ ! Disable the DOLLARID warning
 | 
				
			||||||
$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,"
 | 
					$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,"
 | 
				
			||||||
 | 
					$ ! Disable disjoint optimization
 | 
				
			||||||
$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
 | 
					$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
 | 
				
			||||||
                    "sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
 | 
					                    "sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
 | 
				
			||||||
 | 
					$ ! Disable the MIXLINKAGE warning
 | 
				
			||||||
 | 
					$ COMPILEWITH_CC6 = ",enc_read,set_key,"
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
$! Figure Out What Other Modules We Are To Build.
 | 
					$! Figure Out What Other Modules We Are To Build.
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
@@ -497,11 +502,16 @@ $       IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5
 | 
				
			|||||||
$       THEN
 | 
					$       THEN
 | 
				
			||||||
$         CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
 | 
					$         CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
 | 
				
			||||||
$       ELSE
 | 
					$       ELSE
 | 
				
			||||||
 | 
					$         IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6
 | 
				
			||||||
 | 
					$         THEN
 | 
				
			||||||
 | 
					$           CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
 | 
				
			||||||
 | 
					$         ELSE
 | 
				
			||||||
$           CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
 | 
					$           CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
 | 
				
			||||||
$         ENDIF
 | 
					$         ENDIF
 | 
				
			||||||
$       ENDIF
 | 
					$       ENDIF
 | 
				
			||||||
$     ENDIF
 | 
					$     ENDIF
 | 
				
			||||||
$   ENDIF
 | 
					$   ENDIF
 | 
				
			||||||
 | 
					$ ENDIF
 | 
				
			||||||
$ IF STATE .EQS. "LIB"
 | 
					$ IF STATE .EQS. "LIB"
 | 
				
			||||||
$ THEN 
 | 
					$ THEN 
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
@@ -1077,14 +1087,18 @@ $   THEN
 | 
				
			|||||||
$     IF CCDISABLEWARNINGS .EQS. ""
 | 
					$     IF CCDISABLEWARNINGS .EQS. ""
 | 
				
			||||||
$     THEN
 | 
					$     THEN
 | 
				
			||||||
$       CC4DISABLEWARNINGS = "DOLLARID"
 | 
					$       CC4DISABLEWARNINGS = "DOLLARID"
 | 
				
			||||||
 | 
					$       CC6DISABLEWARNINGS = "MIXLINKAGE"
 | 
				
			||||||
$     ELSE
 | 
					$     ELSE
 | 
				
			||||||
$       CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
 | 
					$       CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
 | 
				
			||||||
 | 
					$       CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE"
 | 
				
			||||||
$       CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
 | 
					$       CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
 | 
				
			||||||
$     ENDIF
 | 
					$     ENDIF
 | 
				
			||||||
$     CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
 | 
					$     CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
 | 
				
			||||||
 | 
					$     CC6DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))"
 | 
				
			||||||
$   ELSE
 | 
					$   ELSE
 | 
				
			||||||
$     CCDISABLEWARNINGS = ""
 | 
					$     CCDISABLEWARNINGS = ""
 | 
				
			||||||
$     CC4DISABLEWARNINGS = ""
 | 
					$     CC4DISABLEWARNINGS = ""
 | 
				
			||||||
 | 
					$     CC6DISABLEWARNINGS = ""
 | 
				
			||||||
$   ENDIF
 | 
					$   ENDIF
 | 
				
			||||||
$   CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
 | 
					$   CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
 | 
				
			||||||
$   CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
 | 
					$   CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
 | 
				
			||||||
@@ -1095,6 +1109,7 @@ $   ELSE
 | 
				
			|||||||
$     CC5 = CC + "/NOOPTIMIZE"
 | 
					$     CC5 = CC + "/NOOPTIMIZE"
 | 
				
			||||||
$   ENDIF
 | 
					$   ENDIF
 | 
				
			||||||
$   CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
 | 
					$   CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
 | 
				
			||||||
 | 
					$   CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
$!  Show user the result
 | 
					$!  Show user the result
 | 
				
			||||||
$!
 | 
					$!
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/des/Makefile
 | 
					# OpenSSL/crypto/des/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	des
 | 
					DIR=	des
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,5 +67,5 @@
 | 
				
			|||||||
#define DES_version OSSL_DES_version
 | 
					#define DES_version OSSL_DES_version
 | 
				
			||||||
#define libdes_version OSSL_libdes_version
 | 
					#define libdes_version OSSL_libdes_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPENSSL_EXTERN const char *OSSL_DES_version;	/* SSLeay version string */
 | 
					OPENSSL_EXTERN const char OSSL_DES_version[];	/* SSLeay version string */
 | 
				
			||||||
OPENSSL_EXTERN const char *OSSL_libdes_version;	/* old libdes version string */
 | 
					OPENSSL_EXTERN const char OSSL_libdes_version[];	/* old libdes version string */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,8 +62,8 @@
 | 
				
			|||||||
#include <openssl/opensslv.h>
 | 
					#include <openssl/opensslv.h>
 | 
				
			||||||
#include <openssl/bio.h>
 | 
					#include <openssl/bio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPENSSL_GLOBAL const char *libdes_version="libdes" OPENSSL_VERSION_PTEXT;
 | 
					OPENSSL_GLOBAL const char libdes_version[]="libdes" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
OPENSSL_GLOBAL const char *DES_version="DES" OPENSSL_VERSION_PTEXT;
 | 
					OPENSSL_GLOBAL const char DES_version[]="DES" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *DES_options(void)
 | 
					const char *DES_options(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/dh/Makefile
 | 
					# OpenSSL/crypto/dh/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	dh
 | 
					DIR=	dh
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,6 +70,10 @@
 | 
				
			|||||||
#include <openssl/crypto.h>
 | 
					#include <openssl/crypto.h>
 | 
				
			||||||
#include <openssl/ossl_typ.h>
 | 
					#include <openssl/ossl_typ.h>
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
					#ifndef OPENSSL_DH_MAX_MODULUS_BITS
 | 
				
			||||||
 | 
					# define OPENSSL_DH_MAX_MODULUS_BITS	10000
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DH_FLAG_CACHE_MONT_P     0x01
 | 
					#define DH_FLAG_CACHE_MONT_P     0x01
 | 
				
			||||||
#define DH_FLAG_NO_EXP_CONSTTIME 0x02 /* new with 0.9.7h; the built-in DH
 | 
					#define DH_FLAG_NO_EXP_CONSTTIME 0x02 /* new with 0.9.7h; the built-in DH
 | 
				
			||||||
                                       * implementation now uses constant time
 | 
					                                       * implementation now uses constant time
 | 
				
			||||||
@@ -206,6 +210,7 @@ void ERR_load_DH_strings(void);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* Reason codes. */
 | 
					/* Reason codes. */
 | 
				
			||||||
#define DH_R_BAD_GENERATOR				 101
 | 
					#define DH_R_BAD_GENERATOR				 101
 | 
				
			||||||
 | 
					#define DH_R_MODULUS_TOO_LARGE				 103
 | 
				
			||||||
#define DH_R_NO_PRIVATE_VALUE				 100
 | 
					#define DH_R_NO_PRIVATE_VALUE				 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef  __cplusplus
 | 
					#ifdef  __cplusplus
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/dh/dh_err.c */
 | 
					/* crypto/dh/dh_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -82,6 +82,7 @@ static ERR_STRING_DATA DH_str_functs[]=
 | 
				
			|||||||
static ERR_STRING_DATA DH_str_reasons[]=
 | 
					static ERR_STRING_DATA DH_str_reasons[]=
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
{ERR_REASON(DH_R_BAD_GENERATOR)          ,"bad generator"},
 | 
					{ERR_REASON(DH_R_BAD_GENERATOR)          ,"bad generator"},
 | 
				
			||||||
 | 
					{ERR_REASON(DH_R_MODULUS_TOO_LARGE)      ,"modulus too large"},
 | 
				
			||||||
{ERR_REASON(DH_R_NO_PRIVATE_VALUE)       ,"no private value"},
 | 
					{ERR_REASON(DH_R_NO_PRIVATE_VALUE)       ,"no private value"},
 | 
				
			||||||
{0,NULL}
 | 
					{0,NULL}
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -90,15 +91,12 @@ static ERR_STRING_DATA DH_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_DH_strings(void)
 | 
					void ERR_load_DH_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(DH_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,DH_str_functs);
 | 
							ERR_load_strings(0,DH_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,DH_str_reasons);
 | 
							ERR_load_strings(0,DH_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -175,11 +175,17 @@ err:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
 | 
					static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	BN_CTX *ctx;
 | 
						BN_CTX *ctx=NULL;
 | 
				
			||||||
	BN_MONT_CTX *mont=NULL;
 | 
						BN_MONT_CTX *mont=NULL;
 | 
				
			||||||
	BIGNUM *tmp;
 | 
						BIGNUM *tmp;
 | 
				
			||||||
	int ret= -1;
 | 
						int ret= -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (BN_num_bits(dh->p) > OPENSSL_DH_MAX_MODULUS_BITS)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							DHerr(DH_F_DH_COMPUTE_KEY,DH_R_MODULUS_TOO_LARGE);
 | 
				
			||||||
 | 
							goto err;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctx = BN_CTX_new();
 | 
						ctx = BN_CTX_new();
 | 
				
			||||||
	if (ctx == NULL) goto err;
 | 
						if (ctx == NULL) goto err;
 | 
				
			||||||
	BN_CTX_start(ctx);
 | 
						BN_CTX_start(ctx);
 | 
				
			||||||
@@ -213,8 +219,11 @@ static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	ret=BN_bn2bin(tmp,key);
 | 
						ret=BN_bn2bin(tmp,key);
 | 
				
			||||||
err:
 | 
					err:
 | 
				
			||||||
 | 
						if (ctx != NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		BN_CTX_end(ctx);
 | 
							BN_CTX_end(ctx);
 | 
				
			||||||
		BN_CTX_free(ctx);
 | 
							BN_CTX_free(ctx);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	return(ret);
 | 
						return(ret);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
#include <openssl/engine.h>
 | 
					#include <openssl/engine.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *DH_version="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
 | 
					const char DH_version[]="Diffie-Hellman" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const DH_METHOD *default_DH_method = NULL;
 | 
					static const DH_METHOD *default_DH_method = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/dsa/Makefile
 | 
					# OpenSSL/crypto/dsa/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	dsa
 | 
					DIR=	dsa
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,6 +79,10 @@
 | 
				
			|||||||
# include <openssl/dh.h>
 | 
					# include <openssl/dh.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef OPENSSL_DSA_MAX_MODULUS_BITS
 | 
				
			||||||
 | 
					# define OPENSSL_DSA_MAX_MODULUS_BITS	10000
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DSA_FLAG_CACHE_MONT_P	0x01
 | 
					#define DSA_FLAG_CACHE_MONT_P	0x01
 | 
				
			||||||
#define DSA_FLAG_NO_EXP_CONSTTIME       0x02 /* new with 0.9.7h; the built-in DSA
 | 
					#define DSA_FLAG_NO_EXP_CONSTTIME       0x02 /* new with 0.9.7h; the built-in DSA
 | 
				
			||||||
                                              * implementation now uses constant time
 | 
					                                              * implementation now uses constant time
 | 
				
			||||||
@@ -88,6 +92,13 @@
 | 
				
			|||||||
                                              * be used for all exponents.
 | 
					                                              * be used for all exponents.
 | 
				
			||||||
                                              */
 | 
					                                              */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* If this flag is set external DSA_METHOD callbacks are allowed in FIPS mode
 | 
				
			||||||
 | 
					 * it is then the applications responsibility to ensure the external method
 | 
				
			||||||
 | 
					 * is compliant.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW	0x04
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(OPENSSL_FIPS)
 | 
					#if defined(OPENSSL_FIPS)
 | 
				
			||||||
#define FIPS_DSA_SIZE_T	int
 | 
					#define FIPS_DSA_SIZE_T	int
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -252,8 +263,10 @@ void ERR_load_DSA_strings(void);
 | 
				
			|||||||
#define DSA_F_SIG_CB					 114
 | 
					#define DSA_F_SIG_CB					 114
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Reason codes. */
 | 
					/* Reason codes. */
 | 
				
			||||||
 | 
					#define DSA_R_BAD_Q_VALUE				 102
 | 
				
			||||||
#define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE		 100
 | 
					#define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE		 100
 | 
				
			||||||
#define DSA_R_MISSING_PARAMETERS			 101
 | 
					#define DSA_R_MISSING_PARAMETERS			 101
 | 
				
			||||||
 | 
					#define DSA_R_MODULUS_TOO_LARGE				 103
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef  __cplusplus
 | 
					#ifdef  __cplusplus
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -66,14 +66,13 @@
 | 
				
			|||||||
static int sig_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
					static int sig_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if(operation == ASN1_OP_NEW_PRE) {
 | 
						if(operation == ASN1_OP_NEW_PRE) {
 | 
				
			||||||
		DSA_SIG *sig;
 | 
							*pval = (ASN1_VALUE *)DSA_SIG_new();
 | 
				
			||||||
		sig = OPENSSL_malloc(sizeof(DSA_SIG));
 | 
							if(*pval) return 2;
 | 
				
			||||||
		sig->r = NULL;
 | 
					 | 
				
			||||||
		sig->s = NULL;
 | 
					 | 
				
			||||||
		*pval = (ASN1_VALUE *)sig;
 | 
					 | 
				
			||||||
		if(sig) return 2;
 | 
					 | 
				
			||||||
		DSAerr(DSA_F_SIG_CB, ERR_R_MALLOC_FAILURE);
 | 
					 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 | 
						} else if(operation == ASN1_OP_FREE_PRE) {
 | 
				
			||||||
 | 
							DSA_SIG_free((DSA_SIG *)*pval);
 | 
				
			||||||
 | 
							*pval = NULL;
 | 
				
			||||||
 | 
							return 2;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -83,7 +82,7 @@ ASN1_SEQUENCE_cb(DSA_SIG, sig_cb) = {
 | 
				
			|||||||
	ASN1_SIMPLE(DSA_SIG, s, CBIGNUM)
 | 
						ASN1_SIMPLE(DSA_SIG, s, CBIGNUM)
 | 
				
			||||||
} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG)
 | 
					} ASN1_SEQUENCE_END_cb(DSA_SIG, DSA_SIG)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IMPLEMENT_ASN1_FUNCTIONS_const(DSA_SIG)
 | 
					IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA_SIG,DSA_SIG,DSA_SIG)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Override the default free and new methods */
 | 
					/* Override the default free and new methods */
 | 
				
			||||||
static int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
					static int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it)
 | 
				
			||||||
@@ -138,3 +137,61 @@ ASN1_CHOICE_cb(DSAPublicKey, dsa_cb) = {
 | 
				
			|||||||
} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params)
 | 
					} ASN1_CHOICE_END_cb(DSA, DSAPublicKey, write_params)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey)
 | 
					IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(DSA, DSAPublicKey, DSAPublicKey)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
 | 
				
			||||||
 | 
						     unsigned int *siglen, DSA *dsa)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						DSA_SIG *s;
 | 
				
			||||||
 | 
						s=DSA_do_sign(dgst,dlen,dsa);
 | 
				
			||||||
 | 
						if (s == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							*siglen=0;
 | 
				
			||||||
 | 
							return(0);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						*siglen=i2d_DSA_SIG(s,&sig);
 | 
				
			||||||
 | 
						DSA_SIG_free(s);
 | 
				
			||||||
 | 
						return(1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* data has already been hashed (probably with SHA or SHA-1). */
 | 
				
			||||||
 | 
					/* returns
 | 
				
			||||||
 | 
					 *      1: correct signature
 | 
				
			||||||
 | 
					 *      0: incorrect signature
 | 
				
			||||||
 | 
					 *     -1: error
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
 | 
				
			||||||
 | 
						     const unsigned char *sigbuf, int siglen, DSA *dsa)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						DSA_SIG *s;
 | 
				
			||||||
 | 
						int ret=-1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						s = DSA_SIG_new();
 | 
				
			||||||
 | 
						if (s == NULL) return(ret);
 | 
				
			||||||
 | 
						if (d2i_DSA_SIG(&s,&sigbuf,siglen) == NULL) goto err;
 | 
				
			||||||
 | 
						ret=DSA_do_verify(dgst,dgst_len,s,dsa);
 | 
				
			||||||
 | 
					err:
 | 
				
			||||||
 | 
						DSA_SIG_free(s);
 | 
				
			||||||
 | 
						return(ret);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int DSA_size(const DSA *r)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						int ret,i;
 | 
				
			||||||
 | 
						ASN1_INTEGER bs;
 | 
				
			||||||
 | 
						unsigned char buf[4];	/* 4 bytes looks really small.
 | 
				
			||||||
 | 
									   However, i2d_ASN1_INTEGER() will not look
 | 
				
			||||||
 | 
									   beyond the first byte, as long as the second
 | 
				
			||||||
 | 
									   parameter is NULL. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i=BN_num_bits(r->q);
 | 
				
			||||||
 | 
						bs.length=(i+7)/8;
 | 
				
			||||||
 | 
						bs.data=buf;
 | 
				
			||||||
 | 
						bs.type=V_ASN1_INTEGER;
 | 
				
			||||||
 | 
						/* If the top bit is set the asn1 encoding is 1 larger. */
 | 
				
			||||||
 | 
						buf[0]=0xff;	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						i=i2d_ASN1_INTEGER(&bs,NULL);
 | 
				
			||||||
 | 
						i+=i; /* r and s */
 | 
				
			||||||
 | 
						ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
 | 
				
			||||||
 | 
						return(ret);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/dsa/dsa_err.c */
 | 
					/* crypto/dsa/dsa_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -89,8 +89,10 @@ static ERR_STRING_DATA DSA_str_functs[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static ERR_STRING_DATA DSA_str_reasons[]=
 | 
					static ERR_STRING_DATA DSA_str_reasons[]=
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
					{ERR_REASON(DSA_R_BAD_Q_VALUE)           ,"bad q value"},
 | 
				
			||||||
{ERR_REASON(DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE),"data too large for key size"},
 | 
					{ERR_REASON(DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE),"data too large for key size"},
 | 
				
			||||||
{ERR_REASON(DSA_R_MISSING_PARAMETERS)    ,"missing parameters"},
 | 
					{ERR_REASON(DSA_R_MISSING_PARAMETERS)    ,"missing parameters"},
 | 
				
			||||||
 | 
					{ERR_REASON(DSA_R_MODULUS_TOO_LARGE)     ,"modulus too large"},
 | 
				
			||||||
{0,NULL}
 | 
					{0,NULL}
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -98,15 +100,12 @@ static ERR_STRING_DATA DSA_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_DSA_strings(void)
 | 
					void ERR_load_DSA_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(DSA_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,DSA_str_functs);
 | 
							ERR_load_strings(0,DSA_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,DSA_str_reasons);
 | 
							ERR_load_strings(0,DSA_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,7 @@
 | 
				
			|||||||
#include <openssl/engine.h>
 | 
					#include <openssl/engine.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *DSA_version="DSA" OPENSSL_VERSION_PTEXT;
 | 
					const char DSA_version[]="DSA" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const DSA_METHOD *default_DSA_method = NULL;
 | 
					static const DSA_METHOD *default_DSA_method = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -230,28 +230,6 @@ int DSA_up_ref(DSA *r)
 | 
				
			|||||||
	return ((i > 1) ? 1 : 0);
 | 
						return ((i > 1) ? 1 : 0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int DSA_size(const DSA *r)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	int ret,i;
 | 
					 | 
				
			||||||
	ASN1_INTEGER bs;
 | 
					 | 
				
			||||||
	unsigned char buf[4];	/* 4 bytes looks really small.
 | 
					 | 
				
			||||||
				   However, i2d_ASN1_INTEGER() will not look
 | 
					 | 
				
			||||||
				   beyond the first byte, as long as the second
 | 
					 | 
				
			||||||
				   parameter is NULL. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	i=BN_num_bits(r->q);
 | 
					 | 
				
			||||||
	bs.length=(i+7)/8;
 | 
					 | 
				
			||||||
	bs.data=buf;
 | 
					 | 
				
			||||||
	bs.type=V_ASN1_INTEGER;
 | 
					 | 
				
			||||||
	/* If the top bit is set the asn1 encoding is 1 larger. */
 | 
					 | 
				
			||||||
	buf[0]=0xff;	
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	i=i2d_ASN1_INTEGER(&bs,NULL);
 | 
					 | 
				
			||||||
	i+=i; /* r and s */
 | 
					 | 
				
			||||||
	ret=ASN1_object_size(1,i,V_ASN1_SEQUENCE);
 | 
					 | 
				
			||||||
	return(ret);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
 | 
					int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
 | 
				
			||||||
	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
 | 
						     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -269,6 +247,29 @@ void *DSA_get_ex_data(DSA *d, int idx)
 | 
				
			|||||||
	return(CRYPTO_get_ex_data(&d->ex_data,idx));
 | 
						return(CRYPTO_get_ex_data(&d->ex_data,idx));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DSA_SIG *DSA_SIG_new(void)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						DSA_SIG *sig;
 | 
				
			||||||
 | 
						sig = OPENSSL_malloc(sizeof(DSA_SIG));
 | 
				
			||||||
 | 
						if (!sig)
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
 | 
						sig->r = NULL;
 | 
				
			||||||
 | 
						sig->s = NULL;
 | 
				
			||||||
 | 
						return sig;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DSA_SIG_free(DSA_SIG *sig)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						if (sig)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							if (sig->r)
 | 
				
			||||||
 | 
								BN_free(sig->r);
 | 
				
			||||||
 | 
							if (sig->s)
 | 
				
			||||||
 | 
								BN_free(sig->s);
 | 
				
			||||||
 | 
							OPENSSL_free(sig);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef OPENSSL_NO_DH
 | 
					#ifndef OPENSSL_NO_DH
 | 
				
			||||||
DH *DSA_dup_DH(const DSA *r)
 | 
					DH *DSA_dup_DH(const DSA *r)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -274,6 +274,18 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
 | 
				
			|||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (BN_num_bits(dsa->q) != 160)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_BAD_Q_VALUE);
 | 
				
			||||||
 | 
							return -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (BN_num_bits(dsa->p) > OPENSSL_DSA_MAX_MODULUS_BITS)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							DSAerr(DSA_F_DSA_DO_VERIFY,DSA_R_MODULUS_TOO_LARGE);
 | 
				
			||||||
 | 
							return -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	BN_init(&u1);
 | 
						BN_init(&u1);
 | 
				
			||||||
	BN_init(&u2);
 | 
						BN_init(&u2);
 | 
				
			||||||
	BN_init(&t1);
 | 
						BN_init(&t1);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,31 +72,18 @@
 | 
				
			|||||||
DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
 | 
					DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
	if(FIPS_mode() && !FIPS_dsa_check(dsa))
 | 
						if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
 | 
				
			||||||
 | 
							&& !FIPS_dsa_check(dsa))
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	return dsa->meth->dsa_do_sign(dgst, dlen, dsa);
 | 
						return dsa->meth->dsa_do_sign(dgst, dlen, dsa);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
 | 
					 | 
				
			||||||
	     unsigned int *siglen, DSA *dsa)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	DSA_SIG *s;
 | 
					 | 
				
			||||||
	s=DSA_do_sign(dgst,dlen,dsa);
 | 
					 | 
				
			||||||
	if (s == NULL)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		*siglen=0;
 | 
					 | 
				
			||||||
		return(0);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	*siglen=i2d_DSA_SIG(s,&sig);
 | 
					 | 
				
			||||||
	DSA_SIG_free(s);
 | 
					 | 
				
			||||||
	return(1);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
 | 
					int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
	if(FIPS_mode() && !FIPS_dsa_check(dsa))
 | 
						if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
 | 
				
			||||||
 | 
							&& !FIPS_dsa_check(dsa))
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp);
 | 
						return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,29 +74,9 @@ int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
 | 
				
			|||||||
		  DSA *dsa)
 | 
							  DSA *dsa)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
	if(FIPS_mode() && !FIPS_dsa_check(dsa))
 | 
						if(FIPS_mode() && !(dsa->flags & DSA_FLAG_FIPS_EXTERNAL_METHOD_ALLOW)
 | 
				
			||||||
 | 
							&& !FIPS_dsa_check(dsa))
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
 | 
						return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/* data has already been hashed (probably with SHA or SHA-1). */
 | 
					 | 
				
			||||||
/* returns
 | 
					 | 
				
			||||||
 *      1: correct signature
 | 
					 | 
				
			||||||
 *      0: incorrect signature
 | 
					 | 
				
			||||||
 *     -1: error
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
 | 
					 | 
				
			||||||
	     const unsigned char *sigbuf, int siglen, DSA *dsa)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	DSA_SIG *s;
 | 
					 | 
				
			||||||
	int ret=-1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	s = DSA_SIG_new();
 | 
					 | 
				
			||||||
	if (s == NULL) return(ret);
 | 
					 | 
				
			||||||
	if (d2i_DSA_SIG(&s,&sigbuf,siglen) == NULL) goto err;
 | 
					 | 
				
			||||||
	ret=DSA_do_verify(dgst,dgst_len,s,dsa);
 | 
					 | 
				
			||||||
err:
 | 
					 | 
				
			||||||
	DSA_SIG_free(s);
 | 
					 | 
				
			||||||
	return(ret);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/dso/Makefile
 | 
					# OpenSSL/crypto/dso/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	dso
 | 
					DIR=	dso
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -294,6 +294,15 @@ static char *dlfcn_name_converter(DSO *dso, const char *filename)
 | 
				
			|||||||
	return(translated);
 | 
						return(translated);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This section uses dladdr() which appears to be a GNU extension, though
 | 
				
			||||||
 | 
					 * some other OS's have adopted it.  Specifically, AIX4, AIX5, and SCO5
 | 
				
			||||||
 | 
					 * do not support dladdr().
 | 
				
			||||||
 | 
					 * No reference to DSO_pathbyaddr() is made, and appears to be a function
 | 
				
			||||||
 | 
					 * which was added during construction of FIPS support in OpenSSL.  It appears
 | 
				
			||||||
 | 
					 * that it has been replaced by FIPS_ref_point() in fipscanister.c
 | 
				
			||||||
 | 
					 * Removing the below code fixes compile-time issues on the afore-mentioned
 | 
				
			||||||
 | 
					 * OS's */
 | 
				
			||||||
 | 
					#ifdef DEADBEEF_0
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
static void dlfcn_ref_point(){}
 | 
					static void dlfcn_ref_point(){}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -322,4 +331,6 @@ int DSO_pathbyaddr(void *addr,char *path,int sz)
 | 
				
			|||||||
	return -1;
 | 
						return -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* DEADBEEF_0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* DSO_DLFCN */
 | 
					#endif /* DSO_DLFCN */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/dso/dso_err.c */
 | 
					/* crypto/dso/dso_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -125,15 +125,12 @@ static ERR_STRING_DATA DSO_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_DSO_strings(void)
 | 
					void ERR_load_DSO_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(DSO_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,DSO_str_functs);
 | 
							ERR_load_strings(0,DSO_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,DSO_str_reasons);
 | 
							ERR_load_strings(0,DSO_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/ec/ec_err.c */
 | 
					/* crypto/ec/ec_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -139,15 +139,12 @@ static ERR_STRING_DATA EC_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_EC_strings(void)
 | 
					void ERR_load_EC_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(EC_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,EC_str_functs);
 | 
							ERR_load_strings(0,EC_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,EC_str_reasons);
 | 
							ERR_load_strings(0,EC_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/engine/eng_err.c */
 | 
					/* crypto/engine/eng_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -156,15 +156,12 @@ static ERR_STRING_DATA ENGINE_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_ENGINE_strings(void)
 | 
					void ERR_load_ENGINE_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(ENGINE_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,ENGINE_str_functs);
 | 
							ERR_load_strings(0,ENGINE_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,ENGINE_str_reasons);
 | 
							ERR_load_strings(0,ENGINE_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -94,7 +94,7 @@ int ENGINE_set_default_DSA(ENGINE *e)
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
	if(e->dsa_meth)
 | 
						if(e->dsa_meth)
 | 
				
			||||||
		return engine_table_register(&dsa_table,
 | 
							return engine_table_register(&dsa_table,
 | 
				
			||||||
				engine_unregister_all_DSA, e, &dummy_nid, 1, 0);
 | 
									engine_unregister_all_DSA, e, &dummy_nid, 1, 1);
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/err/Makefile
 | 
					# OpenSSL/crypto/err/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	err
 | 
					DIR=	err
 | 
				
			||||||
@@ -22,8 +22,8 @@ TEST=
 | 
				
			|||||||
APPS=
 | 
					APPS=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB=$(TOP)/libcrypto.a
 | 
					LIB=$(TOP)/libcrypto.a
 | 
				
			||||||
LIBSRC=err.c err_all.c err_prn.c
 | 
					LIBSRC=err.c err_all.c err_prn.c err_str.c
 | 
				
			||||||
LIBOBJ=err.o err_all.o err_prn.o
 | 
					LIBOBJ=err.o err_all.o err_prn.o err_str.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRC= $(LIBSRC)
 | 
					SRC= $(LIBSRC)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -116,3 +116,10 @@ err_prn.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
 | 
				
			|||||||
err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
					err_prn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
				
			||||||
err_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
					err_prn.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
				
			||||||
err_prn.o: ../cryptlib.h err_prn.c
 | 
					err_prn.o: ../cryptlib.h err_prn.c
 | 
				
			||||||
 | 
					err_str.o: ../../e_os.h ../../include/openssl/bio.h
 | 
				
			||||||
 | 
					err_str.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
 | 
				
			||||||
 | 
					err_str.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
 | 
				
			||||||
 | 
					err_str.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
 | 
				
			||||||
 | 
					err_str.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
 | 
				
			||||||
 | 
					err_str.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
 | 
				
			||||||
 | 
					err_str.o: ../cryptlib.h err_str.c
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										161
									
								
								crypto/err/err.c
									
									
									
									
									
								
							
							
						
						
									
										161
									
								
								crypto/err/err.c
									
									
									
									
									
								
							@@ -122,99 +122,6 @@
 | 
				
			|||||||
static void err_load_strings(int lib, ERR_STRING_DATA *str);
 | 
					static void err_load_strings(int lib, ERR_STRING_DATA *str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void ERR_STATE_free(ERR_STATE *s);
 | 
					static void ERR_STATE_free(ERR_STATE *s);
 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					 | 
				
			||||||
static ERR_STRING_DATA ERR_str_libraries[]=
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_NONE,0,0)		,"unknown library"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_SYS,0,0)		,"system library"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_BN,0,0)		,"bignum routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_RSA,0,0)		,"rsa routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_DH,0,0)		,"Diffie-Hellman routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_EVP,0,0)		,"digital envelope routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_BUF,0,0)		,"memory buffer routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_OBJ,0,0)		,"object identifier routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_PEM,0,0)		,"PEM routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_DSA,0,0)		,"dsa routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_X509,0,0)		,"x509 certificate routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_ASN1,0,0)		,"asn1 encoding routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_CONF,0,0)		,"configuration file routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_CRYPTO,0,0)		,"common libcrypto routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_EC,0,0)		,"elliptic curve routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_SSL,0,0)		,"SSL routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_BIO,0,0)		,"BIO routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_PKCS7,0,0)		,"PKCS7 routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_X509V3,0,0)		,"X509 V3 routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_PKCS12,0,0)		,"PKCS12 routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_RAND,0,0)		,"random number generator"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_DSO,0,0)		,"DSO support routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_ENGINE,0,0)		,"engine routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_OCSP,0,0)		,"OCSP routines"},
 | 
					 | 
				
			||||||
{ERR_PACK(ERR_LIB_FIPS,0,0)		,"FIPS routines"},
 | 
					 | 
				
			||||||
{0,NULL},
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static ERR_STRING_DATA ERR_str_functs[]=
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_FOPEN,0),     	"fopen"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_CONNECT,0),		"connect"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_GETSERVBYNAME,0),	"getservbyname"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_SOCKET,0),		"socket"}, 
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_IOCTLSOCKET,0),	"ioctlsocket"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_BIND,0),		"bind"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_LISTEN,0),		"listen"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_ACCEPT,0),		"accept"},
 | 
					 | 
				
			||||||
#ifdef OPENSSL_SYS_WINDOWS
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_WSASTARTUP,0),	"WSAstartup"},
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_OPENDIR,0),		"opendir"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_FREAD,0),		"fread"},
 | 
					 | 
				
			||||||
	{ERR_PACK(0,SYS_F_GETADDRINFO,0),	"getaddrinfo"},
 | 
					 | 
				
			||||||
	{0,NULL},
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static ERR_STRING_DATA ERR_str_reasons[]=
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
{ERR_R_SYS_LIB				,"system lib"},
 | 
					 | 
				
			||||||
{ERR_R_BN_LIB				,"BN lib"},
 | 
					 | 
				
			||||||
{ERR_R_RSA_LIB				,"RSA lib"},
 | 
					 | 
				
			||||||
{ERR_R_DH_LIB				,"DH lib"},
 | 
					 | 
				
			||||||
{ERR_R_EVP_LIB				,"EVP lib"},
 | 
					 | 
				
			||||||
{ERR_R_BUF_LIB				,"BUF lib"},
 | 
					 | 
				
			||||||
{ERR_R_OBJ_LIB				,"OBJ lib"},
 | 
					 | 
				
			||||||
{ERR_R_PEM_LIB				,"PEM lib"},
 | 
					 | 
				
			||||||
{ERR_R_DSA_LIB				,"DSA lib"},
 | 
					 | 
				
			||||||
{ERR_R_X509_LIB				,"X509 lib"},
 | 
					 | 
				
			||||||
{ERR_R_ASN1_LIB				,"ASN1 lib"},
 | 
					 | 
				
			||||||
{ERR_R_CONF_LIB				,"CONF lib"},
 | 
					 | 
				
			||||||
{ERR_R_CRYPTO_LIB			,"CRYPTO lib"},
 | 
					 | 
				
			||||||
{ERR_R_EC_LIB				,"EC lib"},
 | 
					 | 
				
			||||||
{ERR_R_SSL_LIB				,"SSL lib"},
 | 
					 | 
				
			||||||
{ERR_R_BIO_LIB				,"BIO lib"},
 | 
					 | 
				
			||||||
{ERR_R_PKCS7_LIB			,"PKCS7 lib"},
 | 
					 | 
				
			||||||
{ERR_R_X509V3_LIB			,"X509V3 lib"},
 | 
					 | 
				
			||||||
{ERR_R_PKCS12_LIB			,"PKCS12 lib"},
 | 
					 | 
				
			||||||
{ERR_R_RAND_LIB				,"RAND lib"},
 | 
					 | 
				
			||||||
{ERR_R_DSO_LIB				,"DSO lib"},
 | 
					 | 
				
			||||||
{ERR_R_ENGINE_LIB			,"ENGINE lib"},
 | 
					 | 
				
			||||||
{ERR_R_OCSP_LIB				,"OCSP lib"},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{ERR_R_NESTED_ASN1_ERROR		,"nested asn1 error"},
 | 
					 | 
				
			||||||
{ERR_R_BAD_ASN1_OBJECT_HEADER		,"bad asn1 object header"},
 | 
					 | 
				
			||||||
{ERR_R_BAD_GET_ASN1_OBJECT_CALL		,"bad get asn1 object call"},
 | 
					 | 
				
			||||||
{ERR_R_EXPECTING_AN_ASN1_SEQUENCE	,"expecting an asn1 sequence"},
 | 
					 | 
				
			||||||
{ERR_R_ASN1_LENGTH_MISMATCH		,"asn1 length mismatch"},
 | 
					 | 
				
			||||||
{ERR_R_MISSING_ASN1_EOS			,"missing asn1 eos"},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{ERR_R_FATAL                            ,"fatal"},
 | 
					 | 
				
			||||||
{ERR_R_MALLOC_FAILURE			,"malloc failure"},
 | 
					 | 
				
			||||||
{ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED	,"called a function you should not call"},
 | 
					 | 
				
			||||||
{ERR_R_PASSED_NULL_PARAMETER		,"passed a null parameter"},
 | 
					 | 
				
			||||||
{ERR_R_INTERNAL_ERROR			,"internal error"},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{0,NULL},
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Define the predeclared (but externally opaque) "ERR_FNS" type */
 | 
					/* Define the predeclared (but externally opaque) "ERR_FNS" type */
 | 
				
			||||||
struct st_ERR_FNS
 | 
					struct st_ERR_FNS
 | 
				
			||||||
@@ -528,60 +435,6 @@ static int int_err_get_next_lib(void)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					 | 
				
			||||||
#define NUM_SYS_STR_REASONS 127
 | 
					 | 
				
			||||||
#define LEN_SYS_STR_REASON 32
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
 | 
					 | 
				
			||||||
/* SYS_str_reasons is filled with copies of strerror() results at
 | 
					 | 
				
			||||||
 * initialization.
 | 
					 | 
				
			||||||
 * 'errno' values up to 127 should cover all usual errors,
 | 
					 | 
				
			||||||
 * others will be displayed numerically by ERR_error_string.
 | 
					 | 
				
			||||||
 * It is crucial that we have something for each reason code
 | 
					 | 
				
			||||||
 * that occurs in ERR_str_reasons, or bogus reason strings
 | 
					 | 
				
			||||||
 * will be returned for SYSerr(), which always gets an errno
 | 
					 | 
				
			||||||
 * value and never one of those 'standard' reason codes. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void build_SYS_str_reasons()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	/* OPENSSL_malloc cannot be used here, use static storage instead */
 | 
					 | 
				
			||||||
	static char strerror_tab[NUM_SYS_STR_REASONS][LEN_SYS_STR_REASON];
 | 
					 | 
				
			||||||
	int i;
 | 
					 | 
				
			||||||
	static int init = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!init) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CRYPTO_w_lock(CRYPTO_LOCK_ERR);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (i = 1; i <= NUM_SYS_STR_REASONS; i++)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		ERR_STRING_DATA *str = &SYS_str_reasons[i - 1];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		str->error = (unsigned long)i;
 | 
					 | 
				
			||||||
		if (str->string == NULL)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
			char (*dest)[LEN_SYS_STR_REASON] = &(strerror_tab[i - 1]);
 | 
					 | 
				
			||||||
			char *src = strerror(i);
 | 
					 | 
				
			||||||
			if (src != NULL)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
				strncpy(*dest, src, sizeof *dest);
 | 
					 | 
				
			||||||
				(*dest)[sizeof *dest - 1] = '\0';
 | 
					 | 
				
			||||||
				str->string = *dest;
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		if (str->string == NULL)
 | 
					 | 
				
			||||||
			str->string = "unknown";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* Now we still have SYS_str_reasons[NUM_SYS_STR_REASONS] = {0, NULL},
 | 
					 | 
				
			||||||
	 * as required by ERR_load_strings. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	init = 0;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define err_clear_data(p,i) \
 | 
					#define err_clear_data(p,i) \
 | 
				
			||||||
	if (((p)->err_data[i] != NULL) && \
 | 
						if (((p)->err_data[i] != NULL) && \
 | 
				
			||||||
		(p)->err_data_flags[i] & ERR_TXT_MALLOCED) \
 | 
							(p)->err_data_flags[i] & ERR_TXT_MALLOCED) \
 | 
				
			||||||
@@ -605,18 +458,6 @@ static void ERR_STATE_free(ERR_STATE *s)
 | 
				
			|||||||
	OPENSSL_free(s);
 | 
						OPENSSL_free(s);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ERR_load_ERR_strings(void)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
	err_fns_check();
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					 | 
				
			||||||
	err_load_strings(0,ERR_str_libraries);
 | 
					 | 
				
			||||||
	err_load_strings(0,ERR_str_reasons);
 | 
					 | 
				
			||||||
	err_load_strings(ERR_LIB_SYS,ERR_str_functs);
 | 
					 | 
				
			||||||
	build_SYS_str_reasons();
 | 
					 | 
				
			||||||
	err_load_strings(ERR_LIB_SYS,SYS_str_reasons);
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void err_load_strings(int lib, ERR_STRING_DATA *str)
 | 
					static void err_load_strings(int lib, ERR_STRING_DATA *str)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	while (str->error)
 | 
						while (str->error)
 | 
				
			||||||
@@ -630,7 +471,7 @@ static void err_load_strings(int lib, ERR_STRING_DATA *str)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_strings(int lib, ERR_STRING_DATA *str)
 | 
					void ERR_load_strings(int lib, ERR_STRING_DATA *str)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	ERR_load_ERR_strings();
 | 
						err_fns_check();
 | 
				
			||||||
	err_load_strings(lib, str);
 | 
						err_load_strings(lib, str);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -91,10 +91,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_crypto_strings(void)
 | 
					void ERR_load_crypto_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int done=0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (done) return;
 | 
					 | 
				
			||||||
	done=1;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
	ERR_load_ERR_strings(); /* include error strings for SYSerr */
 | 
						ERR_load_ERR_strings(); /* include error strings for SYSerr */
 | 
				
			||||||
	ERR_load_BN_strings();
 | 
						ERR_load_BN_strings();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										296
									
								
								crypto/err/err_str.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										296
									
								
								crypto/err/err_str.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,296 @@
 | 
				
			|||||||
 | 
					/* crypto/err/err_str.c */
 | 
				
			||||||
 | 
					/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This package is an SSL implementation written
 | 
				
			||||||
 | 
					 * by Eric Young (eay@cryptsoft.com).
 | 
				
			||||||
 | 
					 * The implementation was written so as to conform with Netscapes SSL.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This library is free for commercial and non-commercial use as long as
 | 
				
			||||||
 | 
					 * the following conditions are aheared to.  The following conditions
 | 
				
			||||||
 | 
					 * apply to all code found in this distribution, be it the RC4, RSA,
 | 
				
			||||||
 | 
					 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 | 
				
			||||||
 | 
					 * included with this distribution is covered by the same copyright terms
 | 
				
			||||||
 | 
					 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * Copyright remains Eric Young's, and as such any Copyright notices in
 | 
				
			||||||
 | 
					 * the code are not to be removed.
 | 
				
			||||||
 | 
					 * If this package is used in a product, Eric Young should be given attribution
 | 
				
			||||||
 | 
					 * as the author of the parts of the library used.
 | 
				
			||||||
 | 
					 * This can be in the form of a textual message at program startup or
 | 
				
			||||||
 | 
					 * in documentation (online or textual) provided with the package.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * 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 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 acknowledgement:
 | 
				
			||||||
 | 
					 *    "This product includes cryptographic software written by
 | 
				
			||||||
 | 
					 *     Eric Young (eay@cryptsoft.com)"
 | 
				
			||||||
 | 
					 *    The word 'cryptographic' can be left out if the rouines from the library
 | 
				
			||||||
 | 
					 *    being used are not cryptographic related :-).
 | 
				
			||||||
 | 
					 * 4. If you include any Windows specific code (or a derivative thereof) from 
 | 
				
			||||||
 | 
					 *    the apps directory (application code) you must include an acknowledgement:
 | 
				
			||||||
 | 
					 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS 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 AUTHOR OR 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.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * The licence and distribution terms for any publically available version or
 | 
				
			||||||
 | 
					 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 | 
				
			||||||
 | 
					 * copied and put under another distribution licence
 | 
				
			||||||
 | 
					 * [including the GNU Public Licence.]
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/* ====================================================================
 | 
				
			||||||
 | 
					 * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * 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.
 | 
				
			||||||
 | 
					 * ====================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This product includes cryptographic software written by Eric Young
 | 
				
			||||||
 | 
					 * (eay@cryptsoft.com).  This product includes software written by Tim
 | 
				
			||||||
 | 
					 * Hudson (tjh@cryptsoft.com).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <openssl/lhash.h>
 | 
				
			||||||
 | 
					#include <openssl/crypto.h>
 | 
				
			||||||
 | 
					#include "cryptlib.h"
 | 
				
			||||||
 | 
					#include <openssl/buffer.h>
 | 
				
			||||||
 | 
					#include <openssl/bio.h>
 | 
				
			||||||
 | 
					#include <openssl/err.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					static ERR_STRING_DATA ERR_str_libraries[]=
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_NONE,0,0)		,"unknown library"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_SYS,0,0)		,"system library"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_BN,0,0)		,"bignum routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_RSA,0,0)		,"rsa routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_DH,0,0)		,"Diffie-Hellman routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_EVP,0,0)		,"digital envelope routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_BUF,0,0)		,"memory buffer routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_OBJ,0,0)		,"object identifier routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_PEM,0,0)		,"PEM routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_DSA,0,0)		,"dsa routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_X509,0,0)		,"x509 certificate routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_ASN1,0,0)		,"asn1 encoding routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_CONF,0,0)		,"configuration file routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_CRYPTO,0,0)		,"common libcrypto routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_EC,0,0)		,"elliptic curve routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_SSL,0,0)		,"SSL routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_BIO,0,0)		,"BIO routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_PKCS7,0,0)		,"PKCS7 routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_X509V3,0,0)		,"X509 V3 routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_PKCS12,0,0)		,"PKCS12 routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_RAND,0,0)		,"random number generator"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_DSO,0,0)		,"DSO support routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_ENGINE,0,0)		,"engine routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_OCSP,0,0)		,"OCSP routines"},
 | 
				
			||||||
 | 
					{ERR_PACK(ERR_LIB_FIPS,0,0)		,"FIPS routines"},
 | 
				
			||||||
 | 
					{0,NULL},
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static ERR_STRING_DATA ERR_str_functs[]=
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_FOPEN,0),     	"fopen"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_CONNECT,0),		"connect"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_GETSERVBYNAME,0),	"getservbyname"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_SOCKET,0),		"socket"}, 
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_IOCTLSOCKET,0),	"ioctlsocket"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_BIND,0),		"bind"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_LISTEN,0),		"listen"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_ACCEPT,0),		"accept"},
 | 
				
			||||||
 | 
					#ifdef OPENSSL_SYS_WINDOWS
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_WSASTARTUP,0),	"WSAstartup"},
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_OPENDIR,0),		"opendir"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_FREAD,0),		"fread"},
 | 
				
			||||||
 | 
						{ERR_PACK(0,SYS_F_GETADDRINFO,0),	"getaddrinfo"},
 | 
				
			||||||
 | 
						{0,NULL},
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static ERR_STRING_DATA ERR_str_reasons[]=
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
					{ERR_R_SYS_LIB				,"system lib"},
 | 
				
			||||||
 | 
					{ERR_R_BN_LIB				,"BN lib"},
 | 
				
			||||||
 | 
					{ERR_R_RSA_LIB				,"RSA lib"},
 | 
				
			||||||
 | 
					{ERR_R_DH_LIB				,"DH lib"},
 | 
				
			||||||
 | 
					{ERR_R_EVP_LIB				,"EVP lib"},
 | 
				
			||||||
 | 
					{ERR_R_BUF_LIB				,"BUF lib"},
 | 
				
			||||||
 | 
					{ERR_R_OBJ_LIB				,"OBJ lib"},
 | 
				
			||||||
 | 
					{ERR_R_PEM_LIB				,"PEM lib"},
 | 
				
			||||||
 | 
					{ERR_R_DSA_LIB				,"DSA lib"},
 | 
				
			||||||
 | 
					{ERR_R_X509_LIB				,"X509 lib"},
 | 
				
			||||||
 | 
					{ERR_R_ASN1_LIB				,"ASN1 lib"},
 | 
				
			||||||
 | 
					{ERR_R_CONF_LIB				,"CONF lib"},
 | 
				
			||||||
 | 
					{ERR_R_CRYPTO_LIB			,"CRYPTO lib"},
 | 
				
			||||||
 | 
					{ERR_R_EC_LIB				,"EC lib"},
 | 
				
			||||||
 | 
					{ERR_R_SSL_LIB				,"SSL lib"},
 | 
				
			||||||
 | 
					{ERR_R_BIO_LIB				,"BIO lib"},
 | 
				
			||||||
 | 
					{ERR_R_PKCS7_LIB			,"PKCS7 lib"},
 | 
				
			||||||
 | 
					{ERR_R_X509V3_LIB			,"X509V3 lib"},
 | 
				
			||||||
 | 
					{ERR_R_PKCS12_LIB			,"PKCS12 lib"},
 | 
				
			||||||
 | 
					{ERR_R_RAND_LIB				,"RAND lib"},
 | 
				
			||||||
 | 
					{ERR_R_DSO_LIB				,"DSO lib"},
 | 
				
			||||||
 | 
					{ERR_R_ENGINE_LIB			,"ENGINE lib"},
 | 
				
			||||||
 | 
					{ERR_R_OCSP_LIB				,"OCSP lib"},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ERR_R_NESTED_ASN1_ERROR		,"nested asn1 error"},
 | 
				
			||||||
 | 
					{ERR_R_BAD_ASN1_OBJECT_HEADER		,"bad asn1 object header"},
 | 
				
			||||||
 | 
					{ERR_R_BAD_GET_ASN1_OBJECT_CALL		,"bad get asn1 object call"},
 | 
				
			||||||
 | 
					{ERR_R_EXPECTING_AN_ASN1_SEQUENCE	,"expecting an asn1 sequence"},
 | 
				
			||||||
 | 
					{ERR_R_ASN1_LENGTH_MISMATCH		,"asn1 length mismatch"},
 | 
				
			||||||
 | 
					{ERR_R_MISSING_ASN1_EOS			,"missing asn1 eos"},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ERR_R_FATAL                            ,"fatal"},
 | 
				
			||||||
 | 
					{ERR_R_MALLOC_FAILURE			,"malloc failure"},
 | 
				
			||||||
 | 
					{ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED	,"called a function you should not call"},
 | 
				
			||||||
 | 
					{ERR_R_PASSED_NULL_PARAMETER		,"passed a null parameter"},
 | 
				
			||||||
 | 
					{ERR_R_INTERNAL_ERROR			,"internal error"},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{0,NULL},
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					#define NUM_SYS_STR_REASONS 127
 | 
				
			||||||
 | 
					#define LEN_SYS_STR_REASON 32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1];
 | 
				
			||||||
 | 
					/* SYS_str_reasons is filled with copies of strerror() results at
 | 
				
			||||||
 | 
					 * initialization.
 | 
				
			||||||
 | 
					 * 'errno' values up to 127 should cover all usual errors,
 | 
				
			||||||
 | 
					 * others will be displayed numerically by ERR_error_string.
 | 
				
			||||||
 | 
					 * It is crucial that we have something for each reason code
 | 
				
			||||||
 | 
					 * that occurs in ERR_str_reasons, or bogus reason strings
 | 
				
			||||||
 | 
					 * will be returned for SYSerr(), which always gets an errno
 | 
				
			||||||
 | 
					 * value and never one of those 'standard' reason codes. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void build_SYS_str_reasons()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						/* OPENSSL_malloc cannot be used here, use static storage instead */
 | 
				
			||||||
 | 
						static char strerror_tab[NUM_SYS_STR_REASONS][LEN_SYS_STR_REASON];
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
						static int init = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CRYPTO_r_lock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
						if (!init)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						CRYPTO_r_unlock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
						CRYPTO_w_lock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
						if (!init)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (i = 1; i <= NUM_SYS_STR_REASONS; i++)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							ERR_STRING_DATA *str = &SYS_str_reasons[i - 1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							str->error = (unsigned long)i;
 | 
				
			||||||
 | 
							if (str->string == NULL)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								char (*dest)[LEN_SYS_STR_REASON] = &(strerror_tab[i - 1]);
 | 
				
			||||||
 | 
								char *src = strerror(i);
 | 
				
			||||||
 | 
								if (src != NULL)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									strncpy(*dest, src, sizeof *dest);
 | 
				
			||||||
 | 
									(*dest)[sizeof *dest - 1] = '\0';
 | 
				
			||||||
 | 
									str->string = *dest;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							if (str->string == NULL)
 | 
				
			||||||
 | 
								str->string = "unknown";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Now we still have SYS_str_reasons[NUM_SYS_STR_REASONS] = {0, NULL},
 | 
				
			||||||
 | 
						 * as required by ERR_load_strings. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						init = 0;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ERR_load_ERR_strings(void)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
						if (ERR_func_error_string(ERR_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							ERR_load_strings(0,ERR_str_libraries);
 | 
				
			||||||
 | 
							ERR_load_strings(0,ERR_str_reasons);
 | 
				
			||||||
 | 
							ERR_load_strings(ERR_LIB_SYS,ERR_str_functs);
 | 
				
			||||||
 | 
							build_SYS_str_reasons();
 | 
				
			||||||
 | 
							ERR_load_strings(ERR_LIB_SYS,SYS_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,7 +27,7 @@ L DSO		crypto/dso/dso.h		crypto/dso/dso_err.c
 | 
				
			|||||||
L ENGINE	crypto/engine/engine.h		crypto/engine/eng_err.c
 | 
					L ENGINE	crypto/engine/engine.h		crypto/engine/eng_err.c
 | 
				
			||||||
L OCSP		crypto/ocsp/ocsp.h		crypto/ocsp/ocsp_err.c
 | 
					L OCSP		crypto/ocsp/ocsp.h		crypto/ocsp/ocsp_err.c
 | 
				
			||||||
L UI		crypto/ui/ui.h			crypto/ui/ui_err.c
 | 
					L UI		crypto/ui/ui.h			crypto/ui/ui_err.c
 | 
				
			||||||
L FIPS		fips/fips.h			fips/fips_err.h
 | 
					L FIPS		fips-1.0/fips.h			crypto/fips_err.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# additional header files to be scanned for function names
 | 
					# additional header files to be scanned for function names
 | 
				
			||||||
L NONE		crypto/x509/x509_vfy.h		NONE
 | 
					L NONE		crypto/x509/x509_vfy.h		NONE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# SSLeay/crypto/evp/Makefile
 | 
					# OpenSSL/crypto/evp/Makefile
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DIR=	evp
 | 
					DIR=	evp
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -132,7 +132,11 @@
 | 
				
			|||||||
#define EVP_CAST5_KEY_SIZE		16
 | 
					#define EVP_CAST5_KEY_SIZE		16
 | 
				
			||||||
#define EVP_RC5_32_12_16_KEY_SIZE	16
 | 
					#define EVP_RC5_32_12_16_KEY_SIZE	16
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
#define EVP_MAX_MD_SIZE			64	/* longest known SHA512 */
 | 
					#define EVP_MAX_MD_SIZE			64	/* longest known SHA512 */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define EVP_MAX_MD_SIZE			(16+20)	/* The SSLv3 md5+sha1 type */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#define EVP_MAX_KEY_LENGTH		32
 | 
					#define EVP_MAX_KEY_LENGTH		32
 | 
				
			||||||
#define EVP_MAX_IV_LENGTH		16
 | 
					#define EVP_MAX_IV_LENGTH		16
 | 
				
			||||||
#define EVP_MAX_BLOCK_LENGTH		32
 | 
					#define EVP_MAX_BLOCK_LENGTH		32
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,7 @@
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "evp_locl.h"
 | 
					#include "evp_locl.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *EVP_version="EVP" OPENSSL_VERSION_PTEXT;
 | 
					const char EVP_version[]="EVP" OPENSSL_VERSION_PTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx)
 | 
					void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* crypto/evp/evp_err.c */
 | 
					/* crypto/evp/evp_err.c */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -157,15 +157,12 @@ static ERR_STRING_DATA EVP_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_EVP_strings(void)
 | 
					void ERR_load_EVP_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(EVP_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,EVP_str_functs);
 | 
							ERR_load_strings(0,EVP_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,EVP_str_reasons);
 | 
							ERR_load_strings(0,EVP_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -126,7 +126,8 @@ int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
 | 
				
			|||||||
	EVP_MD_CTX_init(&c);
 | 
						EVP_MD_CTX_init(&c);
 | 
				
			||||||
	for (;;)
 | 
						for (;;)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		EVP_DigestInit_ex(&c,md, NULL);
 | 
							if (!EVP_DigestInit_ex(&c,md, NULL))
 | 
				
			||||||
 | 
								return 0;
 | 
				
			||||||
		if (addmd++)
 | 
							if (addmd++)
 | 
				
			||||||
			EVP_DigestUpdate(&c,&(md_buf[0]),mds);
 | 
								EVP_DigestUpdate(&c,&(md_buf[0]),mds);
 | 
				
			||||||
		EVP_DigestUpdate(&c,data,datal);
 | 
							EVP_DigestUpdate(&c,data,datal);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,7 +67,14 @@ static int init(EVP_MD_CTX *ctx)
 | 
				
			|||||||
	{ return SHA1_Init(ctx->md_data); }
 | 
						{ return SHA1_Init(ctx->md_data); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int update(EVP_MD_CTX *ctx,const void *data,unsigned long count)
 | 
					static int update(EVP_MD_CTX *ctx,const void *data,unsigned long count)
 | 
				
			||||||
 | 
					#ifndef OPENSSL_FIPS
 | 
				
			||||||
	{ return SHA1_Update(ctx->md_data,data,count); }
 | 
						{ return SHA1_Update(ctx->md_data,data,count); }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						OPENSSL_assert(sizeof(count)<=sizeof(size_t));
 | 
				
			||||||
 | 
						return SHA1_Update(ctx->md_data,data,count);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int final(EVP_MD_CTX *ctx,unsigned char *md)
 | 
					static int final(EVP_MD_CTX *ctx,unsigned char *md)
 | 
				
			||||||
	{ return SHA1_Final(md,ctx->md_data); }
 | 
						{ return SHA1_Final(md,ctx->md_data); }
 | 
				
			||||||
@@ -77,7 +84,7 @@ static const EVP_MD dss1_md=
 | 
				
			|||||||
	NID_dsa,
 | 
						NID_dsa,
 | 
				
			||||||
	NID_dsaWithSHA1,
 | 
						NID_dsaWithSHA1,
 | 
				
			||||||
	SHA_DIGEST_LENGTH,
 | 
						SHA_DIGEST_LENGTH,
 | 
				
			||||||
	0,
 | 
						EVP_MD_FLAG_FIPS,
 | 
				
			||||||
	init,
 | 
						init,
 | 
				
			||||||
	update,
 | 
						update,
 | 
				
			||||||
	final,
 | 
						final,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,6 +63,9 @@
 | 
				
			|||||||
#include <openssl/objects.h>
 | 
					#include <openssl/objects.h>
 | 
				
			||||||
#include <openssl/x509.h>
 | 
					#include <openssl/x509.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define EVP_PKEY_RSA_fips_method	FIPS_rsa_sign,FIPS_rsa_verify, \
 | 
				
			||||||
 | 
									{EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int init(EVP_MD_CTX *ctx)
 | 
					static int init(EVP_MD_CTX *ctx)
 | 
				
			||||||
	{ return SHA1_Init(ctx->md_data); }
 | 
						{ return SHA1_Init(ctx->md_data); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -90,7 +93,11 @@ static const EVP_MD sha1_md=
 | 
				
			|||||||
	final,
 | 
						final,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
 | 
					#ifdef OPENSSL_FIPS
 | 
				
			||||||
 | 
						EVP_PKEY_RSA_fips_method,
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
	EVP_PKEY_RSA_method,
 | 
						EVP_PKEY_RSA_method,
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
	SHA_CBLOCK,
 | 
						SHA_CBLOCK,
 | 
				
			||||||
	sizeof(EVP_MD *)+sizeof(SHA_CTX),
 | 
						sizeof(EVP_MD *)+sizeof(SHA_CTX),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -131,7 +138,7 @@ static const EVP_MD sha224_md=
 | 
				
			|||||||
	final256,
 | 
						final256,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	EVP_PKEY_RSA_method,
 | 
						EVP_PKEY_RSA_fips_method,
 | 
				
			||||||
	SHA256_CBLOCK,
 | 
						SHA256_CBLOCK,
 | 
				
			||||||
	sizeof(EVP_MD *)+sizeof(SHA256_CTX),
 | 
						sizeof(EVP_MD *)+sizeof(SHA256_CTX),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -150,7 +157,7 @@ static const EVP_MD sha256_md=
 | 
				
			|||||||
	final256,
 | 
						final256,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	EVP_PKEY_RSA_method,
 | 
						EVP_PKEY_RSA_fips_method,
 | 
				
			||||||
	SHA256_CBLOCK,
 | 
						SHA256_CBLOCK,
 | 
				
			||||||
	sizeof(EVP_MD *)+sizeof(SHA256_CTX),
 | 
						sizeof(EVP_MD *)+sizeof(SHA256_CTX),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -184,7 +191,7 @@ static const EVP_MD sha384_md=
 | 
				
			|||||||
	final512,
 | 
						final512,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	EVP_PKEY_RSA_method,
 | 
						EVP_PKEY_RSA_fips_method,
 | 
				
			||||||
	SHA512_CBLOCK,
 | 
						SHA512_CBLOCK,
 | 
				
			||||||
	sizeof(EVP_MD *)+sizeof(SHA512_CTX),
 | 
						sizeof(EVP_MD *)+sizeof(SHA512_CTX),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
@@ -203,7 +210,7 @@ static const EVP_MD sha512_md=
 | 
				
			|||||||
	final512,
 | 
						final512,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	NULL,
 | 
						NULL,
 | 
				
			||||||
	EVP_PKEY_RSA_method,
 | 
						EVP_PKEY_RSA_fips_method,
 | 
				
			||||||
	SHA512_CBLOCK,
 | 
						SHA512_CBLOCK,
 | 
				
			||||||
	sizeof(EVP_MD *)+sizeof(SHA512_CTX),
 | 
						sizeof(EVP_MD *)+sizeof(SHA512_CTX),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,9 +61,6 @@
 | 
				
			|||||||
#include <openssl/evp.h>
 | 
					#include <openssl/evp.h>
 | 
				
			||||||
#include <openssl/objects.h>
 | 
					#include <openssl/objects.h>
 | 
				
			||||||
#include <openssl/x509.h>
 | 
					#include <openssl/x509.h>
 | 
				
			||||||
#ifdef OPENSSL_FIPS
 | 
					 | 
				
			||||||
#include <openssl/fips.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
int EVP_add_cipher(const EVP_CIPHER *c)
 | 
					int EVP_add_cipher(const EVP_CIPHER *c)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -194,11 +194,16 @@ int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/* Now decode key derivation function */
 | 
						/* Now decode key derivation function */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(!pbe2->keyfunc->parameter ||
 | 
				
			||||||
 | 
							 (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE))
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
							EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR);
 | 
				
			||||||
 | 
							goto err;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pbuf = pbe2->keyfunc->parameter->value.sequence->data;
 | 
						pbuf = pbe2->keyfunc->parameter->value.sequence->data;
 | 
				
			||||||
	plen = pbe2->keyfunc->parameter->value.sequence->length;
 | 
						plen = pbe2->keyfunc->parameter->value.sequence->length;
 | 
				
			||||||
	if(!pbe2->keyfunc->parameter ||
 | 
						if(!(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) {
 | 
				
			||||||
		 (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE) ||
 | 
					 | 
				
			||||||
				!(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) {
 | 
					 | 
				
			||||||
		EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR);
 | 
							EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR);
 | 
				
			||||||
		goto err;
 | 
							goto err;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
/* fips/fips_err.h */
 | 
					/* crypto/fips_err.h */
 | 
				
			||||||
/* ====================================================================
 | 
					/* ====================================================================
 | 
				
			||||||
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 | 
					 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
@@ -75,7 +75,9 @@ static ERR_STRING_DATA FIPS_str_functs[]=
 | 
				
			|||||||
{ERR_FUNC(FIPS_F_DSA_DO_VERIFY),	"DSA_do_verify"},
 | 
					{ERR_FUNC(FIPS_F_DSA_DO_VERIFY),	"DSA_do_verify"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_DSA_GENERATE_PARAMETERS),	"DSA_generate_parameters"},
 | 
					{ERR_FUNC(FIPS_F_DSA_GENERATE_PARAMETERS),	"DSA_generate_parameters"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_CHECK_DSA),	"FIPS_CHECK_DSA"},
 | 
					{ERR_FUNC(FIPS_F_FIPS_CHECK_DSA),	"FIPS_CHECK_DSA"},
 | 
				
			||||||
 | 
					{ERR_FUNC(FIPS_F_FIPS_CHECK_DSO),	"FIPS_CHECK_DSO"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_CHECK_EXE),	"FIPS_CHECK_EXE"},
 | 
					{ERR_FUNC(FIPS_F_FIPS_CHECK_EXE),	"FIPS_CHECK_EXE"},
 | 
				
			||||||
 | 
					{ERR_FUNC(FIPS_F_FIPS_CHECK_FINGERPRINT),	"FIPS_CHECK_FINGERPRINT"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_CHECK_RSA),	"FIPS_CHECK_RSA"},
 | 
					{ERR_FUNC(FIPS_F_FIPS_CHECK_RSA),	"FIPS_CHECK_RSA"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_DSA_CHECK),	"FIPS_dsa_check"},
 | 
					{ERR_FUNC(FIPS_F_FIPS_DSA_CHECK),	"FIPS_dsa_check"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_MODE_SET),	"FIPS_mode_set"},
 | 
					{ERR_FUNC(FIPS_F_FIPS_MODE_SET),	"FIPS_mode_set"},
 | 
				
			||||||
@@ -90,15 +92,18 @@ static ERR_STRING_DATA FIPS_str_functs[]=
 | 
				
			|||||||
{ERR_FUNC(FIPS_F_RSA_GENERATE_KEY),	"RSA_generate_key"},
 | 
					{ERR_FUNC(FIPS_F_RSA_GENERATE_KEY),	"RSA_generate_key"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_RSA_X931_GENERATE_KEY),	"RSA_X931_generate_key"},
 | 
					{ERR_FUNC(FIPS_F_RSA_X931_GENERATE_KEY),	"RSA_X931_generate_key"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_SSLEAY_RAND_BYTES),	"SSLEAY_RAND_BYTES"},
 | 
					{ERR_FUNC(FIPS_F_SSLEAY_RAND_BYTES),	"SSLEAY_RAND_BYTES"},
 | 
				
			||||||
{ERR_FUNC(FIPS_F_FIPS_CHECK_DSO),	"FIPS_check_dso"},
 | 
					 | 
				
			||||||
{0,NULL}
 | 
					{0,NULL}
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static ERR_STRING_DATA FIPS_str_reasons[]=
 | 
					static ERR_STRING_DATA FIPS_str_reasons[]=
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
{ERR_REASON(FIPS_R_CANNOT_READ_EXE)      ,"cannot access executable object"},
 | 
					{ERR_REASON(FIPS_R_CANNOT_READ_EXE)      ,"cannot read exe"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_CANNOT_READ_EXE_DIGEST),"cannot access detached digest"},
 | 
					{ERR_REASON(FIPS_R_CANNOT_READ_EXE_DIGEST),"cannot read exe digest"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_EXE_DIGEST_DOES_NOT_MATCH),"detached digest verification failed"},
 | 
					{ERR_REASON(FIPS_R_CONTRADICTING_EVIDENCE),"contradicting evidence"},
 | 
				
			||||||
 | 
					{ERR_REASON(FIPS_R_EXE_DIGEST_DOES_NOT_MATCH),"exe digest does not match"},
 | 
				
			||||||
 | 
					{ERR_REASON(FIPS_R_FINGERPRINT_DOES_NOT_MATCH),"fingerprint does not match"},
 | 
				
			||||||
 | 
					{ERR_REASON(FIPS_R_FINGERPRINT_DOES_NOT_MATCH_NONPIC_RELOCATED),"fingerprint does not match nonpic relocated"},
 | 
				
			||||||
 | 
					{ERR_REASON(FIPS_R_FINGERPRINT_DOES_NOT_MATCH_SEGMENT_ALIASING),"fingerprint does not match segment aliasing"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_FIPS_MODE_ALREADY_SET),"fips mode already set"},
 | 
					{ERR_REASON(FIPS_R_FIPS_MODE_ALREADY_SET),"fips mode already set"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_FIPS_SELFTEST_FAILED) ,"fips selftest failed"},
 | 
					{ERR_REASON(FIPS_R_FIPS_SELFTEST_FAILED) ,"fips selftest failed"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_INVALID_KEY_LENGTH)   ,"invalid key length"},
 | 
					{ERR_REASON(FIPS_R_INVALID_KEY_LENGTH)   ,"invalid key length"},
 | 
				
			||||||
@@ -106,7 +111,7 @@ static ERR_STRING_DATA FIPS_str_reasons[]=
 | 
				
			|||||||
{ERR_REASON(FIPS_R_NON_FIPS_METHOD)      ,"non fips method"},
 | 
					{ERR_REASON(FIPS_R_NON_FIPS_METHOD)      ,"non fips method"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_PAIRWISE_TEST_FAILED) ,"pairwise test failed"},
 | 
					{ERR_REASON(FIPS_R_PAIRWISE_TEST_FAILED) ,"pairwise test failed"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_SELFTEST_FAILED)      ,"selftest failed"},
 | 
					{ERR_REASON(FIPS_R_SELFTEST_FAILED)      ,"selftest failed"},
 | 
				
			||||||
{ERR_REASON(FIPS_R_NO_DSO_PATH)		 ,"DSO path can't be determined"},
 | 
					{ERR_REASON(FIPS_R_UNSUPPORTED_PLATFORM) ,"unsupported platform"},
 | 
				
			||||||
{0,NULL}
 | 
					{0,NULL}
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -114,15 +119,12 @@ static ERR_STRING_DATA FIPS_str_reasons[]=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void ERR_load_FIPS_strings(void)
 | 
					void ERR_load_FIPS_strings(void)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	static int init=1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (init)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		init=0;
 | 
					 | 
				
			||||||
#ifndef OPENSSL_NO_ERR
 | 
					#ifndef OPENSSL_NO_ERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (ERR_func_error_string(FIPS_str_functs[0].error) == NULL)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
		ERR_load_strings(0,FIPS_str_functs);
 | 
							ERR_load_strings(0,FIPS_str_functs);
 | 
				
			||||||
		ERR_load_strings(0,FIPS_str_reasons);
 | 
							ERR_load_strings(0,FIPS_str_reasons);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user