@@ -13,7 +13,7 @@ def test_defaults(self) -> None:
1313
1414class TestAttestationVerifier :
1515 def test_verify_valid (self ) -> None :
16- verifier = AttestationVerifier ()
16+ verifier = AttestationVerifier (signature_verifier = lambda evidence : True )
1717 verifier .register_trusted_hash (TEEPlatform .SGX , "abc123" )
1818 evidence = AttestationEvidence (
1919 platform = TEEPlatform .SGX ,
@@ -96,7 +96,7 @@ def test_verify_no_trusted_hashes_for_platform(self) -> None:
9696 assert any ("No trusted" in e for e in result .errors )
9797
9898 def test_verify_short_signature (self ) -> None :
99- verifier = AttestationVerifier ()
99+ verifier = AttestationVerifier (signature_verifier = lambda evidence : True )
100100 verifier .register_trusted_hash (TEEPlatform .SGX , "abc" )
101101 evidence = AttestationEvidence (
102102 platform = TEEPlatform .SGX ,
@@ -108,8 +108,50 @@ def test_verify_short_signature(self) -> None:
108108 assert result .valid is False
109109 assert any ("too short" in e .lower () for e in result .errors )
110110
111- def test_register_trusted_hash_case_insensitive (self ) -> None :
111+ def test_verify_requires_signature_verifier (self ) -> None :
112112 verifier = AttestationVerifier ()
113+ verifier .register_trusted_hash (TEEPlatform .SGX , "abc" )
114+ evidence = AttestationEvidence (
115+ platform = TEEPlatform .SGX ,
116+ enclave_hash = "abc" ,
117+ signature = "sig123456" ,
118+ certificates = ["cert" ],
119+ )
120+ result = verifier .verify (evidence )
121+ assert result .valid is False
122+ assert any ("not configured" in e for e in result .errors )
123+
124+ def test_verify_rejects_signature_verifier_failure (self ) -> None :
125+ verifier = AttestationVerifier (signature_verifier = lambda evidence : False )
126+ verifier .register_trusted_hash (TEEPlatform .SGX , "abc" )
127+ evidence = AttestationEvidence (
128+ platform = TEEPlatform .SGX ,
129+ enclave_hash = "abc" ,
130+ signature = "sig123456" ,
131+ certificates = ["cert" ],
132+ )
133+ result = verifier .verify (evidence )
134+ assert result .valid is False
135+ assert any ("signature verification failed" in e .lower () for e in result .errors )
136+
137+ def test_verify_rejects_signature_verifier_exception (self ) -> None :
138+ def failing_verifier (evidence : AttestationEvidence ) -> bool :
139+ raise ValueError ("bad chain" )
140+
141+ verifier = AttestationVerifier (signature_verifier = failing_verifier )
142+ verifier .register_trusted_hash (TEEPlatform .SGX , "abc" )
143+ evidence = AttestationEvidence (
144+ platform = TEEPlatform .SGX ,
145+ enclave_hash = "abc" ,
146+ signature = "sig123456" ,
147+ certificates = ["cert" ],
148+ )
149+ result = verifier .verify (evidence )
150+ assert result .valid is False
151+ assert any ("bad chain" in e for e in result .errors )
152+
153+ def test_register_trusted_hash_case_insensitive (self ) -> None :
154+ verifier = AttestationVerifier (signature_verifier = lambda evidence : True )
113155 verifier .register_trusted_hash (TEEPlatform .SGX , "ABC123" )
114156 evidence = AttestationEvidence (
115157 platform = TEEPlatform .SGX ,
@@ -126,7 +168,7 @@ def test_compute_expected_hash(self) -> None:
126168 assert len (h ) == 64 # hex-encoded 32 bytes
127169
128170 def test_register_multiple_hashes (self ) -> None :
129- verifier = AttestationVerifier ()
171+ verifier = AttestationVerifier (signature_verifier = lambda evidence : True )
130172 verifier .register_trusted_hash (TEEPlatform .SGX , "hash1" )
131173 verifier .register_trusted_hash (TEEPlatform .SGX , "hash2" )
132174 e1 = AttestationEvidence (
0 commit comments