Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
e04783c
F-14018 - Make Clear seed replacement atomic
aidangarske Oct 13, 2026
8acf000
F-14020 - Roll back failed global write lock
aidangarske Oct 13, 2026
7a450ab
F-14021 - Propagate session crypto failures
aidangarske Oct 13, 2026
fac7d24
F-14022 - Preserve small-stack allocation errors
aidangarske Oct 13, 2026
7a23828
F-14025 - Reject truncated NV SetBits commands
aidangarske Oct 13, 2026
b20df11
F-14069 - Validate special NV index sizes
aidangarske Oct 13, 2026
b9af6bc
F-14075 - Reject truncated policy buffers
aidangarske Oct 13, 2026
8e2c941
F-14407 - Preserve WRITE_STCLEAR write access
aidangarske Oct 13, 2026
5dc6ce9
F-14408 - Validate PolicySigned nonce input
aidangarske Oct 13, 2026
49a1f68
F-14409 - Reject unknown PolicySigned handles
aidangarske Oct 13, 2026
4af79b4
F-14410 - Preserve PCR values across Clear
aidangarske Oct 13, 2026
a29ecfc
F-14411 - Reset Clear-owned TPM state
aidangarske Oct 13, 2026
3d2d160
F-14412 - Track orderly startup state
aidangarske Oct 13, 2026
d6363c2
F-14413 - Reject duplicate restored session handles
aidangarske Oct 13, 2026
e8fae41
F-14414 - Honor keyed hash HMAC schemes
aidangarske Oct 13, 2026
3614415
F-14415 - Implement multi-bank event sequences
aidangarske Oct 13, 2026
827365f
F-14416 - Preserve RSA OAEP labels
aidangarske Oct 13, 2026
37eb365
F-14417 - Preserve loaded object authorization
aidangarske Oct 13, 2026
f8f6f70
F-14432 - Reject unsupported policy expiration
aidangarske Oct 13, 2026
c4b4b98
F-14682 - Release saved sessions on flush
aidangarske Oct 13, 2026
e20a3e9
F-14683 - Preserve the NV counter high-water mark
aidangarske Oct 13, 2026
deaa0bc
F-14685 - Validate objects before persistence
aidangarske Oct 13, 2026
b6defc7
F-14696 - Require CertifyCreation tickets
aidangarske Oct 13, 2026
29262b4
F-14697 - Reject fixed imported objects
aidangarske Oct 13, 2026
c45085c
F-14698 - Reject unsupported PIN NV indices
aidangarske Oct 13, 2026
cdbade8
F-15704 - Exclude bound auth from session HMACs
aidangarske Oct 13, 2026
985410f
F-15705 - Limit PCR read digest lists
aidangarske Oct 13, 2026
91a4f80
F-15706 - Honor allocated PCR event banks
aidangarske Oct 13, 2026
fbfe0dc
F-15707 - Bound dictionary attack thresholds
aidangarske Oct 13, 2026
ecf92ab
F-15708 - Propagate NV extend hash failures
aidangarske Oct 13, 2026
40a26d5
F-15814 - Bound StartAuthSession caller nonces
aidangarske Oct 13, 2026
996f2c0
F-15815 - Validate session symmetric definitions
aidangarske Oct 13, 2026
7be1265
F-15816 - Normalize salted session errors
aidangarske Oct 13, 2026
a2675f2
F-15817 - Validate HMAC key selection
aidangarske Oct 13, 2026
3560e2d
F-15818 - Reject restricted HMAC sequences
aidangarske Oct 13, 2026
1669b04
F-15819 - Reject unsupported cipher modes
aidangarske Oct 13, 2026
5cc5f51
F-15820 - Enforce symmetric command constraints
aidangarske Oct 13, 2026
f731d3f
F-15821 - Bound TPM property groups
aidangarske Oct 13, 2026
d8afa67
F-15822 - Report command NV attributes
aidangarske Oct 13, 2026
47221fe
F-15823 - Reset platform authorization on startup
aidangarske Oct 13, 2026
1174939
F-15824 - Flush transient state on every startup
aidangarske Oct 13, 2026
1a727a6
F-15825 - Correct ClockSet upper bound
aidangarske Oct 13, 2026
314dfb1
F-15826 - Correct invalid provision handle errors
aidangarske Oct 13, 2026
df21076
F-15827 - Validate hash ticket hierarchies
aidangarske Oct 13, 2026
cbaaa3d
F-15828 - Preserve sequences after failed completion
aidangarske Oct 13, 2026
feab72b
F-15829 - Reject sessions on context commands
aidangarske Oct 13, 2026
fc2d774
F-15830 - Return indexed handle reference errors
aidangarske Oct 13, 2026
381a0cf
F-15831 - Gate pre-startup capability queries
aidangarske Oct 13, 2026
1e9b0ef
F-15832 - Enforce PolicySigned expiration
aidangarske Oct 13, 2026
d3c3c00
F-15833 - Validate policy locality ranges
aidangarske Oct 13, 2026
a83a2b5
F-15834 - Reject unsupported policy command codes
aidangarske Oct 13, 2026
6112f2f
F-15836 - Validate created object attributes
aidangarske Oct 13, 2026
353f481
F-15837 - Obfuscate attestation metadata
aidangarske Oct 13, 2026
edfb9da
F-15838 - Limit StirRandom input size
aidangarske Oct 13, 2026
251af5d
F-15835 - Validate PCR selection sizes
aidangarske Oct 14, 2026
1d25ebf
Rebase policy timeouts across Clear
aidangarske Oct 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/fwtpm/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ The eight Version 185 PQC commands (`TPM2_Encapsulate`, `TPM2_Decapsulate`, `TPM

Implemented counts assume RSA, ECC, AES, and all feature groups, with SPDM, PQC (except in the Version 185 row), and the vendor test command disabled. Enabling `WOLFTPM_SPDM` adds `PolicyTransportSPDM` (one more implemented code). The Version 185 row includes the eight PQC commands.

Known limitations: `TPM2_SelfTest` is a minimal smoke test and `TPM2_IncrementalSelfTest` is a stub, as noted above, and `SU_STATE` resume is not supported (see the lifecycle section). The command coverage above should not be read as full conformance with the TCG specification.
Known limitations: `TPM2_SelfTest` is a minimal smoke test and `TPM2_IncrementalSelfTest` is a stub, as noted above, `SU_STATE` resume is not supported (see the lifecycle section), `TPM2_PolicySecret` rejects nonzero expiration because expiring policy tickets are not supported, and `TPM2_DictionaryAttackParameters` limits `newMaxTries` to 65535. The command coverage above should not be read as full conformance with the TCG specification.

## Startup and Shutdown Lifecycle

Expand Down
3 changes: 2 additions & 1 deletion examples/bench/bench.c
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,8 @@ static int bench_sym_aes(WOLFTPM2_DEV* dev, WOLFTPM2_KEY* storageKey,
XMEMSET(iv, 0, sizeof(iv));
rc = wolfTPM2_EncryptDecrypt(dev, &aesKey, in, out, inOutSz, iv,
sizeof(iv), isDecrypt);
if (bench_unsupported(rc)) {
if (bench_unsupported(rc) ||
(rc & RC_MAX_FMT1) == TPM_RC_MODE) {
printf("%-16s Skipped (not supported)\n", desc);
rc = 0;
goto exit;
Expand Down
6 changes: 6 additions & 0 deletions src/fwtpm/fwtpm.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ int FWTPM_Init(FWTPM_CTX* ctx)
}
}

/* Timed authorization tickets are valid only within this time epoch. */
if (rc == 0) {
rc = wc_RNG_GenerateBlock(&ctx->rng, ctx->timeEpoch,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Random time epoch? Not an actual time or fixed epoch? Is this even used in the fwTPM?

sizeof(ctx->timeEpoch));
}

#ifndef FWTPM_NO_CONTEXT
/* Generate per-boot context protection key (volatile only) for
* ContextSave/ContextLoad HMAC + AES-CFB session blob protection. */
Expand Down
Loading
Loading