4 releases (2 breaking)
|0.3.0||Feb 4, 2022|
|0.2.0||Jun 17, 2021|
|0.1.1||Mar 25, 2021|
|0.1.0||Mar 23, 2021|
#486 in Cryptography
5,079 downloads per month
Used in 5 crates (via tss-esapi)
TPM2 Software Stack Rust Wrapper
This is the lower-level wrapper that exposes a minimal, low-level C interface to Rust to TSS.
This crate exposes an interface for the TSS Enhanced System API and thus links to libraries that expose this interface. In order to allow proper use of the ESAPI, this FFI layer includes bindings to TCTI and MU headers, and must therefore link to all of them at build time.
The paths to the libraries are discovered using
pkg-config - make sure they
are discoverable in this way on your system. Our build script looks for
tss2-mu. A minimum version of
required for all of them.
Having installed the open-source implementation libraries at
/usr/local/lib (by default), it
might happen that
pkg-config can not find them. Run the following command if that is the
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
The FFI bindings presented by this crate can be either those commited in the
src/bindings or generated on the fly from the library headers
found on the system, at build time. For generating the bindings at build time
please enable the
generate-bindings feature, as it is not enabled by default.
The build script will then identify the header files using
generate fresh bindings from them.
NOTE: Only a limited set of bindings are committed and their target triplet
is included in the name of the file - if the triplet you require is not
available, feel free to raise a Pull Request to add it or to use build-time
generation of bindings. All the committed bindings MUST be generated from
the library version found under the
Cross-compilation can be done as long as you have on your build system the TSS
libraries compiled for your target system of choice. We rely on
identify the libraries which we link against. Installing
tpm2-tss does yield
.pc files which can be used for this purpose, but depending on the exact build
environment setup, the configuration and compilation of
tpm2-tss could require
some special tailoring.
We include cross-compilation builds as a nightly check in Github Actions - you
can find them
as an example of the steps needed. You can find more information on using
pkg-config when cross-compiling
wrapper script around
pkg-config can be seen
Be advised that in some cases the linker used might need to be set manually in
Copyright 2021 Contributors to the Parsec project.