fix(assessment): reject ambiguous trust keyrings
This commit is contained in:
@@ -272,7 +272,7 @@ class CapabilityFitReviewTests(unittest.TestCase):
|
||||
)
|
||||
self.assertTrue(report["proof_scope"]["published_keyring_hash"]["valid"])
|
||||
|
||||
def test_locally_pinned_rotation_keys_follow_core_status_semantics(self) -> None:
|
||||
def test_locally_pinned_rotation_keys_fail_closed(self) -> None:
|
||||
keys = trusted_keys_from_keyring(
|
||||
{
|
||||
"keys": [
|
||||
@@ -288,6 +288,38 @@ class CapabilityFitReviewTests(unittest.TestCase):
|
||||
{"legacy": "base64-key"},
|
||||
trusted_keys_from_keyring({"legacy": "base64-key"}),
|
||||
)
|
||||
self.assertEqual(
|
||||
{},
|
||||
trusted_keys_from_keyring(
|
||||
{
|
||||
"keys": [
|
||||
{
|
||||
"key_id": "typo",
|
||||
"status": "retierd",
|
||||
"public_key": "unsafe",
|
||||
}
|
||||
]
|
||||
}
|
||||
),
|
||||
)
|
||||
self.assertEqual(
|
||||
{},
|
||||
trusted_keys_from_keyring(
|
||||
{
|
||||
"keys": [
|
||||
{"key_id": "duplicate", "public_key": "a"},
|
||||
{"key_id": "duplicate", "public_key": "b"},
|
||||
]
|
||||
}
|
||||
),
|
||||
)
|
||||
self.assertEqual({}, trusted_keys_from_keyring({"keys": "invalid"}))
|
||||
self.assertEqual(
|
||||
{},
|
||||
trusted_keys_from_keyring(
|
||||
{"keys": [{"key_id": " ", "public_key": "unsafe"}]}
|
||||
),
|
||||
)
|
||||
|
||||
def test_schema_error_blocks_before_comparison(self) -> None:
|
||||
assessment = deepcopy(self.assessment)
|
||||
|
||||
Reference in New Issue
Block a user