Commit Graph

1284 Commits

Author SHA1 Message Date
Stefan Berger
61cb823169 tpm2: Start supporting RSA 3072 keys
Start supporting RSA 3072 keys.

NVMarshal.c: We now accept state that was written by libtpms when RSA keys
sizes were 2048 or are 3072, basically less-or-equal than 3072.

Also increase the NVRAM memory size by ~45 kb to accommodate the worst
case where the USER NVRAM is full of 65 2048 bit persisted keys whose 65
OBJECTs are now expanding and need to again fit into the NVRAM. We have
to add exactly 45760 bytes to accomodate this case. See swtpm test
case test_tpm2_save_load_state_2. 65 * 704 = 45760.

NOTE: BETTER TO NOT BACKPORT!!! MAY NEGATIVELY AFFECT UPGRADE PATH!

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-05-04 08:01:26 -04:00
Stefan Berger
8016592b34 tpm2: Increase MAX_CONTEXT_SIZE to 2680 for RSA 3072 bit keys
Increase the MAX_CONTEXT_SIZE to 2680 to support the increased context
size when using 3072 bit keys.

NVMarhsal.c: Accept MAX_CONTEXT_SIZE values of less-or-equal the 2680,
which also accepts context sizes of the old value 2474.

NOTE: BETTER TO NOT BACKPORT!

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-05-04 08:01:26 -04:00
Stefan Berger
391d878197 tests: Display sizes of components of OBJECT when OBJECT size changes
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-05-04 08:01:26 -04:00
Stefan Berger
92d1544b0d tpm2: Add a pAssert after a statement causing unfounded Coverity complaint
This is the Coverity complaint about the line

infoDataSize = TimeGetMarshaled(&infoData);

CID 1402057: Out-of-bounds access (OVERRUN)
1. overrun-buffer-val: Overrunning array infoData of 32 bytes by passing
  it to a function which accesses it at byte offset 255.

TimeGetMarshaled() correctly serializes into &infoData, which is casted to
a buffer and then the data are written into the buffer. Also only 25 bytes,
as indicated by infoDataSize, are used, which is less than sizeof(infoData),
which is 32.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-24 17:19:58 -04:00
Stefan Berger
db80bd9ea1 build-sys: Remove 'experimental' tag from --with-tpm2
TPM 2 support has been in libtpms for quite some time now
and the experimental tag can be removed.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-21 11:23:23 -04:00
Stefan Berger
91b947f41e tpm2: Comment dead code in Unmarshal.c/Marshal.c
This patch comments unreference/dead code in Unmarshal.c/Marshal.c.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-17 09:52:57 -04:00
Stefan Berger
157630bcc4 tpm2: Comment unused hash and RSA related functions
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
b19d7f6aca CHANGES: Add entry about changes for 0.8.0 so far
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
a171839cab gitignore: Ignore .dirstamp files
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
82342abebe tpm2: Upgrade advertised revision to rev 159
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
e6bbb8755e tpm2: Sync TpmToOsslMath.c with svn repo
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
0fc4f49119 tpm2: Initialize g_daUsed to False on startup (bugfix?)
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
5c91611028 tpm2: Deactivate unused BnIsProbablyPrime() and BnGcd()
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
dd84e23a2d tpm2: Fix conditional compile of TPM2_Vendor_TCG_Test
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
f4c1824ec0 tpm2: ACT: Update CommandDispatchData.h to latest version
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
569a9e03ea tpm2: ACT: Add rest of ACT code
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
46c267da85 tpm2: ACT: Extend case statements with FOR_EACH_ACT
Since none of the ACTs are enabled, the FOR_EACH_ACT statements
will all be no-ops.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
f4b7a835ee tpm2: ACT: Add (disabled) ACT fields to ORDERLY_DATA and STATE_CLEAR_DATA
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
1f4c70cd3c tpm2: ACT: Extend TPM2_Getcapability with TPM_CAP_ACT
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
213271eed8 tpm2: ACT: #define __ACT_DISABLED if no RH_ACT_* is YES
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
fd41faa54a tpm2: ACT: Add data structures, defines, and un/marshalling code
Disable ACT via the TpmProfile.h's RH_ACT_{0,1,A) settings of NO.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
69537eca7e tpm2: Add comment to MAX_CONTEXT_SIZE in TpmProfile.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
fce3cafa1a tpm2: Have default case return TPM_RC_VALUE rather than FAIL()
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
9cf21831ba tpm2: Move CONTEXT_COUNTER defintion to GpMacros.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
2a28b96aac tpm2: Use CONTEXT_SLOT definition from TpmProfile.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
1f686aa8e9 tpm2: Remove unused define of CONTEXT_SLOT in Global.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
fb94dadeca tpm2: Rename TPM_MAX_DERIVATION_BITS to MAX_DERIVATION_BITS
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
57bfde7bf7 tpm2: Include Platform_fp.h in AttestationCommands.c
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
6c2517355c tpm2: Remove unused RADIX_BITS and BSIZE defines from TpmProfile.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
99e025c3d9 tpm2: Return int rather than BOOL on _plat__* functions
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
69d0950e34 tpm2: Move #defines for hash and sym alignment out of TpmProfile.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
2296a4dd2a tpm2: Comments and whitespace changes only
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
25a9338eb4 tpm2: Assign TPM_ALG_ERROR to hashAlg rather than direct return
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
c9bc79eaa5 tpm2: Remove PRIVATE_VENDOR_SPECIFIC_BYTES from GpMacros.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
c4d84b994c tpm2: Remove unnecessary check of #defines
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
5f0e2aef9d tpm2: Add missing SM4; do not enable it
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
5233aa9e54 tpm2: Add support for SM3 hash; test cases missing
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
15687b63bc tpm2: Add missing Camellia code including test cases
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
e226ea4c2d tpm2: Reorganize TpmToOsslSym.h
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
893dafd7c0 tpm2: Re-introduce RSA_PRIVATE_SIZE and use it in TPM2B_PRIVATE_KEY_RSA
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
bbbaf89572 tpm2: Move NULL pointer check and remove size limit check in CryptRand.c
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
53d8e0de55 tpm2: Replace TPMI_RH_HIERARCHY_AUTH with .._POLICY in SetPrimaryPolicy_In
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
167c566c4f tpm2: Add TPMI_RH_HIERARCHY_AUTH and unmarshaling code
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
292a7660b4 tpm2: Add (unused) TABLE_DRIVEN_MARSHAL code to CommandDispatcher
signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
9c8bbf7777 tpm2: Indicate build switch choices and add for TABLE_DRIVEN_MARSHAL
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
8c3dd46150 tpm2: Change order of includes
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
6eab7590e8 tpm2: Remove unncessary includes from NVDynamic.c
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
c9b676df07 tpm2: Add casts to some variables
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
58aa852d8a tpm2: Refactor functions in TPMCmdp (logic change)
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00
Stefan Berger
0aaae35073 tpm2: Improve handling of broken NVChip file
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-04-14 16:03:45 -04:00