38 releases (22 stable)

8.0.0-alpha Feb 7, 2024
7.6.0 Dec 14, 2024
7.5.1 Apr 16, 2024
7.5.0 Mar 14, 2024
1.0.1 Jan 17, 2020

#93 in Cryptography

Download history 3642/week @ 2024-12-14 1544/week @ 2024-12-21 1105/week @ 2024-12-28 3027/week @ 2025-01-04 2893/week @ 2025-01-11 3379/week @ 2025-01-18 3929/week @ 2025-01-25 4615/week @ 2025-02-01 4107/week @ 2025-02-08 4796/week @ 2025-02-15 4986/week @ 2025-02-22 3902/week @ 2025-03-01 4526/week @ 2025-03-08 4518/week @ 2025-03-15 3400/week @ 2025-03-22 2189/week @ 2025-03-29

15,486 downloads per month
Used in 18 crates (13 directly)

Apache-2.0

3.5MB
101K SLoC

TPM2 Software Stack Rust Wrapper

Crates.io Code documentation

This is the high-level, Rust idiomatic wrapper crate that exposes an interface to TSS.

This crate depends on the tss-esapi-sys crate for its FFI interface. By default, pre-generated bindings are used. If you'd like the bindings to be generated at build time, please enable either the generate-bindings feature - the FFI bindings will then be generated at build time using the headers identified on the system.

Our end-goal is to achieve a fully Rust-native interface that offers strong safety and security guarantees. Check out our documentation for an overview of our code safety approach.

Cargo Features

The crate currently offers the following features:

  • generate_bindings - forces the underlying tss-esapi-sys crate to regenerate the FFI bindings on each build, using the TSS libraries available on the build machine.
  • abstraction (enabled by default) - provides a set of abstracted primitives on top of the basic Rust-native ESAPI API provided by the crate. This feature can be turned off to reduce the number of dependencies built.

Cross compiling

For more information on cross-compiling the tss-esapi crate, please see the README of the tss-esapi-sys crate.

Copyright 2021 Contributors to the Parsec project.

Dependencies

~3.5–5.5MB
~108K SLoC