Opis struktury gatekeeper_device

Opis struktury gatekeeper_device

#include < gatekeeper.h >

Pola danych

hw_device_t   wspólne
 
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)
 

Szczegółowy opis

Definicja w wierszu 41 pliku gatekeeper.h .

Dokumentacja pola

Typowe metody stosowane przez urządzenie bramkowe. Jak wspomniano powyżej, musi to być pierwszy element klucza keymaster_device.

Definicja w wierszu 46 pliku gatekeeper.h .

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

Definicja w wierszu 173 pliku gatekeeper.h .

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

Definicja w wierszu 159 pliku 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)

Rejestruje desired_password, które powinno być utworzone na podstawie wybranego przez użytkownika kodu PIN lub hasła, z kluczem prywatnym czynnika uwierzytelniania używanym tylko do rejestrowania danych czynnika uwierzytelniania.

Jeśli hasło zostało już zarejestrowane, należy je podać w polu current_password_handle wraz z bieżącym hasłem w polu current_password, które powinno być zgodne z polem current_password_handle.

Parametry:

  • dev: wskaźnik do gatekeeper_device uzyskany przez wywołania do gatekeeper_open
  • uid: identyfikator użytkownika Androida
  • current_password_handle: identyfikator bieżącego zalogowanego hasła, które użytkownik chce zastąpić. Może być puste, jeśli nie ma obecnie zarejestrowanego hasła.
  • current_password_handle_length: długość w bajtach bufora wskazywanego przez current_password_handle. Musi być równe 0, jeśli current_password_handle ma wartość NULL.
  • current_password: bieżące hasło użytkownika w postaci zwykłego tekstu. Jeśli jest podany, MUSI być zgodny z current_password_handle.
  • current_password_length: rozmiar w bajtach bufora wskazywanego przez current_password. Musi być równe 0, jeśli current_password ma wartość NULL.
  • desired_password: nowe hasło, które użytkownik chce zarejestrować w postaci zwykłego tekstu. Nie może zawierać wartości NULL.
  • desired_password_length: długość bufora wskazywanego przez desired_password (w bajtach).
  • enrolled_password_handle: w przypadku powodzenia zostanie przydzielony bufor z nowym identyfikatorem hasła odwołującym się do hasła podanego w parametrze desired_password. Ten bufor może być używany w kolejnych wywołaniach do rejestracji lub weryfikacji. Użytkownik wywołujący jest odpowiedzialny za zwolnienie tego bufora za pomocą wywołania delete[].
  • enrolled_password_handle_length: wskaźnik do długości w bajtach bufora przydzielonego przez tę funkcję i wskazywanego przez *enrolled_password_handle_length.

Zwroty:

  • 0 w przypadku powodzenia
  • Kod błędu < 0 w przypadku błędu lub
  • wartość limitu czasu T > 0, jeśli ponowna próba wywołania nie powinna zostać podjęta przed upływem T milisekund.

W przypadku błędu nie zostanie przypisany identyfikator enrolled_password_handle.

Definicja w wierszu 91 pliku 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)

Weryfikuje, czy hasło podane w parametrze provided_password jest zgodne z parametrem enrolled_password_handle.

Implementacje tego modułu mogą zachować wynik tego wywołania, aby potwierdzić, że uwierzytelnianie było niedawno.

W przypadku powodzenia do auth_token zapisywany jest adres tokena weryfikacyjnego, który można wykorzystać do potwierdzenia weryfikacji hasła w innych zaufanych usługach. Klienci mogą podać wartość NULL.

Parametry:

  • dev: wskaźnik do gatekeeper_device uzyskany przez wywołania do gatekeeper_open
  • uid: identyfikator użytkownika Androida
  • challenge: opcjonalny test zabezpieczający logowanie lub wartość 0. Używany, gdy osobny uwierzytelniacz prosi o weryfikację hasła lub do uwierzytelniania hasłem w ramach transakcji.
  • enrolled_password_handle: obecnie zarejestrowany identyfikator hasła, który użytkownik chce zweryfikować.
  • enrolled_password_handle_length: długość w bajtach bufora wskazywanego przez enrolled_password_handle
  • provided_password: hasło w postaci zwykłego tekstu, które ma zostać zweryfikowane na podstawie wartości enrolled_password_handle
  • provided_password_length: długość w bajtach bufora wskazywanego przez provided_password
  • auth_token: w przypadku powodzenia do zmiennej *auth_token przypisany jest bufor zawierający token uwierzytelniania uzyskany w ramach tej weryfikacji. Rozmówca jest odpowiedzialny za zwolnienie tej pamięci za pomocą wywołania delete[].
  • auth_token_length: w przypadku powodzenia długość w bajtach tokenu uwierzytelniania przypisanego do *auth_token zostanie przypisana do *auth_token_length.
  • request_reenroll: żądanie wysyłane do warstw wyższych w celu ponownego zarejestrowania zweryfikowanego hasła z powodu zmiany wersji. Nie ustawiana, jeśli weryfikacja się nie powiedzie.

Zwroty:

  • 0 w przypadku powodzenia
  • Kod błędu < 0 w przypadku błędu lub
  • wartość limitu czasu T > 0, jeśli ponowna próba wywołania nie powinna zostać podjęta przed upływem T milisekund. W przypadku błędu token uwierzytelniania nie zostanie przypisany.

Definicja w wierszu 141 pliku gatekeeper.h .


Dokumentacja tego typu danych została wygenerowana z tego pliku: