Table of Contents

Class AuthenticationResultsHeader

Namespace
MailFathom.Domain.Emails.Authentication
Assembly
MailFathom.Domain.dll

One Authentication-Results header of a message, read but not yet believed.

public sealed record AuthenticationResultsHeader : IEquatable<AuthenticationResultsHeader>
Inheritance
AuthenticationResultsHeader
Implements
Inherited Members

Remarks

The header is grouped rather than flattened because the grouping is the security property. RFC 8601 has every producing server write its own identifier into the header it adds, and a consumer reads only the headers bearing the identifier it trusts — so a set of outcomes with the identifier stripped off is a set nothing can be trusted from, however true each outcome is.

Both bounds below exist because a message decides how many headers it carries and how much each of them says. What falls past a bound is the tail of a repetition an attacker could have written, and the topmost headers — the ones a receiving server adds and the only ones a trusted reading ever uses — are the ones kept.

Constructors

AuthenticationResultsHeader(string, IReadOnlyList<ReportedAuthenticationMethod>)

One Authentication-Results header of a message, read but not yet believed.

Fields

MaximumHeaderValueLength

The greatest length one header's value may have before it is passed over unread. It is generous against every header a mail server actually writes and small enough that a message cannot spend its whole size allowance on a single header for a parser to walk.

MaximumHeadersPerMessage

The greatest number of Authentication-Results headers read from one message, counted from the top.

MaximumMethodsPerHeader

The greatest number of method outcomes read from one header.

MaximumPropertiesPerMethod

The greatest number of properties read from one method outcome.

Properties

AuthorityIdentifier

The authserv-id the producing server wrote, which is what a trusted reading matches on.

Methods

The outcomes the header stated, in the order it wrote them.