5656 VerificationMaterial ,
5757)
5858from sigstore_protobuf_specs .dev .sigstore .common .v1 import (
59- HashAlgorithm ,
6059 HashOutput ,
6160 LogId ,
6261 MessageSignature ,
7271)
7372from sigstore_protobuf_specs .io .intoto import Envelope
7473
75- from sigstore ._internal import dsse
7674from sigstore import hashes as sigstore_hashes
75+ from sigstore ._internal import dsse
7776from sigstore ._internal .fulcio import (
7877 ExpiredCertificate ,
7978 FulcioCertificateSigningResponse ,
8281from sigstore ._internal .rekor .client import RekorClient
8382from sigstore ._internal .sct import verify_sct
8483from sigstore ._internal .trustroot import TrustedRoot
85- from sigstore ._utils import PEMCert , get_digest , sha256_streaming
84+ from sigstore ._utils import PEMCert , get_digest
8685from sigstore .oidc import ExpiredIdentity , IdentityToken
8786from sigstore .transparency import LogEntry
8887
@@ -176,7 +175,7 @@ def _signing_cert(
176175
177176 def sign (
178177 self ,
179- input_ : IO [bytes ] | Statement ,
178+ input_ : IO [bytes ] | Statement | sigstore_hashes . Hashed ,
180179 ) -> Bundle :
181180 """Public API for signing blobs"""
182181 private_key = self ._private_key
@@ -219,16 +218,16 @@ def sign(
219218 ),
220219 )
221220 else :
222- input_digest = sha256_streaming (input_ )
221+ hashed_input = get_digest (input_ )
223222
224223 artifact_signature = private_key .sign (
225- input_digest , ec .ECDSA (Prehashed ( hashes . SHA256 () ))
224+ hashed_input . digest , ec .ECDSA (hashed_input . as_prehashed ( ))
226225 )
227226
228227 content = MessageSignature (
229228 message_digest = HashOutput (
230- algorithm = HashAlgorithm . SHA2_256 ,
231- digest = input_digest ,
229+ algorithm = hashed_input . algorithm ,
230+ digest = hashed_input . digest . hex () ,
232231 ),
233232 signature = artifact_signature ,
234233 )
@@ -244,8 +243,8 @@ def sign(
244243 ),
245244 data = rekor_types .hashedrekord .Data (
246245 hash = rekor_types .hashedrekord .Hash (
247- algorithm = rekor_types . hashedrekord . Algorithm . SHA256 ,
248- value = input_digest .hex (),
246+ algorithm = hashed_input . as_hashedrekord_algorithm () ,
247+ value = hashed_input . digest .hex (),
249248 )
250249 ),
251250 ),
0 commit comments