chore(core): introduce elligator2 feature flag

pull/3435/head
Ondřej Vejpustek 1 month ago
parent 322e269f85
commit cac5a6aab0

@ -17,6 +17,7 @@ FEATURE_FLAGS = {
"RDI": True,
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
"SYSTEM_VIEW": False,
"ELLIGATOR2": False,
}
FEATURES_WANTED = ["input", "sbu", "sd_card", "rgb_led", "dma2d", "consumption_mask", "usb" ,"optiga"]
@ -110,7 +111,6 @@ SOURCE_MOD += [
'vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c',
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
'vendor/trezor-crypto/elligator2.c',
'vendor/trezor-crypto/groestl.c',
'vendor/trezor-crypto/hasher.c',
'vendor/trezor-crypto/hmac.c',
@ -368,6 +368,12 @@ if FEATURE_FLAGS["SYSTEM_VIEW"]:
CPPDEFINES_MOD += ['SYSTEM_VIEW']
CCFLAGS_MOD += '-DSYSTEM_VIEW '
if FEATURE_FLAGS["ELLIGATOR2"]:
CPPDEFINES_MOD += ['USE_ELLIGATOR2']
SOURCE_MOD += [
'vendor/trezor-crypto/elligator2.c',
]
# fonts
tools.add_font('NORMAL', FONT_NORMAL, CPPDEFINES_MOD, SOURCE_MOD)
tools.add_font('BOLD', FONT_BOLD, CPPDEFINES_MOD, SOURCE_MOD)

@ -23,6 +23,7 @@ if TREZOR_MODEL in ('DISC1', ):
FEATURE_FLAGS = {
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
"ELLIGATOR2": True,
}
CCFLAGS_MOD = ''
@ -113,7 +114,6 @@ SOURCE_MOD += [
'vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c',
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
'vendor/trezor-crypto/elligator2.c',
'vendor/trezor-crypto/groestl.c',
'vendor/trezor-crypto/hasher.c',
'vendor/trezor-crypto/hmac.c',
@ -171,6 +171,12 @@ if FEATURE_FLAGS["SECP256K1_ZKP"]:
'vendor/trezor-crypto/zkp_bip340.c',
]
if FEATURE_FLAGS["ELLIGATOR2"]:
CPPDEFINES_MOD += ['USE_ELLIGATOR2']
SOURCE_MOD += [
'vendor/trezor-crypto/elligator2.c',
]
# modtrezorio
SOURCE_MOD += [
'embed/extmod/modtrezorio/modtrezorio.c',

@ -52,7 +52,9 @@ static void wrapped_ui_wait_callback(uint32_t current, uint32_t total) {
#include "modtrezorcrypto-crc.h"
#include "modtrezorcrypto-curve25519.h"
#include "modtrezorcrypto-ed25519.h"
#if USE_ELLIGATOR2
#include "modtrezorcrypto-elligator2.h"
#endif
#include "modtrezorcrypto-groestl.h"
#include "modtrezorcrypto-hmac.h"
#include "modtrezorcrypto-nist256p1.h"
@ -97,8 +99,10 @@ STATIC const mp_rom_map_elem_t mp_module_trezorcrypto_globals_table[] = {
MP_ROM_PTR(&mod_trezorcrypto_curve25519_module)},
{MP_ROM_QSTR(MP_QSTR_ed25519),
MP_ROM_PTR(&mod_trezorcrypto_ed25519_module)},
#if USE_ELLIGATOR2
{MP_ROM_QSTR(MP_QSTR_elligator2),
MP_ROM_PTR(&mod_trezorcrypto_elligator2_module)},
#endif
#if !BITCOIN_ONLY
{MP_ROM_QSTR(MP_QSTR_monero), MP_ROM_PTR(&mod_trezorcrypto_monero_module)},
#endif

@ -4,12 +4,16 @@ from trezorcrypto import ( # noqa: F401
bip39,
chacha20poly1305,
crc,
elligator2,
hmac,
pbkdf2,
random,
)
try:
from trezorcrypto import elligator2 # noqa: F401
except Exception:
pass
from trezor import utils
if not utils.BITCOIN_ONLY:

Loading…
Cancel
Save