Struct-Referenz für „gatekeeper_device“

Struct-Referenz für „gatekeeper_device“

#include < gatekeeper.h >

Datenfelder

hw_device_t   common
 
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)
 
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)
 

Detaillierte Beschreibung

Definition in Zeile 41 der Datei gatekeeper.h .

Felddokumentation

hw_device_t allgemein

Gängige Methoden des Gatekeeper-Geräts. Wie oben muss dies das erste Mitglied von „keymaster_device“ sein.

Definition in Zeile 46 der Datei gatekeeper.h .

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

Definition in Zeile 173 der Datei gatekeeper.h .

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

Definition in Zeile 159 der Datei 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)

Registriert „desired_password“, das aus einer vom Nutzer ausgewählten PIN oder einem Passwort abgeleitet werden sollte, mit dem privaten Schlüssel des Authentifizierungsfaktors, der nur zum Registrieren von Authentifizierungsfaktordaten verwendet wird.

Wenn bereits ein Passwort registriert wurde, muss es in „current_password_handle“ zusammen mit dem aktuellen Passwort in „current_password“ angegeben werden. Dieses muss mit „current_password_handle“ abgeglichen werden.

Parameter:

  • dev: Verweis auf gatekeeper_device über Aufrufe von gatekeeper_open abgerufen
  • uid: Android-Nutzer-ID
  • current_password_handle: Der derzeit registrierte Passwort-Alias, den der Nutzer ersetzen möchte. Kann null sein, wenn derzeit kein Passwort registriert ist.
  • current_password_handle_length: Die Länge in Byte des Puffers, auf den current_password_handle verweist. Muss 0 sein, wenn „current_password_handle“ NULL ist.
  • current_password: Das aktuelle Passwort des Nutzers im Klartext. Wenn angegeben, MUSS es mit „current_password_handle“ abgeglichen werden.
  • current_password_length: Die Größe in Byte des Puffers, auf den current_password verweist. Muss 0 sein, wenn „current_password“ NULL ist.
  • desired_password: Das neue Passwort, das der Nutzer registrieren möchte, im Klartext. Darf nicht NULL sein.
  • desired_password_length: die Länge in Byte des Puffers, auf den von „desired_password“ verwiesen wird.
  • enrolled_password_handle: Bei Erfolg wird ein Puffer mit dem neuen Passwort-Handle zugewiesen, der auf das in „desired_password“ angegebene Passwort verweist. Dieser Puffer kann bei nachfolgenden Aufrufen zur Registrierung oder Bestätigung verwendet werden. Der Aufrufer ist dafür verantwortlich, diesen Puffer über einen delete[]-Aufruf wieder freizugeben.
  • enrolled_password_handle_length: Zeiger auf die Länge in Byte des von dieser Funktion zugewiesenen Buffers, auf den *enrolled_password_handle_length verweist.

Rückgabe:

  • 0 bei Erfolg
  • Bei einem Fehler ein Fehlercode < 0 oder
  • Ein Zeitüberschreitungswert T > 0, wenn der Aufruf erst nach Ablauf von T Millisekunden wiederholt werden soll.

Bei einem Fehler wird „enrolled_password_handle“ nicht zugewiesen.

Definition in Zeile 91 der Datei 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)

Prüft, ob das angegebene Passwort mit dem registrierten Passwort-Alias übereinstimmt.

Implementierungen dieses Moduls können das Ergebnis dieses Aufrufs speichern, um die Aktualität der Authentifizierung zu bestätigen.

Bei Erfolg wird die Adresse eines Bestätigungstokens in „auth_token“ geschrieben, das zur Attestierung der Passwortbestätigung für andere vertrauenswürdige Dienste verwendet werden kann. Clients können für diesen Wert NULL übergeben.

Parameter:

  • dev: Verweis auf gatekeeper_device über Aufrufe von gatekeeper_open abgerufen
  • uid: Android-Nutzer-ID
  • challenge: Optionale Identitätsbestätigung, mit der sich authentifizieren lässt, oder „0“. Wird verwendet, wenn ein separater Authenticator eine Passwortbestätigung anfordert, oder für die transaktionale Passwortauthentifizierung.
  • enrolled_password_handle: der aktuell registrierte Passwort-Alias, anhand dessen der Nutzer die Überprüfung durchführen möchte.
  • enrolled_password_handle_length: die Länge in Byte des Puffers, auf den durch „enrolled_password_handle“ verwiesen wird
  • provided_password: das Klartextpasswort, das mit dem enrolled_password_handle abgeglichen werden soll
  • provided_password_length: die Länge in Byte des Puffers, auf den von „provided_password“ verwiesen wird
  • auth_token: Bei Erfolg wird *auth_token ein Puffer mit dem Authentifizierungstoken zugewiesen, das aus dieser Überprüfung resultiert. Der Aufrufer ist dafür verantwortlich, diesen Speicher über einen delete[]-Aufruf wieder freizugeben.
  • auth_token_length: Bei Erfolg wird der Länge des Authentifizierungstokens in Byte, das *auth_token zugewiesen ist, *auth_token_length zugewiesen.
  • request_reenroll: Eine Anfrage an die höheren Schichten, das bestätigte Passwort aufgrund einer Versionsänderung noch einmal zu registrieren. Wird nicht festgelegt, wenn die Bestätigung fehlschlägt.

Rückgabe:

  • 0 bei Erfolg
  • Bei einem Fehler ein Fehlercode < 0 oder
  • Ein Zeitüberschreitungswert T > 0, wenn der Aufruf erst nach Ablauf von T Millisekunden wiederholt werden soll. Bei einem Fehler wird kein Autorisierungstoken zugewiesen.

Definition in Zeile 141 der Datei gatekeeper.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert: