Skip to main content

PasskeyAuthenticator

PasskeyAuthenticator

class PasskeyAuthenticator

A passkey authenticator.

BCS

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

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

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.

debugDescription

var debugDescription: String { get }

A textual representation of this instance, suitable for debugging.

Calling this property directly is discouraged. Instead, convert an instance of any type to a string by using the String(reflecting:) initializer. This initializer works with any type, and uses the custom debugDescription property for types that conform to CustomDebugStringConvertible:

struct Point: CustomDebugStringConvertible {
let x: Int, y: Int

var debugDescription: String {
return "(\(x), \(y))"
}
}

let p = Point(x: 21, y: 30)
let s = String(reflecting: p)
print(s)
// Prints "(21, 30)"

The conversion of p to a string in the assignment to s uses the Point type's debugDescription property.

authenticatorData()

func authenticatorData() -> Data

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()

func challenge() -> Data

The parsed challenge message for this passkey signature.

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

clientDataJson()

func clientDataJson() -> String

Structured, unparsed, JSON for this passkey signature.

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

publicKey()

func publicKey() -> PasskeyPublicKey

The passkey public key.

signature()

func signature() -> SimpleSignature

The passkey signature.

!=(_:_:)

static func != (lhs: Self, rhs: Self) -> Bool

Returns a Boolean value indicating whether two values are not equal.

Inequality is the inverse of equality. For any values a and b, a != b implies that a == b is false.

This is the default implementation of the not-equal-to operator (!=) for any type that conforms to Equatable.

  • Parameters:
    • lhs: A value to compare.
    • rhs: Another value to compare.

==(_:_:)

static func == (self: PasskeyAuthenticator, other: PasskeyAuthenticator) -> Bool

Returns a Boolean value indicating whether two values are equal.

Equality is the inverse of inequality. For any values a and b, a == b implies that a != b is false.

  • Parameters:
    • lhs: A value to compare.
    • rhs: Another value to compare.