5c93ecd53a
This is to avoid including app-specific functionality in storage and avoid circular imports. The following policy is now in effect: modules from `storage` namespace must not import from `apps` namespace. In most files, the change only involves changing import paths. A minor refactor was needed in case of webauthn: basic get/set/delete functionality was left in storage.webauthn, and more advanced logic on top of it was moved to apps.webauthn.resident_credentials. A significant refactor was needed for sd_salt, where application (and UI) logic was tightly coupled with the IO code. This is now separated, and storage.sd_salt deals exclusively with the IO side, while the app/UI logic is implemented on top of it in apps.common.sd_salt and apps.management.sd_protect. |
||
---|---|---|
ci | ||
common | ||
core | ||
crypto | ||
docs | ||
legacy | ||
python | ||
storage | ||
tests | ||
tools | ||
vendor | ||
.clang-format | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
.travis.yml | ||
build-docker.sh | ||
create_monorepo.py | ||
Makefile | ||
Pipfile | ||
Pipfile.lock | ||
README-monorepo.md | ||
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
Inspired by GitLab Contributing Guide
Make sure to check out general contribution guidelines on the Trezor Wiki. If you are contributing to Trezor Core (the Trezor T firmware), make sure to check out Trezor Core contribution guidelines as well.
Some useful assorted knowledge can be found in the docs
subdirectory.
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.