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_password_length, const uint8_t *desired_pa​​ssword, uint32_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​​ssword_handle_length,const uint8_t *provided_pa​​ssword,uint32_t提供的_password_length,uint8_t ** auth_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_password_length, const uint8_t *desired_pa​​ssword, uint32_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​​ssword_handle_length, const uint8_t *provided_pa​​ssword, uint32_tprovided_pa​​ssword_length, 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行。


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