Tham chiếu cấu trúc keymaster0_device

Tham chiếu cấu trúc keymaster0_device

#include < keymaster0.h >

Trường dữ liệu

cấu trúc hw_device_t chung
uint32_t client_version
uint32_t cờ
trống * bối cảnh
int(* generate_keypair )(const struct keymaster0_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)
int(* import_keypair )(const struct keymaster0_device *dev, const uint8_t *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length)
int(* get_keypair_public )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length)
int(* delete_keypair )(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
int(* delete_all )(const struct keymaster0_device *dev)
int(* sign_data )(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)
int(* verify_data )(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *signed_data, const size_t signature_data_length, const uint8_t *signature, const size_t signature_length)

miêu tả cụ thể

Định nghĩa thiết bị Keymaster0.

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

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

uint32_t client_version

ĐIỀU NÀY KHÔNG ĐƯỢC DÙNG NỮA. Thay vào đó, hãy sử dụng các trường "module_api_version" và "hal_api_version" mới trong quá trình khởi tạo keymaster_module.

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

cấu trúc hw_device_t chung

Các phương pháp phổ biến của thiết bị keymaster. Đây phải là thành viên đầu tiên của keymaster0_device vì người dùng cấu trúc này sẽ chuyển một con trỏ hw_device_t tới keymaster0_device trong các bối cảnh đã biết hw_device_t tham chiếu đến keymaster0_device .

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

bối cảnh trống*

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

int(* delete_all)(const struct keymaster0_device *dev)

Xóa tất cả các khóa trong kho khóa phần cứng. Được sử dụng khi kho khóa được đặt lại hoàn toàn.

Chức năng này là tùy chọn và phải được đặt thành NULL nếu nó không được triển khai.

Trả về 0 nếu thành công hoặc mã lỗi nhỏ hơn 0.

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

int(* delete_keypair)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)

Xóa cặp khóa được liên kết với blob khóa.

Chức năng này là tùy chọn và phải được đặt thành NULL nếu nó không được triển khai.

Trả về 0 nếu thành công hoặc mã lỗi nhỏ hơn 0.

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

cờ uint32_t

Xem các cờ được xác định cho keymaster0_device::flags trong keymaster_common.h

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

int(* generate_keypair)(const struct keymaster0_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)

Tạo khóa công khai và khóa riêng. Key-blob được trả về không rõ ràng và sau đó phải được cung cấp để ký và xác minh.

Trả về: 0 nếu thành công hoặc mã lỗi nhỏ hơn 0.

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

int(* get_keypair_public)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length, uint8_t **x509_data, size_t *x509_data_length)

Lấy phần khóa công khai của cặp khóa. Khóa chung phải ở dạng mảng byte được mã hóa ở định dạng X.509 (tiêu chuẩn Java).

Trả về: 0 nếu thành công hoặc mã lỗi nhỏ hơn 0. Nếu có lỗi, x509_data sẽ không được phân bổ.

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

int(* import_keypair)(const struct keymaster0_device *dev, const uint8_t *key, const size_t key_length, uint8_t **key_blob, size_t *key_blob_length)

Nhập cặp khóa công khai và khóa riêng. Các khóa đã nhập sẽ ở định dạng PKCS#8 với mã hóa DER (tiêu chuẩn Java). Key-blob được trả về không rõ ràng và sau đó sẽ được cung cấp để ký và xác minh.

Trả về: 0 nếu thành công hoặc mã lỗi nhỏ hơn 0.

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

int(* sign_data)(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *data, const size_t data_length, uint8_t **signed_data, size_t *signed_data_length)

Ký hiệu dữ liệu bằng cách sử dụng key-blob được tạo trước đó. Điều này có thể sử dụng khóa bất đối xứng hoặc khóa bí mật.

Trả về: 0 nếu thành công hoặc mã lỗi nhỏ hơn 0.

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

int(* verify_data)(const struct keymaster0_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *signed_data, const size_t signature_data_length, const uint8_t *signature, const size_t signature_length)

Xác minh dữ liệu được ký bằng key-blob. Điều này có thể sử dụng khóa bất đối xứng hoặc khóa bí mật.

Trả về: 0 khi xác minh thành công hoặc mã lỗi nhỏ hơn 0.

Định nghĩa tại dòng 122 của file keymaster0.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/ keymaster0.h