protocol

package
v0.11.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultMaxMsgSize       uint = 1024
	DefaultMinPINCodePoints uint = 4
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AttestedCredentialData

type AttestedCredentialData struct {
	AAGUID              uuid.UUID
	CredentialID        []byte
	CredentialPublicKey key.Key
}

type AuthDataFlag

type AuthDataFlag byte
const (
	AuthDataFlagUserPresent AuthDataFlag = 1 << iota

	AuthDataFlagUserVerified

	AuthDataFlagAttestedCredentialDataIncluded
	AuthDataFlagExtensionDataIncluded
)

func (AuthDataFlag) AttestedCredentialDataIncluded

func (f AuthDataFlag) AttestedCredentialDataIncluded() bool

func (AuthDataFlag) ExtensionDataIncluded

func (f AuthDataFlag) ExtensionDataIncluded() bool

func (AuthDataFlag) UserPresent

func (f AuthDataFlag) UserPresent() bool

func (AuthDataFlag) UserVerified

func (f AuthDataFlag) UserVerified() bool

type AuthenticatorBioEnrollmentRequest

type AuthenticatorBioEnrollmentRequest struct {
	Modality          BioModality                   `cbor:"1,keyasint,omitempty"`
	SubCommand        BioEnrollmentSubCommand       `cbor:"2,keyasint,omitempty"`
	SubCommandParams  BioEnrollmentSubCommandParams `cbor:"3,keyasint,omitzero"`
	PinUvAuthProtocol PinUvAuthProtocol             `cbor:"4,keyasint,omitempty"`
	PinUvAuthParam    []byte                        `cbor:"5,keyasint,omitempty"`
	GetModality       bool                          `cbor:"6,keyasint,omitempty"`
}

type AuthenticatorBioEnrollmentResponse

type AuthenticatorBioEnrollmentResponse struct {
	Modality                           *BioModality            `cbor:"1,keyasint,omitempty"`
	FingerprintKind                    *uint                   `cbor:"2,keyasint,omitempty"`
	MaxCaptureSamplesRequiredForEnroll *uint                   `cbor:"3,keyasint,omitempty"`
	TemplateID                         []byte                  `cbor:"4,keyasint,omitempty"`
	LastEnrollSampleStatus             *LastEnrollSampleStatus `cbor:"5,keyasint,omitempty"`
	RemainingSamples                   *uint                   `cbor:"6,keyasint,omitempty"`
	TemplateInfos                      []TemplateInfo          `cbor:"7,keyasint,omitzero"`
	MaxTemplateFriendlyName            *uint                   `cbor:"8,keyasint,omitempty"`
}

type AuthenticatorClientPINRequest

type AuthenticatorClientPINRequest struct {
	PinUvAuthProtocol PinUvAuthProtocol   `cbor:"1,keyasint,omitzero"`
	SubCommand        ClientPINSubCommand `cbor:"2,keyasint"`
	KeyAgreement      key.Key             `cbor:"3,keyasint,omitzero"`
	PinUvAuthParam    []byte              `cbor:"4,keyasint,omitempty"`
	NewPinEnc         []byte              `cbor:"5,keyasint,omitempty"`
	PinHashEnc        []byte              `cbor:"6,keyasint,omitempty"`
	Permissions       Permission          `cbor:"9,keyasint,omitempty"`
	RPID              string              `cbor:"10,keyasint,omitempty"`
}

type AuthenticatorClientPINResponse

type AuthenticatorClientPINResponse struct {
	KeyAgreement    key.Key `cbor:"1,keyasint"`
	PinUvAuthToken  []byte  `cbor:"2,keyasint"`
	PinRetries      *uint   `cbor:"3,keyasint"`
	PowerCycleState *bool   `cbor:"4,keyasint"`
	UvRetries       *uint   `cbor:"5,keyasint"`
}

type AuthenticatorConfigRequest

type AuthenticatorConfigRequest struct {
	SubCommand        ConfigSubCommand  `cbor:"1,keyasint"`
	SubCommandParams  any               `cbor:"2,keyasint,omitzero"`
	PinUvAuthProtocol PinUvAuthProtocol `cbor:"3,keyasint,omitempty"`
	PinUvAuthParam    []byte            `cbor:"4,keyasint,omitempty"`
}

type AuthenticatorCredentialManagementRequest

type AuthenticatorCredentialManagementRequest struct {
	SubCommand        CredentialManagementSubCommand       `cbor:"1,keyasint"`
	SubCommandParams  CredentialManagementSubCommandParams `cbor:"2,keyasint,omitzero"`
	PinUvAuthProtocol PinUvAuthProtocol                    `cbor:"3,keyasint,omitempty"`
	PinUvAuthParam    []byte                               `cbor:"4,keyasint,omitempty"`
}

type AuthenticatorCredentialManagementResponse

type AuthenticatorCredentialManagementResponse struct {
	ExistingResidentCredentialsCount             uint                                     `cbor:"1,keyasint"`
	MaxPossibleRemainingResidentCredentialsCount uint                                     `cbor:"2,keyasint"`
	RP                                           credential.PublicKeyCredentialRpEntity   `cbor:"3,keyasint"`
	RPIDHash                                     []byte                                   `cbor:"4,keyasint"`
	TotalRPs                                     uint                                     `cbor:"5,keyasint"`
	User                                         credential.PublicKeyCredentialUserEntity `cbor:"6,keyasint"`
	CredentialID                                 credential.PublicKeyCredentialDescriptor `cbor:"7,keyasint"`
	PublicKey                                    *key.Key                                 `cbor:"8,keyasint"`
	TotalCredentials                             uint                                     `cbor:"9,keyasint"`
	CredProtect                                  uint                                     `cbor:"10,keyasint"`
	LargeBlobKey                                 []byte                                   `cbor:"11,keyasint"`
	ThirdPartyPayment                            bool                                     `cbor:"12,keyasint"`
}

type AuthenticatorGetAssertionRequest

type AuthenticatorGetAssertionRequest struct {
	RPID              string                                     `cbor:"1,keyasint"`
	ClientDataHash    []byte                                     `cbor:"2,keyasint"`
	AllowList         []credential.PublicKeyCredentialDescriptor `cbor:"3,keyasint,omitempty"`
	Extensions        *GetExtensionInputs                        `cbor:"4,keyasint,omitempty"`
	Options           map[Option]bool                            `cbor:"5,keyasint,omitempty"`
	PinUvAuthParam    []byte                                     `cbor:"6,keyasint,omitempty"`
	PinUvAuthProtocol PinUvAuthProtocol                          `cbor:"7,keyasint,omitempty"`
}

type AuthenticatorGetAssertionResponse

type AuthenticatorGetAssertionResponse struct {
	Credential               credential.PublicKeyCredentialDescriptor           `cbor:"1,keyasint"`
	AuthDataRaw              []byte                                             `cbor:"2,keyasint"`
	AuthData                 *GetAssertionAuthData                              `cbor:"-"`
	Signature                []byte                                             `cbor:"3,keyasint"`
	User                     *credential.PublicKeyCredentialUserEntity          `cbor:"4,keyasint,omitempty"`
	NumberOfCredentials      *uint                                              `cbor:"5,keyasint,omitempty"`
	UserSelected             *bool                                              `cbor:"6,keyasint,omitempty"`
	LargeBlobKey             []byte                                             `cbor:"7,keyasint,omitempty"`
	UnsignedExtensionOutputs map[extension.ExtensionIdentifier]any              `cbor:"8,keyasint,omitempty"`
	ExtensionOutputs         *webauthn.GetAuthenticationExtensionsClientOutputs `cbor:"-"`
}

type AuthenticatorGetInfoResponse

