Açıklama Yok

Struan Clark b2597b3eed update readme 2 yıl önce
.github 091dac3f63 update CI, define text buf size 2 yıl önce
helpers 03f9ae6c65 #define for qr code content size 2 yıl önce
icons e85117bd38 touch ups 2 yıl önce
lib 47890a11e9 making crypto code a private lib 2 yıl önce
scenes 35209cc61b wording 2 yıl önce
views 091dac3f63 update CI, define text buf size 2 yıl önce
.gitignore 5674a3bcc8 Initial commit 2 yıl önce
LICENSE 5674a3bcc8 Initial commit 2 yıl önce
README.md b2597b3eed update readme 2 yıl önce
application.fam 73d2d96da7 removing cdefines, adjusting display for eth addrs 2 yıl önce
flipbip.c bc830bb871 clean up labels 2 yıl önce
flipbip.h 24d185faad bumping to v0.0.9, adding specific labels to input texts 2 yıl önce
flipbip_10px.png 81b9e2035f flipbip39 > flipbip 2 yıl önce

README.md

FlipBIP - BIP32/39/44

Build

Crypto toolkit for Flipper Zero

  • Built against 0.79.1 Flipper Zero firmware release
  • Using Trezor crypto libs from core/v2.5.3 release
  • Included in RogueMaster Custom Firmware

DONATE IF YOU FIND THE APP USEFUL

  • ETH (or ERC-20): xtruan.eth or 0xa9Ad79502cdaf4F6881f3C2ef260713e5B771CE2
  • BTC: 16RP5Ui5QrWrVh2rR7NKAPwE5A4uFjCfbs

Background

The goal of this project is to see how much crypto functionality can be brought to the Flipper Zero.

How to install on Flipper Zero

  • If you do not have one, download a Flipper Zero firmware to get the fbt build tool
  • Plug your Flipper Zero in via USB
  • Copy the contents of this folder into the applications_user folder of your firmware
  • Modify the site_scons/cc.scons file in the Flipper Zero firmware to add the "-Os" flag

Then run the command:

./fbt COMPACT=1 DEBUG=0 launch_app APPSRC=applications_user/FlipBIP

The application will be compiled and copied onto your device

Status

Complete

  • Trezor crypto C code ported into crypto subfolder
    • Adapted to use Flipper hardware RNG (see crypto/rand.c)
    • Imports and some C library functions modified for compatibility with FBT
  • Navigation and UI adapted from FAP Boilerplate app
  • BIP39 mnemonic generation
    • 24, 18, or 12 words configured in settings
  • BIP39 mnemonic to BIP39 seed generation
  • Hierarchical Deterministic (HD) wallet generation from seed
    • Generation of offline m/44'/0'/0'/0 BTC wallet
    • Generation of offline m/44'/60'/0'/0 ETH wallet (coded from the $SPORK Castle of ETHDenver 2023!)
    • Generation of offline m/44'/3'/0'/0 DOGE wallet
    • Similar features to: https://iancoleman.io/bip39/
  • Saving wallets to SD card
    • Wallets are saved to SD card upon creation in apps_data/flipbip
      • NOTE: apps_data folder must already exist on SD card!
    • Saved wallets can be viewed between app runs
    • Wallets are encrypted with a randomly generated key, and that key is also encrypted
      • .flipbip.dat and .flipbip.key files are both required to be in apps_data/flipbip
      • Backups of both these files .flipbip.dat.bak and .flipbip.key.bak are also maintained
      • If you want to externally back up your wallet, I recommend copying all these files, and storing the key and dat files seperately
    • NOTE: The wallets should be decently tough to crack off of a Flipper, however any Flipper with the app installed can load a wallet in the apps_data/flipbip directory if both the key and dat file are present. Therefore, it is HIGHLY RECOMMENDED to use the BIP39 passphrase functionality and store the passphrase in your brain or on paper separately from the Flipper!
  • BIP39 passphrase support
    • Configured in settings, not persisted between runs for security
  • Import your own mnemonic
    • Lots of typing required but you can now use the wallet with an existing mnemonic you have saved
    • Useful to convert paper backup to keys and receive addresses without relying on a laptop or phone
  • Improved receive address generation features
    • Addresses are now generated at the same time as other pieces of wallet info
    • This slows down initial wallet load, but makes UI much more responsive
    • QR code files are now generated for each address and stored in the apps_data/flipbip directory
    • This app is required to view the QR code files: https://github.com/bmatcuk/flipperzero-qrcode (included in RM firmware)
    • NOTE: This happens during the View Wallet step; you must view a wallet after generating/importing a wallet in order to ensure the address QR files are correct
  • Broke out crypto functionality into its own library using fap_private_libs feature

Work in Progress

  • More coin types
    • Support for more custom BIP32 wallet paths

(FAR) Future

  • Custom wallet security
    • User specified password
  • USB/Bluetooth wallet functionality