LocalData

public protocol LocalData

A protocol that provides information about the information that is stored locally in the SDK. This includes authenticator and device information. The protocol also allows to delete the data locally.

  • Convenience method that returns all the registered accounts.

    Important

    Note that this method is synchronous, and it can take a long time to complete, so it is recommended to invoke it outside the DispatchQueue.main thread.

    Note

    Due to some language limitation Array is provided instead of Set.

    Note

    The Accounts in the provided Array are unique.

    Declaration

    Swift

    var accounts: [any Account] { get }
  • Returns information about the authenticators. This information can be used for instance to know whether there is a registered authenticator or not, and thus if the user must register an authenticator or if authentication is possible.

    Important

    Note that this method is synchronous, and it can take a long time to complete, so it is recommended to invoke it outside the DispatchQueue.main thread.

    Note

    Due to some language limitation Array is provided instead of Set.

    Note

    The Authenticators in the provided Array are unique.

    Declaration

    Swift

    var authenticators: [any Authenticator] { get }
  • Returns information about the configured DeviceInformation (if any).

    Declaration

    Swift

    var deviceInformation: DeviceInformation? { get }
  • Deletes all the data managed by the SDK regarding the provided authenticator. If the authenticator is registered, it will delete the associated FIDO UAF credentials of the provided user. If the authenticator is managed by the SDK (PIN or password authenticator), and the specified user is the only registered user, it will also delete the PIN or password definition (i.e. the authenticator will no longer be enrolled).

    Note

    This method will only delete data locally. The FIDO UAF credentials will not be deleted from the server. This method should only be used when going through the protocol to delete authenticator information is not possible. For instance when the PIN authenticator is locked, which may be due to a security attack, and then it is desirable to delete the credentials locally. Using the Deregistration operation is the recommended way of deleting the FIDO UAF credentials.

    Note

    If no AAID is provided then all authenticators will be deleted.

    Important

    This method is synchronous.

    Warning

    This method must not be called on DispatchQueue.main thread.

    Throws

    InvalidAaid if the provided AAID is not known. NoDeviceLockError if iOS device has no passcode set. Unknown(message:cause:) if an error occurred during deleting the associated FIDO UAF credentials.

    Declaration

    Swift

    func deleteAuthenticator(username: String, aaid: String?) throws

    Parameters

    username

    the username whose data must be deleted.

    aaid

    the AAID of the Authenticator whose data must be deleted.