Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Fixed in 1294aa0 — solution builds no longer re-invoke the plugin projects from CoseSignTool.csproj. We now skip the BuildPlugins target during solution builds, which avoids the concurrent write race on CoseSignTool.AzureArtifactSigning.Plugin.runtimeconfig.json while preserving direct project builds/publish behavior. |
…erand order Addresses reviewer feedback: PR #132 intentionally adopted signtool.exe /n substring matching, but the operands were inverted — pin.Contains(signer) instead of signer.Contains(pin). This allowed CN='o' to match any pin containing 'o'. Fix: - Correct operand order: signerCN.Contains(requiredName) - Add 3-char minimum length on required CN to prevent trivially short matches - XML docs updated to document signtool.exe /n semantics explicitly Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Addressed @elantiguamsft feedback on CN validator in 7f0bae0: The original PR #132 intentionally adopted signtool.exe /n substring semantics, but the operand order was inverted — it checked if the pin contained the signer CN instead of the other way around. This meant a signer with CN='o' could match any pin containing 'o' (like 'Microsoft Corporation'). Fix: Corrected to signer-contains-pin order, added 3-char minimum on required CN, and documented signtool.exe /n semantics in XML remarks. Substring matching is preserved while closing the gap. |
Security Hardening
Addresses findings from an internal security review of the validation pipeline.
Fixes
GetOptionBool parsed value handling (
df542f81)X509CommonNameValidator equality check (
16fc219a)Indirect signature hash algorithm policy (
b38aa6a1)CoseSign1MessageValidator.None API guidance (
60ff09e2)[Obsolete]and[EditorBrowsable(Never)]annotationsGetCommand payload write ordering (
fc7ebfe1)Certificate cache key strengthening (
c74b7e79)Each commit includes targeted regression tests.