Crate tough

source ·
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 noxious-server 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§

Enums§

  • Represents whether a Repository should fail to load when metadata is expired (Safe) or whether it should ignore expired metadata (Unsafe). Only use Unsafe 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§

  • Fallible byte streams that collect into a Vec<u8>.
  • Converts a file URL into a file path. Needed because url.to_file_path() will decode any percent encoding, which could restore path traversal characters, and url.path() roots paths to ‘/’ on Windows.
  • A trait to abstract over the method/protocol by which files are obtained.

Attribute Macros§