blob: da805c03cc11a0dce19e2618f45ca5e96bf9e91e [file] [log] [blame]
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) Update the list of exported APIs in proguard.flags, if necessary.
Check this in particular if new algorithms are getting registered with
ConfigurableProvider.addAlgorithm or ConfigurableProvider.addPrivateAlgorithm.
e) Confirm all changes
git diff aosp/master
f) Run the tests, commonly at least
cts -m CtsLibcoreTestCases
cts -m CtsLibcoreFileIOTestCases
cts -m CtsLibcoreJsr166TestCases
cts -m CtsLibcoreOjTestCases
cts -m CtsLibcoreOkHttpTestCases
cts -m CtsLibcoreWycheproofBCTestCases
g) Get the change reviewed
repo upload .