|
33 | 33 | //! This crate exposes the functionality of the TCG Software Stack Enhanced System API to
|
34 | 34 | //! Rust developers, both directly through FFI bindings and through more Rust-tailored interfaces
|
35 | 35 | //! at varying levels of abstraction.
|
36 |
| -//! At the moment, the abstracted functionality focuses on creating signing and encryption RSA |
37 |
| -//! keys, as well as signing and verifying signatures. |
38 | 36 | //! Only platforms based on processors with a word size of at least 16 bits are supported.
|
39 | 37 | //!
|
40 |
| -//! The crate is expected to successfully compile and run using the nightly compiler and any other |
41 |
| -//! Rust compiler since 1.38.0. |
42 |
| -//! |
43 |
| -//! # Disclaimer |
44 |
| -//! |
45 |
| -//! The current version of the API does not offer any security or code safety guarantees as it has |
46 |
| -//! not been tested to a desired level of confidence. |
47 |
| -//! The implementation that is provided is suitable for exploratory testing and experimentation only. |
48 |
| -//! This test implementation does not offer any tangible security benefits and therefore is not |
49 |
| -//! suitable for use in production. |
50 |
| -//! Contributions from the developer community are welcome. Please refer to the contribution guidelines. |
51 |
| -//! |
52 | 38 | //! # Code structure
|
53 |
| -//! The modules comprising the crate expose the following functionalities: |
54 |
| -//! * lib/root module - exposes the `Context` structure, the most basic abstraction over the |
55 |
| -//! ESAPI, on top of which all other abstraction layers are implemented. |
56 |
| -//! * utils - exposes Rust-native versions and/or builders for (some of) the structures defined in |
57 |
| -//! the TSS 2.0 specification; it also offers convenience methods for generating very specific |
58 |
| -//! parameter structures for use in certain operations. |
59 |
| -//! * response_code - implements error code parsing for the formats defined in the TSS spec and |
60 |
| -//! exposes it along with wrapper-specific error types. |
61 |
| -//! * abstraction - intended to offer abstracted interfaces that focus on providing different |
62 |
| -//! kinds of user experience to the developers; at the moment the only implementation allows for a |
63 |
| -//! resource-handle-free coding experience by working soloely with object contexts. |
64 |
| -//! * tss2_esys - exposes raw FFI bindings to the Enhanced System API. |
65 |
| -//! * constants - exposes constants that were ported to Rust manually as bindgen does not support |
66 |
| -//! converting them yet. |
| 39 | +//! Our code structure is mostly derived from |
| 40 | +//! [part 2 of the TPM2 TCG spec](https://trustedcomputinggroup.org/wp-content/uploads/TCG_TPM2_r1p59_Part2_Structures_pub.pdf). |
| 41 | +//! For simplicity, however, we have reduced the depth of the import tree, so most (if not all) types |
| 42 | +//! are at most one level away from root. |
| 43 | +//! |
| 44 | +//! Minimum supported Rust version (MSRV): |
| 45 | +//! We currently check with version 1.53.0 of the Rust compiler during CI builds. |
67 | 46 | //!
|
68 | 47 | //! # Notes on code safety:
|
69 | 48 | //! * thread safety is ensured by the required mutability of the `Context` structure within the
|
|
0 commit comments