A simple application that receives a message, displays it, and requests user approval to sign. Can also display an example menu.
This project will try to build nanos-secure-sdk, so you will need:
- A standard ARM gcc (
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
) - Cross compilation headers (
sudo apt-get install gcc-multilib
) - Python3 (
sudo apt-get install python3
) - Pip3 (
sudo apt-get install python3-pip
)
- install Clang
- install an ARM GCC toolchain
- Python
Other things you will need:
- Cargo-ledger
- Speculos (make sure you add speculos.py to your PATH by running
export PATH=/path/to/speculos:$PATH
) - The correct target for rustc:
rustup target add thumbv6m-none-eabi
You can build on either Windows or Linux with a simple cargo build
or cargo build --release
.
It currently builds on stable.
You can use cargo-ledger which builds, outputs a hex
file and a manifest file for ledgerctl
, and loads it on a device in a single cargo ledger load
command in your app directory.
Some options of the manifest file can be configured directly in Cargo.toml
under a custom section:
[package.metadata.nanos]
curve = "secp256k1"
flags = "0x40"
icon = "btc.gif"
One can for example use speculos
cargo run --release
defaults to running speculos on the generated binary with the appropriate flags, if speculos.py
is in your PATH
.
There is a small test script that sends some of the available commands in test/test_cmds.py
, or raw APDUs that can be used with ledgerctl
.