From 58069c45b9e022ccd6b05071c1f29509e3957176 Mon Sep 17 00:00:00 2001 From: Harsh-Cyber Date: Sun, 21 Jun 2026 08:40:27 +0530 Subject: [PATCH 1/3] Change slsa_level minimum from 1 to 0 --- schemas/trace-claim.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schemas/trace-claim.json b/schemas/trace-claim.json index 3e4f81f..c86244a 100644 --- a/schemas/trace-claim.json +++ b/schemas/trace-claim.json @@ -62,7 +62,7 @@ "type": "object", "required": ["slsa_level", "digest"], "properties": { - "slsa_level": {"type": "integer", "minimum": 1, "maximum": 3}, + "slsa_level": {"type": "integer", "minimum": 0, "maximum": 3}, "builder": {"type": "string"}, "digest": {"type": "string", "pattern": "^sha(256:[0-9a-f]{64}|384:[0-9a-f]{96})$"}, "provenance_uri": {"type": "string", "format": "uri"} From aa84ce05e896e52bb9d429fc5afe9db565569470 Mon Sep 17 00:00:00 2001 From: Harsh-Cyber Date: Sun, 21 Jun 2026 08:43:38 +0530 Subject: [PATCH 2/3] Update SLSA levels to include level 0 --- src/trace_tests/modules/tr_sca.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/trace_tests/modules/tr_sca.py b/src/trace_tests/modules/tr_sca.py index 38a894b..d500fe1 100644 --- a/src/trace_tests/modules/tr_sca.py +++ b/src/trace_tests/modules/tr_sca.py @@ -8,7 +8,7 @@ from trace_tests.result import Finding, Status _DIGEST_RE = re.compile(r"^sha(256:[0-9a-f]{64}|384:[0-9a-f]{96})$") -_SLSA_LEVELS = frozenset({1, 2, 3}) +_SLSA_LEVELS = frozenset({0,1, 2, 3}) def check(trace: dict[str, Any]) -> list[Finding]: @@ -28,7 +28,7 @@ def check(trace: dict[str, Any]) -> list[Finding]: else: findings.append(Finding( "TR-SCA-001", Status.FAIL, - f"TR-SCA-001: build_provenance.slsa_level must be 1, 2, or 3, got {slsa_level!r}", + f"TR-SCA-001: build_provenance.slsa_level must be 0,1, 2, or 3, got {slsa_level!r}", )) digest = prov.get("digest", "") From ac96eadfb72c844da62a4db169bdc6a79d89a152 Mon Sep 17 00:00:00 2001 From: Harsh-Cyber Date: Sun, 21 Jun 2026 09:18:04 +0530 Subject: [PATCH 3/3] Update SLSA level range in test case --- tests/test_level0.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_level0.py b/tests/test_level0.py index 5fbcfce..3778ab2 100644 --- a/tests/test_level0.py +++ b/tests/test_level0.py @@ -40,7 +40,7 @@ def test_policy_enforcement_mode_known(self, valid_level0): assert valid_level0["policy"]["enforcement_mode"] in VALID_ENFORCEMENT def test_build_provenance_slsa_level_range(self, valid_level0): - assert valid_level0["build_provenance"]["slsa_level"] in (1, 2, 3) + assert valid_level0["build_provenance"]["slsa_level"] in (0,1, 2, 3) def test_build_provenance_digest_format(self, valid_level0): assert DIGEST_RE.match(valid_level0["build_provenance"]["digest"])