keymaster1_device 結構參考

keymaster1_device 結構參考

#include < keymaster1.h >

資料欄位

結構體hw_device_t常見的
uint32_t客戶端版本
uint32_t旗幟
空白 *情境
整數(* generate_keypair )(const struct keymaster1_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 keymaster1_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 keymaster1_device *dev,const uint8_t *key_blob,const size_t key_blob_length,uint8_t **x509_data,size_t *x509_data_length)
整數(*刪除_密鑰對)(const struct keymaster1_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
整數(* delete_all )(const struct keymaster1_device *dev)
整數(* sign_data )(const struct keymaster1_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);
整數(* verify_data )(const struct keymaster1_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_sizet),const,_t),const,cont_tsign_t),
keymaster_error_t (* get_supported_algorithms )(const struct keymaster1_device *dev, keymaster_algorithm_t **演算法,size_t *algorithms_length)
keymaster_error_t (* get_supported_block_modes )(const struct keymaster1_device *dev、 keymaster_algorithm_t演算法、 keymaster_ Purpose_t目的、 keymaster_block_mode_t **模式、size_t *modes_length)
keymaster_error_t (* get_supported_pa​​dding_modes )(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_ Purpose_t目的, keymaster_padding_t **模式,size_t *modes_length)
keymaster_error_t (* get_supported_digests )(const struct keymaster1_device *dev、 keymaster_algorithm_t演算法、 keymaster_ Purpose_t目的、 keymaster_digest_t **digests、size_t *digests_length)
keymaster_error_t (* get_supported_import_formats )(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_key_format_t **格式, size_t *formats_length)
keymaster_error_t (* get_supported_export_formats )(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_key_format_t **格式,size_t *formats_length)
keymaster_error_t (* add_rng_entropy )(const struct keymaster1_device *dev, const uint8_t *data, size_t data_length)
keymaster_error_t (* generate_key )(const struct keymaster1_device *dev,const keymaster_key_param_set_t *params, keymaster_key_blob_t *key_blob, keymaster_key_characteristics_t **特徵)
keymaster_error_t (* get_key_characteristics )(const struct keymaster1_device *dev、const keymaster_key_blob_t *key_blob、const keymaster_blob_t *client_id、const keymaster_blob_t *app_data、 keymaster_key_characteristics_t ** 特徵特徵)
keymaster_error_t (* import_key )(const struct keymaster1_device *dev、const keymaster_key_param_set_t *params、 keymaster_key_format_t key_format、const keymaster_blob_t *key_data、 keymaster_key_blob_t *key_blob、 key_t *
keymaster_error_t (* export_key )(const struct keymaster1_device *dev, keymaster_key_format_t export_format,const keymaster_key_blob_t *key_to_export,const keymaster_blob_t *client_id,const keymaster_blob_key data_, keyb_keymaster
keymaster_error_t (* delete_key )(const struct keymaster1_device *dev,const keymaster_key_blob_t *key)
keymaster_error_t (* delete_all_keys )(const struct keymaster1_device *dev)
keymaster_error_t (*開始)(const struct keymaster1_device *dev, keymaster_ Purpose_t目的, const keymaster_key_blob_t *key, const keymaster_key_param_set_t *in_params, keymaster_key_param_set_t *out_params, key *in_params, keymaster_key_param_set_t *out_params, keymaster_param .
keymaster_error_t (*更新)(const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle,const keymaster_key_param_set_t *in_params,const keymaster_blob_t *輸入,size_t *input_consumed, keymaster_key_param_set_t *輸入,size_set *input_consumed, keymaster_blo_param_set_ )
keymaster_error_t (*已完成)(const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle, const keymaster_key_param_set_t *in_params, const keymaster_blob_t *signature, keymaster_key_param_set_t *out_params, master_t *
keymaster_error_t (*中止)(const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle)

詳細說明

Keymaster1 裝置定義

定義位於檔案keymaster1.h28行。

現場文檔

keymaster_error_t (* abort)(const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle)

中止以begin()開始的加密操作,釋放所有內部資源並使operation_handle無效。

檔案keymaster1.h531行的定義。

keymaster_error_t (* add_rng_entropy)(const struct keymaster1_device *dev, const uint8_t *data, size_t data_length)

將熵加入 keymaster 使用的 RNG。透過此方法添加的熵保證不是所使用的熵的唯一來源,並且混合函數需要是安全的,從某種意義上說,如果 RNG(來自任何來源)使用攻擊者無法預測(或控制),則RNG輸出與隨機輸出無法區分。因此,如果任何來源的熵良好,則輸出也會良好。

參數
[在]開發者密鑰主設備結構。
[在]數據要混合的隨機資料。
[在]資料長度data長度。

檔案keymaster1.h242行的定義。

使用指定密鑰開始加密操作。如果一切順利, begin()將返回 KM_ERROR_OK 並建立一個操作句柄,該句柄必須傳遞給後續對update()finish()abort() 的呼叫。

至關重要的是,每次呼叫begin()都要與後續呼叫finish()abort()配對,以允許 keymaster 實作清理任何內部操作狀態。如果不這樣做,可能會洩漏內部狀態空間或其他內部資源,並可能最終導致begin()在操作空間不足時返回 KM_ERROR_TOO_MANY_OPERATIONS。 begin()update()finish()中除 KM_ERROR_OK 之外的任何結果都會隱式中止操作,在這種情況下不需要調用abort() (如果調用,將返回 KM_ERROR_INVALID_OPERATION_HANDLE )。

參數
[在]開發者密鑰主設備結構。
[在]目的操作的目的,KM_PURPOSE_ENCRYPT、KM_PURPOSE_DECRYPT、KM_PURPOSE_SIGN 或 KM_PURPOSE_VERIFY 之一。請注意,對於 AEAD 模式,加密和解密分別意味著簽章和驗證,但應指定為 KM_PURPOSE_ENCRYPT 和 KM_PURPOSE_DECRYPT。
[在]鑰匙用於操作的密鑰。 key必須具有與purpose相容的用途,並且必須滿足其所有使用要求,否則begin()將傳回適當的錯誤代碼。
[在]輸入參數操作的附加參數。這通常用於透過 KM_TAG_AUTH_TOKEN 提供身份驗證資料。如果在生成期間提供了 KM_TAG_APPLICATION_ID 或 KM_TAG_APPLICATION_DATA,則必須在此處提供它們,否則操作將失敗並顯示 KM_ERROR_INVALID_KEY_BLOB。對於需要隨機數或 IV 的操作,在使用 KM_TAG_CALLER_NONCE 產生的金鑰上,in_params 可能包含標籤 KM_TAG_NONCE。對於 AEAD 操作,此處指定 KM_TAG_CHUNK_SIZE。
[出去]輸出參數輸出參數。用於從操作初始化返回附加數據,特別是從生成 IV 或隨機數的操作返回 IV 或隨機數。呼叫者擁有輸出參數陣列的所有權,並且必須使用keymaster_free_param_set()釋放它。如果不需要輸出參數,out_params 可以設定為 NULL。如果 out_params 為 NULL,且產生了輸出參數,則begin()將傳回 KM_ERROR_OUTPUT_PARAMETER_NULL。
[出去]操作句柄新建立的操作句柄必須傳遞給update()finish()abort() 。如果操作句柄為 NULL,則begin()將傳回 KM_ERROR_OUTPUT_PARAMETER_NULL。

檔案keymaster1.h451行的定義。

uint32_t 用戶端版本

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

定義位於檔案keymaster1.h41行。

結構體hw_device_t公共

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

定義位於檔案keymaster1.h35行。

無效*上下文

定義位於檔案keymaster1.h48行。

int(* delete_all)(const struct keymaster1_device *dev)
已棄用:
刪除硬體金鑰庫中的所有金鑰。當密鑰庫完全重置時使用。

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

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

定義位於檔案keymaster1.h100行。

keymaster_error_t (* delete_all_keys)(const struct keymaster1_device *dev)

刪除硬體金鑰庫中的所有金鑰。當密鑰庫完全重置時使用。呼叫此函數後,將無法使用任何先前產生或匯入的密鑰 blob 進行任何操作。

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

參數
[在]開發者密鑰主設備結構。

檔案keymaster1.h407行的定義。

keymaster_error_t (* delete_key)(const struct keymaster1_device *dev, const keymaster_key_blob_t *key)

刪除與密鑰 blob 關聯的密鑰或密鑰對。呼叫此函數後,將無法使用該鍵進行任何其他操作。可以應用於來自外部信任根的密鑰(在當前信任根下不可用的密鑰)。

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

參數
[在]開發者密鑰主設備結構。
[在]鑰匙要刪除的密鑰。

定義位於檔案keymaster1.h的第395行。

int(* delete_keypair)(const struct keymaster1_device *dev, const uint8_t *key_blob, const size_t key_blob_length)
已棄用:
刪除與密鑰 blob 關聯的密鑰對。

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

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

定義位於檔案keymaster1.h88行。

_ _ _ _ _ _

匯出公鑰,傳回指定格式的位元組數組。

參數
[在]開發者密鑰主設備結構。
[在]導出格式用於導出密鑰的格式。
[在]匯出金鑰導出的關鍵。
[出去]匯出數據導出的密鑰材料。呼叫者取得所有權。
[出去]導出資料長度export_data的長度。

定義位於檔案keymaster1.h的第377行。

keymaster_error_t (*已完成)(const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle , const keymaster_key_param_set_t *in_params, const keymaster_blob_t *signature, keymaster_key_param__t .

完成以begin()開始的加密操作並使operation_handle無效。

參數
[在]開發者密鑰主設備結構。
[在]操作句柄begin()傳回的操作句柄。該句柄將失效。
[在]參數操作的附加參數。對於 AEAD 模式,這用於指定 KM_TAG_ADDITIONAL_DATA,但前提是未向update()提供輸入資料。
[在]簽名如果begin()呼叫中指定的目的是 KM_PURPOSE_VERIFY,則要驗證的簽章。
[出去]輸出輸出數據(如果有)。呼叫者承擔所分配緩衝區的所有權。

如果正在完成的操作是簽章驗證或 AEAD 模式解密且驗證失敗,則finish()將傳回 KM_ERROR_VERIFICATION_FAILED。

定義位於檔案keymaster1.h的第521行。

uint32_t 標誌

請參閱keymaster_common.h中為 keymaster0_devices::flags 定義的標誌

定義位於檔案keymaster1.h46行。

keymaster_error_t (*generate_key)(const struct keymaster1_device *dev, const keymaster_key_param_set_t *params, keymaster_key_blob_t *key_blob, keymaster_key_characteristics_t **特徵)

產生密鑰或密鑰對,傳回密鑰 blob 和/或密鑰的描述。

金鑰產生參數定義為 keymaster 標籤/值對,在params中提供。有關完整列表,請參閱 keymaster_tag_t。產生有用密鑰始終需要的一些值是:

  • KM_TAG_演算法;
  • KM_TAG_目的;和
  • (KM_TAG_USER_SECURE_ID 和 KM_TAG_USER_AUTH_TYPE)或 KM_TAG_NO_AUTH_REQUIRED。

通常應指定 KM_TAG_AUTH_TIMEOUT,除非存在 KM_TAG_NO_AUTH_REQUIRED,否則使用者必須對每次使用進行驗證。

對於需要它們的演算法,必須指定 KM_TAG_BLOCK_MODE、KM_TAG_PADDING、KM_TAG_MAC_LENGTH 和 KM_TAG_DIGEST。

可以不指定以下標籤;它們的值將由實作提供。

  • KM_TAG_ORIGIN,
  • KM_TAG_ROLLBACK_RESISTANT,
  • KM_TAG_CREATION_DATETIME
參數
[在]開發者密鑰主設備結構。
[在]參數關鍵生成參數數組。
[在]參數計數params的長度。
[出去]密鑰區塊傳回產生的密鑰。 key_blob不能為 NULL。呼叫者假定擁有 key_blob->key_material 所有權且必須 free() 它。
[出去]特徵如果非 NULL,則傳回已產生的鍵的特徵。如果非 NULL,則呼叫者假定所有權並且必須使用keymaster_free_characteristics()取消指派。請注意,KM_TAG_ROOT_OF_TRUST、KM_TAG_APPLICATION_ID 和 KM_TAG_APPLICATION_DATA 永遠不會回傳。

定義位於檔案keymaster1.h的第282行。

int(*generate_keypair)(const struct keymaster1_device *dev, const keymaster_keypair_t key_type, const void *key_params, uint8_t **key_blob, size_t *key_blob_length)
已棄用:
產生公鑰和私鑰。傳回的金鑰區塊是不透明的,隨後必須提供用於簽名和驗證。

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

定義位於檔案keymaster1.h56行。

keymaster_error_t (* get_key_characteristics)(const struct keymaster1_device *dev, const keymaster_key_blob_t *key_blob, const keymaster_blob_t *client_id, const keymaster_blob_t *app_data, key_key_

傳回指定金鑰的特徵,如果 key_blob 無效,則傳回 KM_ERROR_INVALID_KEY_BLOB(實作必須完全驗證金鑰的完整性)。 client_id 和 app_data 必須是產生或匯入金鑰時提供的 ID 和數據,如果在產生期間未提供 KM_TAG_APPLICATION_ID 和/或 KM_TAG_APPLICATION_DATA,則為空。這些值不包含在傳回的特徵中。呼叫者假定指派的特徵物件的所有權,必須使用keymaster_free_characteristics()釋放該物件。

請注意,KM_TAG_ROOT_OF_TRUST、KM_TAG_APPLICATION_ID 和 KM_TAG_APPLICATION_DATA 永遠不會回傳。

參數
[在]開發者密鑰主設備結構。
[在]密鑰區塊從中檢索特徵的關鍵。
[在]客戶ID客戶端 ID 數據,如果沒有關聯則為 NULL。
[在]應用程式ID應用程式數據,如果沒有關聯則為 NULL。
[出去]特徵關鍵特徵。

定義位於檔案keymaster1.h的第309行。

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

定義位於檔案keymaster1.h76行。

keymaster_error_t (* get_supported_algorithms)(const struct keymaster1_device *dev, keymaster_algorithm_t **演算法, size_t *algorithms_length)

獲取支援的演算法。

參數
[在]開發者密鑰主設備結構。
[出去]演算法支援的演算法數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]演算法長度algorithms的長度。

檔案keymaster1.h133行的定義。

keymaster_error_t (* get_supported_block_modes)(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_ Purpose_t目的, keymaster_block_mode_t **模式, size_t *modes_length) *modes_length)

取得指定演算法支援的區塊模式。

參數
[在]開發者密鑰主設備結構。
[在]演算法將傳回支援的模式的演算法。
[出去]模式支援的模式數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]模式長度modes的長度。

定義位於檔案keymaster1.h的第149行。

keymaster_error_t (* get_supported_digests)(const struct keymaster1_device *dev, keymaster_algorithm_tize , keymaster_ Purpose_t目的, keymaster_digest_t **摘要, size_t *digests_length)

取得指定演算法支援的摘要。呼叫者承擔所分配數組的所有權。

參數
[在]開發者密鑰主設備結構。
[在]演算法將傳回支援的摘要的演算法。
[出去]摘要支援摘要數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]摘要長度digests的長度。

檔案keymaster1.h187行的定義。

keymaster_error_t (* get_supported_export_formats)(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_key_format_t **格式, size_t *formats_length)

取得指定演算法的金鑰支援的金鑰導出格式。呼叫者承擔所分配數組的所有權。

參數
[在]開發者密鑰主設備結構。
[在]演算法將傳回支援的格式的演算法。
[出去]格式支援的格式數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]格式長度formats的長度。

檔案keymaster1.h224行的定義。

keymaster_error_t (* get_supported_import_formats)(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_key_format_t **格式, size_t *formats_length)

取得指定演算法的金鑰支援的金鑰導入格式。呼叫者承擔所分配數組的所有權。

參數
[在]開發者密鑰主設備結構。
[在]演算法將傳回支援的格式的演算法。
[出去]格式支援的格式數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]格式長度formats的長度。

檔案keymaster1.h206行的定義。

keymaster_error_t (* get_supported_pa​​dding_modes)(const struct keymaster1_device *dev, keymaster_algorithm_t演算法, keymaster_ Purpose_t目的, keymaster_padding_t **模式, size_t *modes_length) *modes_length)

取得指定演算法支援的填充模式。呼叫者承擔所分配數組的所有權。

參數
[在]開發者密鑰主設備結構。
[在]演算法將傳回支援的填充模式的演算法。
[出去]模式支援的填充模式數組。呼叫者獲得數組的所有權並且必須 free() 它。
[出去]模式長度modes的長度。

檔案keymaster1.h168行的定義。

匯入密鑰或密鑰對,傳回密鑰 blob 和/或密鑰的描述。

大多數關鍵導入參數被定義為 keymaster 標籤/值對,在「params」中提供。有關完整列表,請參閱 keymaster_tag_t。導入有用密鑰始終需要的值是:

  • KM_TAG_演算法;
  • KM_TAG_目的;和
  • (KM_TAG_USER_SECURE_ID 和 KM_TAG_USER_AUTH_TYPE)或 KM_TAG_NO_AUTH_REQUIRED。

通常應指定 KM_TAG_AUTH_TIMEOUT。如果未指定,使用者每次使用都必須進行身份驗證。

