Referência da estrutura gatekeeper_device

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

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: