Skip to content

trace-tests rejects software-only runtime platform despite trace-spec allowing it #16

Description

@SomeshZanwar

Summary

trace-spec now includes software-only as a valid runtime.platform value, but trace-tests still rejects it in both the bundled schema and the TR-RTE runtime checker.

This appears to create drift between the TRACE spec/schema and the conformance test suite.

Evidence

After pulling the latest trace-spec main branch, software-only appears in the TRACE schema/model:

src/agentrust_trace/models.py includes "software-only"
src/agentrust_trace/schema/trace-v0.1.json includes "software-only"

The schema description says:

software-only marks development-mode records with no hardware backing; they must never be treated as attested evidence.

In trace-tests, software-only is currently absent from:

schemas/trace-claim.json
src/trace_tests/modules/tr_rte.py

Current trace-tests schema enum:

["intel-tdx", "amd-sev-snp", "nvidia-h100", "nvidia-blackwell", "aws-nitro", "arm-cca", "google-confidential-space", "tpm2"]

Current TR-RTE platform set:

_VALID_PLATFORMS = frozenset({
    "intel-tdx",
    "amd-sev-snp",
    "nvidia-h100",
    "nvidia-blackwell",
    "aws-nitro",
    "arm-cca",
    "google-confidential-space",
    "tpm2",
})

Local reproduction

I created a temporary copy of tests/vectors/valid_level0.json and changed only:

"runtime": {
  "platform": "software-only"
}

Direct schema validation reports:

schema errors: 1
- 'software-only' is not one of ['intel-tdx', 'amd-sev-snp', 'nvidia-h100', 'nvidia-blackwell', 'aws-nitro', 'arm-cca', 'google-confidential-space', 'tpm2']

Running the Level 1 CLI with freshness relaxed:

python -m trace_tests.cli verify --record tests\vectors\tmp_software_only_level0.json --level 1 --max-age 999999999

returns:

TR-RTE  FAIL  TR-RTE-001: runtime.platform 'software-only' is not in the registered set; valid: ['amd-sev-snp', 'arm-cca', 'aws-nitro', 'google-confidential-space', 'intel-tdx', 'nvidia-blackwell', 'nvidia-h100', 'tpm2']

Expected behavior / question

Since software-only is now a registered platform in trace-spec, should trace-tests also recognize it as a valid platform value?

There is an important conformance nuance:

  • software-only should not be treated as hardware-attested evidence.
  • Level 1/2 may still need to fail or downgrade records using software-only, because those levels require stronger attestation.
  • But the failure should probably not be “unknown platform” if the spec now registers software-only.

Possible approaches:

  1. Add software-only to the bundled schemas/trace-claim.json enum and _VALID_PLATFORMS.
  2. Add explicit conformance logic that permits software-only at Level 0 but fails it at Level 1/2 with a clearer message such as “software-only is development-mode and not acceptable for TEE-attested levels.”
  3. Add a negative/level-specific test vector to lock this behavior.

Environment

OS: Windows
Python: 3.12.4
trace-tests main: up to date at time of testing
trace-spec main: pulled latest before comparison

Full trace-tests suite result before reproduction:

105 passed, 5 xpassed in 2.58s

Temporary test file was deleted afterward, and the working tree is clean.

Related

This appears related to recent trace-spec changes that added/clarified software-only as a development-mode, non-attested runtime platform.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions