rustls/bogo
Joe Birr-Pixton cf098b08d3 Cargo.toml: disentangle std/aws_lc_rs features 2024-02-28 20:27:34 +00:00
..
keys Don't rely on recent openssl 2017-08-28 15:36:34 +01:00
.gitignore Test P521-SHA512 in bogo 2024-01-04 09:21:59 +00:00
README.md docs: add help for diagnosing BoGo failures. (#1316) 2023-06-13 10:51:56 -04:00
check.py Update bogo config 2018-04-01 16:02:00 +01:00
config.json.in Partially support -verify-prefs 2024-01-10 15:59:34 +00:00
fetch-and-build Take newer bogo version 2024-01-10 15:59:34 +00:00
regen-certs Doc: replace "nb." with "Note:" 2023-11-22 14:14:37 +00:00
runme Cargo.toml: disentangle std/aws_lc_rs features 2024-02-28 20:27:34 +00:00

README.md

BoGo

BoGo is the TLS test suite for boringssl, which we run against rustls as well.

System requirements

You will need golang installed

Running tests

$ cd bogo # from rustls repo root
$ ./runme

Running a single test

$ cd bogo # from rustls repo root
$ ./runme -test "Foo;Bar" # where Foo and Bar are test names like EarlyData-Server-BadFinished-TLS13

Diagnosing failures

When updating the BoGo suite it's expected that new failures will emerge. There are often two major categories to diagnose:

Unexpected error outputs

Often the upstream will change expected error outputs (e.g. changing from :DECODE_ERROR: to :NO_CERTS:). The bogo_shim handle_err function is responsible for mapping errors in combination with the ErrorMap and TestErrorMap data in config.json. These will typically need updating for new error outputs or changes in error outputs.

Unhandled options

When the upstream test suite adds new options that aren't handled by Rustls the bogo_shim's main fn can be updated to signal NYI (not-yet-implemented) for the unhandled options. See the // Not implemented things switch near the end of the function definition.

Use your best judgement to decide whether there should be a Rustls issue filed to consider implementing the option in question.