mvondracek / PA193_mnemonic_Slytherin

BIP39 Mnemonic Phrase Generator and Verifier
0 stars 3 forks source link

Requirements analysis #3

Closed mvondracek closed 4 years ago

mvondracek commented 4 years ago

Let's read specification and analyse requirements for this project so that we can define individual tasks during next meeting.

Please add additional resources to this thread.

mvondracek commented 4 years ago

From project assignment: obrazek

I understand it that we can design our tool in a reasonable way and decide whether to read from files, read from stdin, or both. I think it's fine to read from files only. @sobuch, do you think it's required to support both?

sobuch commented 4 years ago

well, yes? i think its a standard thing to support arguments from cmdline in cli, when it makes sense, and I dont see reason why, for example, use case when you provide mnemonic on cmdline and recover seed and entropy as binary files or indeed as hexa strings to stdin, shouldnt be supported

mvondracek commented 4 years ago

Although it might be more convenient for the user if our tool would support other various use cases and combinations of arguments, I see low benefit of such big refactoring at this stage of the project in comparison to high risk of introducing bugs while rewriting tests. Implementation deadline is after tomorow, I'm convinced it would not be wise to start big refactoring of core functionality or to add new features now. We still have bugs to fix.

Our tool currently supports plenty of arguments. Entropy, mnemonic, and seed are specified by arguments and read from/written to specified files.

(venv) mnemoniccli -h
usage: mnemoniccli [-h] [-V]
                   [-ll {debug,warning,info,error,critical,disabled}]
                   [-e FILE] [-s FILE] [-m FILE] [-f {bin,hex}] [-p PASSWORD]
                   (-g | -r | -v)

BIP39 Mnemonic Phrase Generator and Verifier

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -ll {debug,warning,info,error,critical,disabled}, --logging-level {debug,warning,info,error,critical,disabled}
                        select logging level (default: disabled)
  -e FILE, --entropy FILE
                        path to file with entropy, input/output depends on
                        action,
  -s FILE, --seed FILE  path to file with seed, input/output depends on
                        action,
  -m FILE, --mnemonic FILE
                        path to file with mnemonic, input/output depends on
                        action,
  -f {bin,hex}, --format {bin,hex}
                        select input and output format (default: hex)
  -p PASSWORD, --password PASSWORD
                        password for protection of seed
  -g, --generate        generate seed and mnemonic phrase from entropy
  -r, --recover         recover entropy and seed from mnemonic phrase
  -v, --verify          verify if provided phrase generates expected seed

Team Slytherin: @sobuch, @lsolodkova, @mvondracek. Secure Coding Principles
and Practices (PA193) Faculty of Informatics (FI) Masaryk University (MU)