Skip to content

Commit 345d428

Browse files
committed
signer: update sigstore docs + minor refactor
As per Jussi's CR: - Add comments to explain env vars - Add comments to mark API as unstable - Refactor raise-except-raise pattern Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
1 parent 717f73a commit 345d428

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

securesystemslib/signer/_sigstore_signer.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@
5858

5959

6060
class SigstoreKey(Key):
61-
"""Sigstore verifier."""
61+
"""Sigstore verifier.
62+
63+
NOTE: unstable API - routines and metadata formats may change!
64+
"""
6265

6366
@classmethod
6467
def from_dict(cls, keyid: str, key_dict: Dict[str, Any]) -> "SigstoreKey":
@@ -84,6 +87,7 @@ def to_dict(self) -> Dict:
8487

8588
def verify_signature(self, signature: Signature, data: bytes) -> None:
8689
# pylint: disable=import-outside-toplevel,import-error
90+
result = None
8791
try:
8892
from sigstore.verify import VerificationMaterials, Verifier
8993
from sigstore.verify.policy import Identity
@@ -98,25 +102,29 @@ def verify_signature(self, signature: Signature, data: bytes) -> None:
98102
input_=io.BytesIO(data), bundle=bundle, offline=True
99103
)
100104
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
110105

111106
except Exception as e:
112107
logger.info("Key %s failed to verify sig: %s", self.keyid, str(e))
113108
raise VerificationError(
114109
f"Unknown failure to verify signature by {self.keyid}"
115110
) from e
116111

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+
117122

118123
class SigstoreSigner(Signer):
119-
"""Sigstore signer."""
124+
"""Sigstore signer.
125+
126+
NOTE: unstable API - routines and metadata formats may change!
127+
"""
120128

121129
def __init__(self, token: str, public_key: Key):
122130
# TODO: Vet public key

tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ deps =
5050
-r{toxinidir}/requirements-pinned.txt
5151
-r{toxinidir}/requirements-sigstore.txt
5252
passenv =
53+
# These are required to detect ambient credentials on GitHub
5354
GITHUB_ACTIONS
5455
ACTIONS_ID_TOKEN_REQUEST_TOKEN
5556
ACTIONS_ID_TOKEN_REQUEST_URL

0 commit comments

Comments
 (0)