Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/sigstore_models/rekor/v2/verifier.py: 76%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

21 statements  

1import typing as t 

2 

3import typing_extensions as te 

4from pydantic import model_validator 

5 

6from sigstore_models._core import Base, ProtoBytes 

7from sigstore_models.common.v1 import PublicKeyDetails, X509Certificate 

8 

9 

10class PublicKey(Base): 

11 raw_bytes: ProtoBytes 

12 

13 

14class Verifier(Base): 

15 public_key: t.Optional[PublicKey] = None 

16 x509_certificate: t.Optional[X509Certificate] = None 

17 

18 key_details: PublicKeyDetails 

19 

20 @model_validator(mode="after") 

21 def check_verifier_oneof(self) -> te.Self: 

22 fields = [self.public_key, self.x509_certificate] 

23 if sum(bool(f) for f in fields) != 1: 

24 raise ValueError("Exactly one of publicKey or x509Certificate must be set") 

25 return self 

26 

27 

28class Signature(Base): 

29 content: ProtoBytes 

30 verifier: Verifier