type AuthenticatorGetInfoResponse struct {
	Versions                         Versions                                   `cbor:"1,keyasint" json:"versions"`
	Extensions                       []extension.ExtensionIdentifier            `cbor:"2,keyasint" json:"extensions,omitempty"`
	AAGUID                           uuid.UUID                                  `cbor:"3,keyasint" json:"aaguid"`
	Options                          map[Option]bool                            `cbor:"4,keyasint" json:"options,omitempty"`
	MaxMsgSize                       *uint                                      `cbor:"5,keyasint" json:"maxMsgSize,omitempty"`
	PinUvAuthProtocols               []PinUvAuthProtocol                        `cbor:"6,keyasint" json:"pinUvAuthProtocols,omitempty"`
	MaxCredentialCountInList         *uint                                      `cbor:"7,keyasint" json:"maxCredentialCountInList,omitempty"`
	MaxCredentialIdLength            *uint                                      `cbor:"8,keyasint" json:"maxCredentialIdLength,omitempty"`
	Transports                       []string                                   `cbor:"9,keyasint" json:"transports,omitempty"`
	Algorithms                       []credential.PublicKeyCredentialParameters `cbor:"10,keyasint" json:"algorithms,omitempty"`
	MaxSerializedLargeBlobArray      *uint                                      `cbor:"11,keyasint" json:"maxSerializedLargeBlobArray,omitempty"`
	ForcePINChange                   *bool                                      `cbor:"12,keyasint" json:"forcePINChange,omitempty"`
	MinPINLength                     *uint                                      `cbor:"13,keyasint" json:"minPINLength,omitempty"`
	FirmwareVersion                  *uint                                      `cbor:"14,keyasint" json:"firmwareVersion,omitempty"`
	MaxCredBlobLength                *uint                                      `cbor:"15,keyasint" json:"maxCredBlobLength,omitempty"`
	MaxRPIDsForSetMinPINLength       *uint                                      `cbor:"16,keyasint" json:"maxRPIDsForSetMinPINLength,omitempty"`
	PreferredPlatformUvAttempts      *uint                                      `cbor:"17,keyasint" json:"preferredPlatformUvAttempts,omitempty"`
	UvModality                       *UserVerify                                `cbor:"18,keyasint" json:"uvModality,omitempty"`
	Certifications                   map[string]uint64                          `cbor:"19,keyasint" json:"certifications,omitempty"`
	RemainingDiscoverableCredentials *uint                                      `cbor:"20,keyasint" json:"remainingDiscoverableCredentials,omitempty"`
	VendorPrototypeConfigCommands    []uint                                     `cbor:"21,keyasint" json:"vendorPrototypeConfigCommands,omitempty"`
	AttestationFormats               []string                                   `cbor:"22,keyasint" json:"attestationFormats,omitempty"`
	UvCountSinceLastPinEntry         *uint                                      `cbor:"23,keyasint" json:"uvCountSinceLastPinEntry,omitempty"`
	LongTouchForReset                *bool                                      `cbor:"24,keyasint" json:"longTouchForReset,omitempty"`
	EncIdentifier                    []byte                                     `cbor:"25,keyasint" json:"encIdentifier,omitempty"`
	TransportsForReset               []string                                   `cbor:"26,keyasint" json:"transportsForReset,omitempty"`
	PinComplexityPolicy              *bool                                      `cbor:"27,keyasint" json:"pinComplexityPolicy,omitempty"`
	PinComplexityPolicyURL           *string                                    `cbor:"28,keyasint" json:"pinComplexityPolicyURL,omitempty"`
	MaxPINLength                     *uint                                      `cbor:"29,keyasint" json:"maxPINLength,omitempty"`
	EncCredStoreState                []byte                                     `cbor:"30,keyasint" json:"encCredStoreState,omitempty"`
	AuthenticatorConfigCommands      []uint                                     `cbor:"31,keyasint" json:"authenticatorConfigCommands,omitempty"`
}

AuthenticatorGetInfoResponse is used in Metadata Statement specification as well, so json notation added.

func (*AuthenticatorGetInfoResponse) EffectiveMaxMsgSize

func (r *AuthenticatorGetInfoResponse) EffectiveMaxMsgSize() uint

func (*AuthenticatorGetInfoResponse) EffectiveMinPINLength

func (r *AuthenticatorGetInfoResponse) EffectiveMinPINLength() uint

func (*AuthenticatorGetInfoResponse) MaxCredBlobLengthValue

func (r *AuthenticatorGetInfoResponse) MaxCredBlobLengthValue() (uint, bool)

func (*AuthenticatorGetInfoResponse) MaxSerializedLargeBlobArrayValue

