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 행에 정의가 있습니다.
필드 문서
hw_device_t 공통 |
게이트키퍼 기기의 일반적인 메서드입니다. 위와 같이 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 라인에 정의가 있습니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ gatekeeper.h