mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-31 18:40:56 +00:00
mocks: regenerated
using the ./build_mocks script
This commit is contained in:
parent
d23a236616
commit
f36b475109
@ -1,25 +1,45 @@
|
||||
from typing import *
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def init(self) -> None:
|
||||
def init() -> None:
|
||||
'''
|
||||
Initializes the storage. Must be called before any other method is called from this module!
|
||||
Initializes the storage. Must be called before any other method is
|
||||
called from this module!
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def get(app: int, key: int) -> bytes:
|
||||
def unlock(pin: int, waitcallback: (int, int -> None)) -> bool:
|
||||
'''
|
||||
Attempts to unlock the storage with given PIN. Returns True on
|
||||
success, False on failure.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def has_pin() -> bool:
|
||||
'''
|
||||
Returns True if storage has a configured PIN, False otherwise.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def change_pin(pin: int, newpin: int, waitcallback: (int, int -> None)) -> bool:
|
||||
'''
|
||||
Change PIN. Returns True on success, False on failure.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def get(app: int, key: int, public: bool=False) -> bytes:
|
||||
'''
|
||||
Gets a value of given key for given app (or empty bytes if not set).
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def set(app: int, key: int, value: bytes) -> None:
|
||||
def set(app: int, key: int, value: bytes, public: bool=False) -> None:
|
||||
'''
|
||||
Sets a value of given key for given app.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorconfig/modtrezorconfig.c
|
||||
def wipe(self) -> None:
|
||||
def wipe() -> None:
|
||||
'''
|
||||
Erases the whole config. Use with caution!
|
||||
'''
|
||||
|
@ -22,7 +22,18 @@ class HDNode:
|
||||
BIP0032 HD node structure.
|
||||
'''
|
||||
|
||||
def derive(self, index: int) -> None:
|
||||
def __init__(self,
|
||||
depth: int,
|
||||
fingerprint: int,
|
||||
child_num: int,
|
||||
chain_code: bytes,
|
||||
private_key: bytes = None,
|
||||
public_key: bytes = None,
|
||||
curve_name: str = None) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def derive(self, index: int, public: bool=False) -> None:
|
||||
'''
|
||||
Derive a BIP0032 child node in place.
|
||||
'''
|
||||
@ -82,13 +93,9 @@ class HDNode:
|
||||
Compute a base58-encoded address string from the HD node.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip32.h
|
||||
class Bip32:
|
||||
'''
|
||||
'''
|
||||
|
||||
def __init__(self):
|
||||
def ethereum_pubkeyhash(self) -> bytes:
|
||||
'''
|
||||
Compute an Ethereum pubkeyhash (aka address) from the HD node.
|
||||
'''
|
||||
|
||||
def deserialize(self, value: str, version_public: int, version_private: int) -> HDNode:
|
||||
@ -96,49 +103,67 @@ class Bip32:
|
||||
Construct a BIP0032 HD node from a base58-serialized value.
|
||||
'''
|
||||
|
||||
def from_seed(self, seed: bytes, curve_name: str) -> HDNode:
|
||||
def from_seed(seed: bytes, curve_name: str) -> HDNode:
|
||||
'''
|
||||
Construct a BIP0032 HD node from a BIP0039 seed value.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
class Bip39:
|
||||
def find_word(prefix: str) -> Optional[str]:
|
||||
'''
|
||||
Return the first word from the wordlist starting with prefix.
|
||||
'''
|
||||
|
||||
def __init__(self):
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
def complete_word(prefix: str) -> int:
|
||||
'''
|
||||
Return possible 1-letter suffixes for given word prefix.
|
||||
Result is a bitmask, with 'a' on the lowest bit, 'b' on the second lowest, etc.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
def generate(strength: int) -> str:
|
||||
'''
|
||||
Generate a mnemonic of given strength (128, 160, 192, 224 and 256 bits).
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
def from_data(data: bytes) -> str:
|
||||
'''
|
||||
Generate a mnemonic from given data (of 16, 20, 24, 28 and 32 bytes).
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
def check(mnemonic: str) -> bool:
|
||||
'''
|
||||
Check whether given mnemonic is valid.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-bip39.h
|
||||
def seed(mnemonic: str, passphrase: str) -> bytes:
|
||||
'''
|
||||
Generate seed from mnemonic and passphrase.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-blake256.h
|
||||
class Blake256:
|
||||
'''
|
||||
Blake256 context.
|
||||
'''
|
||||
|
||||
def __init__(self, data: bytes = None) -> None:
|
||||
'''
|
||||
Creates a hash context object.
|
||||
'''
|
||||
|
||||
def find_word(self, prefix: str) -> Optional[str]:
|
||||
def update(self, data: bytes) -> None:
|
||||
'''
|
||||
Return the first word from the wordlist starting with prefix.
|
||||
Update the hash context with hashed data.
|
||||
'''
|
||||
|
||||
def complete_word(self, prefix: str) -> int:
|
||||
def digest(self) -> bytes:
|
||||
'''
|
||||
Return possible 1-letter suffixes for given word prefix.
|
||||
Result is a bitmask, with 'a' on the lowest bit, 'b' on the second lowest, etc.
|
||||
'''
|
||||
|
||||
def generate(self, strength: int) -> str:
|
||||
'''
|
||||
Generate a mnemonic of given strength (128, 160, 192, 224 and 256 bits).
|
||||
'''
|
||||
|
||||
def from_data(self, data: bytes) -> str:
|
||||
'''
|
||||
Generate a mnemonic from given data (of 16, 20, 24, 28 and 32 bytes).
|
||||
'''
|
||||
|
||||
def check(self, mnemonic: str) -> bool:
|
||||
'''
|
||||
Check whether given mnemonic is valid.
|
||||
'''
|
||||
|
||||
def seed(self, mnemonic: str, passphrase: str) -> bytes:
|
||||
'''
|
||||
Generate seed from mnemonic and passphrase.
|
||||
Returns the digest of hashed data.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-blake2b.h
|
||||
@ -183,117 +208,140 @@ class Blake2s:
|
||||
Returns the digest of hashed data.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-chacha20poly1305.h
|
||||
class ChaCha20Poly1305:
|
||||
'''
|
||||
ChaCha20Poly1305 context.
|
||||
'''
|
||||
|
||||
def __init__(self, key: bytes, nonce: bytes) -> None:
|
||||
'''
|
||||
Initialize the ChaCha20 + Poly1305 context for encryption or decryption
|
||||
using a 32 byte key and 12 byte nonce as in the RFC 7539 style.
|
||||
'''
|
||||
|
||||
def encrypt(self, data: bytes) -> bytes:
|
||||
'''
|
||||
Encrypt data (length of data must be divisible by 64 except for the final value).
|
||||
'''
|
||||
|
||||
def decrypt(self, data: bytes) -> bytes:
|
||||
'''
|
||||
Decrypt data (length of data must be divisible by 64 except for the final value).
|
||||
'''
|
||||
|
||||
def auth(self, data: bytes) -> None:
|
||||
'''
|
||||
Include authenticated data in the Poly1305 MAC using the RFC 7539
|
||||
style with 16 byte padding. This must only be called once and prior
|
||||
to encryption or decryption.
|
||||
'''
|
||||
|
||||
def finish(self) -> bytes:
|
||||
'''
|
||||
Compute RFC 7539-style Poly1305 MAC.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-curve25519.h
|
||||
class Curve25519:
|
||||
def generate_secret() -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-curve25519.h
|
||||
def publickey(secret_key: bytes) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
|
||||
def generate_secret(self) -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
|
||||
def publickey(self, secret_key: bytes) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
|
||||
def multiply(self, secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key.
|
||||
Useful for ECDH.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-curve25519.h
|
||||
def multiply(secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key.
|
||||
Useful for ECDH.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
class Ed25519:
|
||||
def generate_secret() -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def publickey(secret_key: bytes) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
|
||||
def generate_secret(self) -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def sign(secret_key: bytes, message: bytes) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of message.
|
||||
'''
|
||||
|
||||
def publickey(self, secret_key: bytes) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def verify(public_key: bytes, signature: bytes, message: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the message.
|
||||
Returns True on success.
|
||||
'''
|
||||
|
||||
def sign(self, secret_key: bytes, message: bytes) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of message.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def cosi_combine_publickeys(public_keys: List[bytes]) -> bytes:
|
||||
'''
|
||||
Combines a list of public keys used in COSI cosigning scheme.
|
||||
'''
|
||||
|
||||
def verify(self, public_key: bytes, signature: bytes, message: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the message.
|
||||
Returns True on success.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def cosi_combine_signatures(R: bytes, signatures: List[bytes]) -> bytes:
|
||||
'''
|
||||
Combines a list of signatures used in COSI cosigning scheme.
|
||||
'''
|
||||
|
||||
def cosi_combine_publickeys(self, public_keys: List[bytes]) -> bytes:
|
||||
'''
|
||||
Combines a list of public keys used in COSI cosigning scheme.
|
||||
'''
|
||||
|
||||
def cosi_combine_signatures(self, R: bytes, signatures: List[bytes]) -> bytes:
|
||||
'''
|
||||
Combines a list of signatures used in COSI cosigning scheme.
|
||||
'''
|
||||
|
||||
def cosi_sign(self, secret_key: bytes, message: bytes, nonce: bytes, sigR: bytes, combined_pubkey: bytes) -> bytes:
|
||||
'''
|
||||
Produce signature of message using COSI cosigning scheme.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h
|
||||
def cosi_sign(secret_key: bytes, message: bytes, nonce: bytes, sigR: bytes, combined_pubkey: bytes) -> bytes:
|
||||
'''
|
||||
Produce signature of message using COSI cosigning scheme.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
class Nist256p1:
|
||||
def generate_secret() -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
def publickey(secret_key: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
|
||||
def generate_secret(self) -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
def sign(secret_key: bytes, digest: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of the digest.
|
||||
'''
|
||||
|
||||
def publickey(self, secret_key: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
def verify(public_key: bytes, signature: bytes, digest: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the digest.
|
||||
Returns True on success.
|
||||
'''
|
||||
|
||||
def sign(self, secret_key: bytes, digest: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of the digest.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
def verify_recover(signature: bytes, digest: bytes) -> bytes:
|
||||
'''
|
||||
Uses signature of the digest to verify the digest and recover the public key.
|
||||
Returns public key on success, None on failure.
|
||||
'''
|
||||
|
||||
def verify(self, public_key: bytes, signature: bytes, digest: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the digest.
|
||||
Returns True on success.
|
||||
'''
|
||||
|
||||
def verify_recover(self, signature: bytes, digest: bytes) -> bytes:
|
||||
'''
|
||||
Uses signature of the digest to verify the digest and recover the public key.
|
||||
Returns public key on success, None on failure.
|
||||
'''
|
||||
|
||||
def multiply(self, secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key
|
||||
Useful for ECDH
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h
|
||||
def multiply(secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key.
|
||||
Useful for ECDH.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-pbkdf2.h
|
||||
class Pbkdf2:
|
||||
@ -317,28 +365,22 @@ class Pbkdf2:
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-random.h
|
||||
class Random:
|
||||
def uniform(n: int) -> int:
|
||||
'''
|
||||
Compute uniform random number from interval 0 ... n - 1.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-random.h
|
||||
def bytes(len: int) -> bytes:
|
||||
'''
|
||||
Generate random bytes sequence of length len.
|
||||
'''
|
||||
|
||||
def uniform(self, n: int) -> int:
|
||||
'''
|
||||
Compute uniform random number from interval 0 ... n - 1
|
||||
'''
|
||||
|
||||
def bytes(self, len: int) -> bytes:
|
||||
'''
|
||||
Generate random bytes sequence of length len
|
||||
'''
|
||||
|
||||
def shuffle(self, data: list) -> None:
|
||||
'''
|
||||
Shuffles items of given list (in-place)
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-random.h
|
||||
def shuffle(data: list) -> None:
|
||||
'''
|
||||
Shuffles items of given list (in-place).
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-rfc6979.h
|
||||
class Rfc6979:
|
||||
@ -378,46 +420,43 @@ class Ripemd160:
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
class Secp256k1:
|
||||
def generate_secret() -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
def publickey(secret_key: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
|
||||
def generate_secret(self, ) -> bytes:
|
||||
'''
|
||||
Generate secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
def sign(secret_key: bytes, digest: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of the digest.
|
||||
'''
|
||||
|
||||
def publickey(self, secret_key: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Computes public key from secret key.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
def verify(public_key: bytes, signature: bytes, digest: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the digest.
|
||||
Returns True on success.
|
||||
'''
|
||||
|
||||
def sign(self, secret_key: bytes, digest: bytes, compressed: bool = True) -> bytes:
|
||||
'''
|
||||
Uses secret key to produce the signature of the digest.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
def verify_recover(signature: bytes, digest: bytes) -> bytes:
|
||||
'''
|
||||
Uses signature of the digest to verify the digest and recover the public key.
|
||||
Returns public key on success, None on failure.
|
||||
'''
|
||||
|
||||
def verify(self, public_key: bytes, signature: bytes, digest: bytes) -> bool:
|
||||
'''
|
||||
Uses public key to verify the signature of the digest.
|
||||
Returns True on success.
|
||||
'''
|
||||
|
||||
def verify_recover(self, signature: bytes, digest: bytes) -> bytes:
|
||||
'''
|
||||
Uses signature of the digest to verify the digest and recover the public key.
|
||||
Returns public key on success, None on failure.
|
||||
'''
|
||||
|
||||
def multiply(self, secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key.
|
||||
Useful for ECDH.
|
||||
'''
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h
|
||||
def multiply(secret_key: bytes, public_key: bytes) -> bytes:
|
||||
'''
|
||||
Multiplies point defined by public_key with scalar defined by secret_key.
|
||||
Useful for ECDH.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-sha1.h
|
||||
class Sha1:
|
||||
@ -523,22 +562,3 @@ class Sha512:
|
||||
'''
|
||||
Returns the digest of hashed data.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorcrypto/modtrezorcrypto-ssss.h
|
||||
class SSSS:
|
||||
'''
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def split(self, m: int, n: int, secret: bytes) -> tuple:
|
||||
'''
|
||||
Split secret to (M of N) shares using Shamir's Secret Sharing Scheme.
|
||||
'''
|
||||
|
||||
def combine(self, shares: tuple) -> bytes:
|
||||
'''
|
||||
Combine M shares of Shamir's Secret Sharing Scheme into secret.
|
||||
'''
|
||||
|
@ -1,5 +1,87 @@
|
||||
from typing import *
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-flash.h
|
||||
class FlashOTP:
|
||||
'''
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def FlashOTP.write(self, block: int, offset: int, data: bytes) -> None:
|
||||
'''
|
||||
Writes data to OTP flash
|
||||
'''
|
||||
|
||||
def FlashOTP.read(self, block: int, offset: int, data: bytearray) -> None:
|
||||
'''
|
||||
Reads data from OTP flash
|
||||
'''
|
||||
|
||||
def FlashOTP.lock(self, block: int) -> None:
|
||||
'''
|
||||
Lock OTP flash block
|
||||
'''
|
||||
|
||||
def FlashOTP.is_locked(self, block: int) -> bool:
|
||||
'''
|
||||
Is OTP flash block locked?
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-hid.h
|
||||
class HID:
|
||||
'''
|
||||
USB HID interface configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
iface_num: int,
|
||||
ep_in: int,
|
||||
ep_out: int,
|
||||
report_desc: bytes,
|
||||
subclass: int = 0,
|
||||
protocol: int = 0,
|
||||
polling_interval: int = 1,
|
||||
max_packet_len: int = 64) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def iface_num(self) -> int:
|
||||
'''
|
||||
Returns the configured number of this interface.
|
||||
'''
|
||||
|
||||
def write(self, msg: bytes) -> int:
|
||||
'''
|
||||
Sends message using USB HID (device) or UDP (emulator).
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-poll.h
|
||||
def poll(ifaces: Iterable[int], list_ref: List, timeout_us: int) -> bool:
|
||||
'''
|
||||
Wait until one of `ifaces` is ready to read or write (using masks
|
||||
`list_ref`:
|
||||
`list_ref[0]` - the interface number, including the mask
|
||||
`list_ref[1]` - for touch event, tuple of (event_type, x_position, y_position)
|
||||
- for USB read event, received bytes
|
||||
If timeout occurs, False is returned, True otherwise.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-sbu.h
|
||||
class SBU:
|
||||
'''
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def set(self, sbu1: bool, sbu2: bool) -> None:
|
||||
'''
|
||||
Sets SBU wires to sbu1 and sbu2 values respectively
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-sdcard.h
|
||||
class SDCard:
|
||||
'''
|
||||
@ -27,12 +109,94 @@ class SDCard:
|
||||
|
||||
def read(self, block_num: int, buf: bytearray) -> bool:
|
||||
'''
|
||||
Reads block_num block from the SD card into buf.
|
||||
Reads blocks starting with block_num from the SD card into buf.
|
||||
Number of bytes read is length of buf rounded down to multiply of SDCARD_BLOCK_SIZE.
|
||||
Returns True if in case of success, False otherwise.
|
||||
'''
|
||||
|
||||
def write(self, block_num: int, buf: bytes) -> bool:
|
||||
'''
|
||||
Writes block_num block from buf to the SD card.
|
||||
Writes blocks starting with block_num from buf to the SD card.
|
||||
Number of bytes written is length of buf rounded down to multiply of SDCARD_BLOCK_SIZE.
|
||||
Returns True if in case of success, False otherwise.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-usb.h
|
||||
class USB:
|
||||
'''
|
||||
USB device configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
vendor_id: int,
|
||||
product_id: int,
|
||||
release_num: int,
|
||||
manufacturer: str='',
|
||||
product: str='',
|
||||
serial_number: str='',
|
||||
configuration: str='',
|
||||
interface: str='') -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def add(self, iface: Union[HID, VCP, WebUSB]) -> None:
|
||||
'''
|
||||
Registers passed interface into the USB stack.
|
||||
'''
|
||||
|
||||
def open(self) -> None:
|
||||
'''
|
||||
Initializes the USB stack.
|
||||
'''
|
||||
|
||||
def close(self) -> None:
|
||||
'''
|
||||
Cleans up the USB stack.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-vcp.h
|
||||
class VCP:
|
||||
'''
|
||||
USB VCP interface configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
iface_num: int,
|
||||
data_iface_num: int,
|
||||
ep_in: int,
|
||||
ep_out: int,
|
||||
ep_cmd: int) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def iface_num(self) -> int:
|
||||
'''
|
||||
Returns the configured number of this interface.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorio/modtrezorio-webusb.h
|
||||
class WebUSB:
|
||||
'''
|
||||
USB WebUSB interface configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
iface_num: int,
|
||||
ep_in: int,
|
||||
ep_out: int,
|
||||
subclass: int = 0,
|
||||
protocol: int = 0,
|
||||
polling_interval: int = 1,
|
||||
max_packet_len: int = 64) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def iface_num(self) -> int:
|
||||
'''
|
||||
Returns the configured number of this interface.
|
||||
'''
|
||||
|
||||
def write(self, msg: bytes) -> int:
|
||||
'''
|
||||
Sends message using USB WebUSB (device) or UDP (emulator).
|
||||
'''
|
||||
|
@ -1,83 +0,0 @@
|
||||
from typing import *
|
||||
|
||||
# extmod/modtrezormsg/modtrezormsg.c
|
||||
class HID:
|
||||
'''
|
||||
USB HID interface configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
iface_num: int,
|
||||
ep_in: int,
|
||||
ep_out: int,
|
||||
report_desc: bytes,
|
||||
subclass: int = 0,
|
||||
protocol: int = 0,
|
||||
polling_interval: int = 1,
|
||||
max_packet_len: int = 64) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
# extmod/modtrezormsg/modtrezormsg.c
|
||||
class VCP:
|
||||
'''
|
||||
USB VCP interface configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
iface_num: int,
|
||||
data_iface_num: int,
|
||||
ep_in: int,
|
||||
ep_out: int,
|
||||
ep_cmd: int) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
# extmod/modtrezormsg/modtrezormsg.c
|
||||
class USB:
|
||||
'''
|
||||
USB device configuration.
|
||||
'''
|
||||
|
||||
def __init__(self,
|
||||
vendor_id: int,
|
||||
product_id: int,
|
||||
release_num: int,
|
||||
manufacturer_str: str,
|
||||
product_str: str,
|
||||
serial_number_str: str,
|
||||
configuration_str: str = '',
|
||||
interface_str: str = '') -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
# extmod/modtrezormsg/modtrezormsg.c
|
||||
class Msg:
|
||||
'''
|
||||
Interface with USB and touch events.
|
||||
'''
|
||||
|
||||
def __init__(self) -> None:
|
||||
'''
|
||||
'''
|
||||
|
||||
def init_usb(self, usb_info: USB, usb_ifaces: List[Union[HID, VCP]]) -> None:
|
||||
'''
|
||||
Registers passed interfaces and initializes the USB stack.
|
||||
'''
|
||||
|
||||
def deinit_usb(self) -> None:
|
||||
'''
|
||||
Cleans up the USB stack
|
||||
'''
|
||||
|
||||
def send(self, iface: int, message: bytes) -> int:
|
||||
'''
|
||||
Sends message using USB HID (device) or UDP (emulator).
|
||||
'''
|
||||
|
||||
def select(self, timeout_us: int) -> tuple:
|
||||
'''
|
||||
Polls the event queue and returns the event object.
|
||||
Function returns None if timeout specified in microseconds is reached.
|
||||
'''
|
@ -38,10 +38,17 @@ class Display:
|
||||
The image needs to be in TREZOR Optimized Image Format (TOIF) - full-color mode.
|
||||
'''
|
||||
|
||||
def avatar(self, x: int, y: int, image: bytes, fgcolor: int, bgcolor: int) -> None:
|
||||
'''
|
||||
Renders an avatar at position (x,y).
|
||||
The image needs to be in TREZOR Optimized Image Format (TOIF) - full-color mode.
|
||||
Image needs to be of exactly AVATAR_IMAGE_SIZE x AVATAR_IMAGE_SIZE pixels size.
|
||||
'''
|
||||
|
||||
def icon(self, x: int, y: int, icon: bytes, fgcolor: int, bgcolor: int) -> None:
|
||||
'''
|
||||
Renders an icon at position (x,y), fgcolor is used as foreground color, bgcolor as background.
|
||||
The image needs to be in TREZOR Optimized Image Format (TOIF) - gray-scale mode.
|
||||
The icon needs to be in TREZOR Optimized Image Format (TOIF) - gray-scale mode.
|
||||
'''
|
||||
|
||||
def print(self, text: str) -> None:
|
||||
@ -49,19 +56,19 @@ class Display:
|
||||
Renders text using 5x8 bitmap font (using special text mode).
|
||||
'''
|
||||
|
||||
def text(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int) -> None:
|
||||
def text(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None:
|
||||
'''
|
||||
Renders left-aligned text at position (x,y) where x is left position and y is baseline.
|
||||
Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background.
|
||||
'''
|
||||
|
||||
def text_center(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int) -> None:
|
||||
def text_center(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None:
|
||||
'''
|
||||
Renders text centered at position (x,y) where x is text center and y is baseline.
|
||||
Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background.
|
||||
'''
|
||||
|
||||
def text_right(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int) -> None:
|
||||
def text_right(self, x: int, y: int, text: str, font: int, fgcolor: int, bgcolor: int, minwidth: int=None) -> None:
|
||||
'''
|
||||
Renders right-aligned text at position (x,y) where x is right position and y is baseline.
|
||||
Font font is used for rendering, fgcolor is used as foreground color, bgcolor as background.
|
||||
|
@ -1,5 +1,14 @@
|
||||
from typing import *
|
||||
|
||||
# extmod/modtrezorutils/modtrezorutils.c
|
||||
def consteq(sec: bytes, pub: bytes) -> bool:
|
||||
'''
|
||||
Compares the private information in `sec` with public, user-provided
|
||||
information in `pub`. Runs in constant time, corresponding to a length
|
||||
of `pub`. Can access memory behind valid length of `sec`, caller is
|
||||
expected to avoid any invalid memory access.
|
||||
'''
|
||||
|
||||
# extmod/modtrezorutils/modtrezorutils.c
|
||||
def memcpy(dst: bytearray, dst_ofs: int,
|
||||
src: bytearray, src_ofs: int,
|
||||
|
Loading…
Reference in New Issue
Block a user