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
hw_device_t common |
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:
- hardware/libhardware/include/hardware/ gatekeeper.h