keymaster0_device 结构体参考文档

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)

删除与密钥 blob 关联的密钥对。

此函数为可选函数,如果未实现,应将其设置为 NULL。

成功时返回 0,否则返回小于 0 的错误代码。

定义位于文件 keymaster0.h 的 90 行。

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)

验证使用密钥 blob 签名的数据。这可以使用非对称密钥或 Secret 密钥。

返回值:验证成功时返回 0,否则返回小于 0 的错误代码。

定义位于文件 keymaster0.h 122 行。


此结构体的文档是根据以下文件生成的: