rustls/bogo
Joseph Birr-Pixton 432ceca9b8 Partially support -verify-prefs
This exits with BOGO_NACK if an unsupported verification algorithm is
requested.  That is enough to enable 78 more test cases.
2024-01-10 15:59:34 +00:00
..
keys
.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
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 Test P521-SHA512 in bogo 2024-01-04 09:21:59 +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.