You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/docs/api.md

362 lines
8.1 KiB

9 years ago
#TREZOR OS API
9 years ago
Syntax used below is a valid Python function declaration with type hints defined in [PEP 0484](https://www.python.org/dev/peps/pep-0484/).
9 years ago
##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.curve
8 years ago
####trezor.crypto.curve.ed25519
``` python
def trezor.crypto.curve.ed25519.publickey(secret_key: bytes) -> bytes
```
8 years ago
Computes public key from secret key.
``` python
def trezor.crypto.curve.ed25519.sign(secret_key: bytes, message: bytes) -> bytes
```
8 years ago
Uses secret key to produce the signature of message.
``` python
def trezor.crypto.curve.ed25519.verify(public_key: bytes, signature: bytes, message: bytes) -> bool
```
8 years ago
Uses public key to verify the signature of the message
Returns True on success.
8 years ago
####trezor.crypto.curve.nist256p1
``` python
def trezor.crypto.curve.nist256p1.publickey(secret_key: bytes, compressed: bool=True) -> bytes
```
8 years ago
Computes public key from secret key.
``` python
def trezor.crypto.curve.nist256p1.sign(secret_key: bytes, message: bytes) -> bytes
```
8 years ago
Uses secret key to produce the signature of message.
``` python
def trezor.crypto.curve.nist256p1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool
```
8 years ago
Uses public key to verify the signature of the message
Returns True on success.
8 years ago
####trezor.crypto.curve.secp256k1
``` python
def trezor.crypto.curve.secp256k1.publickey(secret_key: bytes, compressed: bool=True) -> bytes
```
8 years ago
Computes public key from secret key.
``` python
def trezor.crypto.curve.secp256k1.sign(secret_key: bytes, message: bytes) -> bytes
```
8 years ago
Uses secret key to produce the signature of message.
``` python
def trezor.crypto.curve.secp256k1.verify(public_key: bytes, signature: bytes, message: bytes) -> bool
```
9 years ago
8 years ago
Uses public key to verify the signature of the message
Returns True on success.
###trezor.crypto.hashlib
9 years ago
8 years ago
####trezor.crypto.hashlib.ripemd160
9 years ago
``` python
def trezor.crypto.hashlib.ripemd160(data: bytes=None) -> Ripemd160
```
8 years ago
Creates a hash context object.
``` python
def Ripemd160.update(self, data: bytes) -> None
```
8 years ago
Update the hash context with hashed data.
``` python
def Ripemd160.digest(self) -> bytes
```
9 years ago
8 years ago
Returns the digest of hashed data.
8 years ago
####trezor.crypto.hashlib.sha256
``` python
def trezor.crypto.hashlib.sha256(data: bytes=None) -> Sha256
```
8 years ago
Creates a hash context object.
``` python
def Sha256.update(self, data: bytes) -> None
```
8 years ago
Update the hash context with hashed data.
``` python
def Sha256.digest(self) -> bytes
```
9 years ago
8 years ago
Returns the digest of hashed data.
8 years ago
####trezor.crypto.hashlib.sha512
``` python
def trezor.crypto.hashlib.sha512(data: bytes=None) -> Sha512
```
8 years ago
Creates a hash context object.
``` python
def Sha512.hash(self, data: bytes) -> None
```
8 years ago
Update the hash context with hashed data.
``` python
def Sha512.digest(self) -> bytes
```
9 years ago
8 years ago
Returns the digest of hashed data.
8 years ago
####trezor.crypto.hashlib.sha3_256
``` python
def trezor.crypto.hashlib.sha3_256(data: bytes=None) -> Sha3_256
```
8 years ago
Creates a hash context object.
``` python
def Sha3_256.update(self, data: bytes) -> None
```
8 years ago
Update the hash context with hashed data.
``` python
def Sha3_256.digest(self) -> bytes
```
9 years ago
8 years ago
Returns the digest of hashed data.
8 years ago
####trezor.crypto.hashlib.sha3_512
``` python
def trezor.crypto.hashlib.sha3_512(data: bytes=None) -> Sha3_512
```
8 years ago
Creates a hash context object.
``` python
def Sha3_512.update(self, data: bytes) -> None
```
8 years ago
Update the hash context with hashed data.
``` python
def Sha3_512.digest(self) -> bytes
```
9 years ago
8 years ago
Returns the digest of hashed data.
###trezor.crypto.hmac
``` python
def trezor.crypto.hmac.new(key, msg, digestmod) -> Hmac
```
9 years ago
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
9 years ago
``` python
def trezor.msg.send(message) -> int
```
8 years ago
Sends message using USB HID (device) or UDP (emulator).
``` python
def trezor.msg.select(timeout_us: int) -> tuple
9 years ago
```
8 years ago
Polls the event queue and returns the event object.
Function returns None if timeout specified in microseconds is reached.
##trezor.ui
9 years ago
``` python
def trezor.ui.rgbcolor(r: int, g: int, b: int) -> int
```
``` 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)
```
9 years ago
###trezor.ui.display
``` python
def trezor.ui.display.bar(x: int, y: int, w: int, h: int, fgcolor: int, bgcolor: int=None) -> None
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
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
```
8 years ago
Sets display orientation to 0, 90, 180 or 270 degrees.
Everything needs to be redrawn again when this function is used.
``` python
def trezor.ui.display.backlight(val: int) -> None
8 years ago
```
Sets backlight intensity to the value specified in val.
``` python
def trezor.ui.display.raw(reg: int, data: bytes) -> None
```
8 years ago
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
9 years ago
```
8 years ago
Creates a bytes object that can be used to access certain memory location.