#[derive(Debug, DeriveSer)] pubenum StatusPinUv { #[serde(serialize_with = "serialize_pin_required")]
PinRequired(Sender<Pin>), #[serde(serialize_with = "serialize_pin_invalid")]
InvalidPin(Sender<Pin>, Option<u8>),
PinIsTooShort,
PinIsTooLong(usize),
InvalidUv(Option<u8>), // This SHOULD ever only happen for CTAP2.0 devices that // use internal UV (e.g. fingerprint sensors) and failed (e.g. wrong // finger used). // PinAuthInvalid, // Folded into InvalidUv
PinAuthBlocked,
PinBlocked,
PinNotSet,
UvBlocked,
}
#[derive(Debug)] pubenum InteractiveUpdate {
StartManagement((Sender<InteractiveRequest>, Option<AuthenticatorInfo>)), // We provide the already determined PUAT to be able to issue more requests without // forcing the user to enter another PIN.
BioEnrollmentUpdate((BioEnrollmentResult, Option<PinUvAuthResult>)),
CredentialManagementUpdate((CredentialManagementResult, Option<PinUvAuthResult>)),
AuthConfigUpdate((AuthConfigResult, Option<PinUvAuthResult>)),
}
#[derive(Debug)] pubenum StatusUpdate { /// We're waiting for the user to touch their token
PresenceRequired, /// Sent if a PIN is needed (or was wrong), or some other kind of PIN-related /// error occurred. The Sender is for sending back a PIN (if needed).
PinUvError(StatusPinUv), /// Sent, if multiple devices are found and the user has to select one
SelectDeviceNotice, /// Sent when a token was selected for interactive management
InteractiveManagement(InteractiveUpdate), /// Sent when a token returns multiple results for a getAssertion request
SelectResultNotice(Sender<Option<usize>>, Vec<PublicKeyCredentialUserEntity>),
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.