Domain Detective

API Reference

Class

BimiAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements

Analyse BIMI records according to draft specifications.

Inheritance

  • Object
  • BimiAnalysis

Remarks

BIMI (Brand Indicators for Message Identification) uses DNS TXT records that reference an SVG logo file and an optional certificate. This class validates presence and accessibility of those resources.

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

Methods

public async Task AnalyzeBimiRecords(IEnumerable<DnsAnswer> dnsResults, InternalLogger logger, CancellationToken cancellationToken = null) #
Returns: Task

Processes BIMI DNS records and populates analysis properties.

Parameters

dnsResults System.Collections.Generic.IEnumerable{DnsClientX.DnsAnswer} requiredposition: 0
TXT records returned from a BIMI DNS query.
logger DomainDetective.InternalLogger requiredposition: 1
Logger instance for diagnostic output.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token used to cancel the operation.
ParseBimiHeader(System.String record, DomainDetective.InternalLogger logger) #

Parses a BIMI record header and populates basic fields.

Parameters

record System.String required
The raw BIMI record text.
logger DomainDetective.InternalLogger required
Logger for warnings.
ResetState() #

Resets analysis state to initial values.

Properties

public String Subject { get; set; } #

Gets or sets the subject value.

public String BimiRecord { get; set; } #

Gets the concatenated BIMI record text.

public Boolean BimiRecordExists { get; set; } #

Gets a value indicating whether a BIMI record was found.

public Boolean StartsCorrectly { get; set; } #

Gets a value indicating whether the record starts with v=BIMI1.

public String Location { get; set; } #

Gets the indicator location value if present.

public String Authority { get; set; } #

Gets the authority indicator URL if present.

public Boolean LocationUsesHttps { get; set; } #

Gets a value indicating whether Location uses HTTPS.

public Boolean AuthorityUsesHttps { get; set; } #

Gets a value indicating whether Authority uses HTTPS.

public Boolean DeclinedToPublish { get; set; } #

Gets a value indicating whether the domain opted out of publishing an indicator.

public Boolean InvalidLocation { get; set; } #

Gets a value indicating whether Location uses an unsupported scheme or file type.

public Boolean SvgFetched { get; set; } #

Gets a value indicating whether the indicator SVG file was downloaded.

public Boolean SvgValid { get; set; } #

Gets a value indicating whether the downloaded SVG is valid.

public String SvgInvalidReason { get; set; } #

Provides a reason when SvgValid is false.

public Boolean SvgSizeValid { get; set; } #

Gets a value indicating whether the SVG size is within limits.

public Boolean DimensionsValid { get; set; } #

Gets a value indicating whether the SVG width and height are correct.

public Boolean ViewBoxValid { get; set; } #

Gets a value indicating whether the SVG viewBox is valid.

public Boolean SvgAttributesPresent { get; set; } #

Gets a value indicating whether required SVG attributes are present.

public Boolean ValidVmc { get; set; } #

Gets a value indicating whether the downloaded VMC is valid.

public Boolean VmcSignedByKnownRoot { get; set; } #

Gets a value indicating whether the VMC certificate is signed by a trusted CA.

public X509Certificate2 VmcCertificate { get; set; } #

Gets the downloaded VMC certificate instance.

public String FailureReason { get; set; } #

If an HTTP request fails, explains why.

public IReadOnlyList<StandardReference> RfcReferences { get; } #

Relevant standards for BIMI analysis.

HttpHandlerFactory #

Factory for creating custom HTTP handlers.

public Boolean SkipIndicatorDownload { get; set; } #

Skip downloading the BIMI indicator image.

public ICollection<X509Certificate2> TrustedRoots { get; } #

Root certificates considered trusted when validating VMCs.

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

Structured assessments captured during BIMI analysis.

public IReadOnlyList<RecommendationAdvice> Recommendations { get; } #

Actionable recommendations derived from assessments.

Fields

_client #

Shared HTTP client that enforces default TLS certificate validation.

{{ include "footer" }}