From 9f40362482928396681907d20b705d42d6448475 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 6 Jun 2016 10:18:55 +0200 Subject: [PATCH] remove homebrew docu generator, use docstring syntax --- docs/api.md | 435 ------------------ docs/api.py | 59 --- docs/api.template.md | 77 ---- extmod/modtrezorconfig/modtrezorconfig.c | 9 + .../modtrezorcrypto/modtrezorcrypto-bip39.h | 24 +- .../modtrezorcrypto/modtrezorcrypto-ed25519.h | 20 +- .../modtrezorcrypto-nist256p1.h | 20 +- .../modtrezorcrypto/modtrezorcrypto-random.h | 18 +- .../modtrezorcrypto-ripemd160.h | 18 +- .../modtrezorcrypto-secp256k1.h | 20 +- .../modtrezorcrypto/modtrezorcrypto-sha256.h | 18 +- .../modtrezorcrypto-sha3-256.h | 18 +- .../modtrezorcrypto-sha3-512.h | 18 +- .../modtrezorcrypto/modtrezorcrypto-sha512.h | 18 +- extmod/modtrezorcrypto/modtrezorcrypto-ssss.h | 12 +- extmod/modtrezormsg/modtrezormsg.c | 20 +- extmod/modtrezorui/modtrezorui-display.h | 106 ++--- extmod/modtrezorutils/modtrezorutils.c | 6 +- src/trezor/crypto/base58.py | 26 +- src/trezor/crypto/hmac.py | 18 +- src/trezor/res/__init__.py | 6 + 21 files changed, 205 insertions(+), 761 deletions(-) delete mode 100755 docs/api.py delete mode 100644 docs/api.template.md diff --git a/docs/api.md b/docs/api.md index 6121f8d31..66b1e55c3 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,438 +1,3 @@ #TREZOR Core API Syntax used below is a valid Python function declaration with type hints defined in [PEP 0484](https://www.python.org/dev/peps/pep-0484/). - -##trezor.crypto - -###trezor.crypto.base58 - -``` python -def trezor.crypto.base58.encode(data: bytes) -> str -``` - -Convert bytes to base58 encoded string. - -``` python -def trezor.crypto.base58.decode(string: str) -> bytes -``` - -Convert base58 encoded string to bytes. - -``` python -def trezor.crypto.base58.encode_check(data: bytes) -> str -``` - -Convert bytes to base58 encoded string, append checksum. - -``` python -def trezor.crypto.base58.decode_check(string: str) -> bytes -``` - -Convert base58 encoded string to bytes and verify checksum. - - -###trezor.crypto.bip39 - -``` python -def trezor.crypto.bip39.generate(strength: int) -> str -``` - -Generate a mnemonic of given strength (128, 160, 192, 224 and 256 bits) - -``` python -def trezor.crypto.bip39.from_data(data: bytes) -> str -``` - -Generate a mnemonic from given data (of 16, 20, 24, 28 and 32 bytes) - -``` python -def trezor.crypto.bip39.check(mnemonic: str) -> bool -``` - -Check whether given mnemonic is valid - -``` python -def trezor.crypto.bip39.seed(mnemonic: str, passphrase: str) -> bytes -``` - -Generate seed from mnemonic and passphrase - - -###trezor.crypto.curve - -####trezor.crypto.curve.ed25519 - -``` python -def trezor.crypto.curve.ed25519.publickey(secret_key: bytes) -> bytes -``` - -Computes public key from secret key. - -``` python -def trezor.crypto.curve.ed25519.sign(secret_key: bytes, message: bytes) -> bytes -``` - -Uses secret key to produce the signature of message. - -``` python -def trezor.crypto.curve.ed25519.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -``` - -Uses public key to verify the signature of the message -Returns True on success. - - -####trezor.crypto.curve.nist256p1 - -``` python -def trezor.crypto.curve.nist256p1.publickey(secret_key: bytes, compressed: bool=True) -> bytes -``` - -Computes public key from secret key. - -``` python -def trezor.crypto.curve.nist256p1.sign(secret_key: bytes, message: bytes) -> bytes -``` - -Uses secret key to produce the signature of message. - -``` python -def trezor.crypto.curve.nist256p1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -``` - -Uses public key to verify the signature of the message -Returns True on success. - - -####trezor.crypto.curve.secp256k1 - -``` python -def trezor.crypto.curve.secp256k1.publickey(secret_key: bytes, compressed: bool=True) -> bytes -``` - -Computes public key from secret key. - -``` python -def trezor.crypto.curve.secp256k1.sign(secret_key: bytes, message: bytes) -> bytes -``` - -Uses secret key to produce the signature of message. - -``` python -def trezor.crypto.curve.secp256k1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -``` - -Uses public key to verify the signature of the message -Returns True on success. - - -###trezor.crypto.hashlib - -####trezor.crypto.hashlib.ripemd160 - -``` python -def trezor.crypto.hashlib.ripemd160(data: bytes=None) -> Ripemd160 -``` - -Creates a hash context object. - -``` python -def Ripemd160.update(self, data: bytes) -> None -``` - -Update the hash context with hashed data. - -``` python -def Ripemd160.digest(self) -> bytes -``` - -Returns the digest of hashed data. - - -####trezor.crypto.hashlib.sha256 - -``` python -def trezor.crypto.hashlib.sha256(data: bytes=None) -> Sha256 -``` - -Creates a hash context object. - -``` python -def Sha256.update(self, data: bytes) -> None -``` - -Update the hash context with hashed data. - -``` python -def Sha256.digest(self) -> bytes -``` - -Returns the digest of hashed data. - - -####trezor.crypto.hashlib.sha512 - -``` python -def trezor.crypto.hashlib.sha512(data: bytes=None) -> Sha512 -``` - -Creates a hash context object. - -``` python -def Sha512.hash(self, data: bytes) -> None -``` - -Update the hash context with hashed data. - -``` python -def Sha512.digest(self) -> bytes -``` - -Returns the digest of hashed data. - - -####trezor.crypto.hashlib.sha3_256 - -``` python -def trezor.crypto.hashlib.sha3_256(data: bytes=None) -> Sha3_256 -``` - -Creates a hash context object. - -``` python -def Sha3_256.update(self, data: bytes) -> None -``` - -Update the hash context with hashed data. - -``` python -def Sha3_256.digest(self) -> bytes -``` - -Returns the digest of hashed data. - - -####trezor.crypto.hashlib.sha3_512 - -``` python -def trezor.crypto.hashlib.sha3_512(data: bytes=None) -> Sha3_512 -``` - -Creates a hash context object. - -``` python -def Sha3_512.update(self, data: bytes) -> None -``` - -Update the hash context with hashed data. - -``` python -def Sha3_512.digest(self) -> bytes -``` - -Returns the digest of hashed data. - - -####trezor.crypto.random - -``` python -def trezor.crypto.random.uniform(n: int) -> int -``` - -Compute uniform random number from interval 0 ... n - 1 - -``` python -def trezor.crypto.random.bytes(len: int) -> bytes -``` - -Generate random bytes sequence of length len - -``` python -def trezor.crypto.random.shuffle(data: list) -> None -``` - -Shuffles items of given list (in-place) - - -####trezor.crypto.ssss - -``` python -def trezor.crypto.ssss.split(m: int, n: int, secret: bytes) -> tuple -``` - -Split secret to (M of N) shares using Shamir's Secret Sharing Scheme - -``` python -def trezor.crypto.ssss.combine(shares: tuple) -> bytes -``` - -Combine M shares of Shamir's Secret Sharing Scheme into secret - - -###trezor.crypto.hmac - -``` python -def trezor.crypto.hmac.new(key, msg, digestmod) -> Hmac -``` - -Creates a HMAC context object. - -``` python -def Hmac.update(self, msg: bytes) -> None -``` - -Update the context with data. - -``` python -def Hmac.digest(self) -> bytes -``` - -Returns the digest of processed data. - - -##trezor.msg - -``` python -def trezor.msg.setup(ifaces: list) -> None -``` - -Configures USB interfaces with a list of tuples (interface_number, usage_page) - -``` python -def trezor.msg.send(iface: int, message: bytes) -> int -``` - -Sends message using USB HID (device) or UDP (emulator). - -``` python -def trezor.msg.select(timeout_us: int) -> tuple -``` - -Polls the event queue and returns the event object. -Function returns None if timeout specified in microseconds is reached. - - -##trezor.ui - -``` python -def trezor.ui.rgbcolor(r: int, g: int, b: int) -> int -``` -``` python -def trezor.ui.in_area(pos: tuple, area: tuple) -> bool -``` -``` python -def trezor.ui.lerpi(a: int, b: int, t: float) -> int -``` -``` python -def trezor.ui.blend(ca: int, cb: int, t: float) -> int -``` -``` python -def trezor.ui.animate_pulse(func, ca, cb, speed=200000, delay=30000) -``` -``` python -def trezor.ui.rotate_coords(pos: tuple) -> tuple -``` - -###trezor.ui.display - -``` python -def trezor.ui.display.bar(x: int, y: int, w: int, h: int, fgcolor: int, bgcolor: int=None) -> None -``` - -Renders a bar at position (x,y = upper left corner) with width w and height h of color fgcolor. -When a bgcolor is set, the bar is drawn with rounded corners and bgcolor is used for background. - -``` python -def trezor.ui.display.blit(x: int, y: int, w: int, h: int, data: bytes) -> None -``` - -Renders rectangle at position (x,y = upper left corner) with width w and height h with data. -The data needs to have the correct format. - -``` python -def trezor.ui.display.image(x: int, y: int, image: bytes) -> None -``` - -Renders an image at position (x,y). -The image needs to be in TREZOR Optimized Image Format (TOIF) - full-color mode. - -``` python -def trezor.ui.display.icon(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. - -``` python -def trezor.ui.display.text(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. - -``` python -def trezor.ui.display.text_center(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. - -``` python -def trezor.ui.display.text_right(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. - -``` python -def trezor.ui.display.text_width(text: bytes, font: int) -> int -``` - -Returns a width of text in pixels. Font font is used for rendering. - -``` python -def trezor.ui.display.qrcode(x: int, y: int, data: bytes, scale: int) -> None -``` - -Renders data encoded as a QR code at position (x,y). -Scale determines a zoom factor. - -``` python -def trezor.ui.display.loader(progress: int, fgcolor: int, bgcolor: int, icon: bytes=None, iconfgcolor: int=None) -> None -``` - -Renders a rotating loader graphic. -Progress determines its position (0-1000), fgcolor is used as foreground color, bgcolor as background. -When icon and iconfgcolor are provided, an icon is drawn in the middle using the color specified in iconfgcolor. -Icon needs to be of exaclty 96x96 pixels size. - -``` python -def trezor.ui.display.orientation(degrees: int=None) -> int -``` - -Sets display orientation to 0, 90, 180 or 270 degrees. -Everything needs to be redrawn again when this function is used. -Call without the degrees parameter to just perform the read of the value. - -``` python -def trezor.ui.display.backlight(val: int=None) -> int -``` - -Sets backlight intensity to the value specified in val. -Call without the val parameter to just perform the read of the value. - -``` python -def trezor.ui.display.raw(reg: int, data: bytes) -> None -``` - -Performs a raw command on the display. Read the datasheet to learn more. - - -###trezor.utils - -``` python -def trezor.utils.memaccess(address: int, length: int) -> bytes -``` - -Creates a bytes object that can be used to access certain memory location. - diff --git a/docs/api.py b/docs/api.py deleted file mode 100755 index 04fd219df..000000000 --- a/docs/api.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python3 -import os -import re - -def process_file(fn): - mod, ext = os.path.splitext(fn) - src = open('../%s' % (fn)).readlines() - r = [] - cls = '' - if ext in ['.h', '.c']: - for l in src: - l = l.rstrip() - if l.startswith('/// def '): - r.append('``` python') - r.append(l[4:]) - r.append('```') - elif l.startswith('/// '): - r.append(l[4:]) - elif l == '///': - r.append('') - elif ext == '.py': - mod = mod[4:].replace('/', '.') - if mod.endswith('.__init__'): - mod = mod[:-9] - for l in src: - l = l.rstrip() - if l.startswith('def '): - r.append('``` python') - r.append('def %s.' % mod + l[4:-1]) - r.append('```') - elif l.startswith('### '): - r.append(l[4:]) - elif l.startswith('###'): - r.append('') - elif l.startswith('class '): - cls = re.match('class ([A-Za-z0-9_]*)', l).group(1) - elif l.startswith(' def ') and not l.startswith(' def __init__'): - r.append('``` python') - r.append('def %s.' % cls + l[8:-1]) - r.append('```') - elif l.startswith(' ### '): - r.append(l[8:]) - elif l.startswith(' ###'): - r.append('') - return r - -def main(): - tpl = open('api.template.md', 'rt').readlines() - f = open('api.md', 'wt') - for line in tpl: - if line.startswith('@'): - for l in process_file(line[1:].strip()): - f.write(l + '\n') - else: - f.write(line) - f.close() - -if __name__ == "__main__": - main() diff --git a/docs/api.template.md b/docs/api.template.md deleted file mode 100644 index 034c6ca74..000000000 --- a/docs/api.template.md +++ /dev/null @@ -1,77 +0,0 @@ -#TREZOR Core API - -Syntax used below is a valid Python function declaration with type hints defined in [PEP 0484](https://www.python.org/dev/peps/pep-0484/). - -##trezor.crypto - -###trezor.crypto.base58 - -@src/trezor/crypto/base58.py - -###trezor.crypto.bip39 - -@extmod/modtrezorcrypto/modtrezorcrypto-bip39.h - -###trezor.crypto.curve - -####trezor.crypto.curve.ed25519 - -@extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h - -####trezor.crypto.curve.nist256p1 - -@extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h - -####trezor.crypto.curve.secp256k1 - -@extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h - -###trezor.crypto.hashlib - -####trezor.crypto.hashlib.ripemd160 - -@extmod/modtrezorcrypto/modtrezorcrypto-ripemd160.h - -####trezor.crypto.hashlib.sha256 - -@extmod/modtrezorcrypto/modtrezorcrypto-sha256.h - -####trezor.crypto.hashlib.sha512 - -@extmod/modtrezorcrypto/modtrezorcrypto-sha512.h - -####trezor.crypto.hashlib.sha3_256 - -@extmod/modtrezorcrypto/modtrezorcrypto-sha3-256.h - -####trezor.crypto.hashlib.sha3_512 - -@extmod/modtrezorcrypto/modtrezorcrypto-sha3-512.h - -####trezor.crypto.random - -@extmod/modtrezorcrypto/modtrezorcrypto-random.h - -####trezor.crypto.ssss - -@extmod/modtrezorcrypto/modtrezorcrypto-ssss.h - -###trezor.crypto.hmac - -@src/trezor/crypto/hmac.py - -##trezor.msg - -@extmod/modtrezormsg/modtrezormsg.c - -##trezor.ui - -@src/trezor/ui/__init__.py - -###trezor.ui.display - -@extmod/modtrezorui/modtrezorui-display.h - -###trezor.utils - -@extmod/modtrezorutils/modtrezorutils.c diff --git a/extmod/modtrezorconfig/modtrezorconfig.c b/extmod/modtrezorconfig/modtrezorconfig.c index 262adf747..d99529fce 100644 --- a/extmod/modtrezorconfig/modtrezorconfig.c +++ b/extmod/modtrezorconfig/modtrezorconfig.c @@ -27,11 +27,20 @@ STATIC mp_obj_t mod_TrezorConfig_Config_make_new(const mp_obj_type_t *type, size return MP_OBJ_FROM_PTR(o); } +/// def trezor.config.get(app: int, key: int) -> bytes +/// ''' +/// Gets a value of given key for given app (or None if not set). +/// ''' STATIC mp_obj_t mod_TrezorConfig_Config_get(mp_obj_t self, mp_obj_t app, mp_obj_t key) { return mp_const_none; } STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorConfig_Config_get_obj, mod_TrezorConfig_Config_get); +/// def trezor.config.set(app: int, key: int) -> bool +/// ''' +/// Sets a value of given key for given app. +/// Returns True on success. +/// ''' STATIC mp_obj_t mod_TrezorConfig_Config_set(size_t n_args, const mp_obj_t *args) { return mp_const_none; } diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-bip39.h b/extmod/modtrezorcrypto/modtrezorcrypto-bip39.h index 1f1b2a249..f98f78f46 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-bip39.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-bip39.h @@ -21,9 +21,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Bip39_make_new(const mp_obj_type_t *type, size_ } /// def trezor.crypto.bip39.generate(strength: int) -> str -/// -/// Generate a mnemonic of given strength (128, 160, 192, 224 and 256 bits) -/// +/// ''' +/// Generate a mnemonic of given strength (128, 160, 192, 224 and 256 bits) +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Bip39_generate(mp_obj_t self, mp_obj_t strength) { int bits = mp_obj_get_int(strength); if (bits % 32 || bits < 128 || bits > 256) { @@ -38,9 +38,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Bip39_generate(mp_obj_t self, mp_obj_t strength STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Bip39_generate_obj, mod_TrezorCrypto_Bip39_generate); /// def trezor.crypto.bip39.from_data(data: bytes) -> str -/// -/// Generate a mnemonic from given data (of 16, 20, 24, 28 and 32 bytes) -/// +/// ''' +/// Generate a mnemonic from given data (of 16, 20, 24, 28 and 32 bytes) +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Bip39_from_data(mp_obj_t self, mp_obj_t data) { mp_buffer_info_t bin; mp_get_buffer_raise(data, &bin, MP_BUFFER_READ); @@ -56,9 +56,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Bip39_from_data(mp_obj_t self, mp_obj_t data) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Bip39_from_data_obj, mod_TrezorCrypto_Bip39_from_data); /// def trezor.crypto.bip39.check(mnemonic: str) -> bool -/// -/// Check whether given mnemonic is valid -/// +/// ''' +/// Check whether given mnemonic is valid +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Bip39_check(mp_obj_t self, mp_obj_t mnemonic) { mp_buffer_info_t text; mp_get_buffer_raise(mnemonic, &text, MP_BUFFER_READ); @@ -67,9 +67,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Bip39_check(mp_obj_t self, mp_obj_t mnemonic) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Bip39_check_obj, mod_TrezorCrypto_Bip39_check); /// def trezor.crypto.bip39.seed(mnemonic: str, passphrase: str) -> bytes -/// -/// Generate seed from mnemonic and passphrase -/// +/// ''' +/// Generate seed from mnemonic and passphrase +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Bip39_seed(mp_obj_t self, mp_obj_t mnemonic, mp_obj_t passphrase) { mp_buffer_info_t mnemo; mp_buffer_info_t phrase; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h b/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h index 5b9a1a970..fb9e9475b 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-ed25519.h @@ -21,9 +21,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Ed25519_make_new(const mp_obj_type_t *type, siz } /// def trezor.crypto.curve.ed25519.publickey(secret_key: bytes) -> bytes -/// -/// Computes public key from secret key. -/// +/// ''' +/// Computes public key from secret key. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ed25519_publickey(mp_obj_t self, mp_obj_t secret_key) { mp_buffer_info_t sk; mp_get_buffer_raise(secret_key, &sk, MP_BUFFER_READ); @@ -38,9 +38,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Ed25519_publickey(mp_obj_t self, mp_obj_t secre STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Ed25519_publickey_obj, mod_TrezorCrypto_Ed25519_publickey); /// def trezor.crypto.curve.ed25519.sign(secret_key: bytes, message: bytes) -> bytes -/// -/// Uses secret key to produce the signature of message. -/// +/// ''' +/// Uses secret key to produce the signature of message. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ed25519_sign(mp_obj_t self, mp_obj_t secret_key, mp_obj_t message) { mp_buffer_info_t sk, msg; mp_get_buffer_raise(secret_key, &sk, MP_BUFFER_READ); @@ -58,10 +58,10 @@ STATIC mp_obj_t mod_TrezorCrypto_Ed25519_sign(mp_obj_t self, mp_obj_t secret_key STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorCrypto_Ed25519_sign_obj, mod_TrezorCrypto_Ed25519_sign); /// def trezor.crypto.curve.ed25519.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -/// -/// Uses public key to verify the signature of the message -/// Returns True on success. -/// +/// ''' +/// Uses public key to verify the signature of the message. +/// Returns True on success. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ed25519_verify(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t pk, sig, msg; mp_get_buffer_raise(args[1], &pk, MP_BUFFER_READ); diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h b/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h index a255fa413..cec1c8198 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-nist256p1.h @@ -22,9 +22,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_make_new(const mp_obj_type_t *type, s } /// def trezor.crypto.curve.nist256p1.publickey(secret_key: bytes, compressed: bool=True) -> bytes -/// -/// Computes public key from secret key. -/// +/// ''' +/// Computes public key from secret key. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_publickey(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t sk; mp_get_buffer_raise(args[1], &sk, MP_BUFFER_READ); @@ -45,9 +45,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_publickey(size_t n_args, const mp_obj STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorCrypto_Nist256p1_publickey_obj, 2, 3, mod_TrezorCrypto_Nist256p1_publickey); /// def trezor.crypto.curve.nist256p1.sign(secret_key: bytes, message: bytes) -> bytes -/// -/// Uses secret key to produce the signature of message. -/// +/// ''' +/// Uses secret key to produce the signature of message. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_sign(mp_obj_t self, mp_obj_t secret_key, mp_obj_t message) { mp_buffer_info_t sk, msg; mp_get_buffer_raise(secret_key, &sk, MP_BUFFER_READ); @@ -67,10 +67,10 @@ STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_sign(mp_obj_t self, mp_obj_t secret_k STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorCrypto_Nist256p1_sign_obj, mod_TrezorCrypto_Nist256p1_sign); /// def trezor.crypto.curve.nist256p1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -/// -/// Uses public key to verify the signature of the message -/// Returns True on success. -/// +/// ''' +/// Uses public key to verify the signature of the message +/// Returns True on success. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Nist256p1_verify(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t pk, sig, msg; mp_get_buffer_raise(args[1], &pk, MP_BUFFER_READ); diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-random.h b/extmod/modtrezorcrypto/modtrezorcrypto-random.h index 80da9df58..96d7216a6 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-random.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-random.h @@ -21,9 +21,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Random_make_new(const mp_obj_type_t *type, size } /// def trezor.crypto.random.uniform(n: int) -> int -/// -/// Compute uniform random number from interval 0 ... n - 1 -/// +/// ''' +/// Compute uniform random number from interval 0 ... n - 1 +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Random_uniform(mp_obj_t self, mp_obj_t n) { uint32_t nn = mp_obj_get_int(n); if (nn == 0) { @@ -34,9 +34,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Random_uniform(mp_obj_t self, mp_obj_t n) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Random_uniform_obj, mod_TrezorCrypto_Random_uniform); /// def trezor.crypto.random.bytes(len: int) -> bytes -/// -/// Generate random bytes sequence of length len -/// +/// ''' +/// Generate random bytes sequence of length len +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Random_bytes(mp_obj_t self, mp_obj_t len) { uint32_t l = mp_obj_get_int(len); vstr_t vstr; @@ -47,9 +47,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Random_bytes(mp_obj_t self, mp_obj_t len) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Random_bytes_obj, mod_TrezorCrypto_Random_bytes); /// def trezor.crypto.random.shuffle(data: list) -> None -/// -/// Shuffles items of given list (in-place) -/// +/// ''' +/// Shuffles items of given list (in-place) +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Random_shuffle(mp_obj_t self, mp_obj_t data) { mp_uint_t item_cnt; mp_obj_t *items; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-ripemd160.h b/extmod/modtrezorcrypto/modtrezorcrypto-ripemd160.h index d8ef17e3f..02e32f9ea 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-ripemd160.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-ripemd160.h @@ -20,9 +20,9 @@ typedef struct _mp_obj_Ripemd160_t { STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_update(mp_obj_t self, mp_obj_t data); /// def trezor.crypto.hashlib.ripemd160(data: bytes=None) -> Ripemd160 -/// -/// Creates a hash context object. -/// +/// ''' +/// Creates a hash context object. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_arg_check_num(n_args, n_kw, 0, 1, false); mp_obj_Ripemd160_t *o = m_new_obj(mp_obj_Ripemd160_t); @@ -36,9 +36,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_make_new(const mp_obj_type_t *type, s } /// def Ripemd160.update(self, data: bytes) -> None -/// -/// Update the hash context with hashed data. -/// +/// ''' +/// Update the hash context with hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_update(mp_obj_t self, mp_obj_t data) { mp_obj_Ripemd160_t *o = MP_OBJ_TO_PTR(self); mp_buffer_info_t msg; @@ -49,9 +49,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_update(mp_obj_t self, mp_obj_t data) STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Ripemd160_update_obj, mod_TrezorCrypto_Ripemd160_update); /// def Ripemd160.digest(self) -> bytes -/// -/// Returns the digest of hashed data. -/// +/// ''' +/// Returns the digest of hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Ripemd160_digest(mp_obj_t self) { mp_obj_Ripemd160_t *o = MP_OBJ_TO_PTR(self); vstr_t vstr; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h b/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h index fd05ed0ac..dd335e9e3 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-secp256k1.h @@ -22,9 +22,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_make_new(const mp_obj_type_t *type, s } /// def trezor.crypto.curve.secp256k1.publickey(secret_key: bytes, compressed: bool=True) -> bytes -/// -/// Computes public key from secret key. -/// +/// ''' +/// Computes public key from secret key. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_publickey(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t sk; mp_get_buffer_raise(args[1], &sk, MP_BUFFER_READ); @@ -45,9 +45,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_publickey(size_t n_args, const mp_obj STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorCrypto_Secp256k1_publickey_obj, 2, 3, mod_TrezorCrypto_Secp256k1_publickey); /// def trezor.crypto.curve.secp256k1.sign(secret_key: bytes, message: bytes) -> bytes -/// -/// Uses secret key to produce the signature of message. -/// +/// ''' +/// Uses secret key to produce the signature of message. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_sign(mp_obj_t self, mp_obj_t secret_key, mp_obj_t message) { mp_buffer_info_t sk, msg; mp_get_buffer_raise(secret_key, &sk, MP_BUFFER_READ); @@ -67,10 +67,10 @@ STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_sign(mp_obj_t self, mp_obj_t secret_k STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorCrypto_Secp256k1_sign_obj, mod_TrezorCrypto_Secp256k1_sign); /// def trezor.crypto.curve.secp256k1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool -/// -/// Uses public key to verify the signature of the message -/// Returns True on success. -/// +/// ''' +/// Uses public key to verify the signature of the message +/// Returns True on success. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Secp256k1_verify(size_t n_args, const mp_obj_t *args) { mp_buffer_info_t pk, sig, msg; mp_get_buffer_raise(args[1], &pk, MP_BUFFER_READ); diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-sha256.h b/extmod/modtrezorcrypto/modtrezorcrypto-sha256.h index d5bc21cd6..6a35e53df 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-sha256.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-sha256.h @@ -20,9 +20,9 @@ typedef struct _mp_obj_Sha256_t { STATIC mp_obj_t mod_TrezorCrypto_Sha256_update(mp_obj_t self, mp_obj_t data); /// def trezor.crypto.hashlib.sha256(data: bytes=None) -> Sha256 -/// -/// Creates a hash context object. -/// +/// ''' +/// Creates a hash context object. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha256_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_arg_check_num(n_args, n_kw, 0, 1, false); mp_obj_Sha256_t *o = m_new_obj(mp_obj_Sha256_t); @@ -36,9 +36,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha256_make_new(const mp_obj_type_t *type, size } /// def Sha256.update(self, data: bytes) -> None -/// -/// Update the hash context with hashed data. -/// +/// ''' +/// Update the hash context with hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha256_update(mp_obj_t self, mp_obj_t data) { mp_obj_Sha256_t *o = MP_OBJ_TO_PTR(self); mp_buffer_info_t msg; @@ -49,9 +49,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha256_update(mp_obj_t self, mp_obj_t data) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Sha256_update_obj, mod_TrezorCrypto_Sha256_update); /// def Sha256.digest(self) -> bytes -/// -/// Returns the digest of hashed data. -/// +/// ''' +/// Returns the digest of hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha256_digest(mp_obj_t self) { mp_obj_Sha256_t *o = MP_OBJ_TO_PTR(self); vstr_t vstr; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-sha3-256.h b/extmod/modtrezorcrypto/modtrezorcrypto-sha3-256.h index 5b053014f..cbb6c90ae 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-sha3-256.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-sha3-256.h @@ -20,9 +20,9 @@ typedef struct _mp_obj_Sha3_256_t { STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_update(mp_obj_t self, mp_obj_t data); /// def trezor.crypto.hashlib.sha3_256(data: bytes=None) -> Sha3_256 -/// -/// Creates a hash context object. -/// +/// ''' +/// Creates a hash context object. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_arg_check_num(n_args, n_kw, 0, 1, false); mp_obj_Sha3_256_t *o = m_new_obj(mp_obj_Sha3_256_t); @@ -36,9 +36,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_make_new(const mp_obj_type_t *type, si } /// def Sha3_256.update(self, data: bytes) -> None -/// -/// Update the hash context with hashed data. -/// +/// ''' +/// Update the hash context with hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_update(mp_obj_t self, mp_obj_t data) { mp_obj_Sha3_256_t *o = MP_OBJ_TO_PTR(self); mp_buffer_info_t msg; @@ -49,9 +49,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_update(mp_obj_t self, mp_obj_t data) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Sha3_256_update_obj, mod_TrezorCrypto_Sha3_256_update); /// def Sha3_256.digest(self) -> bytes -/// -/// Returns the digest of hashed data. -/// +/// ''' +/// Returns the digest of hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_256_digest(mp_obj_t self) { mp_obj_Sha3_256_t *o = MP_OBJ_TO_PTR(self); vstr_t vstr; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-sha3-512.h b/extmod/modtrezorcrypto/modtrezorcrypto-sha3-512.h index 2c18e32ca..ab8bda2ef 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-sha3-512.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-sha3-512.h @@ -20,9 +20,9 @@ typedef struct _mp_obj_Sha3_512_t { STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_update(mp_obj_t self, mp_obj_t data); /// def trezor.crypto.hashlib.sha3_512(data: bytes=None) -> Sha3_512 -/// -/// Creates a hash context object. -/// +/// ''' +/// Creates a hash context object. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_arg_check_num(n_args, n_kw, 0, 1, false); mp_obj_Sha3_512_t *o = m_new_obj(mp_obj_Sha3_512_t); @@ -36,9 +36,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_make_new(const mp_obj_type_t *type, si } /// def Sha3_512.update(self, data: bytes) -> None -/// -/// Update the hash context with hashed data. -/// +/// ''' +/// Update the hash context with hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_update(mp_obj_t self, mp_obj_t data) { mp_obj_Sha3_512_t *o = MP_OBJ_TO_PTR(self); mp_buffer_info_t msg; @@ -49,9 +49,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_update(mp_obj_t self, mp_obj_t data) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Sha3_512_update_obj, mod_TrezorCrypto_Sha3_512_update); /// def Sha3_512.digest(self) -> bytes -/// -/// Returns the digest of hashed data. -/// +/// ''' +/// Returns the digest of hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha3_512_digest(mp_obj_t self) { mp_obj_Sha3_512_t *o = MP_OBJ_TO_PTR(self); vstr_t vstr; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-sha512.h b/extmod/modtrezorcrypto/modtrezorcrypto-sha512.h index d60390aa9..11ab1c452 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-sha512.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-sha512.h @@ -20,9 +20,9 @@ typedef struct _mp_obj_Sha512_t { STATIC mp_obj_t mod_TrezorCrypto_Sha512_update(mp_obj_t self, mp_obj_t data); /// def trezor.crypto.hashlib.sha512(data: bytes=None) -> Sha512 -/// -/// Creates a hash context object. -/// +/// ''' +/// Creates a hash context object. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha512_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { mp_arg_check_num(n_args, n_kw, 0, 1, false); mp_obj_Sha512_t *o = m_new_obj(mp_obj_Sha512_t); @@ -35,9 +35,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha512_make_new(const mp_obj_type_t *type, size } /// def Sha512.hash(self, data: bytes) -> None -/// -/// Update the hash context with hashed data. -/// +/// ''' +/// Update the hash context with hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha512_update(mp_obj_t self, mp_obj_t data) { mp_obj_Sha512_t *o = MP_OBJ_TO_PTR(self); mp_buffer_info_t msg; @@ -48,9 +48,9 @@ STATIC mp_obj_t mod_TrezorCrypto_Sha512_update(mp_obj_t self, mp_obj_t data) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorCrypto_Sha512_update_obj, mod_TrezorCrypto_Sha512_update); /// def Sha512.digest(self) -> bytes -/// -/// Returns the digest of hashed data. -/// +/// ''' +/// Returns the digest of hashed data. +/// ''' STATIC mp_obj_t mod_TrezorCrypto_Sha512_digest(mp_obj_t self) { mp_obj_Sha512_t *o = MP_OBJ_TO_PTR(self); vstr_t vstr; diff --git a/extmod/modtrezorcrypto/modtrezorcrypto-ssss.h b/extmod/modtrezorcrypto/modtrezorcrypto-ssss.h index 828fd8c22..54b3e1174 100644 --- a/extmod/modtrezorcrypto/modtrezorcrypto-ssss.h +++ b/extmod/modtrezorcrypto/modtrezorcrypto-ssss.h @@ -22,9 +22,9 @@ STATIC mp_obj_t mod_TrezorCrypto_SSSS_make_new(const mp_obj_type_t *type, size_t } /// def trezor.crypto.ssss.split(m: int, n: int, secret: bytes) -> tuple -/// -/// Split secret to (M of N) shares using Shamir's Secret Sharing Scheme -/// +/// ''' +/// Split secret to (M of N) shares using Shamir's Secret Sharing Scheme +/// ''' STATIC mp_obj_t mod_TrezorCrypto_SSSS_split(size_t n_args, const mp_obj_t *args) { mp_int_t m = mp_obj_get_int(args[1]); mp_int_t n = mp_obj_get_int(args[2]); @@ -54,9 +54,9 @@ STATIC mp_obj_t mod_TrezorCrypto_SSSS_split(size_t n_args, const mp_obj_t *args) STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorCrypto_SSSS_split_obj, 4, 4, mod_TrezorCrypto_SSSS_split); /// def trezor.crypto.ssss.combine(shares: tuple) -> bytes -/// -/// Combine M shares of Shamir's Secret Sharing Scheme into secret -/// +/// ''' +/// Combine M shares of Shamir's Secret Sharing Scheme into secret +/// ''' STATIC mp_obj_t mod_TrezorCrypto_SSSS_combine(mp_obj_t self, mp_obj_t shares) { mp_uint_t n; mp_obj_t *share; diff --git a/extmod/modtrezormsg/modtrezormsg.c b/extmod/modtrezormsg/modtrezormsg.c index 3e116c21c..5d5ee33c1 100644 --- a/extmod/modtrezormsg/modtrezormsg.c +++ b/extmod/modtrezormsg/modtrezormsg.c @@ -37,9 +37,9 @@ STATIC mp_obj_t mod_TrezorMsg_Msg_make_new(const mp_obj_type_t *type, size_t n_a } /// def trezor.msg.setup(ifaces: list) -> None -/// -/// Configures USB interfaces with a list of tuples (interface_number, usage_page) -/// +/// ''' +/// Configures USB interfaces with a list of tuples (interface_number, usage_page) +/// ''' STATIC mp_obj_t mod_TrezorMsg_Msg_setup(mp_obj_t self, mp_obj_t ifaces) { mp_uint_t iface_cnt; mp_obj_t *iface; @@ -68,9 +68,9 @@ STATIC mp_obj_t mod_TrezorMsg_Msg_setup(mp_obj_t self, mp_obj_t ifaces) { STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_TrezorMsg_Msg_setup_obj, mod_TrezorMsg_Msg_setup); /// def trezor.msg.send(iface: int, message: bytes) -> int -/// -/// Sends message using USB HID (device) or UDP (emulator). -/// +/// ''' +/// Sends message using USB HID (device) or UDP (emulator). +/// ''' STATIC mp_obj_t mod_TrezorMsg_Msg_send(mp_obj_t self, mp_obj_t iface, mp_obj_t message) { uint8_t iface_num = mp_obj_get_int(iface); mp_buffer_info_t msg; @@ -84,10 +84,10 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorMsg_Msg_send_obj, mod_TrezorMsg_Msg_s #define TOUCH_IFACE 256 /// def trezor.msg.select(timeout_us: int) -> tuple -/// -/// Polls the event queue and returns the event object. -/// Function returns None if timeout specified in microseconds is reached. -/// +/// ''' +/// Polls the event queue and returns the event object. +/// Function returns None if timeout specified in microseconds is reached. +/// ''' STATIC mp_obj_t mod_TrezorMsg_Msg_select(mp_obj_t self, mp_obj_t timeout_us) { int timeout = mp_obj_get_int(timeout_us); if (timeout < 0) { diff --git a/extmod/modtrezorui/modtrezorui-display.h b/extmod/modtrezorui/modtrezorui-display.h index cdc0021ef..a432061c6 100644 --- a/extmod/modtrezorui/modtrezorui-display.h +++ b/extmod/modtrezorui/modtrezorui-display.h @@ -22,10 +22,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_make_new(const mp_obj_type_t *type, size_t } /// def trezor.ui.display.bar(x: int, y: int, w: int, h: int, fgcolor: int, bgcolor: int=None) -> None -/// -/// Renders a bar at position (x,y = upper left corner) with width w and height h of color fgcolor. -/// When a bgcolor is set, the bar is drawn with rounded corners and bgcolor is used for background. -/// +/// ''' +/// Renders a bar at position (x,y = upper left corner) with width w and height h of color fgcolor. +/// When a bgcolor is set, the bar is drawn with rounded corners and bgcolor is used for background. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_bar(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -46,10 +46,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_bar(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_bar_obj, 6, 7, mod_TrezorUi_Display_bar); /// def trezor.ui.display.blit(x: int, y: int, w: int, h: int, data: bytes) -> None -/// -/// Renders rectangle at position (x,y = upper left corner) with width w and height h with data. -/// The data needs to have the correct format. -/// +/// ''' +/// Renders rectangle at position (x,y = upper left corner) with width w and height h with data. +/// The data needs to have the correct format. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_blit(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -66,10 +66,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_blit(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_blit_obj, 6, 6, mod_TrezorUi_Display_blit); /// def trezor.ui.display.image(x: int, y: int, image: bytes) -> None -/// -/// Renders an image at position (x,y). -/// The image needs to be in TREZOR Optimized Image Format (TOIF) - full-color mode. -/// +/// ''' +/// Renders an image at position (x,y). +/// The image needs to be in TREZOR Optimized Image Format (TOIF) - full-color mode. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_image(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -94,10 +94,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_image(size_t n_args, const mp_obj_t *args) STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_image_obj, 4, 4, mod_TrezorUi_Display_image); /// def trezor.ui.display.icon(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. -/// +/// ''' +/// 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. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_icon(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -124,10 +124,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_icon(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_icon_obj, 6, 6, mod_TrezorUi_Display_icon); /// def trezor.ui.display.text(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. -/// +/// ''' +/// 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. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_text(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -142,10 +142,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_text(size_t n_args, const mp_obj_t *args) { STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_text_obj, 7, 7, mod_TrezorUi_Display_text); /// def trezor.ui.display.text_center(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. -/// +/// ''' +/// 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. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_text_center(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -161,10 +161,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_text_center(size_t n_args, const mp_obj_t * STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_text_center_obj, 7, 7, mod_TrezorUi_Display_text_center); /// def trezor.ui.display.text_right(x: int, y: int, text: bytes, font: int, fgcolor: int, bgcolor: int) -> 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. -/// +/// ''' +/// 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. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_text_right(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -180,9 +180,9 @@ STATIC mp_obj_t mod_TrezorUi_Display_text_right(size_t n_args, const mp_obj_t *a STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_text_right_obj, 7, 7, mod_TrezorUi_Display_text_right); /// def trezor.ui.display.text_width(text: bytes, font: int) -> int -/// -/// Returns a width of text in pixels. Font font is used for rendering. -/// +/// ''' +/// Returns a width of text in pixels. Font font is used for rendering. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_text_width(mp_obj_t self, mp_obj_t text, mp_obj_t font) { mp_buffer_info_t txt; mp_get_buffer_raise(text, &txt, MP_BUFFER_READ); @@ -193,10 +193,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_text_width(mp_obj_t self, mp_obj_t text, mp STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_TrezorUi_Display_text_width_obj, mod_TrezorUi_Display_text_width); /// def trezor.ui.display.qrcode(x: int, y: int, data: bytes, scale: int) -> None -/// -/// Renders data encoded as a QR code at position (x,y). -/// Scale determines a zoom factor. -/// +/// ''' +/// Renders data encoded as a QR code at position (x,y). +/// Scale determines a zoom factor. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_qrcode(size_t n_args, const mp_obj_t *args) { mp_int_t x = mp_obj_get_int(args[1]); mp_int_t y = mp_obj_get_int(args[2]); @@ -212,12 +212,12 @@ STATIC mp_obj_t mod_TrezorUi_Display_qrcode(size_t n_args, const mp_obj_t *args) STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_qrcode_obj, 5, 5, mod_TrezorUi_Display_qrcode); /// def trezor.ui.display.loader(progress: int, fgcolor: int, bgcolor: int, icon: bytes=None, iconfgcolor: int=None) -> None -/// -/// Renders a rotating loader graphic. -/// Progress determines its position (0-1000), fgcolor is used as foreground color, bgcolor as background. -/// When icon and iconfgcolor are provided, an icon is drawn in the middle using the color specified in iconfgcolor. -/// Icon needs to be of exaclty 96x96 pixels size. -/// +/// ''' +/// Renders a rotating loader graphic. +/// Progress determines its position (0-1000), fgcolor is used as foreground color, bgcolor as background. +/// When icon and iconfgcolor are provided, an icon is drawn in the middle using the color specified in iconfgcolor. +/// Icon needs to be of exaclty 96x96 pixels size. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_loader(size_t n_args, const mp_obj_t *args) { mp_int_t progress = mp_obj_get_int(args[1]); mp_int_t fgcolor = mp_obj_get_int(args[2]); @@ -253,11 +253,11 @@ STATIC mp_obj_t mod_TrezorUi_Display_loader(size_t n_args, const mp_obj_t *args) STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_loader_obj, 4, 6, mod_TrezorUi_Display_loader); /// def trezor.ui.display.orientation(degrees: int=None) -> int -/// -/// Sets display orientation to 0, 90, 180 or 270 degrees. -/// Everything needs to be redrawn again when this function is used. -/// Call without the degrees parameter to just perform the read of the value. -/// +/// ''' +/// Sets display orientation to 0, 90, 180 or 270 degrees. +/// Everything needs to be redrawn again when this function is used. +/// Call without the degrees parameter to just perform the read of the value. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_orientation(size_t n_args, const mp_obj_t *args) { mp_int_t deg; if (n_args > 1) { @@ -274,10 +274,10 @@ STATIC mp_obj_t mod_TrezorUi_Display_orientation(size_t n_args, const mp_obj_t * STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_orientation_obj, 1, 2, mod_TrezorUi_Display_orientation); /// def trezor.ui.display.backlight(val: int=None) -> int -/// -/// Sets backlight intensity to the value specified in val. -/// Call without the val parameter to just perform the read of the value. -/// +/// ''' +/// Sets backlight intensity to the value specified in val. +/// Call without the val parameter to just perform the read of the value. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_backlight(size_t n_args, const mp_obj_t *args) { mp_int_t val; if (n_args > 1) { @@ -294,9 +294,9 @@ STATIC mp_obj_t mod_TrezorUi_Display_backlight(size_t n_args, const mp_obj_t *ar STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorUi_Display_backlight_obj, 1, 2, mod_TrezorUi_Display_backlight); /// def trezor.ui.display.raw(reg: int, data: bytes) -> None -/// -/// Performs a raw command on the display. Read the datasheet to learn more. -/// +/// ''' +/// Performs a raw command on the display. Read the datasheet to learn more. +/// ''' STATIC mp_obj_t mod_TrezorUi_Display_raw(mp_obj_t self, mp_obj_t reg, mp_obj_t data) { mp_int_t r = mp_obj_get_int(reg); mp_buffer_info_t raw; diff --git a/extmod/modtrezorutils/modtrezorutils.c b/extmod/modtrezorutils/modtrezorutils.c index 3a14c35b6..8c9f81e91 100644 --- a/extmod/modtrezorutils/modtrezorutils.c +++ b/extmod/modtrezorutils/modtrezorutils.c @@ -28,9 +28,9 @@ STATIC mp_obj_t mod_TrezorUtils_Utils_make_new(const mp_obj_type_t *type, size_t } /// def trezor.utils.memaccess(address: int, length: int) -> bytes -/// -/// Creates a bytes object that can be used to access certain memory location. -/// +/// ''' +/// Creates a bytes object that can be used to access certain memory location. +/// ''' STATIC mp_obj_t mod_TrezorUtils_Utils_memaccess(mp_obj_t self, mp_obj_t address, mp_obj_t length) { uint32_t addr = mp_obj_get_int(address); uint32_t len = mp_obj_get_int(length); diff --git a/src/trezor/crypto/base58.py b/src/trezor/crypto/base58.py index a31e0aa64..9b44325bd 100644 --- a/src/trezor/crypto/base58.py +++ b/src/trezor/crypto/base58.py @@ -19,9 +19,9 @@ from .hashlib import sha256 _alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' def encode(data: bytes) -> str: -### -### Convert bytes to base58 encoded string. -### + ''' + Convert bytes to base58 encoded string. + ''' origlen = len(data) data = data.lstrip(b'\0') newlen = len(data) @@ -40,9 +40,9 @@ def encode(data: bytes) -> str: def decode(string: str) -> bytes: -### -### Convert base58 encoded string to bytes. -### + ''' + Convert base58 encoded string to bytes. + ''' origlen = len(string) string = string.lstrip(_alphabet[0]) newlen = len(string) @@ -61,21 +61,21 @@ def decode(string: str) -> bytes: def encode_check(data: bytes) -> str: -### -### Convert bytes to base58 encoded string, append checksum. -### + ''' + Convert bytes to base58 encoded string, append checksum. + ''' digest = sha256(sha256(data).digest()).digest() return encode(data + digest[:4]) def decode_check(string: str) -> bytes: -### -### Convert base58 encoded string to bytes and verify checksum. -### + ''' + Convert base58 encoded string to bytes and verify checksum. + ''' result = decode(string) result, check = result[:-4], result[-4:] digest = sha256(sha256(result).digest()).digest() if check != digest[:4]: - raise ValueError("Invalid checksum") + raise ValueError('Invalid checksum') return result diff --git a/src/trezor/crypto/hmac.py b/src/trezor/crypto/hmac.py index ce6e4250e..dc4db4295 100644 --- a/src/trezor/crypto/hmac.py +++ b/src/trezor/crypto/hmac.py @@ -1,7 +1,7 @@ def new(key, msg, digestmod) -> Hmac: -### -### Creates a HMAC context object. -### + ''' + Creates a HMAC context object. + ''' return Hmac(key, msg, digestmod) class Hmac: @@ -18,15 +18,15 @@ class Hmac: self.update(msg) def update(self, msg: bytes) -> None: - ### - ### Update the context with data. - ### + ''' + Update the context with data. + ''' self.__inner.update(msg) def digest(self) -> bytes: - ### - ### Returns the digest of processed data. - ### + ''' + Returns the digest of processed data. + ''' outer = self.__digestmod() outer.update(bytes((x ^ 0x5C) for x in self.__key)) outer.update(self.__inner.digest()) diff --git a/src/trezor/res/__init__.py b/src/trezor/res/__init__.py index ce59bb8b5..32f3bc8dc 100644 --- a/src/trezor/res/__init__.py +++ b/src/trezor/res/__init__.py @@ -4,12 +4,18 @@ except ImportError: resdata = None def load(name): + ''' + Loads resource of a given name as bytes. + ''' if resdata and name in resdata: return resdata[name] with open(name, 'rb') as f: return f.read() def gettext(message): + ''' + Returns localized string. This function is aliased to _. + ''' return message _ = gettext