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, data_lengths **sign_tize_lengths data_length, signal_lengths_signs_lengths);
整數(* 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_blob_length,const uint8_t *signed_data,const size_tsigned_data_leizetsign,const_length,const,size_tsigned

詳細說明

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_lengths const;

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

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

定義位於檔案keymaster0.h的第122行。


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