func (r *AuthenticatorGetInfoResponse) MaxSerializedLargeBlobArrayValue() (uint, bool)

type AuthenticatorLargeBlobsRequest

type AuthenticatorLargeBlobsRequest struct {
	Get               uint              `cbor:"1,keyasint,omitempty"`
	Set               []byte            `cbor:"2,keyasint,omitempty"`
	Offset            uint              `cbor:"3,keyasint"`
	Length            uint              `cbor:"4,keyasint,omitempty"`
	PinUvAuthParam    []byte            `cbor:"5,keyasint,omitempty"`
	PinUvAuthProtocol PinUvAuthProtocol `cbor:"6,keyasint,omitempty"`
}

type AuthenticatorLargeBlobsResponse

type AuthenticatorLargeBlobsResponse struct {
	Config []byte `cbor:"1,keyasint"`
}

type AuthenticatorMakeCredentialRequest

type AuthenticatorMakeCredentialRequest struct {
	ClientDataHash               []byte                                             `cbor:"1,keyasint"`
	RP                           credential.PublicKeyCredentialRpEntity             `cbor:"2,keyasint"`
	User                         credential.PublicKeyCredentialUserEntity           `cbor:"3,keyasint"`
	PubKeyCredParams             []credential.PublicKeyCredentialParameters         `cbor:"4,keyasint"`
	ExcludeList                  []credential.PublicKeyCredentialDescriptor         `cbor:"5,keyasint,omitempty"`
	Extensions                   *CreateExtensionInputs                             `cbor:"6,keyasint,omitempty"`
	Options                      map[Option]bool                                    `cbor:"7,keyasint,omitempty"`
	PinUvAuthParam               []byte                                             `cbor:"8,keyasint,omitempty"`
	PinUvAuthProtocol            PinUvAuthProtocol                                  `cbor:"9,keyasint,omitempty"`
	EnterpriseAttestation        uint                                               `cbor:"10,keyasint,omitempty"`
	AttestationFormatsPreference []attestation.AttestationStatementFormatIdentifier `cbor:"11,keyasint,omitempty"`
}

type AuthenticatorMakeCredentialResponse

type AuthenticatorMakeCredentialResponse struct {
	Format                   attestation.AttestationStatementFormatIdentifier      `cbor:"1,keyasint"`
	AuthDataRaw              []byte                                                `cbor:"2,keyasint"`
	AuthData                 *MakeCredentialAuthData                               `cbor:"-"`
	AttestationStatement     map[string]any                                        `cbor:"3,keyasint,omitempty"`
	EnterpriseAttestation    bool                                                  `cbor:"4,keyasint,omitempty"`
	LargeBlobKey             []byte                                                `cbor:"5,keyasint,omitempty"`
	UnsignedExtensionOutputs map[extension.ExtensionIdentifier]any                 `cbor:"6,keyasint,omitempty"`
	ExtensionOutputs         *webauthn.CreateAuthenticationExtensionsClientOutputs `cbor:"-"`
}

func (*AuthenticatorMakeCredentialResponse) FIDOU2FAttestationStatementFormat

func (*AuthenticatorMakeCredentialResponse) PackedAttestationStatementFormat

func (*AuthenticatorMakeCredentialResponse) TPMAttestationStatementFormat

type BioEnrollmentSubCommand

type BioEnrollmentSubCommand byte
const (
	BioEnrollmentSubCommandEnrollBegin BioEnrollmentSubCommand = iota + 1
	BioEnrollmentSubCommandEnrollCaptureNextSample
	BioEnrollmentSubCommandCancelCurrentEnrollment
	BioEnrollmentSubCommandEnumerateEnrollments
	BioEnrollmentSubCommandSetFriendlyName
	BioEnrollmentSubCommandRemoveEnrollment
	BioEnrollmentSubCommandGetFingerprintSensorInfo
)

func (BioEnrollmentSubCommand) String

func (i BioEnrollmentSubCommand) String() string

type BioEnrollmentSubCommandParams

type BioEnrollmentSubCommandParams struct {
	TemplateID           []byte `cbor:"1,keyasint,omitempty"`
	TemplateFriendlyName string `cbor:"2,keyasint,omitempty"`
	TimeoutMilliseconds  uint   `cbor:"3,keyasint,omitempty"`
}

