dotnet / dotnet/sign

VSIX: intermediate certificates not included in signature

Open
#911 0 comments 0 reactions 0 assignees View on GitHub
area-vsix Priority:2
Dominant language
C#
Stars
581
Forks
116
Avg merge
1d 2h
Merged PRs (30d)
8

Description

**Describe the bug**
When signing a VSIX, intermediate certificates --- from both the primary and timestamp certificate chains --- are not included in the signature. This can fail verification in offline environments if machines do not already have those intermediate certificates available at verification time.

[Only the end certificate is included in the signature.](https://github.com/dotnet/sign/blob/dc01dca32471b368ad640358778e172d1bd249f9/src/Sign.Core/Tools/VsixSignTool/XmlSignatureBuilder.cs#L181C1-L183C7)

**Repro steps**
Sign a VSIX and inspect at the XML digital signature.

**Expected behavior**
Every non-root certificate in both the primary and timestamp certificate chains will be included in the signature.

**Actual behavior**
Only end certificates are included.

**Additional context**
VsixSignTool.exe neither includes these certificates nor uses them (if present) in certificate chain validation.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.