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])
- 		{