2658e253fa
- different approach to vector manipulation - more on the fly operations. Prepared for fully offloaded operations, BP on Trezor with constant memory. - memory requirements reduced from (4MN + const) to (2MN + const) - more raw methods to avoid unnecessary encoding/decoding - chunking improved, chunk size set as a constant, changed from 64 to 32, missing pieces implemented to cover also BP 16 - proof_v8 support discontinued, old hardfork, not needed anymore - get_exponent register clash fixed (for large vectors) - reduced heap fragmentation by removing some temporary allocations - hashing with len and offset to reduce heap fragmentation by creating a sliced arrays - use to() wherever possible to avoid allocations and return of mutable private object - global functions start with _ prefix, reduce import footprint - use __slots__ in classes to minimize footprint |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
ci | ||
common | ||
core | ||
crypto | ||
docs | ||
legacy | ||
python | ||
storage | ||
tests | ||
tools | ||
vendor | ||
.clang-format | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
.travis.yml | ||
build-docker.sh | ||
CONTRIBUTING.md | ||
create_monorepo.py | ||
Makefile | ||
Pipfile | ||
Pipfile.lock | ||
README.md | ||
SECURITY.md | ||
setup.cfg | ||
shell.nix |
Trezor Firmware
Repository Structure
ci
: Gitlab CI configuration filescommon/defs
: JSON coin definitions and support tablescommon/protob
: Common protobuf definitions for the Trezor protocolcommon/tools
: Tools for managing coin definitions and related datacore
: Trezor Core, firmware implementation for Trezor Tcrypto
: Stand-alone cryptography library used by both Trezor Core and the Trezor One firmwaredocs
: Assorted documentationlegacy
: Trezor One firmware implementationpython
: Python client library and thetrezorctl
commandstorage
: NORCOW storage implementation used by both Trezor Core and the Trezor One firmwaretests
: Firmware unit test suitetools
: Miscellaneous build and helper scriptsvendor
: Submodules for external dependencies
Contribute
See CONTRIBUTING.md.
Also please have a look at the docs, either in the docs
folder or at docs.trezor.io before contributing. The misc chapter should be read in particular because it contains some useful assorted knowledge.
Security vulnerability disclosure
Please report suspected security vulnerabilities in private to security@satoshilabs.com, also see the disclosure section on the Trezor.io website. Please do NOT create publicly viewable issues for suspected security vulnerabilities.
Issue Labels
Priority
Label | Meaning (SLA) |
---|---|
P1 Urgent | The current release + potentially immediate hotfix (30 days) |
P2 High | The next release (60 days) |
P3 Medium | Within the next 3 releases (90 days) |
P4 Low | Anything outside the next 3 releases (120 days) |
Severity
Label | Impact |
---|---|
S1 Blocker | Outage, broken feature with no workaround |
S2 Critical | Broken feature, workaround too complex & unacceptable |
S3 Major | Broken feature, workaround acceptable |
S4 Low | Functionality inconvenience or cosmetic issue |
CI
The complete test suite is running on a public GitLab CI. If you are an external contributor, we also have a Travis instance where a small subset of tests is running as well - mostly style and easy fast checks, which are quite common to fail for new contributors.
Documentation
See the docs
folder or visit docs.trezor.io.