Fix PE RFC3161 timestamps in code mode#16
Conversation
Propagate code-mode RFC3161 timestamp options into PE/WinMD signing so top-level PE targets and nested PE payloads inside signed containers receive Microsoft Authenticode timestamp attributes. Add regression coverage for top-level PE timestamping and for nested DLLs inside a .nupkg. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Bradley Grainger (@bgrainger) I had another pull request ready with a bunch of fixes, but you caught something else, so I just incorporated it into #15 things go way too fast with AI these days ;) |
## Summary - add portable Artifact Signing remote-sign embedding for CAB, MSI/MSP, generic catalogs, and flat MSIX/AppX final signing - add native-shaped portable batch ergonomics, expanded credential resolution, and non-PE timestamp persistence - incorporate [#16](#16) by propagating code-mode RFC3161 timestamp options into PE/WinMD signing - update docs and integration tests for the expanded replacement surface ## Validation - cargo fmt --all - cargo clippy --workspace --all-targets --locked - cargo test --workspace --locked - targeted Artifact Signing integration tests - targeted code-mode RFC3161 timestamp regression tests from #16 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Bradley Grainger <bradley.grainger@logos.com>
|
...and merged, so.closing this PR. Thanks a lot! |
|
Bradley Grainger (@bgrainger) I released 0.5.0 today, crossing fingers it works for you this time |
|
Marc-André Moreau (@mamoreau-devolutions) worked great in local testing; now working to get it integrated in our full CI pipeline: Faithlife/FaithlifeBuild#94 |
|
Marc-André Moreau (@mamoreau-devolutions) Just following up; now that I've merged and published Faithlife/FaithlifeBuild#94 this is working great! Example output from an internal GHA run: |
|
Found a problem: the signed DLL has a last-modified date of 12/31/1979 4:00pm (probably a PST thing?). This is breaking some last-modified checks once the DLL is extracted from the NuGet package. Fix in #20. |
Follow-up to #10 / #11.
As per #10 (comment) the outer NuGet package was signed and timestamped, but the DLLs inside were not time-stamped. This PR fixes that.
AI-generated Text Below
Summary
codemode RFC3161 timestamp options into PE/WinMD signing.nupkgcontainersRepro
Using
psign-tool code --mode portableto sign a realLogos.Test.1.0.0.nupkgpackage with Azure Artifact Signing and--timestamp-url http://timestamp.acs.microsoft.com/:Logos.Test.dllsignature did notTesting
cargo test --test code_commandcargo test -- --skip code_signing_vector_manifest_committed_entries_are_current