Bouncy Castle on the Android platform. --- The code in this directory is based on $BOUNCYCASTLE_VERSION in the file bouncycastle.version. See the in-file change markers 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 (both bcprov-jdk*-*.tar.gz and bcpkix-jdk*-*.tar.gz files). Check the checksum (found at http://bouncycastle.org/checksums.html) with: md5sum bcprov-jdk*-*.tar.gz sha1sum bcprov-jdk*-*.tar.gz md5sum bcpkix-jdk*-*.tar.gz sha1sum bcpkix-jdk*-*.tar.gz 2) Submit the code to the upstream-master branch: a) Create a new branch tracking upstream-master git checkout -b upgrade-to-xxx --track aosp/upstream-master b) Update the variables in bouncycastle.version. c) Expand the source from the .tar.gz files d) Replace bc{prov,pkix}/src/main/java/org with the equivalent source directory e) Ensure any new files are added git add bc{prov,pkix} f) Commit the change git commit -a -m 'bouncycastle: Android tree with upstream code for version X.XX' g) Get the change reviewed repo upload . -D upstream-master 3) Merge the code into the master branch a) Create a new branch repo start merge-xxx b) Merge the changes in git fetch aosp upstream-master git merge aosp/upstream-master c) Resolve any conflicts. Some common cases: * If upstream changed a file that's deleted locally, we probably don't need it * If upstream added a file to a directory we deleted, we probably don't need it d) Confirm all changes git diff aosp/master e) Run the tests, commonly at least cts -m CtsLibcoreTestCases cts -m CtsLibcoreFileIOTestCases cts -m CtsLibcoreJsr166TestCases cts -m CtsLibcoreOjTestCases cts -m CtsLibcoreOkHttpTestCases cts -m CtsLibcoreWycheproofBCTestCases e) Get the change reviewed repo upload .