pawsd:protocol
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pawsd:protocol [2026/04/07 17:50] – Verb 2: Query services winter | pawsd:protocol [2026/04/29 17:25] (current) – [Verb 4098 (0x1002): Fetch contact] formatting winter | ||
|---|---|---|---|
| Line 90: | Line 90: | ||
| ===== Verb 1: Fetch service ===== | ===== Verb 1: Fetch service ===== | ||
| - | The client asks the server for a particular service. Even if the service exists, the server may not have it, in which case it should | + | The client asks the server for a particular service. Even if the service exists, the server may not have it, in which case it may respond " |
| Request payload: | Request payload: | ||
| Line 253: | Line 253: | ||
| The response payload is identical to the //Start authentication// | The response payload is identical to the //Start authentication// | ||
| + | |||
| + | |||
| + | ===== Verb 4098 (0x1002): Fetch contact ===== | ||
| + | |||
| + | The client sends a zone's public key to be looked up in the authenticated user's contact list. (" | ||
| + | |||
| + | Request payload: | ||
| + | |||
| + | ^ Field ^ Length | ||
| + | | auth token | 32 bytes | [32]u8 | | ||
| + | | public key type | 2 bytes | enum | | ||
| + | | public key length | 2 bytes | u16 | | ||
| + | | public key | varies | ||
| + | |||
| + | The server will either respond " | ||
| + | |||
| + | ^ Field ^ Length | ||
| + | | local name length | 2 bytes | u16 | | ||
| + | | local name | varies | ||
| + | | trust level | 1 byte | enum | | ||
| + | | introducer zone | varies | ||
| + | |||
| + | The trust level can be one of the following values: | ||
| + | * 0 = **distrusted**: | ||
| + | * 1 = **neutral**: | ||
| + | * 2 = **introduced**: | ||
| + | * 3 = **trusted**: | ||
| + | |||
| + | The introducer zone field may be set to the public key of a zone that points to the requested zone, as an explanation for the trust level being " | ||
| + | |||
| + | |||
| + | ===== Verb 4099 (0x1003): Put contact ===== | ||
| + | |||
| + | The client sends a zone's public key, local name, trust level and optionally an introducer zone, to be stored by the server in the authenticated user's contacts. If the zone in question was already in the contacts, its entry will be modified to the new information. | ||
| + | |||
| + | Request payload: | ||
| + | |||
| + | ^ Field ^ Length | ||
| + | | auth token | 32 bytes | [32]u8 | ||
| + | | public key type | 2 bytes | enum | | ||
| + | | public key length | 2 bytes | u16 | | ||
| + | | public key | varies | ||
| + | | local name length | 2 bytes | u16 | | ||
| + | | local name | varies | ||
| + | | trust level | 1 byte | enum | | ||
| + | | introducer zone | varies | ||
| + | |||
| + | Response payload: | ||
| + | |||
| + | ^ Field ^ Length ^ Type | | ||
| + | | updated? | 1 byte | boolean | | ||
| + | |||
| + | " | ||
| + | |||
| + | |||
| + | ===== Verb 4100 (0x1004): Remove contact ===== | ||
| + | |||
| + | The client sends a zone's public key, to be removed from the authenticated user's contact list. | ||
| + | |||
| + | Request payload: | ||
| + | |||
| + | ^ Field ^ Length | ||
| + | | auth token | 32 bytes | [32]u8 | | ||
| + | | public key type | 2 bytes | enum | | ||
| + | | public key length | 2 bytes | u16 | | ||
| + | | public key | varies | ||
| + | |||
| + | Response payload is empty. A successful status code indicates that the contact was deleted, whereas if the contact didn't exist in the first place, the status should be " | ||
pawsd/protocol.1775584238.txt.gz · Last modified: by winter
