xref: /aosp_15_r20/external/bouncycastle/README.android (revision 4e4b8e5883c385eeacd42791bab3326d1395de26)
1Bouncy Castle on the Android platform.
2---
3
4The code in this directory is based on $BOUNCYCASTLE_VERSION in the
5file bouncycastle.version. See the in-file change markers for more information
6on how the code differs from $BOUNCYCASTLE_VERSION.
7
8Porting New Versions of Bouncy Castle.
9--
10
11The following steps are recommended for porting new Bouncy Castle versions.
12
131) Retrieve the appropriate version of the Bouncy Castle source from
14   www.bouncycastle.org/latest_releases.html (both bcprov-jdk*-*.tar.gz
15   and bcpkix-jdk*-*.tar.gz files).
16
17   Check the checksum (found at http://bouncycastle.org/checksums.html) with:
18
19     md5sum bcprov-jdk*-*.tar.gz
20     sha1sum bcprov-jdk*-*.tar.gz
21     md5sum bcpkix-jdk*-*.tar.gz
22     sha1sum bcpkix-jdk*-*.tar.gz
23
242) Submit the code to the upstream-master branch:
25
26  a) Create a new branch tracking upstream-master
27
28      git checkout -b upgrade-to-xxx --track aosp/upstream-master
29
30  b) Update the variables in bouncycastle.version.
31
32  c) Expand the source from the .tar.gz files
33
34  d) Replace bc{prov,pkix}/src/main/java/org with the equivalent source
35     directory
36
37  e) Ensure any new files are added
38
39      git add bc{prov,pkix}
40
41  f) Commit the change
42
43      git commit -a -m 'bouncycastle: Android tree with upstream code for version X.XX'
44
45  g) Get the change reviewed
46
47      repo upload . -D upstream-master
48
493) Merge the code into the master branch
50
51  a) Create a new branch
52
53      repo start merge-xxx
54
55  b) Merge the changes in
56
57      git fetch aosp upstream-master
58      git merge aosp/upstream-master
59
60  c) Resolve any conflicts.  Some common cases:
61
62     * If upstream changed a file that's deleted locally, we probably don't
63       need it
64     * If upstream added a file to a directory we deleted, we probably don't
65       need it
66
67  d) Update the list of exported APIs in proguard.flags, if necessary.
68
69     Check this in particular if new algorithms are getting registered with
70     ConfigurableProvider.addAlgorithm or ConfigurableProvider.addPrivateAlgorithm.
71
72  e) Confirm all changes
73
74      git diff aosp/master
75
76  f) Run the tests, commonly at least
77
78      cts -m CtsLibcoreTestCases
79      cts -m CtsLibcoreFileIOTestCases
80      cts -m CtsLibcoreJsr166TestCases
81      cts -m CtsLibcoreOjTestCases
82      cts -m CtsLibcoreOkHttpTestCases
83      cts -m CtsLibcoreWycheproofBCTestCases
84
85  g) Get the change reviewed
86
87      repo upload .
88