keymaster0_device 结构体参考文档
#include <
keymaster0.h
>
数据字段 |
|
struct hw_device_t | 常见 |
uint32_t | client_version |
uint32_t | 标志 |
void * | 上下文 |
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 |
Keymaster 设备的常用方法。此 必须 是 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) |
删除硬件密钥库中的所有密钥。在完全重置密钥库时使用。
此函数为可选函数,如果未实现,应将其设置为 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) |
生成公钥和私钥。返回的密钥 blob 是不可透的,必须在稍后提供以进行签名和验证。
返回值:如果成功,则返回 0;否则返回小于 0 的错误代码。
定义位于文件 keymaster0.h 的 55 行。
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 标准)。返回的密钥 Blob 是不可见的,并会在稍后提供以进行签名和验证。
返回值:如果成功,则返回 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) |
使用之前生成的密钥 blob 对数据进行签名。这可以使用非对称密钥或 Secret 密钥。
返回值:如果成功,则返回 0;否则返回小于 0 的错误代码。
定义位于文件 keymaster0.h 的第 110 行。
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