mocks: regenerated

using the ./build_mocks script
This commit is contained in:
Tomas Susanka 2018-01-26 14:28:49 +01:00 committed by Jan Pochyla
parent d23a236616
commit f36b475109
6 changed files with 423 additions and 286 deletions

View File

@ -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!
'''

View File

@ -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.
'''

View File

@ -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).
'''

View File

@ -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.
'''

View File

@ -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.

View File

@ -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,