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 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

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

  • A trait to abstract over the method/protocol by which files are obtained.