ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง gatekeeper_device

ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง 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 .

เอกสารประกอบในสนาม

วิธีการทั่วไปของอุปกรณ์ 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 .


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้