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.
Cherry-picking #28512 into release/7.0.1xx.
Servicing Template.
Description
This PR in combination with NuGet/NuGet.Client#4850 updates CTLs for NuGet signed package verification on Linux and macOS to use 2 separate fallback certificate bundles instead of 1.
Prior to this change, NuGet would use a single fallback certificate bundle which contained root certificates valid for both code signing and timestamping. Roots valid for only code signing or only timestamping were not in the certificate bundle because a consumer had no way of knowing which certificates were valid for which purpose(s).
Whatever trust anchors we use must be valid for CS and TS. Actually, it's a bit more nuanced in that whatever set of trust anchors we use for purpose X must be valid for purpose X. The set of trust anchors valid for CS and the set of trust anchors valid for TS intersect but do not necessarily overlap. Using a trust anchor that is only valid for TS (or TLS, for that matter) to verify a CS certificate would be incorrect.
Customer Impact
Not having separate CTLs fails the verification of a set of packages on nuget.org. The expectation is that all packages form NuGet.org pass validation. This change allows verification to enabled as opt-in and have confidence that it'll work.
Regression
No
Risk
Low - Feature not enabled by default.
Link the PR to the original issue and to the PR to main
NuGet side: NuGet/Home#12033 and NuGet/Home#12027
Main PR: #28512
Packaging impact
None.
Ref pack impact
None.