Domain Detective

API Reference

Class

CtLogAggregator

Namespace DomainDetective
Assembly DomainDetective
Modifiers sealed

Retrieves certificate transparency log entries from multiple APIs.

Inheritance

  • Object
  • CtLogAggregator

Constructors

Methods

public async Task<IReadOnlyList<JsonElement>> QueryAsync(String fingerprint, CancellationToken cancellationToken = null) #
Returns: Task<IReadOnlyList<JsonElement>>

Queries all configured APIs for the specified SHA-256 fingerprint.

Parameters

fingerprint System.String requiredposition: 0
SHA-256 certificate fingerprint.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token used to cancel the operation.

Returns

List of JSON elements describing log entries.

Properties

public List<String> ApiTemplates { get; } #

CT log API templates containing a {0} placeholder for the fingerprint.

public Boolean EnableCensysSource { get; set; } #

Enable Censys certificate discovery using the configured API credentials.

public String CensysApiId { get; set; } #

Censys API identifier (used with CensysApiSecret). Shared response cache isolation is keyed by this identifier.

public String CensysApiSecret { get; set; } #

Censys API secret (used with CensysApiId).

public String CensysApiUrlTemplate { get; set; } #

Censys certificate API URL template. Use {0} for SHA-256 fingerprint. Empty by default and must be explicitly configured.

public Boolean EnableShodanSource { get; set; } #

Enable Shodan certificate discovery using the configured API key.

public String ShodanApiKey { get; set; } #

Shodan API key used by ShodanApiUrlTemplate. The key is sent as a URL query parameter by Shodan API design and may appear in proxy/access logs.

public String ShodanApiUrlTemplate { get; set; } #

Shodan API URL template. Use {0} for SHA-256 fingerprint and {1} for URL-encoded API key. The API key remains in the outbound request URL per Shodan API requirements.

public IReadOnlyList<String> LastQueriedSources { get; } #

Names of discovery sources configured for the last CancellationToken) call.

public IReadOnlyList<String> LastTemplateFormatErrors { get; } #

Template-format errors captured in the last CancellationToken) call.

public TimeSpan CacheTtl { get; set; } #

How long successful CT responses should be cached (shared across all instances).

public Int32 MaxCacheEntries { get; set; } #

Maximum number of shared cached CT responses kept in memory (shared across all instances).

public TimeSpan MinimumRequestSpacing { get; set; } #

Minimum spacing between outbound CT requests across all aggregator instances.

public Int32 MaxAttemptsPerRequest { get; set; } #

Maximum retry attempts per request when transient failures occur.

public TimeSpan RetryDelay { get; set; } #

Base delay applied between retries.

HttpHandlerFactory #

Optional HTTP handler factory for testing.

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

Optional override returning the JSON content for a fingerprint.

DelayOverride #

Optional delay override for tests.

{{ include "footer" }}