Skip to content

CredentialCompromisePayload Class

Credential Compromise (RISC 1.0 Section 2.7): a credential of the subject was found to be compromised - in a data breach, for instance - and the receiver should treat it as burnt.

C#
public sealed record CredentialCompromisePayload : Abblix.SecurityEvents.Events.IEventPayload, System.IEquatable<Abblix.SecurityEvents.RISC.CredentialCompromisePayload>

Inheritance System.Object → CredentialCompromisePayload

Implements IEventPayload, System.IEquatable<CredentialCompromisePayload>

Properties

CredentialCompromisePayload.CredentialType Property

REQUIRED. The type of the compromised credential. RISC 1.0 Section 2.7 defines the value set by reference to the CAEP Credential Change event, so the values live in CredentialTypes - one registry for both profiles.

C#
public string CredentialType { get; init; }

Property Value

System.String

CredentialCompromisePayload.EventTimestamp Property

OPTIONAL. When the transmitter DISCOVERED the compromise - not when it happened, which the transmitter rarely knows (RISC 1.0 Section 2.7). Travels as unix seconds.

C#
public System.Nullable<System.DateTimeOffset> EventTimestamp { get; init; }

Property Value

System.Nullable<System.DateTimeOffset>

CredentialCompromisePayload.ReasonAdmin Property

OPTIONAL. The reason the event was generated, intended for administrators (RISC 1.0 Section 2.7). The specification leaves the shape unstated; this model reads it as CAEP 1.0 Section 2 shapes the identically named claim - a map of BCP 47 language tag to text - since RISC leans on CAEP for its other shared vocabulary.

C#
public System.Collections.Generic.IReadOnlyDictionary<string,string>? ReasonAdmin { get; init; }

Property Value

System.Collections.Generic.IReadOnlyDictionary<System.String,System.String>

CredentialCompromisePayload.ReasonUser Property

OPTIONAL. The reason the event was generated, intended for end users (RISC 1.0 Section 2.7), shaped as ReasonAdmin is.

C#
public System.Collections.Generic.IReadOnlyDictionary<string,string>? ReasonUser { get; init; }

Property Value

System.Collections.Generic.IReadOnlyDictionary<System.String,System.String>