Domain Detective

API Reference

Class

CertificateTransparencyTimelineAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements
Modifiers sealed

Builds a certificate transparency (CT) timeline for a domain and summarizes issuer diversity, certificate validity status, and basic anomalies.

Inheritance

  • Object
  • CertificateTransparencyTimelineAnalysis

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by

Accepted by parameters

Constructors

public CertificateTransparencyTimelineAnalysis() #

Methods

public async Task AnalyzeAsync(String domain, InternalLogger logger = null, CancellationToken cancellationToken = null) #
Returns: Task

Performs CT-backed timeline analysis for the specified domain.

Parameters

domain System.String requiredposition: 0
logger DomainDetective.InternalLogger = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2

Properties

public String Subject { get; set; } #

The domain being analyzed.

public String CrtShWildcardUrlTemplate { get; set; } #

CT query template for wildcard query (includes subdomains).

public String CrtShExactUrlTemplate { get; set; } #

CT query template for exact-name query (covers apex-only certificates).

public String CertSpotterUrlTemplate { get; set; } #

Fallback CT query template used when crt.sh queries fail.

public Boolean UseCertSpotterFallback { get; set; } #

When true (default), queries Cert Spotter if all crt.sh queries fail.

public Func<String, CancellationToken, Task<String>> QueryOverride { get; set; } #

Optional override returning the JSON payload for a given CT URL. Used by tests and offline callers.

public Boolean QuerySucceeded { get; set; } #

True when CT query succeeded and parsing completed.

public String FailureReason { get; set; } #

If QuerySucceeded is false, this may contain a short reason.

public Int32 CertificateObservationCount { get; set; } #

Total number of CT rows processed (may include duplicates).

public Int32 UniqueCertificateCount { get; set; } #

Total number of unique certificates observed (deduped).

public Nullable<DateTimeOffset> FirstSeenUtc { get; set; } #

Earliest CT entry timestamp observed.

public Nullable<DateTimeOffset> LastSeenUtc { get; set; } #

Latest CT entry timestamp observed.

public Int32 DistinctIssuerCount { get; } #

Distinct issuer count observed across unique certificates.

public IReadOnlyDictionary<String, Int32> IssuerCounts { get; set; } #

Issuer name → count (unique certificates, best-effort).

public Int32 ActiveCertificateCount { get; set; } #

Number of currently active certificates (based on validity window).

public Int32 ExpiredCertificateCount { get; set; } #

Number of expired certificates (based on validity window).

public Int32 NotYetValidCertificateCount { get; set; } #

Number of certificates not yet valid (based on validity window).

public Int32 WildcardCertificateCount { get; set; } #

Number of wildcard certificates observed (common name or SAN contains '*').

public Int32 IssuedLast7Days { get; set; } #

Unique certificates issued in the last 7 days (based on CT entry timestamp).

public Int32 IssuedLast30Days { get; set; } #

Unique certificates issued in the last 30 days (based on CT entry timestamp).

public Boolean ResultsCapped { get; set; } #

True when processing was capped to protect performance.

public Int32 MaxCtRowsToProcess { get; set; } #

Maximum number of CT rows to process across all queries.

public Int32 MaxUniqueCertificates { get; set; } #

Maximum number of unique certificates to retain in memory.

public Int32 MaxTimelineBuckets { get; set; } #

Maximum number of timeline buckets to keep.

public Int32 MaxRecentCertificates { get; set; } #

Maximum number of recent certificate samples to keep.

public IReadOnlyList<CtTimelineBucket> Timeline { get; set; } #

CT timeline buckets (monthly) based on entry timestamps.

public IReadOnlyList<CtCertificateSample> RecentCertificates { get; set; } #

Most recent unique certificates (sample) sorted by entry timestamp descending.

public virtual List<Assessment> Assessments { get; } #

Assessment collection for report-friendly output.

{{ include "footer" }}