This directory contains reference PinWeaver code that can be used across implementation platforms.
It consists of:
pinweaver.h- PinWeaver embedded API definition
pinweaver_eal.h- API for Environment Abstraction Layer (EAL) used by PinWeaver
pinweaver_types.h- header that is shared by PinWeaver implementation and PinWeaver clients that call it through platform-specific interface.
eal/cr50- implementation for cr50
pinweaver_eal_types.h- cr50-specific EAL API types
pinweaver_eal.c- cr50 implementation of EAL
eal/tpm_storage- implementation for platforms that use TPM as PinWeaver data storage
pinweaver_eal_types.h- TPM-storage-specific EAL API types
pinweaver_eal_tpm.h- additional EAL functions required by TPM storage
pinweaver_eal_linux.c- implementation of non-storage EAL methods for Linux case
tpm_storage_stubs.c- empty implementation of storage EAL methods
tpm_storage.c- implementation of storage EAL methods on top of TSS
mini_trunks/- mini-TSS (TPM client software stack) used by TPM storage implementation
A platform implementation that uses TPM storage EAL option needs to implement all EAL methods implemented in
pinweaver_eal_linux.c (or use it as-is, if Linux compatible).