OpenSSL on the Android platform.
---

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.
See patches/README for more information on how the code differs from
$OPENSSL_VERSION.

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 openssl-*.tar.gz file). Check the PGP
   signature (found in matching openssl-*.tar.gz.asc file) with:

     gpg openssl-*.tar.gz

   If the public key is not found, import the the one with the
   matching RSA key ID from http://www.openssl.org/about/, using:

     gpg --import # paste PGP public key block on stdin

2) Update the variables in openssl.config and openssl.version as appropriate.
   At the very least you will need to update the openssl.version.

3) Run:

     ./import_openssl.sh import openssl-*.tar.gz

4) If there are any errors, then modify openssl.config, openssl.version
   and patches in patches/ as appropriate.  You might want to use:

     ./import_openssl.sh regenerate patches/*.patch

   Repeat step 3.

5) Cleanup before building with:

     m -j16 clean-openssl clean-libcrypto clean-libssl

6) Build openssl from the external/openssl directory with:

     mm -j16

   If there are build errors, then patches/*.mk, openssl.config, or
   android-config.mk may need updating.

7) Run tests to make sure things are working:

     (cd android.testssl/ && ./testssl.sh)
     adb shell run-core-tests tests.xnet.AllTests

8) Do a full build before checking in:

     m clobber && m -j16

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:

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.

Alternatively, ."/import_openssl.sh import" now prints the
post-Configure Makefile for review before deleting in on import.