mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-13 10:08:08 +00:00
chore(core): introduce elligator2 feature flag
This commit is contained in:
parent
322e269f85
commit
cac5a6aab0
@ -17,6 +17,7 @@ FEATURE_FLAGS = {
|
|||||||
"RDI": True,
|
"RDI": True,
|
||||||
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
|
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
|
||||||
"SYSTEM_VIEW": False,
|
"SYSTEM_VIEW": False,
|
||||||
|
"ELLIGATOR2": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
FEATURES_WANTED = ["input", "sbu", "sd_card", "rgb_led", "dma2d", "consumption_mask", "usb" ,"optiga"]
|
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-sha3.c',
|
||||||
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
|
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
|
||||||
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
|
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
|
||||||
'vendor/trezor-crypto/elligator2.c',
|
|
||||||
'vendor/trezor-crypto/groestl.c',
|
'vendor/trezor-crypto/groestl.c',
|
||||||
'vendor/trezor-crypto/hasher.c',
|
'vendor/trezor-crypto/hasher.c',
|
||||||
'vendor/trezor-crypto/hmac.c',
|
'vendor/trezor-crypto/hmac.c',
|
||||||
@ -368,6 +368,12 @@ if FEATURE_FLAGS["SYSTEM_VIEW"]:
|
|||||||
CPPDEFINES_MOD += ['SYSTEM_VIEW']
|
CPPDEFINES_MOD += ['SYSTEM_VIEW']
|
||||||
CCFLAGS_MOD += '-DSYSTEM_VIEW '
|
CCFLAGS_MOD += '-DSYSTEM_VIEW '
|
||||||
|
|
||||||
|
if FEATURE_FLAGS["ELLIGATOR2"]:
|
||||||
|
CPPDEFINES_MOD += ['USE_ELLIGATOR2']
|
||||||
|
SOURCE_MOD += [
|
||||||
|
'vendor/trezor-crypto/elligator2.c',
|
||||||
|
]
|
||||||
|
|
||||||
# fonts
|
# fonts
|
||||||
tools.add_font('NORMAL', FONT_NORMAL, CPPDEFINES_MOD, SOURCE_MOD)
|
tools.add_font('NORMAL', FONT_NORMAL, CPPDEFINES_MOD, SOURCE_MOD)
|
||||||
tools.add_font('BOLD', FONT_BOLD, 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 = {
|
FEATURE_FLAGS = {
|
||||||
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
|
"SECP256K1_ZKP": True, # required for trezor.crypto.curve.bip340 (BIP340/Taproot)
|
||||||
|
"ELLIGATOR2": True,
|
||||||
}
|
}
|
||||||
|
|
||||||
CCFLAGS_MOD = ''
|
CCFLAGS_MOD = ''
|
||||||
@ -113,7 +114,6 @@ SOURCE_MOD += [
|
|||||||
'vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c',
|
'vendor/trezor-crypto/ed25519-donna/ed25519-sha3.c',
|
||||||
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
|
'vendor/trezor-crypto/ed25519-donna/ed25519.c',
|
||||||
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
|
'vendor/trezor-crypto/ed25519-donna/modm-donna-32bit.c',
|
||||||
'vendor/trezor-crypto/elligator2.c',
|
|
||||||
'vendor/trezor-crypto/groestl.c',
|
'vendor/trezor-crypto/groestl.c',
|
||||||
'vendor/trezor-crypto/hasher.c',
|
'vendor/trezor-crypto/hasher.c',
|
||||||
'vendor/trezor-crypto/hmac.c',
|
'vendor/trezor-crypto/hmac.c',
|
||||||
@ -171,6 +171,12 @@ if FEATURE_FLAGS["SECP256K1_ZKP"]:
|
|||||||
'vendor/trezor-crypto/zkp_bip340.c',
|
'vendor/trezor-crypto/zkp_bip340.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if FEATURE_FLAGS["ELLIGATOR2"]:
|
||||||
|
CPPDEFINES_MOD += ['USE_ELLIGATOR2']
|
||||||
|
SOURCE_MOD += [
|
||||||
|
'vendor/trezor-crypto/elligator2.c',
|
||||||
|
]
|
||||||
|
|
||||||
# modtrezorio
|
# modtrezorio
|
||||||
SOURCE_MOD += [
|
SOURCE_MOD += [
|
||||||
'embed/extmod/modtrezorio/modtrezorio.c',
|
'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-crc.h"
|
||||||
#include "modtrezorcrypto-curve25519.h"
|
#include "modtrezorcrypto-curve25519.h"
|
||||||
#include "modtrezorcrypto-ed25519.h"
|
#include "modtrezorcrypto-ed25519.h"
|
||||||
|
#if USE_ELLIGATOR2
|
||||||
#include "modtrezorcrypto-elligator2.h"
|
#include "modtrezorcrypto-elligator2.h"
|
||||||
|
#endif
|
||||||
#include "modtrezorcrypto-groestl.h"
|
#include "modtrezorcrypto-groestl.h"
|
||||||
#include "modtrezorcrypto-hmac.h"
|
#include "modtrezorcrypto-hmac.h"
|
||||||
#include "modtrezorcrypto-nist256p1.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_PTR(&mod_trezorcrypto_curve25519_module)},
|
||||||
{MP_ROM_QSTR(MP_QSTR_ed25519),
|
{MP_ROM_QSTR(MP_QSTR_ed25519),
|
||||||
MP_ROM_PTR(&mod_trezorcrypto_ed25519_module)},
|
MP_ROM_PTR(&mod_trezorcrypto_ed25519_module)},
|
||||||
|
#if USE_ELLIGATOR2
|
||||||
{MP_ROM_QSTR(MP_QSTR_elligator2),
|
{MP_ROM_QSTR(MP_QSTR_elligator2),
|
||||||
MP_ROM_PTR(&mod_trezorcrypto_elligator2_module)},
|
MP_ROM_PTR(&mod_trezorcrypto_elligator2_module)},
|
||||||
|
#endif
|
||||||
#if !BITCOIN_ONLY
|
#if !BITCOIN_ONLY
|
||||||
{MP_ROM_QSTR(MP_QSTR_monero), MP_ROM_PTR(&mod_trezorcrypto_monero_module)},
|
{MP_ROM_QSTR(MP_QSTR_monero), MP_ROM_PTR(&mod_trezorcrypto_monero_module)},
|
||||||
#endif
|
#endif
|
||||||
|
@ -4,12 +4,16 @@ from trezorcrypto import ( # noqa: F401
|
|||||||
bip39,
|
bip39,
|
||||||
chacha20poly1305,
|
chacha20poly1305,
|
||||||
crc,
|
crc,
|
||||||
elligator2,
|
|
||||||
hmac,
|
hmac,
|
||||||
pbkdf2,
|
pbkdf2,
|
||||||
random,
|
random,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
from trezorcrypto import elligator2 # noqa: F401
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
from trezor import utils
|
from trezor import utils
|
||||||
|
|
||||||
if not utils.BITCOIN_ONLY:
|
if not utils.BITCOIN_ONLY:
|
||||||
|
Loading…
Reference in New Issue
Block a user