Chromium‎ > ‎Chromium Security‎ > ‎BoringSSL‎ > ‎

Contributing to BoringSSL

Location of the code

It is mapped into the Chromium tree via src/DEPS to src/third_party/boringssl

Filing bugs

Bugs are filed under the label:Cr-Internals-Network-SSL using the Chromium issue tracker.

Building

Refer to BUILDING.md for the canonical build instructions. Assuming those haven't changed, set things up to build through ninja by executing:

cd src/third_party/boringssl/src
mkdir build
cd build
cmake -GNinja ..
ninja

Once the ninja files are generated you can re-build from other directories using:

ninja -C <path-to-boringssl-src-build>

Running the tests

See instructions in BUILDING.md to run the tests. From a Chromium checkout, this incantation may be used:

cd src/third_party/boringssl/src
ninja -C build && go run util/all_tests.go && (cd ssl/test/runner/ && go fmt && go test)

Or, if CMake is 3.2 or higher:

cd src/third_party/boringssl/src
ninja -C build run_tests

Uploading changes for review

See CONTRIBUTING.md in the BoringSSL repository.

Rolling DEPS into Chromium

Because BoringSSL lives in a separate repository, it must be "rolled" into Chromium to get the updates.

To roll BoringSSL create a changelist in the Chromium repository that modifies src/DEPS and re-generates the gypi and asm files:
There is a script to automate all these steps:

python third_party/boringssl/roll_boringssl.py

If the roll has added tests (the gypi modifications will list a new test), then you must add a new entry in boringssl_unittest.cc. See util/all_tests.go for how the test is run. For a test which takes no arguments, the new entry should look like this:

TEST(BoringSSL, PQueue) {
  TestSimple("pqueue_test");
}

Comments