Skip to content

[Extensions] Introduce more informative enum for Extension results #79

Description

@msirringhaus

From my reading of the spec, the result of client extension processing on either get() or create() could be:

  1. Accept - Use the client extension input as client extension output. This is used for authenticator extensions that require no processing on the client, eg. 12.3. Large Blob Key (largeBlobKey): Client extension input / output / processing.
  2. Accept & update - The client re-writes the authenticator extension input, with different fields, e.g. 12.5 HMAC Secret Extension (hmac-secret): Client extension processing.
  3. Drop - Remove this extension's payload altogether from the authenticator request, e.g. 12.1. Credential Protection (credProtect): Client extension processing drops the create() payload if credBlob size is unexpected.
enum ClientExtensionProcessingResult {
  Accept(cbor::Map),
  Drop,
}  

Originally posted by @AlfioEmanueleFresta in #77 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions