All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Expose return types
TctiOpaqueContextBlobandFapiPollHandlein the public API.
- Updated various dependencies to the latest version.
- Added new accessor functions to the
ImportDataandSealedDatadata types.
- Test cases for functions
write_authorize_nvandget_poll_handles()have been added. - New error code
InternalError::NotImplementedhas been added.
- Docker images used for testing/building have been updated to the latest version.
- The parameter validation for the function
create_nv()has been improved.
- Docker images used for testing/building have been updated to the latest version.
- Updated various dependencies to the latest version + fixed build issues with new version of
randcrate. - Docker images used for testing/building have been updated to the latest version.
- GitHub Actions: Run the examples and integration tests also on the
aarch64(ARM64) platform.
- Improved
FapiContext::create_seal()to accept either a non-empty&[u8]slice or aNonZeroUsizevalue. - Changed the signature of all callback functions to return a
CbResult<T>result, which is defined asResult<T, Cancelled>. - Various improvements to internal memory handling.
- The first parameter of all
FapiCallbacksfunctions has been changed from&selfto&mut self.
- Added the
FapiCallbacks::downcast()andFapiCallbacks::downcast_mut()functions.
- Added the
Callbacksstruct, as a simple generic implementation of theFapiCallbackstrait.
- The
FapiCallbackstrait no longer has theDebugtrait bound.
- Added the
FapiContext::set_callbacks()function, which can be used to set or replace all callback functions at once. - Added the
FapiContext::clear_callbacks()function, which can be used to unset all callback functions. - Added the
FapiCallbackstrait, which represents the set of application-defined callback functions that the FAPI invokes.
- Function
get_version()now returns aFapiVersionstruct. - Functions
FapiContext::set_callbacks()andFapiContext::clear_callbacks()now return the previous callbacks.
- Removed the
FapiContext::set_auth_callbackfunction; superseded byset_callbacks(). - Removed the
FapiContext::set_sign_callbackfunction; superseded byset_callbacks(). - Removed the
FapiContext::set_branch_callbackfunction; superseded byset_callbacks(). - Removed the
FapiContext::set_policy_action_callbackfunction; superseded byset_callbacks().
- Re-exported the
jsoncrate from this crate, because it is used in the public interface.
- Simplified some public data types by using
#[non_exhaustive]attribute where applicable. - Various improvements to the validation of "flag" parameters.
- Added constructor functions
from_json()andfrom_pemto theImportDatastruct.
- Function
FapiContext::sign()now returns aSignResultstruct on success. - Function
FapiContext::quote()now returns aQuoteResultstruct on success. - Function
FapiContext::get_tpm_blobs()now returns aTpmBlobsstruct on success.
- Improved
FapiContext::import()to support the import of either a JSON object (e.g. TPM policy) or a PEM encoded key. - Updated the Docker images used for building/testing.
- Various dependencies have been updated to the latest version.
- Various dependencies have been updated to the latest version.
- Updated the Docker images used for building/testing.
- Various dependencies have been updated to the latest version.
- Updated the Docker images used for building/testing.
- Rust edition has been changed to 2024.
- Various dependencies have been updated to the latest version.
- Added support for environment variable
TSS2_FAPI_STATICto thebuild.rsfile, which allows the static version of the TSS2 FAPI library to be linked via pkg-config.
- Improved parsing of the TSS2 FAPI library version in the
build.rsfile, fixing possible errors with "custom" builds.
- Various dependencies have been updated to the latest version.
- Implemented workaround to make the test code compile with the new version of
randcrate.
- GitHub Actions: Run the tests also with the
nightlytoolchain.
- Various dependencies have been updated to the latest version.
- Incremented minimum supported Rust version to
1.82in order to build with newer dependency versions.
- GitHub Actions: Workaround for our actions being aborted because of an outdated version of
actions/upload-artifact. We did not use the "problematic" version directly, but it was used implicitely via an old version ofawalsh128/cache-apt-pkgs-action.
- Updated funding information in source files and documentation.
- Introduced the
lockingandfull_lockingfeatures to make the serialization of FAPI calls optional.
- Implemented workaround to ensure that calls to
FAPI_Provision()are serialized across all FAPI contexts and that they are not executed concurrently to other FAPI functions, because that function apparently is not thread-safe in the underlying TSS 2.0 library.
- Updated Docker images for SWTPM and build/test environment to the latest versions.
- GitHub repository has been moved to the new official location at: https://github.com/tpm2-software/rust-tss-fapi
- Added a job for running/testing the usage examples to the GitHub CI pipeline.
- Some improvements to the provided usage examples and the associated documentation.
- Updated Docker images for SWTPM and build/test environment to the latest versions.
build.rs: Removed workaround for Docs.rs build process, now that they have added support for the TSS 2.0 libraries.
- This is the first public release of this project.