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_password, uint32_tdesired_password_length, uint8_t **enrolled_password _handle,uint32_t *enrolled_password_handle_length) |
整数(* | 验证)(常量结构gatekeeper_device * dev,uint32_t uid,uint64_t挑战,const uint8_t * enrolled_password_handle,uint32_t enrolled_password_handle_length,const uint8_t *provided_password,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_password, uint32_tdesired_password_length, uint8_t **已注册_password_handle,uint32_t *enrolled_password_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_password:用户希望以纯文本形式注册的新密码。不能为 NULL。
- desired_password_length:desired_password 指向的缓冲区的长度(以字节为单位)。
- enrolled_password_handle:成功时,将分配一个缓冲区,其中包含引用desired_password中提供的密码的新密码句柄。该缓冲区可用于后续调用以进行注册或验证。调用者负责通过调用delete[] 来释放该缓冲区
- enrolled_password_handle_length:指向由该函数分配并由 *enrolled_password_handle_length 指向的缓冲区长度(以字节为单位)的指针。
返回:
- 0 表示成功
- 失败时错误代码 < 0,或者
- 如果在 T 毫秒过去之前不应重新尝试调用,则超时值 T > 0。
出错时,将不会分配enrolled_password_handle。
定义位于文件gatewaykeeper.h第91行。
int(* verify)(const struct gateway_device *dev, uint32_t uid, uint64_tchallenge, const uint8_t *enrolled_password_handle, uint32_t enrolled_password_handle_length, const uint8_t *provided_password, uint32_tprovided_password_length, uint8_t **auth_token, uint32_t *auth_token_长度,布尔 *request_reenroll) |
验证provided_password与enrolled_password_handle匹配。
该模块的实现可以保留该调用的结果以证明身份验证的新近性。
成功后,将验证令牌的地址写入 auth_token,可用于向其他受信任的服务证明密码验证。客户端可以为此值传递 NULL。
参数:
- dev:通过调用gatekeeper_open获取的指向gatekeeper_device的指针
- uid:Android用户标识符
- Challenge:用于身份验证的可选质询,或 0。当单独的身份验证器请求密码验证或用于事务密码身份验证时使用。
- enrolled_password_handle:用户希望验证的当前注册密码句柄。
- enrolled_password_handle_length:enrolled_password_handle指向的缓冲区的长度(以字节为单位)
- provided_password:要根据enrolled_password_handle进行验证的明文密码
- provided_password_length:provided_password 指向的缓冲区的长度(以字节为单位)
- auth_token:成功时,包含此验证所产生的身份验证令牌的缓冲区将分配给 *auth_token。调用者负责通过调用delete[] 来释放该内存
- auth_token_length:成功时,分配给 *auth_token 的身份验证令牌的长度(以字节为单位)将分配给 *auth_token_length
- request_reenroll:由于版本变更,向上层请求重新注册验证过的密码。如果验证失败则不设置。
返回:
- 0 表示成功
- 失败时错误代码 < 0,或者
- 如果在 T 毫秒过去之前不应重新尝试调用,则超时值 T > 0。出错时,将不会分配身份验证令牌
定义位于文件gatewaykeeper.h的第141行。
该结构的文档是从以下文件生成的: