summaryrefslogtreecommitdiff
path: root/README.android
blob: da805c03cc11a0dce19e2618f45ca5e96bf9e91e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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 .