Upgrade to openssl-0.9.8k.
The source tree (and the size of the compiled library)
can be reduced further. This will be done in a future
commit.
diff --git a/README.android b/README.android
index d35caa4..cf476f2 100644
--- a/README.android
+++ b/README.android
@@ -1,144 +1,41 @@
-Version Information
+OpenSSL on the Android platform.
---
-The code in this directory is based on 0.9.8h with patches from
-http://openssl.org/news/secadv_20090107.txt, and some backported OpenSSL code
-in crypto/0.9.9-dev.
+The code in this directory is based on $OPENSSL_VERSION in the file
+openssl.config, and some backported OpenSSL code in crypto/0.9.9-dev.
-
-Porting New Versions of OpenSSL
----
+Porting New Versions of OpenSSL.
+--
The following steps are recommended for porting new OpenSSL versions.
+1) Retrieve the appropriate version of the OpenSSL source from
+ www.openssl.org/source (in tar.gz format)
-a) Run "./Configure linux-generic32 no-idea no-bf no-cast no-seed no-md2 \
- -DL_ENDIAN"
- in the openssl distribution directory.
+2) Update the variables in openssl.config as appropriate
- (Ignore when the Configure scripts asks you to run "make depend".)
+3) Run ./import_openssl.sh openssl-*.tar.gz
+
+4) If there are any errors, then modify openssl.config, openssl.version
+ and patches in patches/ as appropriate. Repeat step 3.
+
+5) From the root of the android source tree, build openssl. For
+ example, on the dream platform, run make
+ out/target/product/dream/obj/EXECUTABLES/openssl_intermediates/LINKED/openssl
+
+ If there are build errors, then patches/*.mk, openssl.config, or
+ android-config.mk may need updating.
-b) Create an updated android-config.mk file by looking at CFLAG and DEPFLAG in
- the Makefile resulting from step a. Make sure to add all the -D flags to
- LOCAL_CFLAGS, except -DTERMIO; include -DOPENSSL_NO_HW in addition to these.
+Optionally, check whether build flags (located in android-config.mk
+need to be updated. Doing this step will help ensure that the
+compiled library is appropriately optimized for speed and size. To
+update build flags:
- (New OpenSSL releases may include additional code meant to be disabled by
- default, so it's important not to miss any -DOPENSSL_NO_foo.
- Usually these should be replicated in crypto/opensslconf.h, but let's not
- take a chance.)
+a) source openssl.config
+b) tar -zxf openssl-*.tar.gz
+c) cd openssl-*/
+d) ./Configure $CONFIGURE_ARGS
+e) examine Makefile and compare with ../android-config.mk
+f) modify ../openssl.config as appropriate and go to step 3) above.
-
-c) Copy the new LICENSE file from OpenSSL distribution as NOTICE.
- Create an empty MODULE_LICENSE_BSD_LIKE file.
-
-
-d) You may delete the following directories along with their contents,
- since we won't use these (any more):
-
- MacOS Netware VMS apps/demoCA apps/set bugs certs crypto/bf crypto/cast \
- crypto/cms crypto/idea crypto/md2 crypto/rc5 crypto/seed demos doc \
- engines ms os2 perl shlib test times tools util
-
- Also you may delete the following files:
-
- CHANGES CHANGES.SSLeay ChangeLog.0_9_7-stable_not-in-head \
- ChangeLog.0_9_7-stable_not-in-head_FIPS Configure FAQ INSTALL \
- INSTALL.DJGPP INSTALL.MacOS INSTALL.NW INSTALL.OS2 INSTALL.VMS \
- INSTALL.W32 INSTALL.W64 INSTALL.WCE LICENSE Makefile Makefile.bak \
- Makefile.org Makefile.shared NEWS PROBLEMS README README.ASN1 \
- README.ENGINE apps/CA.pl.bak config crypto/opensslconf.h.bak \
- install.com makevms.com openssl.doxy openssl.spec
-
-
-e) Go to include/openssl. There's a bunch of symlinks here. Since symlinks
- can be a special case for version control, replace them by regular files:
-
- for l in *.h; do cp $l copy_$l; rm $l; mv copy_$l $l; done
-
- Some symlinks will remain, pointing to files that don't exit
- (you deleted those in step d). Delete the symlinks.
-
-
-f) Create Android.mk files based on those you find in the previous OpenSSL port:
-
- Android.mk
-
- apps/Android.mk
- crypto/Android.mk
- ssl/Android.mk
-
- For the latter three, merge in any substantial changes between the
- corresponding Makefiles in the OpenSSL distribution (apps/Makefile,
- crypto/Makefile, crypto/*/Makefile, ssl/Makefile).
- Don't forget to update the directory name for OpenSSL in these files
- and whereever else it is used.
-
-
-g) Apply the patch found at the end of this file.
-
-
-h) Finally, create an updated version of this file (README.android)!
-
-
-
-
-Patch for apps directory:
-
---- openssl-0.9.8h-ORIG/apps/progs.h
-+++ openssl-0.9.8h/apps/progs.h
-@@ -22,7 +22,9 @@
- extern int x509_main(int argc,char *argv[]);
- extern int genrsa_main(int argc,char *argv[]);
- extern int gendsa_main(int argc,char *argv[]);
-+#if 0 /* ANDROID */
- extern int s_server_main(int argc,char *argv[]);
-+#endif
- extern int s_client_main(int argc,char *argv[]);
- extern int speed_main(int argc,char *argv[]);
- extern int s_time_main(int argc,char *argv[]);
-@@ -97,7 +99,9 @@
- {FUNC_TYPE_GENERAL,"gendsa",gendsa_main},
- #endif
- #if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
-- {FUNC_TYPE_GENERAL,"s_server",s_server_main},
-+#if 0 /* ANDROID */
-+ {FUNC_TYPE_GENERAL,"s_server",s_server_main},
-+#endif
- #endif
- #if !defined(OPENSSL_NO_SOCK) && !(defined(OPENSSL_NO_SSL2) && defined(OPENSSL_NO_SSL3))
- {FUNC_TYPE_GENERAL,"s_client",s_client_main},
-diff -ur openssl-0.9.8h-ORIG/apps/speed.c openssl-0.9.8h/apps/speed.c
---- openssl-0.9.8h-ORIG/apps/speed.c
-+++ openssl-0.9.8h/apps/speed.c
-@@ -108,12 +108,12 @@
- #include <signal.h>
- #endif
-
--#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENSSL_SYS_MACOSX)
-+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENSSL_SYS_MACOSX) || defined(HAVE_ANDROID_OS)
- # define USE_TOD
- #elif !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC))
- # define TIMES
- #endif
--#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(OPENSSL_SYS_MPE) && !defined(__NetBSD__) && !defined(OPENSSL_SYS_VXWORKS) /* FIXME */
-+#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(OPENSSL_SYS_MPE) && !defined(__NetBSD__) && !defined(OPENSSL_SYS_VXWORKS) && !defined(HAVE_ANDROID_OS) /* FIXME */
- # define TIMEB
- #endif
-
-@@ -1836,6 +1836,7 @@
- }
- }
-
-+#if 0 /* ANDROID */
- if (doit[D_IGE_128_AES])
- {
- for (j=0; j<SIZE_NUM; j++)
-@@ -1879,6 +1880,7 @@
- }
- }
- #endif
-+#endif
- #ifndef OPENSSL_NO_CAMELLIA
- if (doit[D_CBC_128_CML])
- {