keymaster_device 結構參考

keymaster_device 結構參考

#include < keymaster.h >

資料欄位

結構體hw_device_t常見的
uint32_t客戶端版本
uint32_t旗幟
空白 *情境
整數(* generate_keypair )(const struct keymaster_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 keymaster_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 keymaster_device *dev,const uint8_t *key_blob,const size_t key_blob_length,uint8_t **x509_data,size_t *x509_data_length)
整數(*刪除_密鑰對)(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
整數(* delete_all )(const struct keymaster_device *dev)
整數(* sign_data )(const struct keymaster_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, usign_le_length, usign_le_length, usign_length, usigns_length, usign_leng)
整數(* verify_data )(const struct keymaster_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_leize,constnth,concature_t_tsign”

詳細說明

可以為給定的 keymaster 實作設定的參數。

定義位於檔案keymaster.h的第174行。

現場文檔

uint32_t 用戶端版本

這已被棄用。請在 keymaster_module 初始化中使用新的“module_api_version”和“hal_api_version”欄位。

檔案keymaster.h187行的定義。

結構體hw_device_t公共

Keymaster設備的常用方法。這必須keymaster_device的第一個成員,因為該結構的使用者將在已知hw_device_t引用keymaster_device 的上下文中將 hw_device_t 強制轉換為keymaster_device指標。

檔案keymaster.h181行的定義。

無效*上下文

檔案keymaster.h194行的定義。

int(* delete_all)(const struct keymaster_device *dev)

刪除硬體金鑰庫中的所有金鑰。當密鑰庫完全重置時使用。

此函數是可選的,如果未實現,則應設為 NULL。

成功時傳回 0 或小於 0 的錯誤代碼。

定義位於檔案keymaster.h的第249行。

int(* delete_keypair)(const struct keymaster_device *dev, const uint8_t *key_blob, const size_t key_blob_length)

刪除與密鑰 blob 關聯的密鑰對。

此函數是可選的,如果未實現,則應設為 NULL。

成功時傳回 0 或小於 0 的錯誤代碼。

定義位於檔案keymaster.h的第237行。

uint32_t 標誌

請參閱上面為keymaster_device::flags定義的標誌。

檔案keymaster.h192行的定義。

int(*generate_keypair)(const struct keymaster_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)

產生公鑰和私鑰。傳回的金鑰區塊是不透明的,隨後必須提供用於簽名和驗證。

傳回:成功時傳回 0,或小於 0 的錯誤代碼。

定義位於檔案keymaster.h的第202行。

int(* get_keypair_public)(const struct keymaster_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。

定義位於檔案keymaster.h的第225行。

int(* import_keypair)(const struct keymaster_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 的錯誤代碼。

定義位於檔案keymaster.h的第214行。

int(*sign_data)(const struct keymaster_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,sign_8_lengths data_lengthsizes_s_lengths_sign_lengths data_lengths data_lengthsizes_sizes_sizes_s_s7_s7_s;

使用之前產生的金鑰區塊對資料進行簽署。這可以使用非對稱密鑰或秘密密鑰。

傳回:成功時傳回 0,或小於 0 的錯誤代碼。

定義位於檔案keymaster.h的第257行。

int(* verify_data)(const struct keymaster_device *dev, const void *signing_params, const uint8_t *key_blob, const size_t key_blob_length, const uint8_t *signed_data, const size_blobsign_data_length, contizes_lengths_size_tizes_pizes_s7_s7_s7_s4s))s_s;

驗證使用金鑰 blob 簽署的資料。這可以使用非對稱密鑰或秘密密鑰。

傳回:驗證成功時傳回 0 或小於 0 的錯誤代碼。

定義位於檔案keymaster.h的第269行。


該結構的文檔是從以下文件產生的: