keymaster0_device 結構體參考資料
#include <
keymaster0.h
>
資料欄位 |
|
struct hw_device_t | 通用 |
uint32_t | client_version |
uint32_t | flags |
void * | context |
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 signed_data_length, const uint8_t *signature, const size_t signature_length) |
詳細說明
Keymaster0 裝置定義。
定義位於檔案 keymaster0.h 的第 27 行。
欄位說明文件
uint32_t client_version |
已淘汰。請改為在 keymaster_module 初始化中使用新的「module_api_version」和「hal_api_version」欄位。
定義位於檔案 keymaster0.h 的 40 行。
struct hw_device_t common |
主控裝置的常用方法。這個 必須是 keymaster0_device 的首位成員,因為這個結構體的使用者會在已知 hw_device_t 參照 keymaster0_device 的情況下,將 hw_device_t 指派給 keymaster0_device 指標。
定義位於檔案 keymaster0.h 的 34 行。
void* context |
定義位於檔案 keymaster0.h 的 47 行。
int(* delete_all)(const struct keymaster0_device *dev) |
刪除硬體 KeyStore 中的所有金鑰。當 KeyStore 完全重設時使用。
這個函式為選用,如果未實作,應設為 NULL。
成功時會傳回 0,失敗時會傳回小於 0 的錯誤代碼。
定義位於檔案 keymaster0.h 的 102 行。
int(* delete_keypair)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length) |
uint32_t 旗標 |
請參閱 keymaster_common.h 中為 keymaster0_device::flags 定義的標記。
定義位於檔案 keymaster0.h 的 45 行。
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(* 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) |
取得金鑰組的公開金鑰部分。公開金鑰必須採用 X.509 格式 (Java 標準) 編碼的位元組陣列。
傳回值:成功時為 0,錯誤代碼小於 0。發生錯誤時,請勿分配 x509_data。
定義位於檔案 keymaster0.h 的 78 行。
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) |
匯入公開和私密金鑰組。匯入的金鑰會採用 PKCS#8 格式,並使用 DER 編碼 (Java 標準)。傳回的金鑰資料塊是不可見的,之後會提供給簽署和驗證程序使用。
傳回值:成功時為 0,錯誤代碼小於 0。
定義位於檔案 keymaster0.h 的 67 行。
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 signed_data_length, const uint8_t *signature, const size_t signature_length) |
這個結構體的說明文件是由下列檔案產生:
- hardware/libhardware/include/hardware/ keymaster0.h