Striven
2025-09-10 15ce2d6a817b193516f024e43a075ae64d69c29c
Add proper headers for examples and parsing instructions
3 files modified
31 ■■■■ changed files
04_rendezvous/01_protocols/01_loginprotocol.md 5 ●●●● patch | view | raw | blame | history
04_rendezvous/03_rendezvous_structure.md 14 ●●●● patch | view | raw | blame | history
04_rendezvous/05_rmc_protocol.md 12 ●●●● patch | view | raw | blame | history
04_rendezvous/01_protocols/01_loginprotocol.md
@@ -4,7 +4,8 @@
Authenticates with the server using a [UbiServices](../../03_ubisoft_services/02_accessing_ubiservices.md) ticket. See [Initial Login Flow](../../03_ubisoft_services/04_initial_login_flow.md) for information on how to obtain one.
### Request
Example:
##### Full Packet Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  ED 0C 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F  í.....LoginProto
@@ -59,6 +60,7 @@
> [!NOTE]
> While this is a real packet sent, the ticket has been replaced with a dummy for security reasons. The normal ticket is a base64-encoded [JWT](../../03_ubisoft_services/04_initial_login_flow.md#ticket).
##### Parsing
| Name                | Description                                                         | Type                                             |
|---------------------|---------------------------------------------------------------------|--------------------------------------------------|
| Token               | Ticket obtained via UbiServices, identifying the connecting client. | [`String`](../03_rendezvous_structure.md#string) |
@@ -70,6 +72,7 @@
> [!NOTE]
> TODO: Example
##### Parsing
| Name                 | Description                                                        | Type                                             |
|----------------------|--------------------------------------------------------------------|--------------------------------------------------|
| User PID             | ID of the user profile that the connected client is identified as. | [`UUID`](../03_rendezvous_structure.md#uuid)     |
04_rendezvous/03_rendezvous_structure.md
@@ -3,12 +3,14 @@
## Common Structures
### `Buffer`
Example:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  04 00 01 02 04 05                                ......
```
##### Parsing
| Name   | Description                         | Type         |
|--------|-------------------------------------|--------------|
| Length | The length of the buffer, in bytes. | `u16`        |
@@ -17,12 +19,14 @@
The length of the data is `4`, with the bytes being: `.{ 1, 2, 3, 4 }`.
### `String`
Example:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  0E 00 4C 6F 67 69 6E 50 72 6F 74 6F 63 6F 6C 00  ..LoginProtocol.
```
##### Parsing
| Name   | Description                                                 | Type                |
|--------|-------------------------------------------------------------|---------------------|
| Buffer | The UTF-8 encoded, null-terminated string data as a buffer. | [`Buffer`](#buffer) |
@@ -30,18 +34,20 @@
Strings in RendezVous are null-terminated [buffers](#buffer) in UTF-8 encoding.
### `List<T>`
Example:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  01 00 00 00 12 00 43 6C 69 65 6E 74 56 65 72 73  ......ClientVers
00000010  69 6F 6E 49 6E 66 6F 00 01 00                    ionInfo...
```
##### Parsing
| Name            | Description                                 | Type                 |
|-----------------|---------------------------------------------|----------------------|
| Number of Items | The number of individual items in the list. | `u32`                |
| Items           | The items in the list.                      | `T[Number of Items]` |
##' `UUID`
### `UUID`
> TODO
04_rendezvous/05_rmc_protocol.md
@@ -13,6 +13,8 @@
| ...                                                                 | ...                                                               | ...                  |
## Base Packet Format
##### Parsing
| Name          | Description                                                                                                                                                 | Type                                            |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| Packet Length | The total number of bytes in the packet, not including the length itself.                                                                                   | `u32`                                           |
@@ -21,7 +23,8 @@
| ...           | See [Request Packet Format](#request-packet-format) or [Response Packet Format](#response-packet-format) for parsing the packet depending on `Is Request?`. | ...                                             |
## Request Packet Format
Example:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  F8 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F  ø.....LoginProto
@@ -42,6 +45,7 @@
000000F0  39 31 30 33 3B 73 69 64 3D 31 35 00              9103;sid=15.
```
##### Parsing
| Name           | Description                                                                                                                               | Type                                                                              |
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| ...            | See [Base Packet Format](#base-packet-format) for parsing the prologue of a request packet.                                               | ...                                                                               |
@@ -64,7 +68,8 @@
| Version        | The version of the structure.                     | `u16`                                           |
## Response Packet Format
Examples:
##### Example
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  25 00 00 00 0E 00 4C 6F 67 69 6E 50 72 6F 74 6F  %.....LoginProto
@@ -75,6 +80,7 @@
> [!NOTE]
> TODO: Successful response example
##### Parsing
| Name           | Description                                                                                                                                                                           | Type   |
|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|
| ...            | See [Base Packet Format](#base-packet-format) for parsing the prologue of a response packet.                                                                                          | ...    |
@@ -83,6 +89,7 @@
### Successful Response Format
##### Parsing
| Name          | Description                                                                                                                                | Type                                            |
|---------------|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| ...           | See [Response Packet Format](#response-packet-format) for parsing the prologue of a successful response packet.                            | ...                                             |
@@ -92,6 +99,7 @@
### Unsuccessful Response Format
##### Parsing
| Name            | Description                                                                                                        | Type                                            |
|-----------------|--------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| ...             | See [Response Packet Format](#response-packet-format) for parsing the prologue of an unsuccessful response packet. | ...                                             |