ssf_events

package
v0.5.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const AccountSubjectFormat = "account"
View Source
const AliasesSubjectFormat = "aliases"
View Source
const DecentralizedIdentifierSubjectFormat = "did"
View Source
const EmailSubjectFormat = "email"
View Source
const IssuerAndSubjectFormat = "iss_sub"
View Source
const OpaqueSubjectFormat = "opaque"
View Source
const PhoneNumberSubjectFormat = "phone_number"
View Source
const UniqueResourceIdentifierSubjectFormat = "uri"

Variables

View Source
var ChangeTypeEnumMap = map[uint64]ChangeType{
	0: Create,
	1: Revoked,
	2: Update,
	3: Delete,
}
View Source
var CredentialTypeEnumMap = map[uint64]CredentialType{
	0: Password,
	1: Pin,
	2: X509,
	3: Fido2_platform,
	4: Fido2_roaming,
	5: Fido_u2f,
	6: Verifiable_credential,
	7: Phone_voice,
	8: Phone_sms,
	9: App,
}
View Source
var EventEnum = map[string]EventType{
	"https://schemas.openid.net/secevent/caep/event-type/session-revoked":          SessionRevoked,
	"https://schemas.openid.net/secevent/caep/event-type/credential-change":        CredentialChange,
	"https://schemas.openid.net/secevent/caep/event-type/device-compliance-change": DeviceCompliance,
	"https://schemas.openid.net/secevent/caep/event-type/assurance-level-change":   AssuranceLevelChange,
	"https://schemas.openid.net/secevent/caep/event-type/token-claims-change":      TokenClaimsChange,
	"https://schemas.openid.net/secevent/caep/event-type/verification-event":       VerificationEventType,
	"https://schemas.openid.net/secevent/caep/event-type/stream-updated":           StreamUpdatedEventType,
}
View Source
var EventUri = map[EventType]string{
	SessionRevoked:         "https://schemas.openid.net/secevent/caep/event-type/session-revoked",
	CredentialChange:       "https://schemas.openid.net/secevent/caep/event-type/credential-change",
	DeviceCompliance:       "https://schemas.openid.net/secevent/caep/event-type/device-compliance-change",
	AssuranceLevelChange:   "https://schemas.openid.net/secevent/caep/event-type/assurance-level-change",
	TokenClaimsChange:      "https://schemas.openid.net/secevent/caep/event-type/token-claims-change",
	VerificationEventType:  "https://schemas.openid.net/secevent/caep/event-type/verification-event",
	StreamUpdatedEventType: "https://schemas.openid.net/secevent/caep/event-type/stream-updated",
}

Functions

func EventTypeArrayToEventUriArray

func EventTypeArrayToEventUriArray(events []EventType) []string

Converts a list of Ssf Events to a list of their corresponding Event URI's

Types

type AssuranceLevelChangeEvent

type AssuranceLevelChangeEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// SubjectFormat defines the format of the subject event.
	//
	// See: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
	// for an overview of available subject formats for CAEP Events
	Format SubjectFormat

	// Subject defines the subject that the CAEP Event applies to.
	//
	// See your transmitter's specification for the exact format
	// of the Subject
	Subject map[string]interface{}

	// EventTimestamp defines the timestamp of the CAEP Event in
	// Unix time (seconds since January 1, 1970 UTC)
	EventTimestamp int64

	// the namespace of the values in the current_level and previous_level claims.
	// See: https://openid.github.io/sharedsignals/openid-caep-specification-1_0.html#name-event-specific-claims-4 for valid values.
	Namespace string

	// the current NIST Authenticator Assurance Level (AAL) as defined in [SP800-63R3].
	// See: https://openid.github.io/sharedsignals/openid-caep-specification-1_0.html#name-event-specific-claims-4 for valid values.
	CurrentLevel string

	// the previous NIST Authenticator Assurance Level (AAL) as defined in [SP800-63R3]. Optional.
	// See: https://openid.github.io/sharedsignals/openid-caep-specification-1_0.html#name-event-specific-claims-4 for valid values.
	PreviousLevel *string

	// the Authenticator Assurance Level increased or decreased. Optional.
	// Must be either 'increase' or 'decrease'. See: See: https://openid.github.io/sharedsignals/openid-caep-specification-1_0.html#name-event-specific-claims-4
	// for more details.
	ChangeDirection *string
}

The session revoked event is a CAEP Event, defined here: https://openid.net/specs/openid-caep-specification-1_0-ID1.html#rfc.section.3.1

func (*AssuranceLevelChangeEvent) GetChangeDirection

func (event *AssuranceLevelChangeEvent) GetChangeDirection() string

func (*AssuranceLevelChangeEvent) GetCurrentLevel

func (event *AssuranceLevelChangeEvent) GetCurrentLevel() string

func (*AssuranceLevelChangeEvent) GetEventUri

func (event *AssuranceLevelChangeEvent) GetEventUri() string

func (*AssuranceLevelChangeEvent) GetNamespace

func (event *AssuranceLevelChangeEvent) GetNamespace() string

func (*AssuranceLevelChangeEvent) GetPreviousLevel

func (event *AssuranceLevelChangeEvent) GetPreviousLevel() string

func (*AssuranceLevelChangeEvent) GetSubject

func (event *AssuranceLevelChangeEvent) GetSubject() map[string]interface{}

func (*AssuranceLevelChangeEvent) GetSubjectFormat

func (event *AssuranceLevelChangeEvent) GetSubjectFormat() SubjectFormat

func (*AssuranceLevelChangeEvent) GetTimestamp

func (event *AssuranceLevelChangeEvent) GetTimestamp() int64

func (*AssuranceLevelChangeEvent) GetType

func (event *AssuranceLevelChangeEvent) GetType() EventType

type ChangeType

type ChangeType uint64
const (
	Create ChangeType = iota
	Revoked
	Update
	Delete
)

type CredentialChangeEvent

type CredentialChangeEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// SubjectFormat defines the format of the subject event.
	//
	// See: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
	// for an overview of available subject formats for CAEP Events
	Format SubjectFormat

	// Subject defines the subject that the CAEP Event applies to.
	//
	// See your transmitter's specification for the exact format
	// of the Subject
	Subject map[string]interface{}

	// EventTimestamp defines the timestamp of the CAEP Event in
	// Unix time (seconds since January 1, 1970 UTC)
	EventTimestamp int64

	// CredentialType defines the type of credential of the CAEP Event that has been modified/removed.
	// See https://openid.net/specs/openid-caep-specification-1_0.html#rfc.section.3.3.1 for the options for this field
	CredentialType CredentialType

	// CredentialType defines the type of modification/deletion towards the credential of the CAEP Event.
	// See https://openid.net/specs/openid-caep-specification-1_0.html#rfc.section.3.3.1 for the options for this field
	ChangeType ChangeType
}

The credential change event is a CAEP Event, defined here: https://openid.net/specs/openid-caep-specification-1_0-ID1.html#rfc.section.3.3

func (*CredentialChangeEvent) GetChangeType

func (event *CredentialChangeEvent) GetChangeType() ChangeType

func (*CredentialChangeEvent) GetCredentialType

func (event *CredentialChangeEvent) GetCredentialType() CredentialType

func (*CredentialChangeEvent) GetEventUri

func (event *CredentialChangeEvent) GetEventUri() string

func (*CredentialChangeEvent) GetSubject

func (event *CredentialChangeEvent) GetSubject() map[string]interface{}

func (*CredentialChangeEvent) GetSubjectFormat

func (event *CredentialChangeEvent) GetSubjectFormat() SubjectFormat

func (*CredentialChangeEvent) GetTimestamp

func (event *CredentialChangeEvent) GetTimestamp() int64

func (*CredentialChangeEvent) GetType

func (event *CredentialChangeEvent) GetType() EventType

type CredentialType

type CredentialType uint64
const (
	Password CredentialType = iota
	Pin
	X509
	Fido2_platform
	Fido2_roaming
	Fido_u2f
	Verifiable_credential
	Phone_voice
	Phone_sms
	App
)

type DeviceComplianceEvent

type DeviceComplianceEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// SubjectFormat defines the format of the subject event.
	//
	// See: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
	// for an overview of available subject formats for CAEP Events
	Format SubjectFormat

	// Subject defines the subject that the CAEP Event applies to.
	//
	// See your transmitter's specification for the exact format
	// of the Subject
	Subject map[string]interface{}

	// EventTimestamp defines the timestamp of the CAEP Event in
	// Unix time (seconds since January 1, 1970 UTC)
	EventTimestamp int64

	// PreviousStatus defines the compliance status prior to the change that triggered the event.
	// See https://openid.net/specs/openid-caep-specification-1_0.html#rfc.section.3.5.1 for the options for this field
	PreviousStatus string

	// CurrentStatus defines the current status that triggered the event.
	// See https://openid.net/specs/openid-caep-specification-1_0.html#rfc.section.3.5.1 for the options for this field
	CurrentStatus string
}

The device compliance event is a CAEP Event, defined here: https://openid.net/specs/openid-caep-specification-1_0-ID1.html#rfc.section.3.5

func (*DeviceComplianceEvent) GetCurrentStatus

func (event *DeviceComplianceEvent) GetCurrentStatus() string

func (*DeviceComplianceEvent) GetEventUri

func (event *DeviceComplianceEvent) GetEventUri() string

func (*DeviceComplianceEvent) GetPreviousStatus

func (event *DeviceComplianceEvent) GetPreviousStatus() string

func (*DeviceComplianceEvent) GetSubject

func (event *DeviceComplianceEvent) GetSubject() map[string]interface{}

func (*DeviceComplianceEvent) GetSubjectFormat

func (event *DeviceComplianceEvent) GetSubjectFormat() SubjectFormat

func (*DeviceComplianceEvent) GetTimestamp

func (event *DeviceComplianceEvent) GetTimestamp() int64

func (*DeviceComplianceEvent) GetType

func (event *DeviceComplianceEvent) GetType() EventType

type EventType

type EventType int
const (
	SessionRevoked EventType = iota
	CredentialChange
	DeviceCompliance
	AssuranceLevelChange
	TokenClaimsChange
	VerificationEventType
	StreamUpdatedEventType
)

type SessionRevokedEvent

type SessionRevokedEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// SubjectFormat defines the format of the subject event.
	//
	// See: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
	// for an overview of available subject formats for CAEP Events
	Format SubjectFormat

	// Subject defines the subject that the CAEP Event applies to.
	//
	// See your transmitter's specification for the exact format
	// of the Subject
	Subject map[string]interface{}

	// EventTimestamp defines the timestamp of the CAEP Event in
	// Unix time (seconds since January 1, 1970 UTC)
	EventTimestamp int64
}

The session revoked event is a CAEP Event, defined here: https://openid.net/specs/openid-caep-specification-1_0-ID1.html#rfc.section.3.1

func (*SessionRevokedEvent) GetEventUri

func (event *SessionRevokedEvent) GetEventUri() string

func (*SessionRevokedEvent) GetSubject

func (event *SessionRevokedEvent) GetSubject() map[string]interface{}

func (*SessionRevokedEvent) GetSubjectFormat

func (event *SessionRevokedEvent) GetSubjectFormat() SubjectFormat

func (*SessionRevokedEvent) GetTimestamp

func (event *SessionRevokedEvent) GetTimestamp() int64

func (*SessionRevokedEvent) GetType

func (event *SessionRevokedEvent) GetType() EventType

type SsfEvent

type SsfEvent interface {
	// Returns the Event URI for the given event
	GetEventUri() string

	// Returns the format of the event's subject
	GetSubjectFormat() SubjectFormat

	// Returns the subject of the event
	GetSubject() map[string]interface{}

	// Returns the Unix timestamp of the event
	GetTimestamp() int64

	// Return the type of event
	GetType() EventType
}

Represents the interface that all SSF Events should implement

See the SessionRevokedEvent (./events/session_revoked_event.go) for an example

func EventStructFromEvent

func EventStructFromEvent(eventUri string, eventSubject interface{}, eventDetails interface{}, claimsJson map[string]interface{}) (SsfEvent, error)

Takes an event subject from the JSON of an SSF Event, and converts it into the matching struct for that event

