Skip to main content

PasskeyAuthenticatorProtocol

PasskeyAuthenticatorProtocol Objects

class PasskeyAuthenticatorProtocol(typing.Protocol)

A passkey authenticator.

BCS

The BCS serialized form for this type is defined by the following ABNF:

See <https://www.w3.org/TR/webauthn-2/`dictdef`-collectedclientdata> for the required json-schema for the client-data-json rule. In addition, IOTA currently requires that the CollectedClientData.type field is required to be webauthn.get.

Note: Due to historical reasons, signatures are serialized slightly different from the majority of the types in IOTA. In particular if a signature is ever embedded in another structure it generally is serialized as bytes meaning it has a length prefix that defines the length of the completely serialized signature.

passkey-bcs = bytes               ; where the contents of the bytes are
; defined by <passkey>
passkey = passkey-flag
bytes ; passkey authenticator data
client-data-json ; valid json
simple-signature ; required to be a secp256r1 signature

client-data-json = string ; valid json

authenticator_data

def authenticator_data() -> bytes

Opaque authenticator data for this passkey signature.

See <https://www.w3.org/TR/webauthn-2/`sctn`-authenticator-data> for more information on this field.

challenge

def challenge() -> bytes

The parsed challenge message for this passkey signature.

This is parsed by decoding the base64url data from the client_data_json.challenge field.

client_data_json

def client_data_json() -> str

Structured, unparsed, JSON for this passkey signature.

See <https://www.w3.org/TR/webauthn-2/`dictdef`-collectedclientdata> for more information on this field.

public_key

def public_key() -> PasskeyPublicKey

The passkey public key.

signature

def signature() -> SimpleSignature

The passkey signature.