58
58
59
59
60
60
class SigstoreKey (Key ):
61
- """Sigstore verifier."""
61
+ """Sigstore verifier.
62
+
63
+ NOTE: unstable API - routines and metadata formats may change!
64
+ """
62
65
63
66
@classmethod
64
67
def from_dict (cls , keyid : str , key_dict : Dict [str , Any ]) -> "SigstoreKey" :
@@ -84,6 +87,7 @@ def to_dict(self) -> Dict:
84
87
85
88
def verify_signature (self , signature : Signature , data : bytes ) -> None :
86
89
# pylint: disable=import-outside-toplevel,import-error
90
+ result = None
87
91
try :
88
92
from sigstore .verify import VerificationMaterials , Verifier
89
93
from sigstore .verify .policy import Identity
@@ -98,25 +102,29 @@ def verify_signature(self, signature: Signature, data: bytes) -> None:
98
102
input_ = io .BytesIO (data ), bundle = bundle , offline = True
99
103
)
100
104
result = verifier .verify (materials , identity )
101
- if not result :
102
- logger .info (
103
- "Key %s failed to verify sig: %s" , self .keyid , result .reason
104
- )
105
- raise UnverifiedSignatureError (
106
- f"Failed to verify signature by { self .keyid } "
107
- )
108
- except UnverifiedSignatureError :
109
- raise
110
105
111
106
except Exception as e :
112
107
logger .info ("Key %s failed to verify sig: %s" , self .keyid , str (e ))
113
108
raise VerificationError (
114
109
f"Unknown failure to verify signature by { self .keyid } "
115
110
) from e
116
111
112
+ if not result :
113
+ logger .info (
114
+ "Key %s failed to verify sig: %s" ,
115
+ self .keyid ,
116
+ getattr (result , "reason" , "" ),
117
+ )
118
+ raise UnverifiedSignatureError (
119
+ f"Failed to verify signature by { self .keyid } "
120
+ )
121
+
117
122
118
123
class SigstoreSigner (Signer ):
119
- """Sigstore signer."""
124
+ """Sigstore signer.
125
+
126
+ NOTE: unstable API - routines and metadata formats may change!
127
+ """
120
128
121
129
def __init__ (self , token : str , public_key : Key ):
122
130
# TODO: Vet public key
0 commit comments