gatekeeper_device 구조체 참조

gatekeeper_device 구조체 참조

#include < gatekeeper.h >

데이터 필드

hw_device_t   일반적인
 
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)
 

상세 설명

gatekeeper.h 파일의 41 행에 정의가 있습니다.

필드 문서

게이트키퍼 기기의 일반적인 메서드입니다. 위와 같이 keymaster_device의 첫 번째 구성원이어야 합니다.

gatekeeper.h FILE의 46 라인에 정의가 있습니다.

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

gatekeeper.h 파일의 173 번 줄에 정의되어 있습니다.

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

gatekeeper.h FILE의 159 라인에 정의가 있습니다.

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)

사용자 선택 PIN 또는 비밀번호에서 파생되어야 하는 desired_password를 인증 요소 데이터 등록에만 사용되는 인증 요소 비공개 키로 등록합니다.

이미 비밀번호가 등록된 경우 current_password_handle에 current_password의 현재 비밀번호와 함께 제공해야 하며, 이 비밀번호는 current_password_handle에 대해 유효성을 검사해야 합니다.

매개변수:

  • dev: gatekeeper_open 호출을 통해 획득한 gatekeeper_device 포인터
  • uid: Android 사용자 식별자
  • current_password_handle: 사용자가 교체하려는 현재 등록된 비밀번호 핸들입니다. 현재 등록된 비밀번호가 없는 경우 null일 수 있습니다.
  • current_password_handle_length: current_password_handle이 가리키는 버퍼의 길이(바이트)입니다. current_password_handle이 NULL인 경우 0이어야 합니다.
  • current_password: 사용자의 현재 비밀번호(일반 텍스트)입니다. 제공된 경우 current_password_handle과 대조하여 확인해야 합니다(MUST).
  • current_password_length: current_password가 가리키는 버퍼의 크기(바이트)입니다. current_password가 NULL인 경우 0이어야 합니다.
  • desired_password: 사용자가 등록하려는 새 비밀번호(일반 텍스트)입니다. NULL이 될 수 없습니다.
  • desired_password_length: desired_password가 가리키는 버퍼의 길이(바이트)입니다.
  • enrolled_password_handle: 성공하면 desired_password에 제공된 비밀번호를 참조하는 새 비밀번호 핸들로 버퍼가 할당됩니다. 이 버퍼는 후속 호출에서 등록 또는 인증하는 데 사용할 수 있습니다. 호출자는 delete[] 호출을 통해 이 버퍼의 할당 해제를 담당합니다.
  • enrolled_password_handle_length: 이 함수에서 할당되고 *enrolled_password_handle_length에서 가리키는 버퍼의 길이(바이트)에 대한 포인터입니다.

반환:

  • 성공 시 0
  • 실패 시 오류 코드가 0보다 작거나
  • T밀리초가 지나기 전에는 호출을 다시 시도해서는 안 되는 경우 제한 시간 값 T > 0입니다.

오류가 발생하면 enrolled_password_handle이 할당되지 않습니다.

gatekeeper.h FILE의 91 라인에 정의가 있습니다.

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)

provided_password가 enrolled_password_handle과 일치하는지 확인합니다.

이 모듈의 구현은 인증의 최신성을 증명하기 위해 이 호출의 결과를 보관할 수 있습니다.

성공하면 다른 신뢰할 수 있는 서비스에 비밀번호 인증을 증명하는 데 사용할 수 있는 인증 토큰의 주소를 auth_token에 씁니다. 클라이언트는 이 값에 NULL을 전달할 수 있습니다.

매개변수:

  • dev: gatekeeper_open 호출을 통해 획득한 gatekeeper_device 포인터
  • uid: Android 사용자 식별자
  • challenge: 인증할 선택적 챌린지 또는 0입니다. 별도의 인증자가 비밀번호 인증을 요청할 때 또는 거래 비밀번호 인증에 사용됩니다.
  • enrolled_password_handle: 사용자가 확인하려는 현재 등록된 비밀번호 핸들입니다.
  • enrolled_password_handle_length: enrolled_password_handle이 가리키는 버퍼의 길이(바이트)입니다.
  • provided_password: enrolled_password_handle에 대해 확인할 일반 텍스트 비밀번호입니다.
  • provided_password_length: provided_password가 가리키는 버퍼의 길이(바이트)입니다.
  • auth_token: 성공하면 이 인증에서 발생한 인증 토큰이 포함된 버퍼가 *auth_token에 할당됩니다. 호출자는 delete[] 호출을 통해 이 메모리의 할당 해제를 담당합니다.
  • auth_token_length: 성공하면 *auth_token에 할당된 인증 토큰의 길이(바이트)가 *auth_token_length에 할당됩니다.
  • request_reenroll: 버전 변경으로 인해 인증된 비밀번호를 재등록하도록 상위 레이어에 요청합니다. 인증에 실패하면 설정되지 않습니다.

반환:

  • 성공 시 0
  • 실패 시 오류 코드가 0보다 작거나
  • T밀리초가 지나기 전에는 호출을 다시 시도해서는 안 되는 경우 제한 시간 값 T > 0입니다. 오류가 발생하면 인증 토큰이 할당되지 않습니다.

gatekeeper.h FILE의 141 라인에 정의가 있습니다.


이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.