| @@ -1,3 +1,34 @@ | |||
| # CHAP | |||
| #CHAP | |||
| Some python scrips for demonstrating chap protocol | |||
| This are two little python scripts to demonstrate the CHAP workflow. One script is serving and the other fetching. | |||
| ##Presets | |||
| - Python 3 | |||
| ##Usage | |||
| To use just first start the server and then the client script | |||
| ##Internal workings | |||
| The server script will the serve a XMLRPC server with 4 endpoints on Port 8000 at localhost (the local machine) : | |||
| - init(): [ *session_id*: *uuid*, *seed*: *uuid* ] | |||
| This endpoint will start a new session and send you the id and seed of this new session | |||
| - auth( *session_id*: *uuid*, *password_hash*: *string*): *bool* | |||
| This endpoint requires the session id and your password hash generated from the password concatenated with the seed and hashed using sha256 | |||
| It will return whether the password is correct and you are authorized and set you as authorized in the server instance | |||
| - logout( *session_id*: *uuid*, *password_hash*: *string*): *bool* | |||
| This endpoint requires the session id and your password hash generated from the password concatenated with the seed and hashed using sha256 | |||
| It will destroy the session and return you if it worked (should always return true) | |||
| - hello(): *string* | |||
| This endpoint will return a string with a hello message if you are authorized and a denial message otherwise | |||
| Note: *uuid* is not a the DataType but a string in uuid format | |||
| The client script will then establish a connection, initialize a session, successfully authorize itself, print the return value from hello method and finally destroy the session. | |||