ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง gatekeeper_device
#include <
gatekeeper.h
>
ฟิลด์ข้อมูล |
|
hw_device_t | common |
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) |
คำอธิบายโดยละเอียด
คําจํากัดความที่บรรทัด 41 ของไฟล์ gatekeeper.h .
เอกสารประกอบในสนาม
hw_device_t common |
วิธีการทั่วไปของอุปกรณ์ Gatekeeper ดังที่กล่าวไว้ข้างต้น รายการนี้ต้องเป็นสมาชิกแรกของ keymaster_device
คําจํากัดความที่บรรทัด 46 ของไฟล์ gatekeeper.h .
int(* delete_all_users)(const struct gatekeeper_device *dev) |
คําจํากัดความที่บรรทัด 173 ของไฟล์ gatekeeper.h .
int(* delete_user)(const struct gatekeeper_device *dev, uint32_t uid) |
คําจํากัดความที่บรรทัด 159 ของไฟล์ 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) |
ลงทะเบียน desired_password ซึ่งควรมาจาก PIN หรือรหัสผ่านที่ผู้ใช้เลือก โดยใช้คีย์ส่วนตัวของปัจจัยการตรวจสอบสิทธิ์ที่ใช้สำหรับการลงทะเบียนข้อมูลปัจจัยการตรวจสอบสิทธิ์เท่านั้น
หากมีการลงทะเบียนรหัสผ่านไว้แล้ว ให้ระบุรหัสผ่านนั้นใน current_password_handle พร้อมกับรหัสผ่านปัจจุบันใน current_password ซึ่งควรตรวจสอบกับ current_password_handle
พารามิเตอร์
- dev: ตัวชี้ไปที่ gatekeeper_device ได้รับผ่านคําเรียก gatekeeper_open
- uid: ตัวระบุผู้ใช้ Android
- current_password_handle: แฮนเดิลรหัสผ่านที่ลงทะเบียนอยู่ในปัจจุบันซึ่งผู้ใช้ต้องการแทนที่ อาจมีค่าเป็น Null หากไม่มีรหัสผ่านที่ลงทะเบียนอยู่ในขณะนี้
- current_password_handle_length: ความยาวเป็นไบต์ของบัฟเฟอร์ที่ current_password_handle ชี้ถึง ต้องเท่ากับ 0 หาก current_password_handle เป็น NULL
- current_password: รหัสผ่านปัจจุบันของผู้ใช้ในรูปแบบข้อความธรรมดา หากมี จะต้องยืนยันกับ current_password_handle
- current_password_length: ขนาดในหน่วยไบต์ของบัฟเฟอร์ที่ current_password ชี้ถึง ต้องเท่ากับ 0 หาก current_password เป็น NULL
- 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 > 0 หากไม่ควรลองโทรอีกครั้งจนกว่าจะผ่านไป 1 T มิลลิวินาที
หากเกิดข้อผิดพลาด ระบบจะไม่จัดสรร enrolled_password_handle
คําจํากัดความที่บรรทัด 91 ของไฟล์ 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) |
ยืนยันว่า provided_password ตรงกับ enrolled_password_handle
การติดตั้งใช้งานโมดูลนี้อาจเก็บผลลัพธ์ของการเรียกใช้นี้ไว้เพื่อรับรองความใหม่ของการตรวจสอบสิทธิ์
หากสำเร็จ ระบบจะเขียนที่อยู่ของโทเค็นการยืนยันไปยัง auth_token ซึ่งสามารถใช้เพื่อรับรองการยืนยันรหัสผ่านกับบริการอื่นๆ ที่เชื่อถือได้ ไคลเอ็นต์อาจส่งค่า NULL สำหรับค่านี้
พารามิเตอร์
- dev: ตัวชี้ไปที่ gatekeeper_device ได้รับผ่านคําเรียก gatekeeper_open
- 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_length
- request_reenroll: คำขอไปยังเลเยอร์บนเพื่อลงทะเบียนรหัสผ่านที่ยืนยันแล้วอีกครั้งเนื่องจากมีการเปลี่ยนแปลงเวอร์ชัน ไม่ได้ตั้งค่าหากการยืนยันไม่สำเร็จ
ส่งคืน:
- 0 เมื่อสำเร็จ
- รหัสข้อผิดพลาด < 0 เมื่อดำเนินการไม่สำเร็จ หรือ
- ค่าหมดเวลา T > 0 หากไม่ควรลองโทรอีกครั้งจนกว่าจะผ่านไป 1 T มิลลิวินาที ระบบจะไม่จัดสรรโทเค็นการตรวจสอบสิทธิ์หากเกิดข้อผิดพลาด
คําจํากัดความที่บรรทัด 141 ของไฟล์ gatekeeper.h .
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
- hardware/libhardware/include/hardware/ gatekeeper.h