Both the request and reply are undocumented.
Client -> Server:
(BYTE[20]) Client Password Proof (for old password)
(BYTE[32]) Salt (for new password)
(BYTE[32]) Verifier (for new password)
Server -> Client:
(DWORD) Result
(BYTE[32]) Server Password Proof ("M[2]") (for old password)
Possible result codes:
0x00: Password changed.
0x02: Incorrect old password.
Does the client echo that data back in the response or is that a mistake? The draft format that's present already does not contain M1, s, or v for the server->client message.
It's a mistake. The information currently available is correct.
Thanks. This has been published now.