Commit Graph

8 Commits (master)

Author SHA1 Message Date
Aidan Garske a89169ef05 Include SPDM, PQC, test and CMake files in the source distribution 2026-09-14 13:28:18 -07:00
Aidan Garske b57d851156 Add SealSQ QVault TPM post-quantum support and pqc_ctrl example 2026-08-14 19:44:00 +01:00
aidan garske 0063c16e7e Add TPM backed ML-DSA authentication for TLS 1.3 with PQC example and tests 2026-07-22 18:02:48 -07:00
aidan garske ad08b88d6e Add fine-grained PQC build macros to trim v1.85 ML-DSA/ML-KEM by algorithm and operation 2026-06-15 15:49:34 -07:00
Aidan Garske 557aae6d03 wolfTPM v1.85 PQC: leak fix, capability-gated tests, negative examples, benchmark 2026-06-08 23:08:27 +01:00
Aidan Garske 1b909655bf Add Sign + verify examples 2026-04-29 10:28:44 -07:00
Aidan Garske 4491c20caa Add PQC options to examples/keygen + ML-KEM encap example
examples/keygen/keygen:
  - New -mldsa[=44|65|87], -hash_mldsa[=44|65|87], -mlkem[=512|768|1024]
    options alongside existing -rsa/-ecc/-sym/-keyedhash. Dispatches to
    wolfTPM2_GetKeyTemplate_{MLDSA,HASH_MLDSA,MLKEM}, then CreateKey under
    the SRK parent. AIK template path correctly rejects PQC (AIKs are
    RSA/ECC only per TCG).
  - Param-set parser defaults: MLDSA-65, MLKEM-768, SHA-256 pre-hash for
    Hash-ML-DSA.

  examples/pqc/mlkem_encap (new):
  - CreatePrimary MLKEM (512/768/1024) then Encapsulate + Decapsulate,
    asserting the two shared secrets match byte-for-byte. Companion to
    pqc_mssim_e2e but focused on the KEM wrappers alone.

  examples/run_examples.sh:
  - Detects WOLFTPM_V185 from config.h, runs keygen+keyload round-trip
    for all 9 PQC variants (same pattern used by RSA/ECC blocks above).
    All 9 pass against fwtpm_server.
2026-04-29 10:27:50 -07:00
Aidan Garske 552032d357 fwTPM PQC: mssim E2E test + output formatting
Cross-process PQC validation: new examples/pqc/pqc_mssim_e2e exercises
  wolfTPM2_* client wrappers against a running fwtpm_server over the
  mssim (SWTPM) socket transport. Two round-trips in one binary:

  - MLKEM-768 Encap/Decap: asserts ciphertext = 1088 bytes and the two
    derived shared secrets are byte-identical.
  - HashMLDSA-65 SignDigest/Verify: asserts signature = 3309 bytes and
    the validation ticket carries TPM_ST_DIGEST_VERIFIED.

  tests/pqc_mssim_e2e.sh spawns fwtpm_server, waits for TCP readiness,
  runs the client, and cleans up. Proves client marshaling + mssim
  framing + fwtpm_server unmarshaling + PQC handler dispatch agree over
  a real socket between two separately-compiled processes — orthogonal
  to the in-process fwtpm_unit.test suite.

  Infrastructure:
  - configure.ac: new AM_CONDITIONAL BUILD_V185 so the example only
    builds when --enable-v185 is passed (matches the pattern of
    BUILD_SWTPM, BUILD_DEVTPM, etc.).
  - examples/include.am, examples/pqc/include.am: register the example.

  Output polish: replaced 85 inconsistent calls with a
  fwtpm_pass(name, is_pqc) helper that produces aligned
  columns. PQC tests are tagged [PQC] so they're visually distinct
  from the classical suite at a glance. All 86 existing tests still pass.
2026-04-29 10:27:50 -07:00