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 [[#KeyExchange|client]].
| 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 =