如果未指定,以下標籤將採用預設值:

  • KM_TAG_KEY_SIZE 將預設為提供的金鑰的大小。
  • KM_TAG_RSA_PUBLIC_EXPONENT 將預設為提供的金鑰中的值(對於 RSA 金鑰)

可以不指定以下標籤;它們的值將由實作提供。

  • KM_TAG_ORIGIN,
  • KM_TAG_ROLLBACK_RESISTANT,
  • KM_TAG_CREATION_DATETIME
參數
[在]開發者密鑰主設備結構。
[在]參數定義導入密鑰的參數。
[在]參數計數params中的條目數。
[在]密鑰格式指定key_data中金鑰資料的格式。
[出去]密鑰區塊用於傳回不透明的密鑰塊。必須為非 NULL。呼叫者假定所包含的 key_material 的所有權。
[出去]特徵用於傳回導入密鑰的特徵。可能為 NULL,在這種情況下不會傳回任何特徵。如果非 NULL,則呼叫者假定所有權並且必須使用keymaster_free_characteristics()取消指派。請注意,KM_TAG_ROOT_OF_TRUST、KM_TAG_APPLICATION_ID 和 KM_TAG_APPLICATION_DATA 永遠不會回傳。

定義位於檔案keymaster1.h的第357行。

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

