mirror of
https://github.com/rustls/rustls.git
synced 2026-10-28 17:56:30 +08:00
This changes `Connection` into a trait rather than enum, and ensures that `ClientConnection` and `ServerConnection` impls it. This removes `ConnectionCommon` and `CommonState` derefs, and allows those types to become private. The `Deref` to `ConnectionOutputs` is maintained. This becomes important later, because the use of Deref commits us to using those parts for the internal representation of (eg) a `ClientConnection`. This comes with the pain that `use rustls::Connection` is needed for most users.
Fuzz Testing
Rustls supports fuzz testing using cargo-fuzz. Fuzz tests are automatically run during continuous integration using oss-fuzz. You may also run fuzz tests locally. See the cargo-fuzz setup instructions for requirements.
# List available fuzzing targets.
$ cargo fuzz list
client
deframer
fragment
message
persist
servert
# Run the message fuzz target for a fixed period of time (expressed in seconds).
$ cargo fuzz run message -- -max_total_time=120
# Clean up generated corpus files
git clean --interactive -- ./corpus