Fuchsia.weave

添加次数:7

协议

引导

fuchsia.weave/bootstrap.fidl 中定义

用于让组件提供源自现有 Weave 实现的初始配置数据的协议,以确保 Weave 织物和其他 Weave 设置或配置数据的连续性。

ImportWeaveConfig

导入 JSON 格式的 Weave 配置,以预期格式满足 Weave DeviceLayer ConfigurationManager 要求的数据。

系统保证在成功完成此调用后保留配置。

请求

名称类型
config_json fuchsia.mem/Buffer

响应

名称类型
payload Bootstrap_ImportWeaveConfig_Result

FactoryDataManager

fuchsia.weave/auth.fidl 中定义

此协议用于检索可能经过静态加密的出厂数据。

GetPairingCode

成功后返回设备 pairing_code

请求

<EMPTY>

响应

名称类型
payload FactoryDataManager_GetPairingCode_Result

GetWeaveCertificate

返回 PEM 格式的出厂配置的 Weave 证书。

请求

<EMPTY>

响应

名称类型
payload FactoryDataManager_GetWeaveCertificate_Result

PairingStateWatcher

fuchsia.weave/weavestack.fidl 中定义

监视 Weave 中配对状态的变化。从 fuchsia.weave/Stack.GetPairingStateWatcher 中检索。

WatchPairingState

返回配对状态。

首次调用会返回当前配对状态或阻塞,直到配对状态可用。后续调用将阻塞,直到配对状态发生变化。

如果之前的调用仍处于待处理状态,则调用 WatchPairingState 将导致相应频道通过 ZX_ERR_BAD_STATE 关闭。

请求

<EMPTY>

响应

名称类型
state PairingState

预配工具

fuchsia.weave/auth.fidl 中定义

此协议用于即时配置操作。

GenerateKeyPair

为即时预配操作生成密钥,在使用 Weave 操作证书时使用。成功后,result 中会返回封装的私钥和公钥对。可以将 wrapped_private_key 传递给 Signer.SignHashWithPrivateKey,对 Weave 消息进行签名。

目前,Weave 仅支持 ECDSA 签名。此协议会返回一个与 Signer 协议兼容的密钥对(例如 P256)。

请求

<EMPTY>

响应

名称类型
payload Provisioner_GenerateKeyPair_Result

签署者

fuchsia.weave/auth.fidl 中定义

此协议用于使用出厂配置的 Weave 密钥或生成的私钥对操作进行签名。

SignHash

使用出厂配置的密钥为提供的 hash 签名。成功后,将在 signature 中返回结果。签名必须是 Weave 支持的类型,并且必须采用 ASN.1 DER 序列的标准形式。此操作必须支持 SHA1 和 SHA256 哈希值。

请求

名称类型
hash vector<uint8>[32]

响应

名称类型
payload Signer_SignHash_Result

SignHashWithPrivateKey

使用提供的 wrapped_private_key 对提供的 hash 进行签名。成功后,结果将在 signature 中返回。签名必须是 Weave 支持的类型,并且必须采用 ASN.1 DER 序列的标准形式。此操作必须支持 SHA1 和 SHA256 哈希值。

请求

名称类型
hash vector<uint8>[32]
wrapped_private_key PrivateKey

响应

名称类型
payload Signer_SignHashWithPrivateKey_Result

堆叠

fuchsia.weave/weavestack.fidl 中定义

WeaveStack 提供的调用和服务。这些调用旨在封装 Weave 适配,并为对 Weave 公开的信息感兴趣的 Weave 应用或组件提供信息或功能。

GetPairingStateWatcher

返回 PairingStateWatcher,以监视配对状态的变化。

请求

名称类型
watcher server_end<PairingStateWatcher>

GetQrCode

返回可在配对过程中使用的二维码。

请求

<EMPTY>

响应

名称类型
payload Stack_GetQrCode_Result

GetSvcDirectoryWatcher

返回 SvcDirectoryWatcher,以监控特定端点的 Weave 服务目录中的更改。

请求

名称类型
endpoint_id ServiceEndpointId
watcher server_end<SvcDirectoryWatcher>

ResetConfig

重置 Weave 配置。

请求

名称类型
flags ResetConfigFlags

响应

名称类型
payload Stack_ResetConfig_Result

StackProvider

fuchsia.weave/weavestack.fidl 中定义

其他组件向 WeaveStack 提供的服务。

SetWlanNetworkConfigProvider

向 WeaveStack 注册 WLAN 网络配置提供程序。 一次只能设置一个提供商。

在存在活跃提供程序时尝试设置新的提供程序会关闭渠道以转为活跃提供程序,并且会被新的提供程序所取代。

TODO(https://fxbug.dev/42140705):当当前 WLAN 网络配置可在多个组件之间共享时,此接口可能会被弃用。

请求

名称类型
provider WlanNetworkConfigProvider

SvcDirectoryWatcher

fuchsia.weave/weavestack.fidl 中定义

监控特定端点 ID 的 Weave Service Directory 条目中的更改。端点 ID 在 中指定,此协议从 fuchsia.weave/Stack.GetServiceDirectoryWatcher 检索。

WatchServiceDirectory

返回受监控端点 ID 的 HostPort 矢量。

首次调用会返回 HostPort 或 地址块的当前列表,直到可以通过服务获取此列表。后续调用将阻塞,直到进行新的 ServiceDirectory 查找,并返回与受监控的端点 ID 关联的列表,该列表不一定与先前的值相同。

如果之前的调用仍处于待处理状态,则调用 WatchServiceDirectory 将导致相应渠道通过 ZX_ERR_BAD_STATE 关闭。

请求

<EMPTY>

响应

名称类型
host_port_list vector<HostPort>[256]

WlanNetworkConfigProvider

fuchsia.weave/weavestack.fidl 中定义

充当 WeaveStack 的 WLAN 网络配置提供程序的组件需要实现这一点。

WatchConnectedNetwork

当有新信息可用时,返回当前的网络配置。

第一次调用会返回当前网络配置(如果有),否则返回空配置。WeaveStack 使用网络配置并发送另一个请求。

请求

<EMPTY>

响应

名称类型
network_config fuchsia.wlan.policy/NetworkConfig

结构

Bootstrap_ImportWeaveConfig_Response

fuchsia.weave/bootstrap.fidl 中定义

<EMPTY>

FactoryDataManager_GetPairingCode_Response

fuchsia.weave/auth.fidl 中定义

字段类型说明默认
pairing_code vector<uint8>[16] 无默认取景方式

FactoryDataManager_GetWeaveCertificate_Response 资源

fuchsia.weave/auth.fidl 中定义

字段类型说明默认
certificate fuchsia.mem/Buffer 无默认取景方式

HostPort

fuchsia.weave/weavestack.fidl 中定义

主机和端口元组,用于表示可连接的端点。

字段类型说明默认
host Host 无默认取景方式
port uint16 无默认取景方式

Provisioner_GenerateKeyPair_Response

fuchsia.weave/auth.fidl 中定义

字段类型说明默认
wrapped_private_key PrivateKey 无默认取景方式
public_key vector<uint8>[65] 无默认取景方式

QrCode

fuchsia.weave/weavestack.fidl 中定义

用于配对的二维码数据。

字段类型说明默认
data string[256]

字符串格式的二维码数据(在二维码中提供此字符串应足以进行配对)。

无默认取景方式

Signer_SignHashWithPrivateKey_Response

fuchsia.weave/auth.fidl 中定义

字段类型说明默认
signature vector<uint8>[139] 无默认取景方式

Signer_SignHash_Response

fuchsia.weave/auth.fidl 中定义

字段类型说明默认
signature vector<uint8>[139] 无默认取景方式

Stack_GetQrCode_Response

fuchsia.weave/weavestack.fidl 中定义

字段类型说明默认
qr_code QrCode 无默认取景方式

Stack_ResetConfig_Response

fuchsia.weave/weavestack.fidl 中定义

<EMPTY>

枚举

ErrorCode 严格

类型:uint32

fuchsia.weave/common.fidl 中定义

名称说明
1

存储空间中找不到密钥/配对代码。

2

加密操作期间发生错误。

3

提供的参数无效。

4

Weave 处于无效状态,无法支持此操作。

2147483647

发生未知或非具体错误。

PairingState

fuchsia.weave/weavestack.fidl 中定义

配对/配置的当前状态。当设备完全取消配置或恢复出厂设置时,所有状态都将为 false。在显式 ResetConfig 调用或恢复出厂设置之外,配置状态仅会在配置 Weave 配置文件时从 false 转换为 true

序数字段类型说明
is_weave_fully_provisioned bool

Weave 是否已完全配置?这意味着所有预配均已按预期完成配置。

is_wlan_provisioned bool

是否配置了 Wi-Fi?默认值为 false。

is_thread_provisioned bool

是否已配置线程?默认值为 false。

is_fabric_provisioned bool

是否已配置结构?默认值为 false。

is_service_provisioned bool

是否已配置该服务?默认值为 false。

联合

Bootstrap_ImportWeaveConfig_Result 严格

fuchsia.weave/bootstrap.fidl 中定义

序数变体类型说明
response Bootstrap_ImportWeaveConfig_Response
err zx/Status

FactoryDataManager_GetPairingCode_Result 严格

fuchsia.weave/auth.fidl 中定义

序数变体类型说明
response FactoryDataManager_GetPairingCode_Response
err ErrorCode

FactoryDataManager_GetWeaveCertificate_Result strict 资源

fuchsia.weave/auth.fidl 中定义

序数变体类型说明
response FactoryDataManager_GetWeaveCertificate_Response
err ErrorCode

主机严格

fuchsia.weave/weavestack.fidl 中定义

以主机名或 IP 地址表示主机。

序数变体类型说明
hostname fuchsia.net/Hostname
ip_address fuchsia.net/IpAddress

Provisioninger_GenerateKeyPair_Result 严格

fuchsia.weave/auth.fidl 中定义

序数变体类型说明
response Provisioner_GenerateKeyPair_Response
err ErrorCode

Signer_SignHashWithPrivateKey_Result 严格

fuchsia.weave/auth.fidl 中定义

序数变体类型说明
response Signer_SignHashWithPrivateKey_Response
err ErrorCode

Signer_SignHash_Result 严格

fuchsia.weave/auth.fidl 中定义

序数变体类型说明
response Signer_SignHash_Response
err ErrorCode

Stack_GetQrCode_Result 严格

fuchsia.weave/weavestack.fidl 中定义

序数变体类型说明
response Stack_GetQrCode_Response
err ErrorCode

Stack_ResetConfig_Result 严格

fuchsia.weave/weavestack.fidl 中定义

序数变体类型说明
response Stack_ResetConfig_Response
err ErrorCode

BITS

ResetConfigFlags 严格

类型:uint16

fuchsia.weave/weavestack.fidl 中定义

ResetConfig 标志。

名称说明
1

重置网络配置信息。

2

重置结构脉络配置信息。

4

重置服务配置信息。

8

重置设备操作凭据。

常量

名称类型说明
MAX_HOST_PORTS 256 uint32

Weave 可以在 HostPortList 中返回的 HostPort 数上限,因为 Weave 会通过 uint8 为 HostPortList 编制索引。

MAX_PUBLIC_KEY_SIZE 65 uint32

生成密钥对时生成的公钥的大小上限。

MAX_QR_CODE_SIZE 256 uint32

以字符串格式编码的二维码可能支持的最大大小。

MAX_SIGNATURE_SIZE 139 uint32

Weave 支持的签名大小上限。

目前,Weave 仅支持使用 P224 曲线的 ECDSA 签名,但为了让此协议支持未来对受支持的 Weave 签名的更改,所返回签名的大小上限设置为 139 个字节,这是返回经过编码的 ECDSA P521 签名所需的最大空间。

RESET_CONFIG_ALL 255 uint16

重置所有设备配置信息。

别名

名称说明
PrivateKey vector[fidl/MAX]

表示封装的私钥的字节。由于封装的大小由实现定义,因此字节仅受 MAX 限制。字节在结构和内容上都应被视为不透明,因为该值仅对 Provisioner.GenerateKeyPair 等操作有意义。

ServiceEndpointId uint64

端点 ID,用于在 Weave Service Directory 中查找端点时识别需要关注的服务端点。