定義位於檔案keymaster1.h66行。

int(*sign_data)(const struct keymaster1_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, u8_int_length, data_lengths_s data_lengths_pint_s_data_Ms_data_int_s)data_p)data_int_s)data_pun_Ms_data_data_data_data)data_data_2_data_pdata)data_pdata_pdata)data_data_data)data,data_pdata_data_data)data_pdata_data,data_data_data_pdata)data,2_data_pdata)data,pdata_pdata)data,data_pdata)datapM)data_pdata_M)data_data_data_pdata)data,data_pdata.p.
已棄用:
使用之前產生的金鑰區塊對資料進行簽署。這可以使用非對稱密鑰或秘密密鑰。

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

檔案keymaster1.h108行的定義。

keymaster_error_t (*更新) const struct keymaster1_device *dev, keymaster_operation_handle_t operation_handle,const keymaster_key_param_set_t *in_params,const keymaster_blob_t *輸入, size_t *

向以begin()開始的正在進行的加密操作提供數據,並可能從該操作接收輸出。

如果操作句柄無效, update()將傳回 KM_ERROR_INVALID_OPERATION_HANDLE。

update()可能不會消耗資料緩衝區中提供的所有資料。 update()將傳回 *data_consumed 中消耗的數量。調用者應在後續調用中提供未使用的資料。

參數
[在]開發者密鑰主設備結構。
[在]操作句柄begin()傳回的操作句柄。
[在]輸入參數操作的附加參數。對於 AEAD 模式,這用於指定 KM_TAG_ADDITIONAL_DATA。請注意,可以在對update()的多次呼叫中提供附加數據,但僅限於提供輸入資料之前。
[在]輸入根據呼叫begin()中建立的參數來處理資料。請注意, update()可能會也可能不會消耗所提供的所有資料。請參閱input_consumed
[出去]輸入消耗update()消耗的資料量。如果這小於提供的金額,則呼叫者應在後續呼叫update()時提供剩餘部分。
[出去]輸出參數輸出參數。用於從操作傳回附加資料 呼叫者取得輸出參數陣列的所有權,並且必須使用keymaster_free_param_set()釋放它。如果不需要輸出參數,out_params 可以設定為 NULL。如果 out_params 為 NULL,且產生了輸出參數,則begin()將傳回 KM_ERROR_OUTPUT_PARAMETER_NULL。
[出去]輸出輸出數據(如果有)。呼叫者承擔所分配緩衝區的所有權。輸出不能為 NULL。

請注意, update()可能不提供任何輸出,在這種情況下,output->data_length 將為零,並且output->data 可能為 NULL 或零長度(因此呼叫者應始終 free() 它)。

定義位於檔案keymaster1.h的第495行。

int(* verify_data)(const struct keymaster1_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_lengths constd,_lengths const;
已棄用:
驗證使用金鑰 blob 簽署的資料。這可以使用非對稱密鑰或秘密密鑰。

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

檔案keymaster1.h118行的定義。


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