You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement all of the extensions directly in the library including all validations. It would be nice to allow backwards compat and a low level implementation as this is an evolving area, however I don't believe that either of these ideas should be a critical requirement.
package protocol
// AppIDExtensionsClientInputs is the input parameters for the appid extension.//// This extension allows WebAuthn Relying Parties that have previously registered a credential using the legacy FIDO U2F// JavaScript API FIDOU2FJavaScriptAPI to request an assertion. The FIDO APIs use an alternative identifier for Relying// Parties called an AppID FIDO-APPID, and any credentials created using those APIs will be scoped to that identifier.// Without this extension, they would need to be re-registered in order to be scoped to an RP ID.//// Stages: Authentication//// Specification: §10.2. FIDO AppID Extension (https://www.w3.org/TR/webauthn/#sctn-appid-extension)typeAppIDExtensionsClientInputsstruct {
AppIDstring`json:"appid,omitempty"`
}
// AppIDExtensionsClientOutputs is the output parameters for the appid extension.//// This extension allows WebAuthn Relying Parties that have previously registered a credential using the legacy FIDO U2F// JavaScript API FIDOU2FJavaScriptAPI to request an assertion. The FIDO APIs use an alternative identifier for Relying// Parties called an AppID FIDO-APPID, and any credentials created using those APIs will be scoped to that identifier.// Without this extension, they would need to be re-registered in order to be scoped to an RP ID.//// Stages: Authentication//// Specification: §10.2. FIDO AppID Extension (https://www.w3.org/TR/webauthn/#sctn-appid-extension)typeAppIDExtensionsClientOutputsstruct {
AppIDbool`json:"appid"`
}
// AppIDExcludeExtensionsClientInputs is the input parameters for the appidExclude extension.//// This registration extension allows WebAuthn Relying Parties to exclude authenticators that contain specified// credentials that were created with the legacy FIDO U2F JavaScript API FIDOU2FJavaScriptAPI.//// Stages: Registration//// Specification: §10.2. FIDO AppID Exclusion Extension (https://www.w3.org/TR/webauthn/#sctn-appid-exclude-extension)typeAppIDExcludeExtensionsClientInputsstruct {
AppIDstring`json:"appidExclude,omitempty"`
}
// AppIDExcludeExtensionsClientOutputs is the output parameters for the appidExclude extension.//// This registration extension allows WebAuthn Relying Parties to exclude authenticators that contain specified// credentials that were created with the legacy FIDO U2F JavaScript API FIDOU2FJavaScriptAPI.//// Stages: Registration//// Specification: §10.2. FIDO AppID Exclusion Extension (https://www.w3.org/TR/webauthn/#sctn-appid-exclude-extension)typeAppIDExcludeExtensionsClientOutputsstruct {
AppIDbool`json:"appidExclude"`
}
// UVMClientInputs is the input parameters for the uvm extension.//// This extension enables use of a user verification method.//// Stages: Registration, Authentication//// Specification: §10.3. User Verification Method Extension (https://www.w3.org/TR/webauthn/#sctn-uvm-extension)typeUVMClientInputsstruct {
UVMbool`json:"uvm"`
}
// UVMClientOutputs is the input parameters for the uvm extension.//// This extension enables use of a user verification method.//// TODO: Investigation of the CBOR structure.//// Stages: Registration, Authentication//// Specification: §10.3. User Verification Method Extension (https://www.w3.org/TR/webauthn/#sctn-uvm-extension)typeUVMClientOutputsstruct {
UVM [][]uint`json:"uvm"`
}
// CredentialPropertiesClientInputs is the input parameters for the credProps extension.//// This client registration extension facilitates reporting certain credential properties known by the client to the// requesting WebAuthn Relying Party upon creation of a public key credential source as a result of a registration// ceremony.//// Stages: Registration//// Specification: §10.4. Credential Properties Extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeCredentialPropertiesClientInputsstruct {
CredentialPropertiesbool`json:"credProps"`
}
// CredentialPropertiesClientOutputs is the output parameters for the credProps extension.//// This client registration extension facilitates reporting certain credential properties known by the client to the// requesting WebAuthn Relying Party upon creation of a public key credential source as a result of a registration// ceremony.//// Stages: Registration//// Specification: §10.4. Credential Properties Extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeCredentialPropertiesClientOutputsstruct {
ClientSideDiscoverableCredentialbool`json:"rk"`
}
// LargeBlobSupport represents the IDL of the same name.//// Specification: §10.5. Large blob storage extension (https://www.w3.org/TR/webauthn/#enumdef-largeblobsupport)typeLargeBlobSupportstringconst (
LargeBlobSupportRequiredLargeBlobSupport="required"LargeBlobSupportPreferredLargeBlobSupport="preferred"
)
// LargeBlobStorageClientRegistrationInputs is the input parameters for the largeBlob extension.//// This client registration extension and authentication extension allows a Relying Party to store opaque data// associated with a credential. Since authenticators can only store small amounts of data, and most Relying Parties are// online services that can store arbitrary amounts of state for a user, this is only useful in specific cases. For// example, the Relying Party might wish to issue certificates rather than run a centralised authentication service.//// Stages: Registration, Authentication//// Specification: §10.5. Large blob storage extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeLargeBlobStorageClientRegistrationInputsstruct {
LargeBlobRegistrationExtensionsLargeBlobInputs`json:"largeBlob"`
}
// LargeBlobStorageClientAuthenticationInputs is the input parameters for the largeBlob extension.//// This client registration extension and authentication extension allows a Relying Party to store opaque data// associated with a credential. Since authenticators can only store small amounts of data, and most Relying Parties are// online services that can store arbitrary amounts of state for a user, this is only useful in specific cases. For// example, the Relying Party might wish to issue certificates rather than run a centralised authentication service.//// Stages: Authentication//// Specification: §10.5. Large blob storage extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeLargeBlobStorageClientAuthenticationInputsstruct {
LargeBlobAuthenticationExtensionsLargeBlobInputs`json:"largeBlob"`
}
typeRegistrationExtensionsLargeBlobInputsstruct {
SupportLargeBlobSupport`json:"support"`
}
typeAuthenticationExtensionsLargeBlobInputsstruct {
Readbool`json:"read"`DataURLEncodedBase64`json:"write,omitempty"`
}
// LargeBlobStorageClientRegistrationOutputs is the output parameters for the largeBlob extension.//// This client registration extension and authentication extension allows a Relying Party to store opaque data// associated with a credential. Since authenticators can only store small amounts of data, and most Relying Parties are// online services that can store arbitrary amounts of state for a user, this is only useful in specific cases. For// example, the Relying Party might wish to issue certificates rather than run a centralised authentication service.//// Stages: Registration//// Specification: §10.5. Large blob storage extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeLargeBlobStorageClientRegistrationOutputsstruct {
LargeBlobRegistrationExtensionsLargeBlobOutputs`json:"largeBlob"`
}
// LargeBlobStorageClientAuthenticationOutputs is the output parameters for the largeBlob extension.//// This client registration extension and authentication extension allows a Relying Party to store opaque data// associated with a credential. Since authenticators can only store small amounts of data, and most Relying Parties are// online services that can store arbitrary amounts of state for a user, this is only useful in specific cases. For// example, the Relying Party might wish to issue certificates rather than run a centralised authentication service.//// Stages: Registration, Authentication//// Specification: §10.5. Large blob storage extension (https://www.w3.org/TR/webauthn/#sctn-authenticator-credential-properties-extension)typeLargeBlobStorageClientAuthenticationOutputsstruct {
LargeBlobAuthenticationExtensionsLargeBlobOutputs`json:"largeBlob"`
}
typeRegistrationExtensionsLargeBlobOutputsstruct {
Supportbool`json:"supported"`
}
typeAuthenticationExtensionsLargeBlobOutputsstruct {
Writtenbool`json:"written"`DataURLEncodedBase64`json:"blob,omitempty"`
}
The text was updated successfully, but these errors were encountered:
Description
Implement all of the extensions directly in the library including all validations. It would be nice to allow backwards compat and a low level implementation as this is an evolving area, however I don't believe that either of these ideas should be a critical requirement.
devicePubKeysupplementalPubKeys draft (think this one is a higher priority)Use Case
No response
Documentation
The text was updated successfully, but these errors were encountered: