39 releases (22 stable)
| 8.0.0-alpha.1 | Oct 25, 2025 |
|---|---|
| 8.0.0-alpha | Feb 7, 2024 |
| 7.6.0 | Dec 14, 2024 |
| 7.5.1 | Apr 16, 2024 |
| 1.0.1 | Jan 17, 2020 |
#51 in Cryptography
164,944 downloads per month
Used in 27 crates
(21 directly)
3.5MB
99K
SLoC
TPM2 Software Stack Rust Wrapper
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.
Integration Tests
See the integration tests
Cargo Features
The crate currently offers the following features:
generate-bindings- forces the underlyingtss-esapi-syscrate 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.serde- enable serdeSerialize/Deserializetraits for types.rustcrypto-full(disabled by default) - provides conversion from all supported elliptic curves, rsa or hashes. Support for individual hash, rsa or curves can be pulled individually.
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
~2.4–7MB
~111K SLoC