keymaster0_device 结构参考

keymaster0_device 结构参考

#include < keymaster0.h >

数据字段

结构体hw_device_t常见的
uint32_t客户端版本
uint32_t旗帜
空白 *语境
整数(* 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)
整数(* 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)
整数(* 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)
整数(*删除_密钥对)(const struct keymaster0_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
整数(* delete_all )(const struct keymaster0_device *dev)
整数(* 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)
整数(* 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_tsigned_data_length,const uint8_t *signature,const size_t 签名_length)

详细说明

Keymaster0 设备定义。

定义位于文件keymaster0.h27行。

现场文档

uint32_t 客户端版本

这已被弃用。请在 keymaster_module 初始化中使用新的“module_api_version”和“hal_api_version”字段。

定义位于文件keymaster0.h40行。

结构体hw_device_t公共

Keymaster设备的常用方法。这必须keymaster0_device的第一个成员,因为该结构的用户将在已知hw_device_t引用keymaster0_device 的上下文中将 hw_device_t 强制转换为keymaster0_device指针。

定义位于文件keymaster0.h34行。

无效*上下文

定义位于文件keymaster0.h47行。

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.h90行。

uint32_t 标志

请参阅keymaster_common.h中为keymaster0_device::flags定义的标志

定义位于文件keymaster0.h45行。

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)

生成公钥和私钥。返回的密钥块是不透明的,随后必须提供用于签名和验证。

返回:成功时返回 0,或者小于 0 的错误代码。

定义位于文件keymaster0.h55行。

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.h78行。

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)

导入公钥和私钥对。导入的密钥将采用 DER 编码(Java 标准)的 PKCS#8 格式。返回的密钥块是不透明的,随后将被提供用于签名和验证。

返回:成功时返回 0,或者小于 0 的错误代码。

定义位于文件keymaster0.h67行。

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)

使用之前生成的密钥块对数据进行签名。这可以使用非对称密钥或秘密密钥。

返回:成功时返回 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_tsigned_data_length, const uint8_t *signature, const size_t 签名_length)

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

返回:验证成功时返回 0 或小于 0 的错误代码。

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


该结构的文档是从以下文件生成的: