Skip to content

Commit f7ec9e3

Browse files
danielbodartclaude
andcommitted
Add secure timestamp to Fulcio codesign to fix TCC permission persistence
Without --timestamp, the short-lived Fulcio leaf cert (10 min) expires and macOS can't validate the certificate chain. This causes the designated requirement's certificate leaf OID check to fail on every launch, forcing TCC to re-prompt for microphone permission each time. The --timestamp flag embeds an Apple-signed RFC 3161 timestamp proving the signature was created while the cert was valid, allowing chain validation to succeed indefinitely. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 58d79f9 commit f7ec9e3

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

scripts/fulcio-codesign.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ cat > "$TMPDIR_WORK/entitlements.plist" <<ENTITLEMENTS
328328
</plist>
329329
ENTITLEMENTS
330330

331-
codesign --force --options runtime \
331+
codesign --force --options runtime --timestamp \
332332
--identifier "$IDENTIFIER" \
333333
--entitlements "$TMPDIR_WORK/entitlements.plist" \
334334
-r="$DR" \
@@ -346,10 +346,10 @@ security list-keychains -d user -s $ORIGINAL_KEYCHAINS
346346

347347
echo ""
348348
echo "=== Verification ==="
349-
# codesign -dvvv may return a non-zero exit for Fulcio-signed binaries
350-
# because the Sigstore CA is not in Apple's trust store. This is expected
351-
# and does not affect functionality — TCC reads the signing identity from
352-
# the CMS blob regardless of chain trust.
349+
# The --timestamp flag embeds an Apple-signed secure timestamp, proving
350+
# the signature was created while the Fulcio cert was valid. This allows
351+
# macOS to validate the cert chain (and thus the designated requirement's
352+
# certificate leaf OID check) even after the short-lived Fulcio cert expires.
353353
codesign -dvvv "$BINARY" 2>&1 | head -20 || true
354354
echo ""
355355
echo "Entitlements:"

0 commit comments

Comments
 (0)