Skip to content

Commit

Permalink
preauth raw secp256k1
Browse files Browse the repository at this point in the history
  • Loading branch information
CyonAlexRDX committed Nov 4, 2024
1 parent 87b9c51 commit 079ff4d
Show file tree
Hide file tree
Showing 86 changed files with 60 additions and 26 deletions.
13 changes: 13 additions & 0 deletions ragger_tests/application_client/curve.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@

class Curve(ABC):

@classmethod
@abstractmethod
def curve_name(cls) -> str:
pass

@classmethod
@abstractmethod
def unpack_pubkey(cls, response: bytes) -> PK:
Expand Down Expand Up @@ -47,6 +52,10 @@ def ins_sign_pre_auth_raw(cls) -> InsType:
pass

class SECP256K1(Curve):

@classmethod
def curve_name(cls) -> str:
return "secp256k1"

@classmethod
def ins_sign_rola(cls) -> InsType:
Expand Down Expand Up @@ -82,6 +91,10 @@ def unpack_pubkey(cls, response: bytes) -> PK:


class Curve25519(Curve):

@classmethod
def curve_name(cls) -> str:
return "ed25519"

@classmethod
def ins_sign_rola(cls) -> InsType:
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 25 additions & 21 deletions ragger_tests/test_sign_preauth_raw_ed25519.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,25 +89,6 @@ def sign_preauth_raw_with_file_name(
blind_signing_settings=blind_signing_settings
)

def sign_preauth_raw_ed25519(
firmware: Firmware,
backend: BackendInterface,
navigator: Navigator,
file_name: str,
test_name: str,
blind_signing_settings: BlindSigningSettings = BlindSigningSettings.FAIL_IF_OFF
):
sign_preauth_raw_with_file_name(
curve=Curve25519,
path="m/44'/1022'/12'/525'/1460'/0'",
firmware=firmware,
backend=backend,
navigator=navigator,
file_name=file_name,
test_name=test_name,
blind_signing_settings=blind_signing_settings
)

def list_files():
dir_path = "data"
res = []
Expand All @@ -116,10 +97,33 @@ def list_files():
res.append(os.path.join(path))
return res

def test_sign_preauth_raw_ed25519_all(firmware, backend, navigator):
def sign_preauth_raw_all(
curve: C,
path: str,
firmware: Firmware,
backend: BackendInterface,
navigator: Navigator,
):
for file_name in list_files():
if not file_name.endswith(".si"):
continue
sign_preauth_raw_ed25519(firmware, backend, navigator, file_name, test_name=file_name)
sign_preauth_raw_with_file_name(
curve=curve,
path=path,
firmware=firmware,
backend=backend,
navigator=navigator,
file_name=file_name,
test_name="test_sign_preauth_raw_" + curve.curve_name() + "_" + file_name
)


def test_sign_preauth_raw_ed25519_all(firmware, backend, navigator):
sign_preauth_raw_all(
curve=Curve25519,
path="m/44'/1022'/12'/525'/1460'/0'",
firmware=firmware,
backend=backend,
navigator=navigator,
)

12 changes: 12 additions & 0 deletions ragger_tests/test_sign_preauth_raw_secp256k1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from ragger_tests.application_client.curve import SECP256K1
from ragger_tests.test_sign_preauth_raw_ed25519 import sign_preauth_raw_all


def test_sign_preauth_raw_secp256k1_all(firmware, backend, navigator):
sign_preauth_raw_all(
curve=SECP256K1,
path="m/44'/1022'/10'/525'/1238'",
firmware=firmware,
backend=backend,
navigator=navigator,
)
15 changes: 10 additions & 5 deletions ragger_tests/test_sign_tx_secp256k1.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
from ragger.backend.interface import BackendInterface
from ragger.firmware.structs import Firmware
from ragger.navigator.navigator import Navigator
from ragger.backend.speculos import SpeculosBackend

from ragger_tests.application_client.curve import SECP256K1
from ragger_tests.test_sign_preauth_hash_ed25519 import enable_blind_signing
from ragger_tests.test_sign_tx_ed25519 import BlindSigningSettings, sign_tx_with_file_name

def sign_tx_secp256k1(
Expand All @@ -27,11 +29,14 @@ def sign_tx_secp256k1(
)


# def test_sign_tx_secp256k1_call_function(firmware, backend, navigator, test_name):
# sign_tx_secp256k1(
# firmware, backend, navigator, 0, "call_function.txn", test_name,
# blind_signing_settings=BlindSigningSettings.SKIP_IF_OFF
# )
def test_sign_tx_secp256k1_call_function(firmware, backend, navigator, test_name):
if isinstance(backend, SpeculosBackend):
enable_blind_signing(navigator)

sign_tx_secp256k1(
firmware, backend, navigator, 0, "call_function.txn", test_name,
blind_signing_settings=BlindSigningSettings.SKIP_IF_OFF
)

def test_sign_tx_secp256k1_simple_transfer(firmware, backend, navigator, test_name):
sign_tx_secp256k1(firmware, backend, navigator, 13, "simple_transfer.txn", test_name)
Expand Down

0 comments on commit 079ff4d

Please sign in to comment.