type BioModality

type BioModality uint
const (
	BioModalityFingerprint BioModality = iota + 1
)

type ClientPINSubCommand

type ClientPINSubCommand byte
const (
	ClientPINSubCommandGetPINRetries ClientPINSubCommand = iota + 1
	ClientPINSubCommandGetKeyAgreement
	ClientPINSubCommandSetPIN
	ClientPINSubCommandChangePIN
	ClientPINSubCommandGetPinToken
	ClientPINSubCommandGetPinUvAuthTokenUsingUvWithPermissions
	ClientPINSubCommandGetUVRetries

	ClientPINSubCommandGetPinUvAuthTokenUsingPinWithPermissions
)

func (ClientPINSubCommand) String

func (i ClientPINSubCommand) String() string

type Command

type Command byte
const (
	AuthenticatorMakeCredential                Command = 0x01
	AuthenticatorGetAssertion                  Command = 0x02
	AuthenticatorGetNextAssertion              Command = 0x08
	AuthenticatorGetInfo                       Command = 0x04
	AuthenticatorClientPIN                     Command = 0x06
	AuthenticatorReset                         Command = 0x07
	AuthenticatorBioEnrollment                 Command = 0x09
	AuthenticatorCredentialManagement          Command = 0x0a
	AuthenticatorSelection                     Command = 0x0b
	AuthenticatorLargeBlobs                    Command = 0x0c
	AuthenticatorConfig                        Command = 0x0d
	PrototypeAuthenticatorBioEnrollment        Command = 0x40
	PrototypeAuthenticatorCredentialManagement Command = 0x41
)

func (Command) String

func (i Command) String() string

type ConfigSubCommand

type ConfigSubCommand byte
const (
	ConfigSubCommandEnableEnterpriseAttestation ConfigSubCommand = iota + 1
	ConfigSubCommandToggleAlwaysUv
	ConfigSubCommandSetMinPINLength
	ConfigSubCommandVendorPrototype = 0xff
)

func (ConfigSubCommand) String

func (i ConfigSubCommand) String() string

type CreateCredBlobInput

type CreateCredBlobInput struct {
	CredBlob []byte `cbor:"credBlob"`
}

type CreateCredBlobOutput

type CreateCredBlobOutput struct {
	CredBlob bool `cbor:"credBlob"`
}

type CreateCredProtectInput

type CreateCredProtectInput struct {
	CredProtect int `cbor:"credProtect"`
}

type CreateCredProtectOutput

type CreateCredProtectOutput struct {
	CredProtect int `cbor:"credProtect"`
}

type CreateHMACSecretInput

type CreateHMACSecretInput struct {
	HMACSecret bool `cbor:"hmac-secret"`
}

type CreateHMACSecretMCInput

type CreateHMACSecretMCInput struct {
	HMACSecret HMACSecret `cbor:"hmac-secret-mc"`
}

type CreateHMACSecretMCOutput

type CreateHMACSecretMCOutput struct {
	HMACSecret []byte `cbor:"hmac-secret-mc"`
}

type CreateHMACSecretOutput

type CreateHMACSecretOutput struct {
	HMACSecret bool `cbor:"hmac-secret"`
}

type CreateMinPinLengthInput

type CreateMinPinLengthInput struct {
	MinPinLength bool `cbor:"minPinLength"`
}

type CreateMinPinLengthOutput

type CreateMinPinLengthOutput struct {
	MinPinLength uint `cbor:"minPinLength"`
}

type CreatePinComplexityPolicyInput

type CreatePinComplexityPolicyInput struct {
	PinComplexityPolicy bool `cbor:"pinComplexityPolicy"`
}

type CreatePinComplexityPolicyOutput

type CreatePinComplexityPolicyOutput struct {
	PinComplexityPolicy bool `cbor:"pinComplexityPolicy"`
}

type CreateThirdPartyPaymentInput

type CreateThirdPartyPaymentInput struct {
	ThirdPartyPayment bool `cbor:"thirdPartyPayment"`
}

type CredentialManagementSubCommand

