การอ้างอิงโครงสร้าง gatekeeper_device
#include < gatekeeper.h >
เขตข้อมูล | |
hw_device_t | ทั่วไป |
อินท์(* | ลงทะเบียน ) (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 ที่ต้องการ_รหัสผ่าน_ความยาว, uint 8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length) |
อินท์(* | ตรวจสอบ ) (const struct gatekeeper_device *dev, uint32_t uid, uint64_t ท้าทาย, const uint8_t *enrolled_password_handle, uint32_t ลงทะเบียน_รหัสผ่าน_handle_length, const uint8_t *provided_password, uint32_t ให้_รหัสผ่าน_ความยาว, uint8_t **auth_token, uint32_ t *auth_token_length, bool *request_reenroll) |
อินท์(* | Delete_user )(const struct gatekeeper_device *dev, uint32_t uid) |
อินท์(* | ลบ_all_users )(const struct gatekeeper_device *dev) |
คำอธิบายโดยละเอียด
คำจำกัดความที่บรรทัดที่ 41 ของไฟล์ gatekeeper.h
เอกสารภาคสนาม
hw_device_t ทั่วไป |
วิธีการทั่วไปของอุปกรณ์เฝ้าประตู ดังที่กล่าวข้างต้น นี่จะต้องเป็นสมาชิกคนแรกของ 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(* ลงทะเบียน)(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 ที่ต้องการ_รหัสผ่าน_ความยาว, uint8_t **enrolled_password_handle, uint32_t *enrolled_password_handle_length) |
ลงทะเบียนที่ต้องการ_รหัสผ่าน ซึ่งควรได้มาจากพินหรือรหัสผ่านที่ผู้ใช้เลือก โดยมีคีย์ส่วนตัวของปัจจัยการตรวจสอบสิทธิ์ใช้สำหรับการลงทะเบียนข้อมูลปัจจัยการตรวจสอบสิทธิ์เท่านั้น
หากมีการลงทะเบียนรหัสผ่านอยู่แล้ว ควรระบุรหัสผ่านปัจจุบันใน current_password_handle ร่วมกับรหัสผ่านปัจจุบันใน current_password ที่ควรตรวจสอบกับ current_password_handle
พารามิเตอร์:
- dev: ตัวชี้ไปที่ gatekeeper_device ที่ได้รับผ่านการเรียกไปยัง gatekeeper_open
- uid: ตัวระบุผู้ใช้ Android
- current_password_handle: รหัสผ่านที่ลงทะเบียนในปัจจุบันที่ผู้ใช้ต้องการแทนที่ อาจเป็นโมฆะหากไม่มีรหัสผ่านที่ลงทะเบียนในปัจจุบัน
- 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
- Wish_password: รหัสผ่านใหม่ที่ผู้ใช้ต้องการลงทะเบียนเป็นข้อความธรรมดา ไม่สามารถเป็นโมฆะได้
- Wish_password_length: ความยาวเป็นไบต์ของบัฟเฟอร์ที่ชี้ไปที่ Wish_password
- registered_password_handle: เมื่อสำเร็จ บัฟเฟอร์จะถูกจัดสรรด้วยตัวจัดการรหัสผ่านใหม่ซึ่งอ้างอิงรหัสผ่านที่ให้ไว้ในdesired_password บัฟเฟอร์นี้สามารถใช้กับการโทรครั้งต่อไปเพื่อลงทะเบียนหรือตรวจสอบ ผู้เรียกมีหน้าที่รับผิดชอบในการจัดสรรบัฟเฟอร์นี้ใหม่ผ่านการเรียกเพื่อลบ[]
- registered_password_handle_length: ตัวชี้ไปที่ความยาวเป็นไบต์ของบัฟเฟอร์ที่จัดสรรโดยฟังก์ชันนี้ และชี้ไปที่ *enrolled_password_handle_length
ผลตอบแทน:
- 0 ในความสำเร็จ
- รหัสข้อผิดพลาด < 0 เมื่อเกิดความล้มเหลว หรือ
- ค่าหมดเวลา T > 0 หากไม่ควรพยายามโทรซ้ำจนกว่าจะผ่านไป T มิลลิวินาที
เมื่อเกิดข้อผิดพลาด registered_password_handle จะไม่ได้รับการจัดสรร
คำจำกัดความที่บรรทัดที่ 91 ของไฟล์ gatekeeper.h
int (* ตรวจสอบ) (const struct gatekeeper_device * dev, uint32_t uid, ความท้าทาย uint64_t, const uint8_t * enrolled_password_handle, uint32_t ลงทะเบียน_รหัสผ่าน_handle_length, const uint8_t * ให้_รหัสผ่าน, uint32_t ให้_รหัสผ่าน_ความยาว, uint8_t **auth_token, uint 32_t *auth_token_length, bool *request_reenroll) |
ตรวจสอบให้_รหัสผ่านตรงกับ register_password_handle
การใช้งานโมดูลนี้อาจเก็บผลลัพธ์ของการเรียกนี้ไว้เพื่อยืนยันความใหม่ของการรับรองความถูกต้อง
เมื่อสำเร็จ ให้เขียนที่อยู่ของโทเค็นการยืนยันไปที่ auth_token ซึ่งสามารถใช้เพื่อยืนยันการยืนยันรหัสผ่านไปยังบริการอื่นๆ ที่เชื่อถือได้ ลูกค้าอาจผ่านค่า NULL สำหรับค่านี้
พารามิเตอร์:
- dev: ตัวชี้ไปที่ gatekeeper_device ที่ได้รับผ่านการเรียกไปยัง gatekeeper_open
- uid: ตัวระบุผู้ใช้ Android
- ความท้าทาย: ความท้าทายทางเลือกในการตรวจสอบสิทธิ์หรือ 0 ใช้เมื่อผู้ตรวจสอบสิทธิ์แยกต่างหากร้องขอการตรวจสอบรหัสผ่าน หรือสำหรับการตรวจสอบรหัสผ่านของธุรกรรม
- registered_password_handle: ตัวจัดการรหัสผ่านที่ลงทะเบียนในปัจจุบันที่ผู้ใช้ต้องการตรวจสอบ
- registered_password_handle_length: ความยาวเป็นไบต์ของบัฟเฟอร์ที่ชี้โดย registered_password_handle
- ให้_รหัสผ่าน: รหัสผ่านข้อความธรรมดาที่จะตรวจสอบกับ registered_password_handle
- Provide_password_length: ความยาวเป็นไบต์ของบัฟเฟอร์ที่ชี้โดยให้_รหัสผ่าน
- auth_token: เมื่อสำเร็จ บัฟเฟอร์ที่มีโทเค็นการรับรองความถูกต้องอันเป็นผลมาจากการตรวจสอบนี้จะถูกกำหนดให้กับ *auth_token ผู้โทรมีหน้าที่รับผิดชอบในการจัดสรรหน่วยความจำนี้ใหม่ผ่านการโทรเพื่อลบ[]
- auth_token_length: เมื่อสำเร็จ ความยาวเป็นไบต์ของโทเค็นการตรวจสอบสิทธิ์ที่กำหนดให้กับ *auth_token จะถูกกำหนดให้กับ *auth_token_length
- request_reenroll: คำขอไปยังเลเยอร์ด้านบนเพื่อลงทะเบียนรหัสผ่านที่ตรวจสอบแล้วอีกครั้งเนื่องจากการเปลี่ยนแปลงเวอร์ชัน ไม่ได้ตั้งค่าหากการยืนยันล้มเหลว
ผลตอบแทน:
- 0 ในความสำเร็จ
- รหัสข้อผิดพลาด < 0 เมื่อเกิดความล้มเหลว หรือ
- ค่าหมดเวลา T > 0 หากไม่ควรพยายามโทรซ้ำจนกว่าจะผ่านไป T มิลลิวินาที เมื่อเกิดข้อผิดพลาด โทเค็นการตรวจสอบสิทธิ์จะไม่ได้รับการจัดสรร
คำจำกัดความที่บรรทัด 141 ของไฟล์ gatekeeper.h
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
- ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / gatekeeper.h