Référence de structure gatekeeper_device

Référence de structure gatekeeper_device

#include < gatekeeper.h >

Champs de données

hw_device_t commun
entier(* inscrire (const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t wanted_password_length, uint 8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)
entier(* vérifier )(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t approved_password_handle_length, const uint8_t *provided_password, uint32_t provide_password_length, uint8_t **auth_token, uint32_t * auth_token_length, booléen *request_reenroll)
entier(* delete_user )(const struct gatekeeper_device *dev, uint32_t uid)
entier(* delete_all_users )(const struct gatekeeper_device *dev)

Description détaillée

Définition à la ligne 41 du fichier gatekeeper.h .

Documentation de terrain

Méthodes courantes du dispositif gatekeeper. Comme ci-dessus, il doit s'agir du premier membre de keymaster_device.

Définition à la ligne 46 du fichier gatekeeper.h .

int(* delete_all_users)(const struct gatekeeper_device *dev)

Définition à la ligne 173 du fichier gatekeeper.h .

int(* delete_user)(const struct gatekeeper_device *dev, uint32_t uid)

Définition à la ligne 159 du fichier gatekeeper.h .

int(* enroll)(const struct gatekeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current_password_length, const uint8_t *desired_password, uint32_t wanted_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)

Inscrit le mot de passe souhaité, qui doit être dérivé d'un code PIN ou d'un mot de passe sélectionné par l'utilisateur, avec la clé privée du facteur d'authentification utilisée uniquement pour l'inscription des données du facteur d'authentification.

Si un mot de passe était déjà enregistré, il doit être fourni dans current_password_handle, ainsi que le mot de passe actuel dans current_password qui doit être validé par rapport à current_password_handle.

Paramètres:

  • dev : pointeur vers gatekeeper_device acquis via des appels à gatekeeper_open
  • uid : l'identifiant de l'utilisateur Android
  • current_password_handle : le descripteur de mot de passe actuellement inscrit que l'utilisateur souhaite remplacer. Peut être nul s’il n’y a pas de mot de passe actuellement enregistré.
  • current_password_handle_length : la longueur en octets du tampon pointé par current_password_handle. Doit être 0 si current_password_handle est NULL.
  • current_password : le mot de passe actuel de l'utilisateur en texte brut. S'il est présenté, il DOIT vérifier par rapport à current_password_handle.
  • current_password_length : la taille en octets du tampon pointé par current_password. Doit être 0 si le mot de passe actuel est NULL.
  • wanted_password : le nouveau mot de passe que l'utilisateur souhaite enregistrer en texte brut. Ne peut pas être nulle.
  • wanted_password_length : la longueur en octets du tampon pointé par wanted_password.
  • enrôlé_password_handle : en cas de succès, un tampon sera alloué avec le nouveau descripteur de mot de passe faisant référence au mot de passe fourni dans wanted_password. Ce tampon peut être utilisé lors des appels ultérieurs pour s'inscrire ou vérifier. L'appelant est responsable de la désallocation de ce tampon via un appel à delete[]
  • enrolled_password_handle_length : pointeur vers la longueur en octets du tampon alloué par cette fonction et pointé par *enrolled_password_handle_length.

Retour:

  • 0 en cas de réussite
  • Un code erreur < 0 en cas d'échec, ou
  • Une valeur de délai d'attente T > 0 si l'appel ne doit pas être réessayé avant que T millisecondes ne se soient écoulées.

En cas d'erreur, Ensure_password_handle ne sera pas alloué.

Définition à la ligne 91 du fichier gatekeeper.h .

int (* vérifier) ​​(const struct gatekeeper_device * dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t approved_password_handle_length, const uint8_t *provided_password, uint32_t provide_password_length, uint8_t **auth_token, uint32 _t *auth_token_length, bool *request_reenroll)

Vérifie que provide_password correspond à approved_password_handle.

Les implémentations de ce module peuvent conserver le résultat de cet appel pour attester de la récence de l'authentification.

En cas de succès, écrit l'adresse d'un jeton de vérification dans auth_token, utilisable pour attester la vérification du mot de passe auprès d'autres services de confiance. Les clients peuvent transmettre NULL pour cette valeur.

Paramètres:

  • dev : pointeur vers gatekeeper_device acquis via des appels à gatekeeper_open
  • uid : l'identifiant de l'utilisateur Android
  • challenge : Un défi facultatif pour l'authentification, ou 0. Utilisé lorsqu'un authentificateur distinct demande une vérification du mot de passe, ou pour l'authentification par mot de passe transactionnel.
  • enrôlé_password_handle : le descripteur de mot de passe actuellement inscrit que l'utilisateur souhaite vérifier.
  • enrôlé_password_handle_length : la longueur en octets du tampon pointé par enrôlé_password_handle
  • provide_password : le mot de passe en texte brut à vérifier par rapport au approved_password_handle
  • provide_password_length : la longueur en octets du tampon pointé par provide_password
  • auth_token : en cas de succès, un buffer contenant le jeton d'authentification issu de cette vérification est attribué à *auth_token. L'appelant est responsable de la désallocation de cette mémoire via un appel à delete[]
  • auth_token_length : en cas de succès, la longueur en octets du jeton d'authentification attribué à *auth_token sera attribuée à *auth_token_length
  • request_reenroll : une demande aux couches supérieures de réinscrire le mot de passe vérifié en raison d'un changement de version. Non défini si la vérification échoue.

Retour:

  • 0 en cas de réussite
  • Un code erreur < 0 en cas d'échec, ou
  • Une valeur de délai d'attente T > 0 si l'appel ne doit pas être réessayé avant que T millisecondes ne se soient écoulées. En cas d'erreur, le jeton d'authentification ne sera pas alloué

Définition à la ligne 141 du fichier gatekeeper.h .


La documentation de cette structure a été générée à partir du fichier suivant :