refactor: tidy macros and add static assert

Add static assert and check that header size matches defined
constant. Parenthesize macros for safety. Move BYTE, WORD,
DWORD macros out of header file to avoid name clashes. Set
ENCODE_LIMIT to 64, as second MSB is reserved per TPM spec
table 48. Rename CS_ASSERT_OFFSET to TPM_SPI_ADDR_PREFIX.

Signed-off-by: Matthew Ellis <Matthew.Ellis@arm.com>
Change-Id: I3cc6f896b905c9cb22fb64a370e509f4dfc3911f
4 files changed
tree: 98afa759e43e440efcaf8f527ff345c5998c9b0f
  1. include/
  2. src/
  3. test/
  4. .clang-format
  5. .editorconfig
  6. .gitignore
  7. CMakeLists.txt
  8. dco.txt
  9. LICENSE
  10. README.md
  11. tpm2Config.cmake.in
README.md

libtcg2-tpm

TCG2-compliant TPM library based on the TCG PC Client Platform TPM Profile for TPM 2.0 Specification v1.06.

This library provides a lightweight C interface for interacting with TPM 2.0 devices, specifically targeting platforms compliant with the TCG2 specification.

Prerequisites

  • CMake >= 3.15
  • AArch64 Linux GNU toolchain (for cross-compilation)

Building

Native Build

cmake -B build
cmake --build build

Cross Compilation

CC=aarch64-linux-gnu-gcc cmake -B build -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
cmake --build build

License

This project is licensed under the BSD 3-Clause License. See the LICENSE file for more information.