blob: cf760d4d649da240d3cd479c0a2678b5db5d7f07 [file] [log] [blame] [view]
# SPAKE2+ Python Tool
SPAKE2+ Python Tool is a Python script for generating SPAKE2+ protocol
parameters (only Verifier as of today). SPAKE2+ protocol is used during Matter
commissioning to establish a secure session between the commissioner and the
commissionee.
## Usage Examples
To list all available subcommands:
```console
$ ./spake2p.py --help
usage: spake2p.py [-h] subcommand ...
SPAKE2+ Python Tool
positional arguments:
subcommand
gen-verifier Generate SPAKE2+ Verifier
options:
-h, --help show this help message and exit
```
To display parameters of the `gen-verifier` subcommand:
```console
$ ./spake2p.py gen-verifier --help
usage: spake2p.py gen-verifier [-h] -p PASSCODE -s SALT -i count
options:
-h, --help show this help message and exit
-p PASSCODE, --passcode PASSCODE
8-digit passcode
-s SALT, --salt SALT Salt of length 16 to 32 octets encoded in Base64
-i count, --iteration-count count
Iteration count between 1000 and 100000
```
To generate SPAKE2+ verifier for "SPAKE2P Key Salt" salt and 20202021 passcode,
using 1000 PBKDF2 iterations:
```console
./spake2p.py gen-verifier -p 20202021 -s U1BBS0UyUCBLZXkgU2FsdA== -i 1000
uWFwqugDNGiEck/po7KHwwMwwqZgN10XuyBajPGuyzUEV/iree4lOrao5GuwnlQ65CJzbeUB49s31EH+NEkg0JVI5MGCQGMMT/SRPFNRODm3wH/MBiehuFc6FJ/NH6Rmzw==
```