This is a showcase repository of a Rust-based team project created as part of a secure programming course at FI MUNI. There were two other contributors apart from myself - Marek Skácelík and Přemysl Bednárek.
BIP 380, but in its fastest street-legal version.
💡 This manual covers setup for Linux-based operating systems. If you are planning to run this on some other platform, we suppose you already have the knowledge to do so. Nevertheless, the process is very similar.
There are two ways you can get started with this tool:
-
💾 Download an executable from our release page.
-
⚡ Open a terminal in the same folder where you downloaded the executable and run it.
./bip380 --help
If an error occurs while trying to do this, you may need to add a permission for executing the file. You can do that with
chmod +x bip380
. -
🚀 If the previous command displayed the help message, you're good to go.
⚠️ Note that this option is not recommended for users with minimal programming knowledge. You will also need the Rust toolset installed before proceeding, you can learn more about that at the official Rust documentation page.
-
💾 Clone or download this repository. This can be done via
Code
dropdown section at the repository home, or by using one of the methods below.SSH
git clone [email protected]:pv286/teams/team-15.git
HTTPS
git clone https://gitlab.fi.muni.cz/pv286/teams/team-15.git
ZIP
🖱️ Click this link to download. After downloading, extract the ZIP file contents.
-
📂 Enter the folder with the code (the name can differ if you specified a custom name).
cd team-15
-
🔨 Compile the code.
cargo build --release
-
⚡ Run the produced executable.
./target/release/bip380 --help
-
🚀 If the previous command displayed the help message, you're good to go.
🗒️ You can also run the code without explicitly pre-compiling it with
cargo run
(more about it here).
You can run all the tests for the project with this command:
cargo test
As noted in the libraries section below, some of the tests require that you build the application (i.e., running
cargo build
) prior to running the tests.
The base cryptographic library is bip32
. 🔗
For base58 encoding, our project utilizes the bs58
crate. 🔗
For the testing purposes, there is a assert_cmd
library that simulates running this tool from the command line. 🔗
The assert_cmd also requires that you build the application (i.e.,
cargo build
) prior to running any test that uses this library.
To compute SHA-256 hashes, we rely on the Sha256::digest
that is imported from the bip32
crate.