Expand description
Tough is a client library for TUF repositories.
This client adheres to TUF version 1.0.0, with the following exceptions:
- Delegated roles (and TAP 3) are not yet supported.
- TAP 4 (multiple repository consensus) is not yet supported.
Testing
Unit tests are run in the usual manner: cargo test
.
Integration tests require docker and are disabled by default behind a feature named integ
.
To run all tests, including integration tests: cargo test --all-features
or
cargo test --features 'http,integ'
.
Modules
- Provides a
RepositoryEditor
object for building and editing TUF repositories. - Contains the error type for this library.
- Provides an abstraction over the source of a signing key. This allows signing keys to be obtained, for example, from local files or from cloud provider key stores.
- Provides the schema objects as defined by the TUF spec.
- Provides the
Sign
trait which abstracts over the method of signing with different key types.
Structs
- A Transport that provides support for both local files and, if the
http
feature is enabled, HTTP-transported files. - Provides a
Transport
for local files. - Limits used when fetching repository metadata.
- A TUF repository.
- A builder for settings with which to load a
Repository
. Required settings are provided in theRepositoryLoader::new
function. Optional parameters can be added after calling new. Finally, callRepositoryLoader::load
to load theRepository
. - Represents the name of a target in the repository. Path-like constructs are resolved (e.g.
foo/../bar
becomesbar
). Certain unsafe names are rejected when constructing aTargetName
. Unsafe names include: - The error type that
Transport::fetch
returns.
Enums
- Represents whether a Repository should fail to load when metadata is expired (
Safe
) or whether it should ignore expired metadata (Unsafe
). Only useUnsafe
if you are sure you need it. - Use this enum to specify whether or not we should include a prefix in the target name when saving a target.
- The kind of error that the transport object experienced during
fetch
.
Traits
- A trait to abstract over the method/protocol by which files are obtained.