gateway_device 結構參考

gateway_device 結構參考

#include < gatekeeper.h >

資料欄位

硬體設備_t常見的
整數(* enroll )(const struct gatewaykeeper_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current tdesired_pa​​ssword_length, uint8_t **enrolled_pa​​ssword _handle, uint32_t *enrolled_pa​​ssword_handle_length)
整數(*驗證)(常數結構gatekeeper_device * dev,uint32_t uid,uint64_t挑戰,const uint8_t * enrolled_pa​​ssword_handle,uint32_t enrolled_pa​​4ssword_handle_ssword_handle,uint32_t enrolled_pa​​sidword_handle_length,const uint8_t_provided uint,ssword_handle_length,const uint8_t_provided uth_token,uint32_t * auth_token_length,bo ol *request_reenroll)
整數(* delete_user )(const struct gateway_device *dev,uint32_t uid)
整數(* delete_all_users )(const struct gateway_device *dev)

詳細說明

定義位於檔案gatewaykeeper.h的第41行。

現場文檔

網守設備的常用方法。如上所述,這必須是 keymaster_device 的第一個成員。

定義位於檔案gatewaykeeper.h的第46行。

int(*delete_all_users)(const struct gateway_device *dev)

定義位於檔案gatewaykeeper.h的第173行。

int(*delete_user)(const struct gateway_device *dev, uint32_t uid)

定義位於檔案gatewaykeeper.h的第159行。

int(* enroll)(const struct gateway_device *dev, uint32_t uid, const uint8_t *current_password_handle, uint32_t current_password_handle_length, const uint8_t *current_password, uint32_t current; tdesired_pa​​ssword_length, uint8_t **已註冊_ password_handle,uint32_t *enrolled_pa​​ssword_handle_length)

註冊期望的密碼,該密碼應從使用者選擇的 PIN 或密碼派生,其中身份驗證因素私鑰僅用於註冊身份驗證因素資料。

如果已經註冊了密碼,則應在 current_password_handle 中提供該密碼,並在 current_password 中提供應根據 current_password_handle 進行驗證的當前密碼。

參數:

  • dev:透過呼叫gatekeeper_open取得的指向gatekeeper_device的指針
  • uid:Android用戶標識符
  • current_password_handle:使用者想要替換的目前註冊密碼句柄。如果目前沒有註冊密碼,則可能為空。
  • current_password_handle_length:current_password_handle 指向的緩衝區的長度(以位元組為單位)。如果 current_password_handle 為 NULL,則必須為 0。
  • current_password:使用者目前的純文字密碼。如果存在,它必須根據 current_password_handle 進行驗證。
  • current_password_length:current_password 指向的緩衝區的大小(以位元組為單位)。如果 current_password 為 NULL,則必須為 0。
  • desired_pa​​ssword:使用者希望以純文字形式註冊的新密碼。不能為 NULL。
  • desired_pa​​ssword_length:desired_pa​​ssword 指向的緩衝區的長度(以位元組為單位)。
  • enrolled_pa​​ssword_handle:成功時,將分配一個緩衝區,其中包含引用desired_pa​​ssword中提供的密碼的新密碼句柄。此緩衝區可用於後續呼叫以進行註冊或驗證。呼叫者負責透過呼叫delete[] 來釋放該緩衝區
  • enrolled_pa​​ssword_handle_length:指向由函數指派並由 *enrolled_pa​​ssword_handle_length 指向的緩衝區長度(以位元組為單位)的指標。

返回:

  • 0 表示成功
  • 失敗時錯誤代碼 < 0,或者
  • 如果在 T 毫秒過去之前不應重新嘗試調用,則逾時值 T > 0。

出錯時,將不會分配enrolled_pa​​ssword_handle。

定義位於檔案gatewaykeeper.h91行。

int(* verify)(const struct gateway_device *dev, uint32_t uid, uint64_tchallenge, const uint8_t *enrolled_pa​​​​ssword_handle, uint32_t enrolled_pa​​​​ng_pword_handle_lessword_handle, uint32_t enrolled_pa​​​​ng_pword_handle_lessword_handle, uint32_t enrolled_pa​​​​kword_handle_lessword_handle, 88384848 月_let, 30le_le), 8,84844t4). th, uint8_t **auth_token, uint32_t *auth_token_長度,布林*request_reenroll)

驗證provided_pa​​ssword與enrolled_pa​​ssword_handle相符。

此模組的實作可以保留該呼叫的結果以證明身份驗證的新近性。

成功後,將驗證令牌的位址寫入 auth_token,可用於向其他受信任的服務證明密碼驗證。客戶端可以為此值傳遞 NULL。

參數:

  • dev:透過呼叫gatekeeper_open取得的指向gatekeeper_device的指針
  • uid:Android用戶標識符
  • Challenge:用於身份驗證的可選質詢,或 0。當單獨的身份驗證器請求密碼驗證或用於事務密碼身份驗證時使用。
  • enrolled_pa​​ssword_handle:使用者希望驗證的目前註冊密碼句柄。
  • enrolled_pa​​ssword_handle_length:enrolled_pa​​ssword_handle指向的緩衝區的長度(以位元組為單位)
  • provided_pa​​ssword:要根據enrolled_pa​​ssword_handle進行驗證的明文密碼
  • provided_pa​​ssword_length:provided_pa​​ssword 指向的緩衝區的長度(以位元組為單位)
  • auth_token:成功時,包含此驗證所產生的身份驗證令牌的緩衝區將指派給 *auth_token。呼叫者負責透過呼叫delete[] 來釋放該記憶體
  • auth_token_length:成功時,分配給 *auth_token 的身份驗證令牌的長度(以位元組為單位)將分配給 *auth_token_length
  • request_reenroll:由於版本變更,向上層請求重新註冊驗證過的密碼。如果驗證失敗則不設定。

返回:

  • 0 表示成功
  • 失敗時錯誤代碼 < 0,或者
  • 如果在 T 毫秒過去之前不應重新嘗試調用,則逾時值 T > 0。出錯時,將不會分配身份驗證令牌

定義位於檔案gatewaykeeper.h的第141行。


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