|
14 | 14 |
|
15 | 15 |
|
16 | 16 | import hashlib
|
| 17 | +import json |
17 | 18 | import logging
|
18 | 19 | from datetime import datetime, timezone
|
19 | 20 |
|
|
24 | 25 | from sigstore._internal.trust import CertificateAuthority
|
25 | 26 | from sigstore.dsse import StatementBuilder, Subject
|
26 | 27 | from sigstore.errors import VerificationError
|
27 |
| -from sigstore.models import Bundle, LogEntry |
| 28 | +from sigstore.models import Bundle |
28 | 29 | from sigstore.verify import policy
|
29 | 30 | from sigstore.verify.verifier import Verifier
|
30 | 31 |
|
@@ -240,11 +241,12 @@ def test_vierifier_verify_no_inclusion_promise_and_integrated_time(
|
240 | 241 | There is one exception: When inclusionPromise is present, but integratedTime is not, then we expect a failure
|
241 | 242 | because the integratedTime is required to verify the inclusionPromise.
|
242 | 243 | """
|
243 |
| - bundle = Bundle.from_json(asset("tsa/bundle.txt.sigstore").read_bytes()) |
244 |
| - _dict = bundle.log_entry._to_rekor().to_dict() |
| 244 | + bundle_dict = json.loads(asset("tsa/bundle.txt.sigstore").read_bytes()) |
| 245 | + (entry_dict,) = bundle_dict["verificationMaterial"]["tlogEntries"] |
245 | 246 | for field in fields_to_delete:
|
246 |
| - del _dict[field] |
247 |
| - bundle._log_entry = LogEntry._from_dict_rekor(_dict) |
| 247 | + del entry_dict[field] |
| 248 | + # Bundle.from_json() also validates the bundle's layout. |
| 249 | + bundle = Bundle.from_json(json.dumps(bundle_dict)) |
248 | 250 | verifier.verify_artifact(
|
249 | 251 | asset("tsa/bundle.txt").read_bytes(),
|
250 | 252 | bundle,
|
|
0 commit comments