Tham khảo cấu trúc Gatekeeper_device

Tham khảo cấu trúc Gatekeeper_device

#include < gatekeeper.h >

Trường dữ liệu

hw_device_t chung
int(* đăng ký )(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 Desire_password_length, uint8_t **enrolled_password_ xử lý, uint32_t *enrolled_password_handle_length)
int(* xác minh )(const struct Gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t đã đăng ký_password_handle_length, const uint8_t *provided_password, uint32_t cung cấp_password_length, uint8_t **auth_token, uint32_t *auth_token_length, bo ol *request_reenroll)
int(* delete_user )(const struct Gatekeeper_device *dev, uint32_t uid)
int(* delete_all_users )(const struct Gatekeeper_device *dev)

miêu tả cụ thể

Định nghĩa tại dòng 41 của file Gatekeeper.h .

Tài liệu hiện trường

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

Định nghĩa tại dòng 46 của file Gatekeeper.h .

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

Định nghĩa tại dòng 173 của file Gatekeeper.h .

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

Định nghĩa tại dòng 159 của file Gatekeeper.h .

int(* ghi danh)(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 mong muốn_password_length, uint8_t **enrolled_ pass_handle, uint32_t *enrolled_password_handle_length)

Đăng ký mong muốn_password, phải được lấy từ mã pin hoặc mật khẩu do người dùng chọn, với khóa riêng của yếu tố xác thực chỉ được sử dụng để đăng ký dữ liệu yếu tố xác thực.

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

Thông số:

  • dev: con trỏ tới Gatekeeper_device thu được thông qua lệnh gọi tới Gatekeeper_open
  • uid: mã định danh người dùng Android
  • current_password_handle: mật khẩu hiện đã đăng ký mà người dùng muốn thay thế. Có thể không có giá trị nếu hiện tại không có mật khẩu được đăng ký.
  • current_password_handle_length: độ dài tính bằng byte của bộ đệm được trỏ bởi current_password_handle. Phải bằng 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 túy. Nếu được trình bày, nó PHẢI xác minh dựa trên current_password_handle.
  • current_password_length: kích thước tính bằng byte của bộ đệm được trỏ bởi current_password. Phải bằng 0 nếu current_password là NULL.
  • mong muốn_password: mật khẩu mới mà người dùng muốn đăng ký ở dạng văn bản thuần túy. Không thể là NULL.
  • mong muốn_password_length: độ dài tính bằng byte của bộ đệm được trỏ bởi mong muốn_password.
  • đã đăng ký_password_handle: nếu thành công, bộ đệm sẽ được phân bổ với bộ xử lý mật khẩu mới tham chiếu đến mật khẩu được cung cấp trong Desire_password. Bộ đệm này có thể được sử dụng cho các cuộc gọi tiếp theo để đăng ký hoặc xác minh. Người gọi có trách nhiệm giải phóng bộ đệm này thông qua lệnh gọi tới delete[]
  • đã đăng ký_password_handle_length: con trỏ tới độ dài tính bằng byte của bộ đệm được phân bổ bởi hàm này và được trỏ tới bởi *enrolled_password_handle_length.

Trả về:

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

Nếu có lỗi, đã đăng ký_password_handle sẽ không được phân bổ.

Định nghĩa tại dòng 91 của file Gatekeeper.h .

int(* verify)(const struct Gatekeeper_device *dev, uint32_t uid, uint64_t challenge, const uint8_t *enrolled_password_handle, uint32_t đã đăng ký_password_handle_length, const uint8_t *provided_password, uint32_t được cung cấp_password_length, uint8_t **auth_token, uint32_t *auth_token_ độ dài, bool *request_reenroll)

Xác minh thông tin được cung cấp có khớp với mật khẩu đã đăng ký_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 lần xác thực gần đây nhất.

Khi thành công, hãy ghi địa chỉ của mã thông báo xác minh vào auth_token, có thể sử dụng để xác thực xác minh mật khẩu cho các dịch vụ đáng tin cậy khác. Khách hàng có thể chuyển NULL cho giá trị này.

Thông số:

  • dev: con trỏ tới Gatekeeper_device thu được thông qua lệnh gọi tới Gatekeeper_open
  • uid: mã định danh người dùng Android
  • thách thức: Một thử thách tùy chọn để xác thực, hoặc 0. Được sử dụng khi một người xác thực riêng biệt yêu cầu xác minh mật khẩu hoặc để xác thực mật khẩu giao dịch.
  • đã đăng ký_password_handle: xử lý mật khẩu hiện đã đăng ký mà người dùng muốn xác minh.
  • đã đăng ký_password_handle_length: độ dài tính bằng byte của bộ đệm được chỉ định bởi đã đăng ký_password_handle
  • cung cấp_password: mật khẩu văn bản gốc cần được xác minh dựa vào đã đăng ký_password_handle
  • được cung cấp_password_length: độ dài tính bằng byte của bộ đệm được trỏ đến bởi Provide_password
  • auth_token: nếu thành công, bộ đệm chứa mã thông báo xác thực có được từ quá trình xác minh này sẽ được gán cho *auth_token. Người gọi có trách nhiệm giải phóng bộ nhớ này thông qua lệnh gọi delete[]
  • auth_token_length: nếu thành công, độ 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 xác minh không thành công.

Trả về:

  • 0 khi thành công
  • Mã lỗi < 0 do lỗi hoặc
  • Giá trị hết thời gian chờ T > 0 nếu cuộc gọi không được thử lại cho đến khi T mili giây trôi qua. Nếu có 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 file Gatekeeper.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau:
  • phần cứng/libhardware/bao gồm/phần cứng/ gatekeeper.h