oidc4vp

package
v0.0.0-...-8794833 Latest Latest
Warning

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

Go to latest
Published: May 28, 2024 License: Apache-2.0 Imports: 34 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttestationService

type AttestationService interface {
	GetAttestation(ctx context.Context, req attestation.GetAttestationRequest) (string, error)
}

type Claims

type Claims = map[string]interface{}

type Flow

type Flow struct {
	// contains filtered or unexported fields
}

func NewFlow

func NewFlow(p provider, opts ...Opt) (*Flow, error)

func (*Flow) PerfInfo

func (f *Flow) PerfInfo() *PerfInfo

func (*Flow) Run

func (f *Flow) Run(ctx context.Context) error

type IDTokenClaims

type IDTokenClaims struct {
	// ScopeAdditionalClaims stores claims retrieved using custom scope.
	ScopeAdditionalClaims map[string]Claims `json:"_scope,omitempty"` //custom scope -> additional claims
	VPToken               IDTokenVPToken    `json:"_vp_token"`
	AttestationVP         string            `json:"_attestation_vp"`
	Nonce                 string            `json:"nonce"`
	Exp                   int64             `json:"exp"`
	Iss                   string            `json:"iss"`
	Aud                   string            `json:"aud"`
	Sub                   string            `json:"sub"`
	Nbf                   int64             `json:"nbf"`
	Iat                   int64             `json:"iat"`
	Jti                   string            `json:"jti"`
}

type IDTokenVPToken

type IDTokenVPToken struct {
	PresentationSubmission *presexch.PresentationSubmission `json:"presentation_submission"`
}

type Opt

type Opt func(opts *options)

func WithDomainMatchingDisabled

func WithDomainMatchingDisabled() Opt

func WithLinkedDomainVerification

func WithLinkedDomainVerification() Opt

func WithRequestURI

func WithRequestURI(uri string) Opt

func WithSchemaValidationDisabled

func WithSchemaValidationDisabled() Opt

func WithWalletDIDIndex

func WithWalletDIDIndex(idx int) Opt

type PerfInfo

type PerfInfo struct {
	FetchRequestObject         time.Duration `json:"vp_fetch_request_object"`
	VerifyAuthorizationRequest time.Duration `json:"vp_verify_authorization_request"`
	QueryCredentialFromWallet  time.Duration `json:"vp_query_credential_from_wallet"`
	CreateAuthorizedResponse   time.Duration `json:"vp_create_authorized_response"`
	SendAuthorizedResponse     time.Duration `json:"vp_send_authorized_response"`
	VcsVPFlowDuration          time.Duration `json:"_vcs_vp_flow_duration"`
}

type RequestObject

type RequestObject struct {
	JTI          string                    `json:"jti"`
	IAT          int64                     `json:"iat"`
	ResponseType string                    `json:"response_type"`
	ResponseMode string                    `json:"response_mode"`
	Scope        string                    `json:"scope"`
	Nonce        string                    `json:"nonce"`
	ClientID     string                    `json:"client_id"`
	RedirectURI  string                    `json:"redirect_uri"`
	State        string                    `json:"state"`
	Exp          int64                     `json:"exp"`
	Registration RequestObjectRegistration `json:"registration"`
	Claims       RequestObjectClaims       `json:"claims"`
}

type RequestObjectClaims

type RequestObjectClaims struct {
	VPToken VPToken `json:"vp_token"`
}

type RequestObjectRegistration

type RequestObjectRegistration struct {
	ClientName                  string           `json:"client_name"`
	SubjectSyntaxTypesSupported []string         `json:"subject_syntax_types_supported"`
	VPFormats                   *presexch.Format `json:"vp_formats"`
	ClientPurpose               string           `json:"client_purpose"`
}

type TrustRegistry

type TrustRegistry interface {
	ValidateVerifier(
		ctx context.Context,
		verifierDID,
		verifierDomain string,
		credentials []*verifiable.Credential,
	) (bool, error)
}

type VPToken

type VPToken struct {
	PresentationDefinition *presexch.PresentationDefinition `json:"presentation_definition"`
}

type VPTokenClaims

type VPTokenClaims struct {
	VP    *verifiable.Presentation `json:"vp"`
	Nonce string                   `json:"nonce"`
	Exp   int64                    `json:"exp"`
	Iss   string                   `json:"iss"`
	Aud   string                   `json:"aud"`
	Nbf   int64                    `json:"nbf"`
	Iat   int64                    `json:"iat"`
	Jti   string                   `json:"jti"`
}

Jump to

Keyboard shortcuts

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