Autumn 2019 semester project for PA193
Implements generation of mnemonic sentence as defined in BIP39 Bitcoin Improvement Proposal 39. Written in C++, the implementation provides 3 basic functionalities:
The implementation itself (not counting tests) consists of two components: the library and the CLI. The library defines and implements API for usage in other projects. CLI provides demonstration of the library's functionality using command line arguments.
c++17
CMake
, version at least 3.0OpenSSL
libraryBuilding the CMake projects creates three files - a bip39
library, a cli
, and
testsuite
.
API is described in the header files dictionary.hpp
and mnemonic.hpp
.
Availible arguments:
-h --help Prints out help similar to this one and quits
-d --dictionary Sets path to file with dictionary (REQUIRED)
Exactly one of those three options are required:
-g --generate <entropy> Generates mnemonic phrase and seed from input entropy file
-r --reverse <phrase> Generates initial entropy and seed from mnemonic phrase
-c --check <phrase> <seed> Checks if phrase generates seed
The last binary runs all tests from tests/
directory. Tests were written using
Catch2 unit testing framework which is already included in the repository, so it
generates no additional prerequisites.