Skip to content

Commit

Permalink
build(legacy): build with secp256k1-zkp library
Browse files Browse the repository at this point in the history
  • Loading branch information
onvej-sl committed Nov 17, 2021
1 parent 410a477 commit 5563069
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
16 changes: 16 additions & 0 deletions legacy/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Q := @
endif

PYTHON ?= python
CC_FOR_BUILD ?= gcc

ifeq ($(EMULATOR),1)
CC ?= gcc
Expand Down Expand Up @@ -84,6 +85,8 @@ LDFLAGS += -L$(TOP_DIR) \
$(CPUFLAGS) \
$(FPUFLAGS)

ZKP_PATH = $(TOP_DIR)vendor/secp256k1-zkp

ifeq ($(EMULATOR),1)
CFLAGS += -DEMULATOR=1

Expand Down Expand Up @@ -200,6 +203,19 @@ $(NAME).elf: $(OBJS) $(LDSCRIPT) $(LIBDEPS)
@printf " LD $@\n"
$(Q)$(LD) -o $(NAME).elf $(OBJS) $(LDLIBS) $(LDFLAGS)

$(ZKP_PATH)/src/ecmult_static_context.h: $(ZKP_PATH)/src/gen_context.c
@printf " GEN $@\n"
$(Q)$(CC_FOR_BUILD) $(ZKP_CFLAGS) $(ZKP_PATH)/src/gen_context.c -o $(ZKP_PATH)/gen_context
$(Q)cd $(ZKP_PATH) && ./gen_context

secp256k1-zkp.o: $(ZKP_PATH)/src/ecmult_static_context.h
@printf " CC $@\n"
$(Q)$(CC) $(CFLAGS) -Wno-unused-function $(ZKP_CFLAGS) -I$(ZKP_PATH) -I$(ZKP_PATH)/src -c $(ZKP_PATH)/src/secp256k1.c -o secp256k1-zkp.o

field_10x26_arm.o:
@printf " AS $@\n"
$(Q)$(CC) $(CFLAGS) $(ZKP_CFLAGS) -c $(ZKP_PATH)/src/asm/field_10x26_arm.s -o field_10x26_arm.o

%.o: %.S Makefile
@printf " AS $@\n"
$(Q)$(CC) $(CPUFLAGS) -o $@ -c $<
Expand Down
1 change: 1 addition & 0 deletions legacy/firmware/.changelog.d/1897.added
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support of BIP-340 Schnorr signatures (using secp256k1-zkp).
35 changes: 35 additions & 0 deletions legacy/firmware/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,41 @@ APPVER = 1.8.0

NAME = trezor

SECP256K1_ZKP ?= 1


ifeq ($(SECP256K1_ZKP),1)
CFLAGS += -DUSE_SECP256K1_ZKP
CFLAGS += -DUSE_SECP256K1_ZKP_ECDSA
ifeq ($(EMULATOR),1)
CFLAGS += -DSECP256K1_CONTEXT_SIZE=208
else
CFLAGS += -DSECP256K1_CONTEXT_SIZE=184
OBJS += field_10x26_arm.o
endif
ZKP_CFLAGS = \
-DUSE_ASM_ARM \
-DUSE_NUM_NONE \
-DUSE_FIELD_INV_BUILTIN \
-DUSE_SCALAR_INV_BUILTIN \
-DUSE_EXTERNAL_ASM \
-DUSE_FIELD_10X26 \
-DUSE_SCALAR_8X32 \
-DUSE_ECMULT_STATIC_PRECOMPUTATION \
-DUSE_EXTERNAL_DEFAULT_CALLBACKS \
-DECMULT_GEN_PREC_BITS=4 \
-DECMULT_WINDOW_SIZE=8 \
-DENABLE_MODULE_GENERATOR \
-DENABLE_MODULE_RECOVERY \
-DENABLE_MODULE_SCHNORRSIG \
-DENABLE_MODULE_EXTRAKEYS

OBJS += secp256k1-zkp.o
OBJS += ../vendor/trezor-crypto/zkp_bip340.o
OBJS += ../vendor/trezor-crypto/zkp_context.o
OBJS += ../vendor/trezor-crypto/zkp_ecdsa.o
endif

ifeq ($(EMULATOR),1)
OBJS += udp.o
else
Expand Down
1 change: 1 addition & 0 deletions legacy/vendor/secp256k1-zkp

0 comments on commit 5563069

Please sign in to comment.