Commit Graph

1279 Commits

Author SHA1 Message Date
Stefan Berger
580a7f7881 tests: Do not fail the test in case of an error but display message
Do not fail the entire test run in case of a failure but display an
error message instead and continue running tests.

Errors may happen in very rare cases and we just continue then while
assuming the output is logged.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
8cb5f7d4c0 tpm2: Propagate error from CryptRandStartup() and report error info
CryptRandStartup() did not propagate initialization errors to the caller
but always returned TRUE. We now return the initialization errors and
display an error message and some state variables.

This error should almost never occur, but the fuzzer was able to trigger
it with rev 146 when the random number generated returned 32 bit numbers only
and the same 32 bit number was returned as the one before it. With rev 150
the random number generating function now returns as many random numbers as
the caller requested and this error is not getting triggered anymore.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
b3509cce84 rev150: Remove unnecessary parameters from unmarshaling functions
The first functions in UnmarshalArray before HANDLE_FIRST_FLAG_TYPE
must not have an additional flag and so we remove it.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
1bd13f5bb5 tpm2: fix undefined behavior of macro expansion
Fix the preprocessor warning:

macro expansion producing 'defined' has undefined behavior

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
a433bf1217 tpm2: Coverity: Deactivate dead functions
CryptHashCopyState is not called from anywhere and the useless
call to CryptGetHashDef() it does obviously doesn't matter. Deactivate
the whole function using #if 0.

NvClearPersistent() and NvUpdatePersistent() are not used, either,
so we can also deactivate them and suppress a pointer related issue
that Coverity is complaining about.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
dc55da502e rev150: Update spec defines to revision 150
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
37196ce15a rev150: Remove obsolete CryptoHashData.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
c8ef72d930 rev150: Replace BnEccData.c with CryptEccData.c 2019-01-03 13:15:44 -05:00
Stefan Berger
db8a15798d rev150: Add #error to prevent users from defining SIMULATION
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
e327ce3c50 tpm2: Set LIBRARY_COMPATIBILITY_CHECK to YES
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
509c51e803 rev150: Add LIBRARY_COMPATIBILITY_CHECK build switch
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
4f9e942d49 rev150: Fix a bug in TPM2_Certify()
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
e69b7ee294 rev150: Reformatting of code
Reformatting of code and some fixes in code paths not used by libtpms.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
380b232ec9 rev150: Code comment changes only
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
141a71cdbd tpm2: Remove Bn2bin conversion function used during OSSL 1.1 conversion
Bn2bin was used during the conversion of the code for supporting OSSL 1.1
and testing the math results of < OSSL 1.1 against those produced by
the bignum code in the TPM 2. It's not needed anymore since the upstream
code has support for any OSSL version now.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
cd93aacfab tpm2: Remove NVRAM marshalling/unmarshalling test code
The test code for marshalling and unmarshalling the NVRAM hasn't
been used anymore, so remove it.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
ee48021bfd tpm2: Remove code verifying math results
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
3cd5a386f5 tpm2: Mark all libtpms changes with comments
Mark all libtpms changes with comments for easy identification
when diff'ing with the original TPM code.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
2bfed46bbc tpm2: Fix an error in BnValidateSignatureEcSm2()
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
1fc753b325 rev149: Update spec version to 149
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
bb2134a40b rev149: Sync code related to FILE_BACKED_NV #define
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
6df36cb56a rev149: Fix Initilazation of EPSeed if USE_PLATFORM_EPS is defined
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
24f6798005 rev149: Set retVal to initial value when defining it
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
10aa33d97e rev149: Change #if ALG_SM3 to #if ALG_SM3_256
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
ec7f2c6d39 rev149: Move #if SIMULATION into function
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
ba8f4aeed3 rev149: add pAssert to NvClearPersistent
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
5c7f5f49b2 rev149: Use #if define SELF_TEST rather than #if SELF_TEST
Signed-off-nby: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
9485a2fc08 rev149: Fix #define consistency check for big endian
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
6b98d9c111 rev149: Remove usage of INLINE_FUNCTIONS #define
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
5b0e6d6b7b rev149: Change CryptRandomStir to take UINT32 parameter
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
81ee72f482 rev149: Comment and reformatting changes
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
c5c13e2d95 rev149: Replace TPM_ALG_XYZ with ALG_XYZ_VALUE
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
097f9fcc1d tpm2: Enable ALG_CMAC
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
6b444ad3ff rev148: Rework how the TPM internal clock works
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
32ddd9845a rev148: Remove a #ifdef from TpmToOsslMath.c
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
828ffdc07e rev148: Rework entropy generation
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
53391008f5 rev148: Rework BIG/LITTLE ENDIAN #defines
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
77907030ce tpm2: Move time adjustments to end of VolatileState parsing
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
154fd97dc6 tpm2: Reimplement tpmClock and call it ClockGetTime
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
e8e57e1d22 rev148: Remove unused include file
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
5e3d9529da rev148: Upgrade the firmware version #defines (should be last patch)
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
fd4b55e36c rev148: Fix a bug in GpMacros.h
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
6deacafeb5 rev148: Adapt CrypSync.h's SELECT define to latest code
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
5cd236548b rev148: Final sync of file CryptEccMain.c
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
8bf9b06447 rev148: Text changes in TpmTypes.h
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
ff1f1305f5 rev148: Use #if ALG_* rather than #ifdef TPM_ALG_*
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
2d972055aa rev148: Check via #if SMAC_IMPLEMENTED
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
a50df09ca0 rev148: Some more text-only changes in Global.c
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
013059004d rev148: Fix return code in TPM2_PolicyTemplate
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00
Stefan Berger
16ec2970d7 rev148: Replace #ifdef TPM_CC_* with #if CC_*
Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2019-01-03 13:15:44 -05:00