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