Clone this repo:
  1. 4ec2204 OWNERS: include cros_gsc by Mary Ruthven · 8 months ago factory-brox-16086.B factory-nissa-16077.B firmware-R126-15885.B firmware-R127-15916.B firmware-R128-15963.B firmware-R129-16001.B firmware-R130-16032.B firmware-R131-16062.B firmware-android-15949.B firmware-brox-16080.B firmware-ec-R131-16063.2.B firmware-ec-R132-16093.3.B firmware-hps-15892.B firmware-ti50-mp-15980.B firmware-ti50-prepvt-15974.B main release-R126-15886.B release-R127-15917.B release-R128-15964.B release-R129-16002.B release-R130-16033.B release-R131-16063.B release-R132-16093.B stabilize-15855.B stabilize-15857.B stabilize-15886.46.B stabilize-15886.63.B stabilize-15886.66.B stabilize-15888.B stabilize-15905.B stabilize-15917.61.B stabilize-15917.65.B stabilize-15926.B stabilize-15964.20.B stabilize-15964.42.B stabilize-15964.9.B stabilize-16002.44.B stabilize-16002.51.B stabilize-16033.43.B stabilize-16033.58.B stabilize-16055.B stabilize-hps-15890.B stabilize-quickfix-15886.43.B stabilize-starline-16056.B stabilize-starline-16082.B stabilize-starline-16084.B stabilize-starline-16093.2.B stabilize-starline-16095.B
  2. 46d75c5 pinweaver: Separate error codes in PK generation by Howard Yang · 10 months ago factory-geralt-15840.B firmware-android-geralt-15842.88.B firmware-geralt-15842.B release-R123-15786.B release-R124-15823.B release-R125-15853.B stabilize-15786.48.B stabilize-15786.58.B stabilize-15793.B stabilize-15823.40.B stabilize-15828.B stabilize-quickfix-15786.49.B stabilize-quickfix-15823.44.B
  3. 41f3c0b mini_trunks: add size checks to HmacKeyAppend by Andrey Pronin · 3 years, 4 months ago factory-brya-15684.B factory-rex-15708.B firmware-rex-15709.B release-R119-15633.B release-R120-15662.B release-R121-15699.B release-R122-15753.B stabilize-15633.44.B stabilize-15633.58.B stabilize-15633.69.B stabilize-15642.B stabilize-15654.B stabilize-15662.64.B stabilize-15662.76.B stabilize-15662.78.B stabilize-15662.80.B stabilize-15662.88.B stabilize-15677.B stabilize-15699.58.B stabilize-15699.66.B stabilize-15714.B stabilize-15753.46.B stabilize-15753.55.B stabilize-15756.B stabilize-FLEX-15662.115.B stabilize-quickfix-15662.77.B
  4. ccdf3cc tpm_storage: add checks when setting authValues by Andrey Pronin · 3 years, 4 months ago
  5. 1bb6d78 pinweaver: Export files for ti50 bazel build. by Brian Granaghan · 1 year, 5 months ago release-R118-15604.B stabilize-15604.16.B stabilize-15604.45.B stabilize-15604.56.B stabilize-15604.57.B stabilize-15610.B

Common PinWeaver Code

This directory contains reference PinWeaver code that can be used across implementation platforms.

It consists of:

  • PinWeaver reference code:
    • pinweaver.h - PinWeaver embedded API definition
    • pinweaver.c - implementation
    • pinweaver_eal.h - API for Environment Abstraction Layer (EAL) used by PinWeaver
      • note that some types used in this API are platform-specific and are defined in eal/**/pinweaver_eal_types.h
    • pinweaver_types.h - header that is shared by PinWeaver implementation and PinWeaver clients that call it through platform-specific interface.
  • Environment Abstraction Layer (EAL) implementations - in eal/ folder
    • 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
        • created from trunks TSS used by ChromeOS reduced to the minimal required set of TPM commands and ported from C++ to C
        • relies on pinweaver_eal.h + pinweaver_eal_tpm.h EAL methods
        • TSS API is defined in tss.h + *authorization_delegate.h

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).