A QT based application for the Digital Bitbox hardware wallet
#285 Compare This branch is 752 commits ahead, 1 commit behind jonasschnelli:master.
jonasschnelli Merge #308: Fix DMG and NSI packages/scripts
21faee9 Fix windows NSI installer privileg issue (Jonas Schnelli)
4736bd2 Fix code signing and HFS+ vs APFS dmg (Jonas Schnelli)

Pull request description:

Tree-SHA512: 8f87c71fd63c2818cbd4388a32ac9d57212640de3c9e84385bbd7331a1f7f95f9981c6ef889ece3b098043e9f160c52072014fc93a333d0f75383475815a73c0
Latest commit aa65977 Apr 18, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build-aux/m4
contrib Squashed 'src/libbtc/' content from commit 3c4eee1 Oct 22, 2015
debian Add debian packaging structure Jun 15, 2016
depends
include
mac
src
win
.gitignore
.gitmodules
.travis.yml
LICENSE add readme and license Jul 13, 2015
Makefile.am
README.md
autogen.sh Squashed 'src/libbtc/' content from commit 3c4eee1 Oct 22, 2015
configure.ac Bump version to 3.0.0 Mar 23, 2018
release-notes.md

README.md

License Build Status

DBB-APP

A QT based application for the Digital Bitbox hardware wallet. The application support managing your dbb device (create new wallet, backup, set 2FA key, etc.). It also supports co-signing together with a Bitpay Copay Wallet.

dbb-app

The dbb-app Qt app will be built if qt5 is available on your system or if --with-gui=qt5 has been set.

dbb-cli

This package includes a cli tool "dbb-cli" which can be used to direcly talk with your Digital Bitbox.

Examples:

  • dbb-cli help
  • dbb-cli -newpassword=0000 password
  • dbb-cli -newpassword=test -password=0000 password
  • dbb-cli -password=test led
  • dbb-cli -password=test seed
  • dbb-cli -password=test -keypath=m/44/0 xpub
  • dbb-cli -password=test erase

Below are available commands with possible arguments (* indicates mandatory). Refer to the API documentation for explanations about each command.

  erase 
  password -*newpassword
  led 
  seed -source (default: create), -raw (default: false), -entropy (default: 0123456789abcde), -key (default: 1234), -filename (default: backup.dat)
  backuplist 
  backuperaseall 
  backuperasefile -*filename
  backup -key (default: 1234), -filename (default: backup.dat)
  sign -lock_pin (default: 1234), -meta (default: meta), -*hasharray, -pubkeyarray

    Example
    This signs the given hash(es) with the private key specified at the BIP32/44 keypath. The command must be sent two times in order to sign - refer to the API documentation. It also optionally checks if a pubkey matches the pubkey derived at the given keypath.
    =======
    dbb-cli --password=0000 sign -hasharray='[{"hash": "f6f4a3633eda92eef9dd96858dec2f5ea4dfebb67adac879c964194eb3b97d79", "keypath":"m/44/0"}]' -pubkeyarray='[{"pubkey":"0270526bf580ddb20ad18aad62b306d4beb3b09fae9a70b2b9a93349b653ef7fe9", "keypath":"m/44"}]' -meta=34982a264657cdf2635051bd778c99e73ce5eb2e8c7f9d32b8aaa7e547c7fd90

  xpub -*keypath
  random -mode (default: true)
  info 
  lock 
  verifypass -operation (default: create)
  aes -type (default: encrypt), -*data
  bootloaderunlock 
  bootloaderlock 
  firmware -filename
  hidden_password -*hiddenpassword 

Build Instructions

Dependencies:

dbb-cli and dbb-app depend on libbtc (https://github.com/libbtc/libbtc) for key generation, signing, hashing, crypto, etc. Libbtc is included as git subtree and will be compiled during the normal build process.

OSX:

brew install hidapi libevent qt5

Linux (Ubuntu 15.04):

sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config git
sudo apt-get install libusb-1.0-0-dev libcurl4-openssl-dev libudev-dev libqrencode-dev
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libqt5websockets5-dev libavahi-compat-libdnssd-dev

Linux (Fedora 21/22):

sudo yum groupinstall "C Development Tests and Libraries"
sudo yum install git hidapi-devel
sudo yum install mesa-libGL-devel qt5-qttools-devel

*nix depends secure build (from hash-verified source)

Optionally probably want to create out-of-tree directory to save latest source & built binaries:

mkdir -p deps-cache/sources/

git clone https://github.com/digitalbitbox/dbb-app.git
cd dbb-app/depends
make -j4 BASE_CACHE=(absolute-path-here)/deps-cache/ SOURCES_PATH=(absolute-path-here)/deps-cache/sources/
cd ..
./autogen.sh
./configure --prefix=`pwd`/depends/x86_64-pc-linux-gnu --enable-debug --with-gui=qt5
make

Basic build steps:

./autogen.sh
./configure --enable-debug --with-gui=qt5 --enable-libusb
make
sudo make install