test: prove Authenticode release chain
This commit is contained in:
+14
-2
@@ -17,7 +17,7 @@ certificate through its supported CSC environment variables, then set:
|
||||
|
||||
```powershell
|
||||
$env:FORGEFLOW_SIGNED_RELEASE = '1'
|
||||
$env:FORGEFLOW_EXPECTED_PUBLISHER = 'exact certificate subject fragment'
|
||||
$env:FORGEFLOW_EXPECTED_PUBLISHER = 'CN=Exact Legal Publisher, O=Exact Legal Organization, C=BE'
|
||||
npm run dist:win
|
||||
```
|
||||
|
||||
@@ -35,5 +35,17 @@ the installer, portable executable, two checksums, provenance and SBOM. It only
|
||||
publishes after all six assets are present. A failed upload leaves a draft rather
|
||||
than exposing an incomplete updater target.
|
||||
|
||||
The production Authenticode certificate and legal publisher identity are
|
||||
The publisher check is an exact subject match, not a substring match. Before a
|
||||
production certificate is available, validate the complete local chain with:
|
||||
|
||||
```powershell
|
||||
npm run test:signing
|
||||
```
|
||||
|
||||
This disposable fixture signs installer, portable, update-helper and uninstaller
|
||||
stand-ins, requires an RFC 3161 timestamp, and proves rejection of a missing
|
||||
timestamp, wrong publisher and a modified binary. Its certificate is removed
|
||||
from the current-user certificate store after the test.
|
||||
|
||||
The production Authenticode certificate and exact legal publisher identity are
|
||||
`PENDING_HUMAN_INPUT`; all surrounding build and verification code is complete.
|
||||
|
||||
Reference in New Issue
Block a user