Documentation
¶
Index ¶
- Variables
- type AccountEntity
- type AttestationEntity
- type AttestationFormat
- type AuthSessionEntity
- type ClientDescriptorEntity
- type ClientEntity
- type ClientError
- type ClientPlatform
- type MockRegistrationStore
- func (s *MockRegistrationStore) FindRegistrationByThumbprint(thumbprint string) (*RegistrationEntity, error)
- func (s *MockRegistrationStore) GetClient(id string) (*ClientEntity, error)
- func (s *MockRegistrationStore) GetRegistration(id string) (*RegistrationEntity, error)
- func (s *MockRegistrationStore) PopAuthSession(state string) (*AuthSessionEntity, error)
- func (s *MockRegistrationStore) UpsertAccount(account *AccountEntity) error
- func (s *MockRegistrationStore) UpsertAuthSession(a *AuthSessionEntity) error
- func (s *MockRegistrationStore) UpsertClient(client *ClientEntity) error
- func (s *MockRegistrationStore) UpsertRegistration(r *RegistrationEntity) error
- type PostureSoftware
- type RegistrationChallengeEntity
- type RegistrationChallengeType
- type RegistrationEntity
- type RegistrationService
- func (s *RegistrationService) AuthCallbackOidc(state, code string) (*ClientEntity, error)
- func (s *RegistrationService) AuthCodeURLOidc(nonce string) (string, error)
- func (s *RegistrationService) CreateRegistration(registration *RegistrationEntity) (*RegistrationEntity, error)
- func (s *RegistrationService) GetRegistration(id string) (*RegistrationEntity, error)
- func (s *RegistrationService) UpdateRegistration(registration *RegistrationEntity) error
- func (s *RegistrationService) ValidateMessageAttestation(message []byte, format AttestationFormat, data []byte, ...) (*AttestationEntity, error)
- type RegistrationServiceOption
- type RegistrationStatus
- type RegistrationStore
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrAttestationRequired = &ClientError{ StatusCode: http.StatusBadRequest, ErrorCode: "attestation_required", ErrorDescription: "Attestation is required", }
Functions ¶
This section is empty.
Types ¶
type AccountEntity ¶
type AttestationEntity ¶
type AttestationEntity struct {
Format AttestationFormat
Data interface{}
}
type AttestationFormat ¶
type AttestationFormat string
const ( AttestationFormatAndroidKeyID AttestationFormat = "android-key-id" AttestationFormatAppleAttestation AttestationFormat = "apple-attestation" AttestationFormatAppleAssertion AttestationFormat = "apple-assertion" AttestationFormatNone AttestationFormat = "none" AttestationFormatGempki AttestationFormat = "gempki" )
func ParseAttestationFormat ¶
func ParseAttestationFormat(s string) (AttestationFormat, error)
type AuthSessionEntity ¶
type ClientDescriptorEntity ¶
type ClientEntity ¶
type ClientEntity struct {
ID string `json:"id"`
Thumbprint string `json:"thumbprint"`
Name string `json:"name"`
AccountID string `json:"accountId"`
RegistrationTimestamp time.Time `json:"registrationTimestamp"`
Platform ClientPlatform `json:"platform"`
Jwk *util.Jwk `json:"jwk"`
Csr []byte `json:"csr,omitempty"`
Certificate []byte `json:"certificate,omitempty"`
Attestation *AttestationEntity `json:"attestation"`
Posture interface{} `json:"posture"`
}
type ClientError ¶
type ClientError struct {
StatusCode int `json:"-"`
ErrorCode string `json:"error"`
ErrorDescription string `json:"error_description"`
}
func (*ClientError) Error ¶
func (e *ClientError) Error() string
type ClientPlatform ¶
type ClientPlatform string
const ( ClientPlatformAndroid ClientPlatform = "android" ClientPlatformApple ClientPlatform = "apple" ClientPlatformSoftware ClientPlatform = "software" )
func ParseClientPlatform ¶
func ParseClientPlatform(s string) (ClientPlatform, error)
type MockRegistrationStore ¶
type MockRegistrationStore struct {
// contains filtered or unexported fields
}
func NewMockRegistrationStore ¶
func NewMockRegistrationStore() *MockRegistrationStore
func (*MockRegistrationStore) FindRegistrationByThumbprint ¶
func (s *MockRegistrationStore) FindRegistrationByThumbprint(thumbprint string) (*RegistrationEntity, error)
func (*MockRegistrationStore) GetClient ¶
func (s *MockRegistrationStore) GetClient(id string) (*ClientEntity, error)
func (*MockRegistrationStore) GetRegistration ¶
func (s *MockRegistrationStore) GetRegistration(id string) (*RegistrationEntity, error)
func (*MockRegistrationStore) PopAuthSession ¶
func (s *MockRegistrationStore) PopAuthSession(state string) (*AuthSessionEntity, error)
func (*MockRegistrationStore) UpsertAccount ¶
func (s *MockRegistrationStore) UpsertAccount(account *AccountEntity) error
func (*MockRegistrationStore) UpsertAuthSession ¶
func (s *MockRegistrationStore) UpsertAuthSession(a *AuthSessionEntity) error
func (*MockRegistrationStore) UpsertClient ¶
func (s *MockRegistrationStore) UpsertClient(client *ClientEntity) error
func (*MockRegistrationStore) UpsertRegistration ¶
func (s *MockRegistrationStore) UpsertRegistration(r *RegistrationEntity) error
type PostureSoftware ¶
type RegistrationChallengeEntity ¶
type RegistrationChallengeEntity struct {
Type RegistrationChallengeType `json:"type"`
URL string `json:"url"`
Status string `json:"status"`
}
type RegistrationChallengeType ¶
type RegistrationChallengeType string
const ( RegistrationChallengeTypeOIDC RegistrationChallengeType = "oidc" RegistrationChallengeTypeOIDF RegistrationChallengeType = "oidf" RegistrationChallengeTypeOffband RegistrationChallengeType = "offband" )
type RegistrationEntity ¶
type RegistrationEntity struct {
ID string `json:"id"`
JwkThumbprint string `json:"jkt"`
Iss string `json:"iss,omitempty"`
Status RegistrationStatus `json:"status"`
Challenges []*RegistrationChallengeEntity `json:"challenges"`
Client *ClientEntity `json:"client"`
}
type RegistrationService ¶
type RegistrationService struct {
NonceService nonce.NonceService
// contains filtered or unexported fields
}
func NewRegistrationService ¶
func NewRegistrationService( nonceService nonce.NonceService, store RegistrationStore, clientsCA ca.CertificateAuthority, opts ...RegistrationServiceOption, ) (*RegistrationService, error)
func (*RegistrationService) AuthCallbackOidc ¶
func (s *RegistrationService) AuthCallbackOidc(state, code string) (*ClientEntity, error)
func (*RegistrationService) AuthCodeURLOidc ¶
func (s *RegistrationService) AuthCodeURLOidc(nonce string) (string, error)
func (*RegistrationService) CreateRegistration ¶
func (s *RegistrationService) CreateRegistration(registration *RegistrationEntity) (*RegistrationEntity, error)
func (*RegistrationService) GetRegistration ¶
func (s *RegistrationService) GetRegistration(id string) (*RegistrationEntity, error)
func (*RegistrationService) UpdateRegistration ¶
func (s *RegistrationService) UpdateRegistration(registration *RegistrationEntity) error
func (*RegistrationService) ValidateMessageAttestation ¶
func (s *RegistrationService) ValidateMessageAttestation(message []byte, format AttestationFormat, data []byte, lastAttestation *AttestationEntity) (*AttestationEntity, error)
type RegistrationServiceOption ¶
type RegistrationServiceOption func(*RegistrationService) error
func WithOIDCClient ¶
func WithOIDCClient(client oidc.Client) RegistrationServiceOption
func WithOIDFRelyingParty ¶
func WithOIDFRelyingParty(rp *oidf.RelyingParty) RegistrationServiceOption
type RegistrationStatus ¶
type RegistrationStatus string
const ( RegistrationStatusPending RegistrationStatus = "pending" RegisterStatusError RegistrationStatus = "error" RegisterStatusCancelled RegistrationStatus = "cancelled" RegistrationStatusComplete RegistrationStatus = "complete" )
type RegistrationStore ¶
type RegistrationStore interface {
UpsertRegistration(*RegistrationEntity) error
UpsertAuthSession(*AuthSessionEntity) error
PopAuthSession(state string) (*AuthSessionEntity, error)
UpsertAccount(*AccountEntity) error
GetRegistration(id string) (*RegistrationEntity, error)
FindRegistrationByThumbprint(thumbprint string) (*RegistrationEntity, error)
UpsertClient(*ClientEntity) error
GetClient(id string) (*ClientEntity, error)
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.