type StreamUpdatedEvent

type StreamUpdatedEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// Status defines the new status of the stream.
	Status string

	// Provides a short description of why the Transmitter has updated the status.
	Reason string
}

The Verification event is an SSE Event, defined here: https://openid.github.io/sharedsignals/openid-sharedsignals-framework-1_0.html#name-stream-updated-event

func (*StreamUpdatedEvent) GetEventUri

func (event *StreamUpdatedEvent) GetEventUri() string

func (*StreamUpdatedEvent) GetState

func (event *StreamUpdatedEvent) GetState() string

func (*StreamUpdatedEvent) GetSubject

func (event *StreamUpdatedEvent) GetSubject() map[string]interface{}

func (*StreamUpdatedEvent) GetSubjectFormat

func (event *StreamUpdatedEvent) GetSubjectFormat() SubjectFormat

func (*StreamUpdatedEvent) GetTimestamp

func (event *StreamUpdatedEvent) GetTimestamp() int64

func (*StreamUpdatedEvent) GetType

func (event *StreamUpdatedEvent) GetType() EventType

type SubjectFormat

type SubjectFormat int
const (
	Account SubjectFormat = iota
	Email
	IssuerAndSubject
	Opaque
	PhoneNumber
	DecentralizedIdentifier
	UniqueResourceIdentifier
	Aliases
	ComplexSubject
)

func GetSubjectFormat

func GetSubjectFormat(subject map[string]interface{}) (SubjectFormat, error)

type TokenClaimsChangeEvent

type TokenClaimsChangeEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// SubjectFormat defines the format of the subject event.
	//
	// See: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
	// for an overview of available subject formats for CAEP Events
	Format SubjectFormat

	// Subject defines the subject that the CAEP Event applies to.
	//
	// See your transmitter's specification for the exact format
	// of the Subject
	Subject map[string]interface{}

	// Claims defines one or more claims with their new value(s) that has changed.
	Claims map[string]interface{}

	// EventTimestamp defines the timestamp of the CAEP Event in
	// Unix time (seconds since January 1, 1970 UTC)
	EventTimestamp int64
}

The session revoked event is a CAEP Event, defined here: https://openid.net/specs/openid-caep-specification-1_0-ID1.html#rfc.section.3.1

func (*TokenClaimsChangeEvent) GetClaims

func (event *TokenClaimsChangeEvent) GetClaims() map[string]interface{}

func (*TokenClaimsChangeEvent) GetEventUri

func (event *TokenClaimsChangeEvent) GetEventUri() string

func (*TokenClaimsChangeEvent) GetSubject

func (event *TokenClaimsChangeEvent) GetSubject() map[string]interface{}

func (*TokenClaimsChangeEvent) GetSubjectFormat

func (event *TokenClaimsChangeEvent) GetSubjectFormat() SubjectFormat

func (*TokenClaimsChangeEvent) GetTimestamp

func (event *TokenClaimsChangeEvent) GetTimestamp() int64

func (*TokenClaimsChangeEvent) GetType

func (event *TokenClaimsChangeEvent) GetType() EventType

type VerificationEvent

type VerificationEvent struct {
	// Json defines the raw JSON of the CAEP Event. Used if
	// a developer wants greater control over all the attributes
	// of the CAEP Event
	Json map[string]interface{}

	// Event Receivers MAY use the value of this parameter to
	// correlate a verification event with a verification request.
	State string
}

The Verification event is an SSE Event, defined here: https://openid.github.io/sharedsignals/openid-sharedsignals-framework-1_0.html#name-verification

func (*VerificationEvent) GetEventUri

func (event *VerificationEvent) GetEventUri() string

func (*VerificationEvent) GetState

func (event *VerificationEvent) GetState() string

func (*VerificationEvent) GetSubject

func (event *VerificationEvent) GetSubject() map[string]interface{}

func (*VerificationEvent) GetSubjectFormat

func (event *VerificationEvent) GetSubjectFormat() SubjectFormat

func (*VerificationEvent) GetTimestamp

func (event *VerificationEvent) GetTimestamp() int64

func (*VerificationEvent) GetType

func (event *VerificationEvent) GetType() EventType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL