Fix mixed Segwit/regular inputs signing, add Bitcoin Cash app
This commit is contained in:
parent
8175cdc58b
commit
6fcd9d27f0
10
Makefile
10
Makefile
|
@ -24,7 +24,7 @@ APP_LOAD_PARAMS=--appFlags 0x50 --path "" --curve secp256k1 $(COMMON_LOAD_PARAMS
|
|||
|
||||
APPVERSION_M=1
|
||||
APPVERSION_N=1
|
||||
APPVERSION_P=7
|
||||
APPVERSION_P=8
|
||||
APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)
|
||||
|
||||
# ifndef COIN
|
||||
|
@ -39,6 +39,10 @@ else ifeq ($(COIN),bitcoin)
|
|||
# Bitcoin mainnet
|
||||
DEFINES += BTCHIP_P2PKH_VERSION=0 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Bitcoin\" COINID_UPCASE=\"BITCOIN\" COLOR_HDR=0xFCB653 COLOR_DB=0xFEDBA9 COINID_NAME=\"Bitcoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"BTC\" COIN_BITCOIN
|
||||
APPNAME ="Bitcoin"
|
||||
else ifeq ($(COIN),bitcoin_cash)
|
||||
# Bitcoin cash
|
||||
DEFINES += BTCHIP_P2PKH_VERSION=0 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Bitcoin\" COINID_UPCASE=\"BITCOINCASH\" COLOR_HDR=0x85bb65 COLOR_DB=0xc2ddb2 COINID_NAME=\"BitcoinCash\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"BCH\" COIN_BITCOIN_CASH
|
||||
APPNAME ="Bitcoin Cash"
|
||||
else ifeq ($(COIN),litecoin)
|
||||
# Litecoin
|
||||
DEFINES += BTCHIP_P2PKH_VERSION=48 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Litecoin\" COINID_UPCASE=\"LITECOIN\" COLOR_HDR=0xCCCCCC COLOR_DB=0xE6E6E6 COINID_NAME=\"Litecoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"LTC\" COIN_LITECOIN
|
||||
|
@ -68,11 +72,11 @@ else ifeq ($(COIN),peercoin)
|
|||
DEFINES += BTCHIP_P2PKH_VERSION=55 BTCHIP_P2SH_VERSION=117 BTCHIP_COIN_FAMILY=2 BTCHIP_COINID=\"Peercoin\" COINID_UPCASE=\"PPC\" COLOR_HDR=0x3790CA COLOR_DB=0x9BC8E5 COINID_NAME=\"Peercoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"PPC\" COIN_PEERCOIN HAVE_PEERCOIN_SUPPORT
|
||||
APPNAME ="Peercoin"
|
||||
else ifeq ($(COIN),posw)
|
||||
DEFINES += BTCHIP_P2PKH_VERSION=55 BTCHIP_P2SH_VERSION=85 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"PoSWallet\" COINID_UPCASE=\"POSW\" COLOR_HDR=0x23273D COLOR_DB=0x91939E COINID_NAME=\"PoSW\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"POSW\" COIN_POSW
|
||||
DEFINES += BTCHIP_P2PKH_VERSION=55 BTCHIP_P2SH_VERSION=85 BTCHIP_COIN_FAMILY=2 BTCHIP_COINID=\"PoSWallet\" COINID_UPCASE=\"POSW\" COLOR_HDR=0x23273D COLOR_DB=0x91939E COINID_NAME=\"PoSW\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"POSW\" COIN_POSW HAVE_PEERCOIN_SUPPORT
|
||||
APPNAME ="PoSW"
|
||||
else
|
||||
ifeq ($(filter clean,$(MAKECMDGOALS)),)
|
||||
$(error Unsupported COIN - use bitcoin_testnet, bitcoin, litecoin, dogecoin, dash, zcash, komodo, stratis, peercoin, posw)
|
||||
$(error Unsupported COIN - use bitcoin_testnet, bitcoin, bitcoin_cash, litecoin, dogecoin, dash, zcash, komodo, stratis, peercoin, posw)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 446 B |
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 68 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -50,6 +50,7 @@ unsigned short btchip_apdu_get_trusted_input() {
|
|||
btchip_set_check_internal_structure_integrity(1);
|
||||
dataOffset = 4;
|
||||
btchip_context_D.transactionHashOption = TRANSACTION_HASH_FULL;
|
||||
btchip_context_D.usingSegwit = 0;
|
||||
} else if (G_io_apdu_buffer[ISO_OFFSET_P1] != GET_TRUSTED_INPUT_P1_NEXT) {
|
||||
return BTCHIP_SW_INCORRECT_P1_P2;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
#include "btchip_apdu_constants.h"
|
||||
|
||||
#define SIGHASH_ALL 0x01
|
||||
#ifdef COIN_BITCOIN_CASH
|
||||
#define SIGHASH_FORKID 0x40
|
||||
#endif
|
||||
|
||||
unsigned short btchip_apdu_hash_sign() {
|
||||
unsigned long int lockTime;
|
||||
|
@ -84,10 +87,17 @@ unsigned short btchip_apdu_hash_sign() {
|
|||
|
||||
if (((N_btchip.bkp.config.options &
|
||||
BTCHIP_OPTION_FREE_SIGHASHTYPE) == 0)) {
|
||||
#ifdef COIN_BITCOIN_CASH
|
||||
if (sighashType != (SIGHASH_ALL | SIGHASH_FORKID)) {
|
||||
sw = BTCHIP_SW_INCORRECT_DATA;
|
||||
goto discardTransaction;
|
||||
}
|
||||
#else
|
||||
if (sighashType != SIGHASH_ALL) {
|
||||
sw = BTCHIP_SW_INCORRECT_DATA;
|
||||
goto discardTransaction;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Read transaction parameters
|
||||
|
|
Loading…
Reference in New Issue