type CredentialManagementSubCommand byte
const (
	CredentialManagementSubCommandGetCredsMetadata CredentialManagementSubCommand = iota + 1
	CredentialManagementSubCommandEnumerateRPsBegin
	CredentialManagementSubCommandEnumerateRPsGetNextRP
	CredentialManagementSubCommandEnumerateCredentialsBegin
	CredentialManagementSubCommandEnumerateCredentialsGetNextCredential
	CredentialManagementSubCommandDeleteCredential
	CredentialManagementSubCommandUpdateUserInformation
)

func (CredentialManagementSubCommand) String

type CredentialManagementSubCommandParams

type CredentialManagementSubCommandParams struct {
	RPIDHash     []byte                                   `cbor:"1,keyasint,omitempty"`
	CredentialID credential.PublicKeyCredentialDescriptor `cbor:"2,keyasint,omitzero"`
	User         credential.PublicKeyCredentialUserEntity `cbor:"3,keyasint,omitzero"`
}

type GetAssertionAuthData

type GetAssertionAuthData struct {
	RPIDHash               []byte
	Flags                  AuthDataFlag
	SignCount              uint32
	AttestedCredentialData *AttestedCredentialData
	Extensions             *GetExtensionOutputs
}

func ParseGetAssertionAuthData

func ParseGetAssertionAuthData(data []byte) (GetAssertionAuthData, error)

type GetCredBlobInput

type GetCredBlobInput struct {
	CredBlob bool `cbor:"credBlob"`
}

type GetCredBlobOutput

type GetCredBlobOutput struct {
	CredBlob []byte `cbor:"credBlob"`
}

type GetHMACSecretInput

type GetHMACSecretInput struct {
	HMACSecret HMACSecret `cbor:"hmac-secret"`
}

type GetHMACSecretOutput

type GetHMACSecretOutput struct {
	HMACSecret []byte `cbor:"hmac-secret"`
}

type GetThirdPartyPaymentInput

type GetThirdPartyPaymentInput struct {
	ThirdPartyPayment bool `cbor:"thirdPartyPayment"`
}

type GetThirdPartyPaymentOutput

type GetThirdPartyPaymentOutput struct {
	ThirdPartyPayment bool `cbor:"thirdPartyPayment"`
}

type HMACSecret

type HMACSecret struct {
	KeyAgreement      key.Key           `cbor:"1,keyasint"`
	SaltEnc           []byte            `cbor:"2,keyasint"`
	SaltAuth          []byte            `cbor:"3,keyasint"`
	PinUvAuthProtocol PinUvAuthProtocol `cbor:"4,keyasint,omitempty"`
}

type LargeBlob

type LargeBlob struct {
	Ciphertext []byte `cbor:"1,keyasint"`
	Nonce      []byte `cbor:"2,keyasint"`
	OrigSize   uint   `cbor:"3,keyasint"`
}

type LastEnrollSampleStatus

type LastEnrollSampleStatus uint
const (
	LastEnrollSampleStatusFingerprintGood LastEnrollSampleStatus = iota
	LastEnrollSampleStatusFingerprintTooHigh
	LastEnrollSampleStatusFingerprintTooLow
	LastEnrollSampleStatusFingerprintTooLeft
	LastEnrollSampleStatusFingerprintTooRight
	LastEnrollSampleStatusFingerprintTooFast
	LastEnrollSampleStatusFingerprintTooSlow
	LastEnrollSampleStatusFingerprintPoorQuality
	LastEnrollSampleStatusFingerprintTooSkewed
	LastEnrollSampleStatusFingerprintTooShort
	LastEnrollSampleStatusFingerprintMergeFailure
	LastEnrollSampleStatusFingerprintExists

	LastEnrollSampleStatusNoUserActivity
	LastEnrollSampleStatusNoUserPresenceTransition
)

func (LastEnrollSampleStatus) String

func (i LastEnrollSampleStatus) String() string

type MakeCredentialAuthData

type MakeCredentialAuthData struct {
	RPIDHash               []byte
	Flags                  AuthDataFlag
	SignCount              uint32
	AttestedCredentialData *AttestedCredentialData
	Extensions             *CreateExtensionOutputs
}

