| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.weave |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| |
| ## **PROTOCOLS** |
| |
| ## Bootstrap {#Bootstrap} |
| *Defined in [fuchsia.weave/bootstrap.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/bootstrap.fidl;l=13)* |
| <p>Protocol to allow components to provide initial configuration data derived from |
| an existing Weave implementation to ensure continuity of the Weave fabric and |
| other Weave settings or configuration data.</p> |
| |
| |
| ### ImportWeaveConfig {#Bootstrap.ImportWeaveConfig} |
| |
| <p>Import a JSON-formatted Weave config providing data in the format |
| expected to satisfy the Weave DeviceLayer |
| <a href="https://github.com/openweave/openweave-core/blob/master/src/adaptations/device-layer/include/Weave/DeviceLayer/ConfigurationManager.h">ConfigurationManager</a>.</p> |
| <p>Configuration is guaranteed to have been persisted upon successful |
| completion of this call.</p> |
| |
| |
| |
| #### Request {#Bootstrap.ImportWeaveConfig_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>config_json</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.mem/'>fuchsia.mem</a>/<a class='link' href='../fuchsia.mem/#Buffer'>Buffer</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Bootstrap.ImportWeaveConfig_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Bootstrap_ImportWeaveConfig_Result'>Bootstrap_ImportWeaveConfig_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## FactoryDataManager {#FactoryDataManager} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=74)* |
| <p>This protocol is used to retrieve factory data that may be encrypted at |
| rest.</p> |
| |
| |
| ### GetPairingCode {#FactoryDataManager.GetPairingCode} |
| |
| <p>Return the device <code>pairing_code</code> on success.</p> |
| |
| |
| |
| #### Request {#FactoryDataManager.GetPairingCode_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#FactoryDataManager.GetPairingCode_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#FactoryDataManager_GetPairingCode_Result'>FactoryDataManager_GetPairingCode_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetWeaveCertificate {#FactoryDataManager.GetWeaveCertificate} |
| |
| <p>Returns the factory provisioned Weave certificate in PEM format.</p> |
| |
| |
| |
| #### Request {#FactoryDataManager.GetWeaveCertificate_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#FactoryDataManager.GetWeaveCertificate_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#FactoryDataManager_GetWeaveCertificate_Result'>FactoryDataManager_GetWeaveCertificate_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## PairingStateWatcher {#PairingStateWatcher} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=91)* |
| <p>Watches for changes in pairing state in Weave. Retrieved from |
| <a class='link' href='../fuchsia.weave/'>fuchsia.weave</a>/<a class='link' href='../fuchsia.weave/#Stack.GetPairingStateWatcher'>Stack.GetPairingStateWatcher</a>.</p> |
| |
| |
| ### WatchPairingState {#PairingStateWatcher.WatchPairingState} |
| |
| <p>Returns the state of pairing.</p> |
| <p>First call returns the current pairing state or blocks until the pairing |
| state is available. Subsequent calls will block until the pairing state |
| changes.</p> |
| <p>Calling WatchPairingState when a previous call is still pending will cause |
| the channel to be closed with <code>ZX_ERR_BAD_STATE</code>.</p> |
| |
| |
| |
| #### Request {#PairingStateWatcher.WatchPairingState_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#PairingStateWatcher.WatchPairingState_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>state</code></td> |
| <td> |
| <code><a class='link' href='#PairingState'>PairingState</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Provisioner {#Provisioner} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=28)* |
| <p>This protocol is used for just-in-time provisioning operations.</p> |
| |
| |
| ### GenerateKeyPair {#Provisioner.GenerateKeyPair} |
| |
| <p>Generate key for just-in-time provisioning operations, used when |
| working with Weave operational certificates. On success, a wrapped |
| private key and public key pair is returned in <code>result</code>. The |
| <code>wrapped_private_key</code> can be passed to <a class='link' href='#Signer.SignHashWithPrivateKey'>Signer.SignHashWithPrivateKey</a> |
| to sign Weave messages.</p> |
| <p>Currently, Weave only supports ECDSA signatures. This protocol returns |
| a key-pair compatible with the Signer protocol (e.g. P256).</p> |
| |
| |
| |
| #### Request {#Provisioner.GenerateKeyPair_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Provisioner.GenerateKeyPair_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Provisioner_GenerateKeyPair_Result'>Provisioner_GenerateKeyPair_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Signer {#Signer} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=46)* |
| <p>This protocol is used for signing operations with the factory-provisioned |
| Weave key or generated private keys.</p> |
| |
| |
| ### SignHash {#Signer.SignHash} |
| |
| <p>Sign the provided <code>hash</code> with the factory provisioned key. On success |
| the result is returned in <code>signature</code>. The signature must be of a type |
| that is supported by Weave, and must take the standard form of an ASN.1 |
| DER SEQUENCE. This operation must support SHA1 and SHA256 hash values.</p> |
| |
| |
| |
| #### Request {#Signer.SignHash_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>hash</code></td> |
| <td> |
| <code>vector<uint8>[32]</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Signer.SignHash_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Signer_SignHash_Result'>Signer_SignHash_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SignHashWithPrivateKey {#Signer.SignHashWithPrivateKey} |
| |
| <p>Sign the provided <code>hash</code> with the provided <code>wrapped_private_key</code>. On |
| success, the result is returned in <code>signature</code>. The signature must be |
| of a type that is supported by Weave, and must take the standard form |
| of an ASN.1 DER SEQUENCE. This operation must support SHA1 and SHA256 |
| hash values.</p> |
| |
| |
| |
| #### Request {#Signer.SignHashWithPrivateKey_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>hash</code></td> |
| <td> |
| <code>vector<uint8>[32]</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>wrapped_private_key</code></td> |
| <td> |
| <code><a class='link' href='#PrivateKey'>PrivateKey</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Signer.SignHashWithPrivateKey_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Signer_SignHashWithPrivateKey_Result'>Signer_SignHashWithPrivateKey_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Stack {#Stack} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=123)* |
| <p>Calls and services available from WeaveStack. These calls are designed to |
| wrap the Weave adaptation and provide information or capabilities to Weave |
| applications or components that are interested in information that Weave |
| exposes.</p> |
| |
| |
| ### GetPairingStateWatcher {#Stack.GetPairingStateWatcher} |
| |
| <p>Returns a PairingStateWatcher to watch for changes in pairing state.</p> |
| |
| |
| |
| #### Request {#Stack.GetPairingStateWatcher_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>watcher</code></td> |
| <td> |
| <code>server_end<<a class='link' href='#PairingStateWatcher'>PairingStateWatcher</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### GetQrCode {#Stack.GetQrCode} |
| |
| <p>Returns a QR code that can be used in the pairing process.</p> |
| |
| |
| |
| #### Request {#Stack.GetQrCode_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Stack.GetQrCode_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Stack_GetQrCode_Result'>Stack_GetQrCode_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetSvcDirectoryWatcher {#Stack.GetSvcDirectoryWatcher} |
| |
| <p>Returns a SvcDirectoryWatcher to watch changes in the Weave service |
| directory for a particular endpoint.</p> |
| |
| |
| |
| #### Request {#Stack.GetSvcDirectoryWatcher_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>endpoint_id</code></td> |
| <td> |
| <code><a class='link' href='#ServiceEndpointId'>ServiceEndpointId</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>watcher</code></td> |
| <td> |
| <code>server_end<<a class='link' href='#SvcDirectoryWatcher'>SvcDirectoryWatcher</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### ResetConfig {#Stack.ResetConfig} |
| |
| <p>Reset the Weave configuration.</p> |
| |
| |
| |
| #### Request {#Stack.ResetConfig_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>flags</code></td> |
| <td> |
| <code><a class='link' href='#ResetConfigFlags'>ResetConfigFlags</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Stack.ResetConfig_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Stack_ResetConfig_Result'>Stack_ResetConfig_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## StackProvider {#StackProvider} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=146)* |
| <p>Services Provided to WeaveStack by other components.</p> |
| |
| |
| ### SetWlanNetworkConfigProvider {#StackProvider.SetWlanNetworkConfigProvider} |
| |
| <p>Registers a WLAN network configuration provider with WeaveStack. |
| Only one provider can be set at a time.</p> |
| <p>Attempts to set a new provider while there is an active provider |
| will close the channel to active provider and will be replaced |
| by the new provider.</p> |
| <p>TODO(fxbug.dev/62322): This interface may be deprecated when current |
| WLAN network configuration can be shared amongst multiple components.</p> |
| |
| |
| |
| #### Request {#StackProvider.SetWlanNetworkConfigProvider_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>provider</code></td> |
| <td> |
| <code><a class='link' href='#WlanNetworkConfigProvider'>WlanNetworkConfigProvider</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## SvcDirectoryWatcher {#SvcDirectoryWatcher} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=74)* |
| <p>Watches for changes in Weave Service Directory entries for a particular endpoint |
| ID. The endpoint ID is specified in, and this protocol retrieved from |
| <a class='link' href='../fuchsia.weave/'>fuchsia.weave</a>/<a class='link' href='../fuchsia.weave/#Stack.GetServiceDirectoryWatcher'>Stack.GetServiceDirectoryWatcher</a>.</p> |
| |
| |
| ### WatchServiceDirectory {#SvcDirectoryWatcher.WatchServiceDirectory} |
| |
| <p>Returns a vector of HostPorts for the watched endpoint ID.</p> |
| <p>First call returns the current list of HostPorts or blocks until the list |
| is available from the service. Subsequent calls will block until a new |
| ServiceDirectory lookup is made and will return the list associated with |
| the watched endpoint ID, which may or may not be the same as prior values.</p> |
| <p>Calling WatchServiceDirectory when a previous call is still pending will |
| cause the channel to be closed with <code>ZX_ERR_BAD_STATE</code>.</p> |
| |
| |
| |
| #### Request {#SvcDirectoryWatcher.WatchServiceDirectory_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#SvcDirectoryWatcher.WatchServiceDirectory_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>host_port_list</code></td> |
| <td> |
| <code>vector<<a class='link' href='#HostPort'>HostPort</a>>[256]</code> |
| </td> |
| </tr> |
| </table> |
| |
| ## WlanNetworkConfigProvider {#WlanNetworkConfigProvider} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=107)* |
| <p>Component acting as WLAN network configuration provider for WeaveStack need to |
| implement this.</p> |
| |
| |
| ### WatchConnectedNetwork {#WlanNetworkConfigProvider.WatchConnectedNetwork} |
| |
| <p>Returns current network configuration when new information is available.</p> |
| <p>First call returns the current network configuration if available, |
| otherwise return empty config. WeaveStack consumes network config |
| and sends another request.</p> |
| |
| |
| |
| #### Request {#WlanNetworkConfigProvider.WatchConnectedNetwork_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#WlanNetworkConfigProvider.WatchConnectedNetwork_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>network_config</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.wlan.policy/'>fuchsia.wlan.policy</a>/<a class='link' href='../fuchsia.wlan.policy/#NetworkConfig'>NetworkConfig</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### Bootstrap_ImportWeaveConfig_Response {#Bootstrap_ImportWeaveConfig_Response data-text="Bootstrap_ImportWeaveConfig_Response"} |
| *Defined in [fuchsia.weave/bootstrap.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/bootstrap.fidl;l=22)* |
| |
| <EMPTY> |
| |
| ### FactoryDataManager_GetPairingCode_Response {#FactoryDataManager_GetPairingCode_Response data-text="FactoryDataManager_GetPairingCode_Response"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=76)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="FactoryDataManager_GetPairingCode_Response.pairing_code"> |
| <td><code>pairing_code</code></td> |
| <td> |
| <code>vector<uint8>[16]</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### FactoryDataManager_GetWeaveCertificate_Response [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#FactoryDataManager_GetWeaveCertificate_Response data-text="FactoryDataManager_GetWeaveCertificate_Response"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=81)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="FactoryDataManager_GetWeaveCertificate_Response.certificate"> |
| <td><code>certificate</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.mem/'>fuchsia.mem</a>/<a class='link' href='../fuchsia.mem/#Buffer'>Buffer</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### HostPort {#HostPort data-text="HostPort"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=66)* |
| <p>A tuple of host and port to represent a connectable endpoint.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="HostPort.host"> |
| <td><code>host</code></td> |
| <td> |
| <code><a class='link' href='#Host'>Host</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="HostPort.port"> |
| <td><code>port</code></td> |
| <td> |
| <code>uint16</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Provisioner_GenerateKeyPair_Response {#Provisioner_GenerateKeyPair_Response data-text="Provisioner_GenerateKeyPair_Response"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=37)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Provisioner_GenerateKeyPair_Response.wrapped_private_key"> |
| <td><code>wrapped_private_key</code></td> |
| <td> |
| <code><a class='link' href='#PrivateKey'>PrivateKey</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Provisioner_GenerateKeyPair_Response.public_key"> |
| <td><code>public_key</code></td> |
| <td> |
| <code>vector<uint8>[65]</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### QrCode {#QrCode data-text="QrCode"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=53)* |
| <p>QR Code data for pairing.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="QrCode.data"> |
| <td><code>data</code></td> |
| <td> |
| <code>string[256]</code> |
| </td> |
| <td><p>QR code data in string format, supplying this string in a QR |
| code should be sufficient for pairing.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Signer_SignHashWithPrivateKey_Response {#Signer_SignHashWithPrivateKey_Response data-text="Signer_SignHashWithPrivateKey_Response"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=66)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Signer_SignHashWithPrivateKey_Response.signature"> |
| <td><code>signature</code></td> |
| <td> |
| <code>vector<uint8>[139]</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Signer_SignHash_Response {#Signer_SignHash_Response data-text="Signer_SignHash_Response"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=53)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Signer_SignHash_Response.signature"> |
| <td><code>signature</code></td> |
| <td> |
| <code>vector<uint8>[139]</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Stack_GetQrCode_Response {#Stack_GetQrCode_Response data-text="Stack_GetQrCode_Response"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=135)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Stack_GetQrCode_Response.qr_code"> |
| <td><code>qr_code</code></td> |
| <td> |
| <code><a class='link' href='#QrCode'>QrCode</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Stack_ResetConfig_Response {#Stack_ResetConfig_Response data-text="Stack_ResetConfig_Response"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=141)* |
| |
| <EMPTY> |
| |
| |
| ## **ENUMS** |
| |
| ### ErrorCode [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ErrorCode data-text="ErrorCode"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.weave/common.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/common.fidl;l=6)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="ErrorCode.FILE_NOT_FOUND"> |
| <td><h3 id="ErrorCode.FILE_NOT_FOUND" class="add-link hide-from-toc">FILE_NOT_FOUND</h3></td> |
| <td><code>1</code></td> |
| <td><p>Key/pairing code not found in storage.</p> |
| </td> |
| </tr> |
| <tr id="ErrorCode.CRYPTO_ERROR"> |
| <td><h3 id="ErrorCode.CRYPTO_ERROR" class="add-link hide-from-toc">CRYPTO_ERROR</h3></td> |
| <td><code>2</code></td> |
| <td><p>Error occurred during cryptographic operations.</p> |
| </td> |
| </tr> |
| <tr id="ErrorCode.INVALID_ARGUMENT"> |
| <td><h3 id="ErrorCode.INVALID_ARGUMENT" class="add-link hide-from-toc">INVALID_ARGUMENT</h3></td> |
| <td><code>3</code></td> |
| <td><p>An invalid argument was supplied.</p> |
| </td> |
| </tr> |
| <tr id="ErrorCode.INVALID_STATE"> |
| <td><h3 id="ErrorCode.INVALID_STATE" class="add-link hide-from-toc">INVALID_STATE</h3></td> |
| <td><code>4</code></td> |
| <td><p>Weave is in an invalid state to support the operation.</p> |
| </td> |
| </tr> |
| <tr id="ErrorCode.UNSPECIFIED_ERROR"> |
| <td><h3 id="ErrorCode.UNSPECIFIED_ERROR" class="add-link hide-from-toc">UNSPECIFIED_ERROR</h3></td> |
| <td><code>2147483647</code></td> |
| <td><p>An unknown or non-specific error occurred.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### PairingState {#PairingState data-text="PairingState"} |
| |
| |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=23)* |
| <p>Current state of pairing/provisioning. At the point of a completely unprovisioned |
| or factory reset device, all states will be <code>false</code>. Outside of an explicit |
| ResetConfig call or factory reset, the provisioning states will only transition |
| from <code>false</code> to <code>true</code> as Weave profiles are provisioned.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="PairingState.is_weave_fully_provisioned"> |
| <td><h3 id="PairingState.is_weave_fully_provisioned" class="add-link hide-from-toc">1</h3></td> |
| <td><code>is_weave_fully_provisioned</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Has Weave been fully provisioned? This implies that all provisioning |
| has been completed as expected as specified in the configuration.</p> |
| </td> |
| </tr> |
| <tr id="PairingState.is_wlan_provisioned"> |
| <td><h3 id="PairingState.is_wlan_provisioned" class="add-link hide-from-toc">2</h3></td> |
| <td><code>is_wlan_provisioned</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Has WiFi been provisioned? Defaults to false.</p> |
| </td> |
| </tr> |
| <tr id="PairingState.is_thread_provisioned"> |
| <td><h3 id="PairingState.is_thread_provisioned" class="add-link hide-from-toc">3</h3></td> |
| <td><code>is_thread_provisioned</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Has Thread been provisioned? Defaults to false.</p> |
| </td> |
| </tr> |
| <tr id="PairingState.is_fabric_provisioned"> |
| <td><h3 id="PairingState.is_fabric_provisioned" class="add-link hide-from-toc">4</h3></td> |
| <td><code>is_fabric_provisioned</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Has the fabric been provisioned? Defaults to false.</p> |
| </td> |
| </tr> |
| <tr id="PairingState.is_service_provisioned"> |
| <td><h3 id="PairingState.is_service_provisioned" class="add-link hide-from-toc">5</h3></td> |
| <td><code>is_service_provisioned</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Has the service been provisioned? Defaults to false.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### Bootstrap_ImportWeaveConfig_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Bootstrap_ImportWeaveConfig_Result data-text="Bootstrap_ImportWeaveConfig_Result"} |
| *Defined in [fuchsia.weave/bootstrap.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/bootstrap.fidl;l=22)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Bootstrap_ImportWeaveConfig_Result.response"> |
| <td><h3 id="Bootstrap_ImportWeaveConfig_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Bootstrap_ImportWeaveConfig_Response'>Bootstrap_ImportWeaveConfig_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Bootstrap_ImportWeaveConfig_Result.err"> |
| <td><h3 id="Bootstrap_ImportWeaveConfig_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### FactoryDataManager_GetPairingCode_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#FactoryDataManager_GetPairingCode_Result data-text="FactoryDataManager_GetPairingCode_Result"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=76)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="FactoryDataManager_GetPairingCode_Result.response"> |
| <td><h3 id="FactoryDataManager_GetPairingCode_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#FactoryDataManager_GetPairingCode_Response'>FactoryDataManager_GetPairingCode_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="FactoryDataManager_GetPairingCode_Result.err"> |
| <td><h3 id="FactoryDataManager_GetPairingCode_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### FactoryDataManager_GetWeaveCertificate_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#FactoryDataManager_GetWeaveCertificate_Result data-text="FactoryDataManager_GetWeaveCertificate_Result"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=81)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="FactoryDataManager_GetWeaveCertificate_Result.response"> |
| <td><h3 id="FactoryDataManager_GetWeaveCertificate_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#FactoryDataManager_GetWeaveCertificate_Response'>FactoryDataManager_GetWeaveCertificate_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="FactoryDataManager_GetWeaveCertificate_Result.err"> |
| <td><h3 id="FactoryDataManager_GetWeaveCertificate_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Host [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Host data-text="Host"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=60)* |
| <p>Representation of a host either in the form of a hostname or IP address.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Host.hostname"> |
| <td><h3 id="Host.hostname" class="add-link hide-from-toc">1</h3></td> |
| <td><code>hostname</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#Hostname'>Hostname</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Host.ip_address"> |
| <td><h3 id="Host.ip_address" class="add-link hide-from-toc">2</h3></td> |
| <td><code>ip_address</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#IpAddress'>IpAddress</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Provisioner_GenerateKeyPair_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Provisioner_GenerateKeyPair_Result data-text="Provisioner_GenerateKeyPair_Result"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=37)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Provisioner_GenerateKeyPair_Result.response"> |
| <td><h3 id="Provisioner_GenerateKeyPair_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Provisioner_GenerateKeyPair_Response'>Provisioner_GenerateKeyPair_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Provisioner_GenerateKeyPair_Result.err"> |
| <td><h3 id="Provisioner_GenerateKeyPair_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Signer_SignHashWithPrivateKey_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Signer_SignHashWithPrivateKey_Result data-text="Signer_SignHashWithPrivateKey_Result"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=66)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Signer_SignHashWithPrivateKey_Result.response"> |
| <td><h3 id="Signer_SignHashWithPrivateKey_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Signer_SignHashWithPrivateKey_Response'>Signer_SignHashWithPrivateKey_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Signer_SignHashWithPrivateKey_Result.err"> |
| <td><h3 id="Signer_SignHashWithPrivateKey_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Signer_SignHash_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Signer_SignHash_Result data-text="Signer_SignHash_Result"} |
| *Defined in [fuchsia.weave/auth.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=53)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Signer_SignHash_Result.response"> |
| <td><h3 id="Signer_SignHash_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Signer_SignHash_Response'>Signer_SignHash_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Signer_SignHash_Result.err"> |
| <td><h3 id="Signer_SignHash_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Stack_GetQrCode_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Stack_GetQrCode_Result data-text="Stack_GetQrCode_Result"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=135)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Stack_GetQrCode_Result.response"> |
| <td><h3 id="Stack_GetQrCode_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Stack_GetQrCode_Response'>Stack_GetQrCode_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Stack_GetQrCode_Result.err"> |
| <td><h3 id="Stack_GetQrCode_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Stack_ResetConfig_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Stack_ResetConfig_Result data-text="Stack_ResetConfig_Result"} |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=141)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Stack_ResetConfig_Result.response"> |
| <td><h3 id="Stack_ResetConfig_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Stack_ResetConfig_Response'>Stack_ResetConfig_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Stack_ResetConfig_Result.err"> |
| <td><h3 id="Stack_ResetConfig_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='#ErrorCode'>ErrorCode</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| ## **BITS** |
| |
| ### ResetConfigFlags [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ResetConfigFlags} |
| Type: <code>uint16</code> |
| |
| *Defined in [fuchsia.weave/weavestack.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=38)* |
| <p>ResetConfig flags.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="ResetConfigFlags.NETWORK_CONFIG"> |
| <td><h3 id="ResetConfigFlags.NETWORK_CONFIG" class="add-link hide-from-toc">NETWORK_CONFIG</h3></td> |
| <td>1</td> |
| <td><p>Reset network configuration information.</p> |
| </td> |
| </tr> |
| <tr id="ResetConfigFlags.FABRIC_CONFIG"> |
| <td><h3 id="ResetConfigFlags.FABRIC_CONFIG" class="add-link hide-from-toc">FABRIC_CONFIG</h3></td> |
| <td>2</td> |
| <td><p>Reset fabric configuration information.</p> |
| </td> |
| </tr> |
| <tr id="ResetConfigFlags.SERVICE_CONFIG"> |
| <td><h3 id="ResetConfigFlags.SERVICE_CONFIG" class="add-link hide-from-toc">SERVICE_CONFIG</h3></td> |
| <td>4</td> |
| <td><p>Reset service configuration information.</p> |
| </td> |
| </tr> |
| <tr id="ResetConfigFlags.OPERATIONAL_CREDENTIALS"> |
| <td><h3 id="ResetConfigFlags.OPERATIONAL_CREDENTIALS" class="add-link hide-from-toc">OPERATIONAL_CREDENTIALS</h3></td> |
| <td>8</td> |
| <td><p>Reset device operational credentials.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="MAX_HOST_PORTS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=11">MAX_HOST_PORTS</a></td> |
| <td> |
| <code>256</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum number of HostPorts that Weave can return in a HostPortList, as |
| weave indexes HostPortLists by a uint8.</p> |
| </td> |
| </tr> |
| <tr id="MAX_PUBLIC_KEY_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=18">MAX_PUBLIC_KEY_SIZE</a></td> |
| <td> |
| <code>65</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum size for a public key produced when generating a key pair.</p> |
| </td> |
| </tr> |
| <tr id="MAX_QR_CODE_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=13">MAX_QR_CODE_SIZE</a></td> |
| <td> |
| <code>256</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The largest supported size of a QR code encoded in string format may be.</p> |
| </td> |
| </tr> |
| <tr id="MAX_SIGNATURE_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=15">MAX_SIGNATURE_SIZE</a></td> |
| <td> |
| <code>139</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>The maximum size of a signature supported by Weave.</p> |
| <p>Currently, Weave only supports ECDSA signatures using the P224 curve, |
| however, to allow this protocol to support future changes to supported |
| Weave signatures the maximum size of the returned signature is set to |
| 139 bytes which is the largest amount of space needed to return an |
| encoded ECDSA P521 signature.</p> |
| </td> |
| </tr> |
| <tr id="RESET_CONFIG_ALL"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=50">RESET_CONFIG_ALL</a></td> |
| <td> |
| <code>255</code> |
| </td> |
| <td><code>uint16</code></td> |
| <td><p>Reset all device configuration information.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ## **ALIASES** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="PrivateKey"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/auth.fidl;l=24">PrivateKey</a></td> |
| <td> |
| <code>vector</code>[<code><a class='link' href='../fidl/'>fidl</a>/<a class='link' href='../fidl/#MAX'>MAX</a></code>]</td> |
| <td><p>Bytes representing a wrapped private key. Since the size of the wrapping is |
| implementation-defined, the bytes are only bounded by MAX. The bytes should |
| be considered opaque, both in structure and in content, as the value is only |
| meaningful to operations such as <a class='link' href='#Provisioner.GenerateKeyPair'>Provisioner.GenerateKeyPair</a>.</p> |
| </td> |
| </tr> |
| <tr id="ServiceEndpointId"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.weave/weavestack.fidl;l=17">ServiceEndpointId</a></td> |
| <td> |
| <code>uint64</code></td> |
| <td><p>An endpoint ID used for identifying which service endpoints are of interest when |
| looking up endpoints in the Weave Service Directory.</p> |
| </td> |
| </tr> |
| </table> |