Add catalog signing for .js files for VS signing compliance#1671
Merged
akoeplinger merged 4 commits intodotnet:mainfrom Mar 31, 2026
Merged
Add catalog signing for .js files for VS signing compliance#1671akoeplinger merged 4 commits intodotnet:mainfrom
akoeplinger merged 4 commits intodotnet:mainfrom
Conversation
747fc39 to
28f755e
Compare
Member
|
@jesuszarate can you please sign the CLA? I verified the .nupkg now contains |
mmitche
reviewed
Mar 30, 2026
| preventing modification. Only runs on Windows (makecat.exe is a Windows SDK tool) | ||
| and only the Windows packs are inserted into VS. | ||
| --> | ||
| <Target Name="GenerateCatalogFiles" AfterTargets="ReallyBuild" Condition="$([MSBuild]::IsOSPlatform('Windows'))"> |
Member
There was a problem hiding this comment.
@akoeplinger Are there any cases where this would need to run on non-Windows?
Member
There was a problem hiding this comment.
I can't think of any given this is specifically for VS
mmitche
reviewed
Mar 30, 2026
The .js files in the Emscripten SDK are customer-modifiable toolchain files that cannot be directly Authenticode-signed (modifying a signed file breaks the signature). Instead, generate a .cat catalog file covering all .js files, which is signed with MicrosoftDotNet500 via the existing FileExtensionSignInfo entry for .cat files. The GenerateCatalogFiles target runs after ReallyBuild on Windows only (makecat.exe is a Windows SDK tool). It invokes eng/generate-catalog.ps1 which enumerates all .js files, generates a CDF, runs makecat.exe, and produces emscripten-js.cat in the SDK package directory so it ships alongside the files it covers. This fixes ~14,468 unsigned .js files flagged by VS signing compliance scans.
28f755e to
bff6a3e
Compare
Author
|
@dotnet-policy-service agree company="Microsoft" |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
akoeplinger
approved these changes
Mar 31, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Member
|
/backport to release/10.0 |
|
Started backporting to |
jesuszarate
added a commit
to jesuszarate/runtime
that referenced
this pull request
Apr 21, 2026
The VS signing scan requires every signable file to carry its own signature. The Mono workload packs contain 480 unsigned files: - 198 .js files (browser-wasm runtime scripts) - 282 .cab files (WiX cabinet archives inside MSIs) For .js files: keep CertificateName=None (same as dotnet/emsdk#1671) because these are customer-modifiable runtime files. Instead, generate a .cat catalog file covering all .js files, signed via FileExtensionSignInfo for .cat. The GenerateCatalogFiles target runs after AddMonoRuntimeFiles on Windows browser-wasm builds. For .cab files: add FileExtensionSignInfo with Microsoft400 so the Arcade SDK SignTool signs them directly. Both Microsoft400 entries are auto-replaced by MicrosoftDotNet500 since UseDotNetCertificate=true. Tracking: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2911494
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The .js files in the Emscripten SDK are customer-modifiable toolchain files that cannot be directly Authenticode-signed (modifying a signed file breaks the signature). Instead, generate a .cat catalog file covering all .js files, which is signed with MicrosoftDotNet500 via the existing FileExtensionSignInfo entry for .cat files.
The GenerateCatalogFiles target runs after ReallyBuild on Windows only (makecat.exe is a Windows SDK tool), generates a CDF listing all .js files, produces emscripten-js.cat, and places it in the SDK package directory so it ships alongside the files it covers.
This fixes ~14,468 unsigned .js files flagged by VS signing compliance scans.