Tài liệu tham khảo về Cấu trúc gatekeeper_device

Tài liệu tham khảo về Cấu trúc gatekeeper_device

#include < gatekeeper.h >

Trường dữ liệu

hw_device_t   common
 
int(*  Enrollment (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)
 

Nội dung mô tả chi tiết

Định nghĩa tại dòng 41 của tệp gatekeeper.h .

Tài liệu về trường

Các phương thức phổ biến của thiết bị cổng. Như trên, đây phải là thành phần đầu tiên của keymaster_device.

Định nghĩa tại dòng 46 của tệp gatekeeper.h .

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

Định nghĩa tại dòng 173 của tệp gatekeeper.h .

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

Định nghĩa tại dòng 159 của tệp 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)

Đăng ký desired_password, được lấy từ mã PIN hoặc mật khẩu do người dùng chọn, bằng khoá riêng tư của yếu tố xác thực chỉ dùng để đăng ký dữ liệu yếu tố xác thực.

Nếu đã có mật khẩu được đăng ký, thì bạn phải cung cấp mật khẩu đó trong current_password_handle, cùng với mật khẩu hiện tại trong current_password. Mật khẩu này phải được xác thực bằng current_password_handle.

Tham số:

  • dev: con trỏ đến gatekeeper_device thu được thông qua các lệnh gọi đến gatekeeper_open
  • uid: giá trị nhận dạng người dùng Android
  • current_password_handle: tên người dùng đăng ký mật khẩu hiện tại mà người dùng muốn thay thế. Có thể rỗng nếu hiện không có mật khẩu nào được đăng ký.
  • current_password_handle_length: độ dài tính bằng byte của vùng đệm được current_password_handle trỏ đến. Phải là 0 nếu current_password_handle là NULL.
  • current_password: mật khẩu hiện tại của người dùng ở dạng văn bản thuần tuý. Nếu được cung cấp, giá trị này PHẢI xác minh với current_password_handle.
  • current_password_length: kích thước tính bằng byte của vùng đệm được current_password trỏ đến. Phải là 0 nếu current_password là NULL.
  • desired_password: mật khẩu mới mà người dùng muốn đăng ký ở dạng văn bản thuần tuý. Không được là NULL.
  • desired_password_length: độ dài tính bằng byte của vùng đệm được trỏ đến bởi desired_password.
  • enrolled_password_handle: khi thành công, một vùng đệm sẽ được phân bổ với tên người dùng mới tham chiếu đến mật khẩu được cung cấp trong desired_password. Bạn có thể sử dụng vùng đệm này trong các lệnh gọi tiếp theo để đăng ký hoặc xác minh. Phương thức gọi chịu trách nhiệm giải phóng vùng đệm này thông qua lệnh gọi delete[]
  • enrolled_password_handle_length: con trỏ đến độ dài tính bằng byte của vùng đệm do hàm này phân bổ và được trỏ đến bằng *enrolled_password_handle_length.

Trả về:

  • 0 khi thành công
  • Mã lỗi < 0 khi không thành công hoặc
  • Giá trị thời gian chờ T > 0 nếu không nên thử lại lệnh gọi cho đến khi T mili giây trôi qua.

Khi xảy ra lỗi, enrolled_password_handle sẽ không được phân bổ.

Định nghĩa tại dòng 91 của tệp 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)

Xác minh provided_password khớp với enrolled_password_handle.

Việc triển khai mô-đun này có thể giữ lại kết quả của lệnh gọi này để chứng thực thời gian gần đây của quá trình xác thực.

Khi thành công, hãy ghi địa chỉ của mã xác minh vào auth_token, có thể dùng để chứng thực quy trình xác minh mật khẩu cho các dịch vụ đáng tin cậy khác. Ứng dụng có thể truyền giá trị NULL cho giá trị này.

Tham số:

  • dev: con trỏ đến gatekeeper_device thu được thông qua các lệnh gọi đến gatekeeper_open
  • uid: giá trị nhận dạng người dùng Android
  • challenge: Một thử thách không bắt buộc để xác thực hoặc 0. Dùng khi một trình xác thực riêng yêu cầu xác minh mật khẩu hoặc để xác thực mật khẩu giao dịch.
  • enrolled_password_handle: tên người dùng đăng ký mật khẩu mà người dùng muốn xác minh.
  • enrolled_password_handle_length: độ dài tính bằng byte của vùng đệm được enrolled_password_handle trỏ đến
  • provided_password: mật khẩu văn bản thuần tuý cần được xác minh dựa trên enrolled_password_handle
  • provided_password_length: độ dài tính bằng byte của vùng đệm được provided_password trỏ đến
  • auth_token: khi xác minh thành công, một vùng đệm chứa mã thông báo xác thực thu được từ quá trình xác minh này sẽ được chỉ định cho *auth_token. Phương thức gọi chịu trách nhiệm phân bổ lại bộ nhớ này thông qua lệnh gọi delete[]
  • auth_token_length: nếu thành công, chiều dài tính bằng byte của mã thông báo xác thực được gán cho *auth_token sẽ được gán cho *auth_token_length
  • request_reenroll: yêu cầu các lớp trên đăng ký lại mật khẩu đã xác minh do thay đổi phiên bản. Không được đặt nếu không xác minh được.

Trả về:

  • 0 khi thành công
  • Mã lỗi < 0 khi không thành công hoặc
  • Giá trị thời gian chờ T > 0 nếu không nên thử lại lệnh gọi cho đến khi T mili giây trôi qua. Khi xảy ra lỗi, mã thông báo xác thực sẽ không được phân bổ

Định nghĩa tại dòng 141 của tệp gatekeeper.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau: