Bouncy Castle on the Android platform.
---

The code in this directory is based on $BOUNCYCASTLE_VERSION in the
file bouncycastle.version. See patches/README for more information on
how the code differs from $BOUNCYCASTLE_VERSION.

Porting New Versions of Bouncy Castle.
--

The following steps are recommended for porting new Bouncy Castle versions.

1) Retrieve the appropriate version of the Bouncy Castle source from
   www.bouncycastle.org/latest_releases.html (in bcprov-jdk*-*.tar.gz
   file). Check the checksum (found at http://bouncycastle.org/checksums.html) with:

     md5sum bcprov-jdk*-*.tar.gz
     sha1sum bcprov-jdk*-*.tar.gz

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

3) Run:

     ./import_bouncycastle.sh import bcprov-jdk*-*.tar.gz

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

     ./import_bouncycastle.sh regenerate patches/*.patch

   Repeat step 3.

5) Cleanup before building with:

     m -j16 clean-bouncycastle

6) Build the bouncycastle target from the external/bouncycastle directory with:

     mm -j16 snod && adb sync system

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

7) Run tests to make sure things are working:

     See external/openssl/README.android for test instructions

8) Do a full build before checking in:

     m -j16