[][src]Crate in_toto

This crate provides an API for talking to repositories that implements in-toto

Interoperability

It should be noted that historically the TUF spec defined exactly one metadata format and one way of organizing metadata within a repository. Thus, all TUF implementation could perfectly interoperate. The TUF spec has moved to describing how a framework should behave leaving many of the detais up to the implementor. Therefore, there are zero guarantees that this library will work with any other TUF implementation. Should you want to access a TUF repository that uses rust-tuf as its backend from another language, ASN.1 modules and metadata schemas are provided that will allow you to interoperate with this library.

Implementation Considerations

Key Management

Part of TUF is that it acts as its own PKI, and there is no integration that needs to be done for managing keys.

Note: No two private keys that are generated should ever exist on the same hardware. When a step says "generate N keys," the implication is that these N keys are generated on N devices.

The first set of keys that need to be generated at the root keys that are used to sign the root metadata. The root should be defined with the following properties:

  • Minimum:
    • 3 keys
    • threshold of 2
  • Recommended:
    • 5 keys
    • threshold of 3

If a threshold of root keys are compromised, then the entire system is compromised and TUF clients will need to be manually updated. Similarly, if some X keys are lost such that the threshold N cannot be reached, then clients will also need to be manually updated. Both of situations are considered critically unsafe. Whatever number of keys are used, it should be assumed that some small number may be lost or compromised.

These root keys MUST be kept offline on secure media.

Re-exports

pub use crate::error::*;

Modules

crypto

Cryptographic structures and functions.

error

Error types and converters.

interchange

Structures and functions to aid in various in-toto data interchange formats.

metadata

in-toto metadata.

runlib
verification

Type Definitions

Result

Alias for Result<T, Error>.