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

struct hw_device_t chung
uint32_t client_version
uint32_t cờ
void * 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 phím *, 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 * dữ liệu, 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 signed_data_length, const uint8_t * chữ ký, const size_t signature_length)

miêu tả cụ thể

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

Định nghĩa ở dòng 27 của tệp keymaster0.h .

Tài liệu thực địa

uint32_t client_version

ĐIỀU NÀY KHÔNG ĐƯỢC ĐIỀU CHỈNH. Thay vào đó, hãy sử dụng các trường "module_api_version" và "hal_api_version" trong phần khởi tạo keymaster_module.

Định nghĩa ở dòng 40 của tệp keymaster0.h .

struct hw_device_t common

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 như người sử dụng cấu trúc này sẽ đúc một hw_device_t để keymaster0_device con trỏ trong những bối cảnh mà nó được biết đến các hw_device_t tài liệu tham khảo một keymaster0_device .

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

void * ngữ cảnh

Định nghĩa tại dòng 47 của tệp 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à nên được đặt thành NULL nếu nó không được triển khai.

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

Định nghĩa tại dòng 102 của tệp 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 đốm màu chính.

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 khi thành công hoặc mã lỗi nhỏ hơn 0.

Định nghĩa ở dòng 90 của tệp keymaster0.h .

cờ uint32_t

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

Định nghĩa ở dòng 45 của tệp 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 tư. Key-blob trả về là không rõ ràng và sau đó phải được cung cấp để ký và xác minh.

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

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

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

Trả về: 0 khi thành công hoặc mã lỗi nhỏ hơn 0. Khi lỗi, không nên cấp phát dữ liệu x509_data.

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

int (* import_keypair) (const struct keymaster0_device * dev, const uint8_t phím *, const size_t key_length, uint8_t ** key_blob, size_t * key_blob_length)

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

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

Định nghĩa tại dòng 67 của tệp 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 * dữ liệu, const size_t data_length, uint8_t ** signed_data, size_t * signed_data_length)

Đánh dấu dữ liệu bằ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 khi thành công hoặc mã lỗi nhỏ hơn 0.

Định nghĩa tại dòng 110 của tệp 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 signed_data_length, const uint8_t * chữ ký, 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 tệp 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