func ParseMakeCredentialAuthData

func ParseMakeCredentialAuthData(data []byte) (MakeCredentialAuthData, error)

type Option

type Option string
const (
	OptionPlatformDevice                 Option = "plat"
	OptionResidentKeys                   Option = "rk"
	OptionClientPIN                      Option = "clientPin"
	OptionUserPresence                   Option = "up"
	OptionUserVerification               Option = "uv"
	OptionPinUvAuthToken                 Option = "pinUvAuthToken"
	OptionNoMcGaPermissionsWithClientPin Option = "noMcGaPermissionsWithClientPin"
	OptionLargeBlobs                     Option = "largeBlobs"
	OptionEnterpriseAttestation          Option = "ep"
	OptionBioEnroll                      Option = "bioEnroll"
	OptionUserVerificationMgmtPreview    Option = "userVerificationMgmtPreview"
	OptionUvBioEnroll                    Option = "uvBioEnroll"
	OptionAuthenticatorConfig            Option = "authnrCfg"
	OptionUvAcfg                         Option = "uvAcfg"
	OptionCredentialManagement           Option = "credMgmt"
	OptionCredentialManagementReadOnly   Option = "perCredMgmtRO"
	OptionCredentialManagementPreview    Option = "credentialMgmtPreview"
	OptionSetMinPINLength                Option = "setMinPINLength"
	OptionMakeCredentialUvNotRequired    Option = "makeCredUvNotRqd"
	OptionAlwaysUv                       Option = "alwaysUv"
)

type Permission

type Permission byte
const (
	PermissionNone                                   Permission = 0x00
	PermissionMakeCredential                         Permission = 0x01
	PermissionGetAssertion                           Permission = 0x02
	PermissionCredentialManagement                   Permission = 0x04
	PermissionBioEnrollment                          Permission = 0x08
	PermissionLargeBlobWrite                         Permission = 0x10
	PermissionAuthenticatorConfiguration             Permission = 0x20
	PermissionPersistentCredentialManagementReadOnly Permission = 0x40
)

func (Permission) String

func (i Permission) String() string

type PinUvAuthProtocol

type PinUvAuthProtocol uint
const (
	PinUvAuthProtocolOne PinUvAuthProtocol = iota + 1
	PinUvAuthProtocolTwo
)

type SetMinPINLengthConfigSubCommandParams

type SetMinPINLengthConfigSubCommandParams struct {
	NewMinPINLength     uint     `cbor:"1,keyasint,omitempty"`
	MinPinLengthRPIDs   []string `cbor:"2,keyasint,omitempty"`
	ForceChangePin      bool     `cbor:"3,keyasint,omitempty"`
	PinComplexityPolicy bool     `cbor:"4,keyasint,omitempty"`
}

type TemplateInfo

type TemplateInfo struct {
	TemplateID           []byte `cbor:"1,keyasint"`
	TemplateFriendlyName string `cbor:"2,keyasint,omitempty"`
}

type UserVerify

type UserVerify uint
const (
	UserVerifyPresenceInternal UserVerify = 1 << iota
	UserVerifyFingerprintInternal
	UserVerifyPasscodeInternal
	UserVerifyVoiceprintInternal
	UserVerifyFaceprintInternal
	UserVerifyLocationInternal
	UserVerifyEyeprintInternal
	UserVerifyPatternInternal
	UserVerifyHandprintInternal
	UserVerifyPasscodeExternal
	UserVerifyPatternExternal
	UserVerifyNone
	UserVerifyAll
)

func (UserVerify) String

func (uv UserVerify) String() string

type Version

type Version string
const (
	FIDO_2_0     Version = "FIDO_2_0"
	FIDO_2_1_PRE Version = "FIDO_2_1_PRE"
	FIDO_2_1     Version = "FIDO_2_1"
	FIDO_2_3     Version = "FIDO_2_3"
	U2F_V2       Version = "U2F_V2"
)

type Versions

type Versions []Version

func (Versions) IsPreviewOnly

func (vv Versions) IsPreviewOnly() bool

func (Versions) Supports

func (vv Versions) Supports(ver Version) bool

Jump to

Keyboard shortcuts

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