Clients should locally save metadata

This patch merges `Client::update_local` and
`Client::update_remote` in order to update `Tuf` following the
pattern as described in the
[spec section 5.1](

One potential problem though is I'm not sure how we can atomically
update the local repository and the `Tuf` object, so for ease of
implementation, this patch will update `Tuf` and could potentially
error out writing the metadata to the local repository. We could
instead implement some sort of rollback mechanism to `Tuf`, but
I figure we can do that later if it's necessary.

Closes #153
2 files changed
tree: 54e1634d4c28598f76f9620deea101570d22d38b
  1. .gitignore
  2. .travis.yml
  3. Cargo.toml
  6. Makefile
  8. appveyor.yml
  9. src/
  10. tests/


Travis build Status Appveyor build status codecov

A Rust implementation of The Update Framework (TUF).

Full documentation is hosted at

Warning: Beta Software

This is under active development and may not suitable for production use. Further, the API is unstable and you should be prepared to refactor on even patch releases.


Please make all pull requests to the develop branch.


This project has a full disclosure policy on security related errors. Please treat these errors like all other bugs and file a public issue. Errors communicated via other channels will be immediately made public.



This work is dual licensed under the MIT and Apache-2.0 licenses. See LICENSE-MIT and LICENSE-APACHE for details.

Cryptography Notice

This software includes and uses cryptographic software. Your current country may have restrictions on the import, export, possession, or use of cryptographic software. Check your country's relevant laws before using this in any way. See Wassenaar for more info.