Wi-Fi 凭据库
Wi-Fi 凭据库提供加载和存储 Wi-Fi® 网络凭据的方法。
概述
该库使用 Zephyr 的 settings 子系统或平台安全架构(PSA)内部可信存储(ITS)来存储凭据。它还在 RAM 中保存 SSID 列表,以便使用 SSID 作为键进行类似字典的访问。
配置
要使用 Wi-Fi 凭据库,请启用 CONFIG_WIFI_CREDENTIALS Kconfig 选项。
可以使用以下选项选择后端:
CONFIG_WIFI_CREDENTIALS_BACKEND_PSA—— 非安全目标的默认选项,其中包含 TF-M 分区(非最小 TF-M 配置文件类型)。CONFIG_WIFI_CREDENTIALS_BACKEND_SETTINGS—— 安全目标的默认选项。
要配置最大网络数量,请使用 CONFIG_WIFI_CREDENTIALS_MAX_ENTRIES Kconfig 选项。
IEEE 802.11 标准未规定 SAE 密码的最大长度。要更改默认值,请使用 CONFIG_WIFI_CREDENTIALS_SAE_PASSWORD_LENGTH Kconfig 选项。
添加凭据
可以使用 wifi_credentials_set_personal() 和 wifi_credentials_set_personal_struct() 函数添加凭据。前者会根据给定字段构建内部使用的结构体,后者则直接接收结构体。如果两次添加具有相同 SSID 的凭据,旧条目将被覆盖。
查询凭据
给定 SSID 后,可以使用 wifi_credentials_get_by_ssid_personal() 和 wifi_credentials_get_by_ssid_personal_struct() 函数查询凭据。
可以使用 wifi_credentials_for_each_ssid() 函数遍历所有已存储的凭据。允许在遍历过程中删除或覆盖凭据,因为这些操作不会更改内部索引。
移除凭据
可以使用 wifi_credentials_delete_by_ssid() 函数移除凭据。
Shell 命令
wifi cred 是 Wi-Fi 命令行的扩展。它添加了以下子命令,用于与 Wi-Fi 凭据库交互:
限制
该库具有以下限制:
尽管 IEEE 802.11 标准允许,但该库不支持零长度 SSID。
仅部分支持 Wi-Fi 保护访问(WPA)企业级凭据。
存储的网络数量在编译时固定。
API 文档
以下小节概述并参考 Zephyr 中可用的 Wi-Fi 凭据 API: