Migration services: Difference between revisions
| Line 867: | Line 867: | ||
| 0x1 || [[#Initialize|Initialize]] | | 0x1 || [[#Initialize|Initialize]] | ||
|- | |- | ||
| 0x8 || | | 0x8 || [[#Challenge|Challenge]] | ||
|- | |- | ||
| 0x9 || [[#Initialize|Initialize2]] | | 0x9 || [[#Initialize|Initialize2]] | ||
| Line 907: | Line 907: | ||
| 0x0 || 0x28 || Passphrase for key derivation. | | 0x0 || 0x28 || Passphrase for key derivation. | ||
|- | |- | ||
| 0x28 || 0x20 || Must match the random data previously sent by the | | 0x28 || 0x20 || Must match the random data previously sent by the client. | ||
|- | |- | ||
| 0x48 || 0x20 || | | 0x48 || 0x20 || | ||
| Line 917: | Line 917: | ||
=== Initialize === | === Initialize === | ||
This request is sent after [[#KeyExchange|KeyExchange]]. | This request is sent after [[#KeyExchange|KeyExchange]]. The Initialize2 request is sent after [[#Challenge|Challenge]]. | ||
Plaintext request payload: | Plaintext request payload: | ||
| Line 931: | Line 931: | ||
When handling the response, the client sets a state flag. The Initialize2 message is the same as Initialize, except that state field isn't updated during response handling. | When handling the response, the client sets a state flag. The Initialize2 message is the same as Initialize, except that state field isn't updated during response handling. | ||
=== Challenge === | |||
This is the first request sent after reconnecting to the server, when an existing connection was previously in use. | |||
Plaintext request payload: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x20 || Data from [[SPL_services|GenerateRandomBytes]]. | |||
|} | |||
Plaintext response payload: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset || Size || Description | |||
|- | |||
| 0x0 || 0x20 || Must match the random data previously sent by the client. | |||
|- | |||
| 0x20 || 0x20 || Copied into state by the client. | |||
|} | |||
= Notes = | = Notes = | ||