Documentation de référence sur la struct gatekeeper_device

Documentation de référence sur la struct gatekeeper_device

#include < gatekeeper.h >

Champs de données

hw_device_t   commun
 
int(*  EnrollmentEnrollment (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 desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)
 
int(*  verify )(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll)
 
int(*  delete_user )(const struct gatekeeper_device *dev, uint32_t uid)
 
int(*  delete_all_users )(const struct gatekeeper_device *dev)
 

Description détaillée

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

Documentation des champs

Méthodes courantes de l'appareil de contrôle d'accès. 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 desired_password_length, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length)

Enregistre le mot de passe souhaité, qui doit être dérivé d'un code ou d'un mot de passe sélectionné par l'utilisateur, avec la clé privée du facteur d'authentification utilisée uniquement pour enregistrer les 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 current_password_handle.

Paramètres:

  • dev: pointeur vers gatekeeper_device obtenu via des appels à gatekeeper_open
  • uid: identifiant utilisateur Android
  • current_password_handle: identifiant du mot de passe actuellement enregistré que l'utilisateur souhaite remplacer. Peut être nul si aucun mot de passe n'est actuellement enregistré.
  • current_password_handle_length: longueur en octets du tampon pointé par current_password_handle. Doit être égal à 0 si current_password_handle est NULL.
  • current_password: mot de passe actuel de l'utilisateur en texte brut. S'il est présenté, il DOIT être validé par current_password_handle.
  • current_password_length: taille en octets du tampon pointé par current_password. Doit être égal à 0 si le mot de passe actuel est NULL.
  • desired_password: nouveau mot de passe que l'utilisateur souhaite enregistrer en texte brut. Ne peut pas être NULL.
  • desired_password_length: longueur en octets du tampon pointé par desired_password.
  • enrolled_password_handle: en cas de réussite, un tampon sera alloué avec le nouveau handle de mot de passe référençant le mot de passe fourni dans desired_password. Ce tampon peut être utilisé pour les appels suivants d'enregistrement ou de validation. 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 de la mémoire tampon allouée par cette fonction et pointée par *enrolled_password_handle_length.

Résultats renvoyés:

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

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

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

int(* verify)(const struct gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_t provided_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bool *request_reenroll)

Vérifie que le mot de passe fourni correspond à l'identifiant de mot de passe enregistré.

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 réussite, écrit l'adresse d'un jeton de validation dans auth_token, qui peut être utilisé pour attester de la validation du mot de passe auprès d'autres services approuvés. Les clients peuvent transmettre NULL pour cette valeur.

Paramètres:

  • dev: pointeur vers gatekeeper_device obtenu via des appels à gatekeeper_open
  • uid: identifiant utilisateur Android
  • challenge: défi facultatif à utiliser pour l'authentification, ou 0. Utilisé lorsqu'un authentificateur distinct demande la validation du mot de passe ou pour l'authentification par mot de passe des transactions.
  • enrolled_password_handle: identifiant de mot de passe actuellement enregistré que l'utilisateur souhaite valider.
  • enrolled_password_handle_length: longueur en octets du tampon pointé par enrolled_password_handle
  • provided_password: mot de passe en texte brut à valider avec le handle de mot de passe enregistré
  • provided_password_length: longueur en octets du tampon pointé par provided_password
  • auth_token: en cas de réussite, un tampon contenant le jeton d'authentification issu de cette validation 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 réussite, la longueur en octets du jeton d'authentification attribué à *auth_token sera attribuée à *auth_token_length.
  • request_reenroll: requête envoyée aux couches supérieures pour réinscrire le mot de passe validé en raison d'un changement de version. Ce champ n'est pas défini si la validation échoue.

Résultats renvoyés:

  • 0 en cas de réussite
  • Un code d'erreur < 0 en cas d'échec, ou
  • Valeur de délai avant expiration 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 ce struct a été générée à partir du fichier suivant :