mbox series

[v4,0/5] tcgbios: Use the proper hashes for the TPM 2 PCR banks

Message ID 20210709153903.691945-1-stefanb@linux.vnet.ibm.com
Headers show
Series tcgbios: Use the proper hashes for the TPM 2 PCR banks | expand

Message

Stefan Berger July 9, 2021, 3:38 p.m. UTC
From: Stefan Berger <stefanb@linux.ibm.com>

This PR modifies the tcgbios implementation so that it maskes use of the
proper hash function when extending a PCR of a particular PCR bank
rather than always using the sha256 and either truncating the hash or
zero-padding it to fit the hash for a PCR bank.

Another patch in this series converts the S_CTRM_VERSION string to ucs-2
format (following a long-term TCG contributor) commonly used for this
purpose.

Test cases for the sha implementations are added as well. They require
OpenSSL's -lcrypto on the host since they use its hashing functions
for producing comparable results. A test script to run the tests is also
added along with a script to run the tests on Travis.

Regards,
    Stefan

v4:
  - Removed applied patches
  - Refactored test scripts and modified programs following feedback
  - Adjusted commit texts
  - Using Alexey's ucs-2 patch now

v3:
  - Add patch for Travis
  - Adjustments to test code to not have to include openssl/sha.h

v2:
  - split out type fix in sha256 documentation into own patch
  - replace rotr in sha256 implementation with assembly macro
  - Added test cases needing -lcrypto on host; added test script


Stefan Berger (5):
  tcgbios: Change format of S_CRTM_VERSION string to ucs-2
  tcgbios: Use assembly for 32 bit rotr in sha256
  tcgbios: Use The proper sha function for each PCR bank
  tcgbios: Add test cases and test script to run them
  Travis: Add script for running tests on Travis

 .travis.yml           | 15 ++++++++++
 Makefile.gen          |  2 +-
 lib/libtpm/Makefile   |  1 +
 lib/libtpm/sha.c      | 27 ++++++++++++++++++
 lib/libtpm/sha256.c   | 40 +++++++++++++++++++++++---
 lib/libtpm/sha512.c   | 36 ++++++++++++++++++++++++
 lib/libtpm/sha_test.h | 59 +++++++++++++++++++++++++++++++++++++++
 lib/libtpm/tcgbios.c  | 65 +++++++++++++++++++++++++++++--------------
 lib/libtpm/test.sh    | 31 +++++++++++++++++++++
 make.rules            |  3 +-
 10 files changed, 252 insertions(+), 27 deletions(-)
 create mode 100644 .travis.yml
 create mode 100644 lib/libtpm/sha_test.h
 create mode 100755 lib/libtpm/test.sh

Comments

Alexey Kardashevskiy July 11, 2021, 1:54 p.m. UTC | #1
On 10/07/2021 01:38, Stefan Berger wrote:
> From: Stefan Berger <stefanb@linux.ibm.com>
> 
> This PR modifies the tcgbios implementation so that it maskes use of the
> proper hash function when extending a PCR of a particular PCR bank
> rather than always using the sha256 and either truncating the hash or
> zero-padding it to fit the hash for a PCR bank.
> 
> Another patch in this series converts the S_CTRM_VERSION string to ucs-2
> format (following a long-term TCG contributor) commonly used for this
> purpose.
> 
> Test cases for the sha implementations are added as well. They require
> OpenSSL's -lcrypto on the host since they use its hashing functions
> for producing comparable results. A test script to run the tests is also
> added along with a script to run the tests on Travis.

Thanks, applied.


> Regards,
>      Stefan
> 
> v4:
>    - Removed applied patches
>    - Refactored test scripts and modified programs following feedback
>    - Adjusted commit texts
>    - Using Alexey's ucs-2 patch now
> 
> v3:
>    - Add patch for Travis
>    - Adjustments to test code to not have to include openssl/sha.h
> 
> v2:
>    - split out type fix in sha256 documentation into own patch
>    - replace rotr in sha256 implementation with assembly macro
>    - Added test cases needing -lcrypto on host; added test script
> 
> 
> Stefan Berger (5):
>    tcgbios: Change format of S_CRTM_VERSION string to ucs-2
>    tcgbios: Use assembly for 32 bit rotr in sha256
>    tcgbios: Use The proper sha function for each PCR bank
>    tcgbios: Add test cases and test script to run them
>    Travis: Add script for running tests on Travis
> 
>   .travis.yml           | 15 ++++++++++
>   Makefile.gen          |  2 +-
>   lib/libtpm/Makefile   |  1 +
>   lib/libtpm/sha.c      | 27 ++++++++++++++++++
>   lib/libtpm/sha256.c   | 40 +++++++++++++++++++++++---
>   lib/libtpm/sha512.c   | 36 ++++++++++++++++++++++++
>   lib/libtpm/sha_test.h | 59 +++++++++++++++++++++++++++++++++++++++
>   lib/libtpm/tcgbios.c  | 65 +++++++++++++++++++++++++++++--------------
>   lib/libtpm/test.sh    | 31 +++++++++++++++++++++
>   make.rules            |  3 +-
>   10 files changed, 252 insertions(+), 27 deletions(-)
>   create mode 100644 .travis.yml
>   create mode 100644 lib/libtpm/sha_test.h
>   create mode 100755 lib/libtpm/test.sh
>