Skip to content

Add support for EV, OV Wildcard, and DV Wildcard multi-name certificate products - #18

Open
bhillkeyfactor wants to merge 10 commits into
release-1.2from
feature/ev-ov-dv-multiname-certs
Open

Add support for EV, OV Wildcard, and DV Wildcard multi-name certificate products#18
bhillkeyfactor wants to merge 10 commits into
release-1.2from
feature/ev-ov-dv-multiname-certs

Conversation

@bhillkeyfactor

Copy link
Copy Markdown
Contributor

Summary

  • Adds three new CSC TrustedSecure certificate products: EV Multiple Names (type 7), OV Wildcard Multiple Names (type 8), and DV Wildcard Multiple Names (type 9), per CSC certificate type table.
  • Type 7 sends both evCertificateDetails and subjectAlternativeNames since it is EV plus multi-name; types 8 and 9 send subjectAlternativeNames only.
  • Updated integration-manifest.json, docsource/configuration.md, and CHANGELOG.md.

Test plan

  • dotnet build succeeds with no new errors
  • Verify enrollment against each new product/template in a test AnyGateway REST instance

bhillkeyfactor and others added 10 commits September 9, 2026 14:23
…te products

CSC TrustedSecure EV, Multiple Names (7), CSC TrustedSecure OV Wildcard,
Multiple Names (8), and CSC TrustedSecure DV Wildcard, Multiple Names (9)
per CSC's certificate type table. Type 7 requires both EvCertificateDetails
and SubjectAlternativeNames since it is EV plus multi-name; 8 and 9 only
need SubjectAlternativeNames.
Introduce a step-oriented FlowLogger for tracing Enroll, Revoke, and
Synchronize pipelines end to end, and add logging throughout
RequestManager (previously had none) and CscGlobalClient (missing
error/warning branches, wrong logger category on CscGlobalClient).
…s unset

Only look up the optional additional-SAN-emails field when the domain
control validation method is EMAIL, and use TryGetValue instead of the
indexer so a missing/blank value no longer throws.
…no 'dnsname' key

UC certificate enrollments with zero SANs supplied threw KeyNotFoundException
from the sans["dnsname"] indexer. Use TryGetValue and treat a missing key as
no SANs instead of throwing.
Registration/Renewal/Reissue/Revoke calls only handled CSC Global's
400 error-body case; any other failure status (e.g. 404) fell through
to deserializing an empty/unexpected body, leaving Result and
RegistrationError both null and causing a downstream
NullReferenceException in RequestManager instead of a clear error.
Add null and bounds guards throughout the enrollment, revoke, and sync
paths: CSC Global responses (Result/RegistrationError/Status may be
null even on a 200), optional ProductParameters lookups that were
using the strict indexer, CARequestID substring truncation, and
config/dictionary lookups in Initialize and the CscGlobalClient
constructor. Replaces silent NREs with clear, logged failures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant