Referência da estrutura gatekeeper_device
#include <
gatekeeper.h
>
Campos de dados |
|
hw_device_t | comum |
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) |
Descrição detalhada
Definição na linha 41 do arquivo gatekeeper.h .
Documentação do campo
hw_device_t comum |
Métodos comuns do dispositivo gatekeeper. Como acima, esse precisa ser o primeiro membro de keymaster_device.
Definição na linha 46 do arquivo gatekeeper.h .
int(* delete_all_users)(const struct gatekeeper_device *dev) |
Definição na linha 173 do arquivo gatekeeper.h .
int(* delete_user)(const struct gatekeeper_device *dev, uint32_t uid) |
Definição na linha 159 do arquivo 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) |
Registra desired_password, que precisa ser derivado de um PIN ou senha selecionado pelo usuário, com a chave privada do fator de autenticação usada apenas para registrar dados do fator de autenticação.
Se já houver uma senha registrada, ela precisa ser fornecida em current_password_handle, junto com a senha atual em current_password, que precisa ser validada em current_password_handle.
Parâmetros:
- dev: ponteiro para gatekeeper_device adquirido por chamadas para gatekeeper_open
- uid: o identificador do usuário do Android
- current_password_handle: o identificador de senha registrado que o usuário quer substituir. Pode ser nulo se não houver uma senha registrada no momento.
- current_password_handle_length: o comprimento em bytes do buffer apontado por current_password_handle. Precisa ser 0 se current_password_handle for NULL.
- current_password: a senha atual do usuário em texto simples. Se apresentado, ele PRECISA ser verificado com current_password_handle.
- current_password_length: o tamanho em bytes do buffer apontado por current_password. Deve ser 0 se a current_password for NULL.
- desired_password: a nova senha que o usuário quer registrar em texto simples. Não pode ser NULL.
- desired_password_length: o comprimento em bytes do buffer apontado por desired_password.
- enrolled_password_handle: em caso de sucesso, um buffer será alocado com o novo identificador de senha que faz referência à senha fornecida em desired_password. Esse buffer pode ser usado em chamadas subsequentes para inscrição ou verificação. O autor da chamada é responsável por desalocar esse buffer com uma chamada para delete[].
- enrolled_password_handle_length: ponteiro para o comprimento em bytes do buffer alocado por essa função e apontado por *enrolled_password_handle_length.
Returns:
- 0 em caso de sucesso
- Um código de erro < 0 em caso de falha ou
- Um valor de tempo limite T > 0 se a chamada não puder ser feita novamente até que T milissegundos tenham decorrido.
Em caso de erro, o enrolled_password_handle não será alocado.
Definição na linha 91 do arquivo 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) |
Verifica se provided_password corresponde a enrolled_password_handle.
As implementações desse módulo podem reter o resultado dessa chamada para atestar a recência da autenticação.
Em caso de sucesso, grava o endereço de um token de verificação em auth_token, que pode ser usado para atestar a verificação de senha para outros serviços confiáveis. Os clientes podem transmitir NULL para esse valor.
Parâmetros:
- dev: ponteiro para gatekeeper_device adquirido por chamadas para gatekeeper_open
- uid: o identificador do usuário do Android
- challenge: um desafio opcional para autenticação ou 0. É usado quando um autenticador separado solicita a verificação de senha ou para a autenticação de senha transacional.
- enrolled_password_handle: o identificador de senha registrado que o usuário quer verificar.
- enrolled_password_handle_length: o comprimento em bytes do buffer apontado por enrolled_password_handle
- provided_password: a senha em texto simples a ser verificada em relação a enrolled_password_handle
- provided_password_length: o comprimento em bytes do buffer apontado por provided_password
- auth_token: em caso de sucesso, um buffer contendo o token de autenticação resultante dessa verificação é atribuído a *auth_token. O autor da chamada é responsável por desalocar essa memória com uma chamada para delete[].
- auth_token_length: em caso de sucesso, o comprimento em bytes do token de autenticação atribuído a *auth_token será atribuído a *auth_token_length.
- request_reenroll: uma solicitação para as camadas superiores para reinscrição da senha verificada devido a uma mudança de versão. Não definido se a verificação falhar.
Returns:
- 0 em caso de sucesso
- Um código de erro < 0 em caso de falha ou
- Um valor de tempo limite T > 0 se a chamada não puder ser feita novamente até que T milissegundos tenham decorrido. Em caso de erro, o token de autenticação não será alocado.
Definição na linha 141 do arquivo gatekeeper.h .
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ gatekeeper.h