• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tari-project / tari / 37828815456
77%

Build:
DEFAULT BRANCH: development
Ran 08 Oct 2026 08:25PM UTC
Jobs 1
Files 798
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Oct 2026 07:01PM UTC coverage: 74.591% (+0.5%) from 74.098%
37828815456

push

github

web-flow
fix(ledger): keep alpha out of reach of the legacy host-indexed nonce instruction (#8098)

## Summary

The Ledger app's legacy host-indexed nonce instruction
(`GetRawSchnorrSignatureLegacyNonce`) accepted `OneSidedSenderOffset`
private keys at any index, and the `GetScriptOffset` reply hands the
host the index of the sender-offset key that blinds a reply containing
`alpha`. Two legacy signatures under that key and one nonce index
therefore recovered the root spend key, with nothing shown on the
device.

This PR closes that path, and the related ways a host could difference
device replies with no prompt, without adding any state on the device.

### What changes

- **Legacy whitelist.** `check_legacy_nonce_branches` (shared crate,
checked on host and device) admits only a `PreMine` private key with a
`Random` nonce. Nothing the legacy instruction can sign is a term of a
reply that contains `alpha`.
- **Pre-mine mode in `GetScriptOffset`.** When no alpha-derived script
key was folded into the sum, the device derives the sender offsets on
the `PreMine` branch at a base index with bit 63 set and 62 random bits,
and returns the index as before. Marked indexes are refused as script
keys on both sides. Normal spends keep `OneSidedSenderOffset`.
- **Review on every legacy signature.** Purpose line ("Pre-mine script
signature" / "Pre-mine metadata signature"), key branch and index, nonce
branch and index. Every refusal (branch, nonce floor, zero challenge)
happens before the screen; every field used after the screen is an owned
copy, shown through `wire::with_screen`.
- **64-bit key indexes.** The SDK's `make_bip32_path` accumulates each
path element in a wrapping `u32`, so every index was really `index mod
2^32`. That made sender-offset bases 32-bit and let a host difference
colliding replies with no prompt. The index now spans two path elements:
`m/44'/coin'/account'/{index >> 32}/{index & 0xFFFF_FFFF}'/key_type`.
Indexes below `2^32` keep byte-identical path... (continued)

481 of 514 new or added lines in 7 files covered. (93.58%)

34 existing lines in 16 files now uncovered.

122353 of 164031 relevant lines covered (74.59%)

328590.1 hits per line

Uncovered Changes

Lines Coverage ∆ File
20
71.28
0.33% applications/minotari_ledger_wallet/comms/src/accessor_methods.rs
13
78.3
2.41% base_layer/transaction_components/src/key_manager/manager.rs

Coverage Regressions

Lines Coverage ∆ File
6
73.75
-0.34% comms/core/src/connectivity/manager.rs
4
80.46
-0.42% comms/dht/src/connectivity/mod.rs
3
65.77
-2.7% base_layer/transaction_components/src/transaction_components/side_chain/sidechain_feature.rs
3
67.57
-8.11% comms/core/src/peer_manager/error.rs
2
87.45
-0.2% base_layer/core/src/proof_of_work/cuckaroo_pow.rs
2
95.67
-0.43% base_layer/core/src/proof_of_work/randomx_factory.rs
2
69.0
0.03% base_layer/wallet/src/transaction_service/storage/sqlite_db.rs
2
87.07
-0.36% comms/core/src/connection_manager/peer_connection.rs
2
78.13
-3.13% comms/core/src/pipeline/outbound.rs
2
84.11
-0.3% comms/core/src/protocol/rpc/client/mod.rs
1
70.41
7.61% base_layer/core/src/chain_storage/blockchain_database.rs
1
74.61
-0.22% base_layer/core/src/mempool/sync_protocol/mod.rs
1
98.24
-0.15% base_layer/core/src/proof_of_work/monero_rx/merkle_tree.rs
1
72.63
0.15% base_layer/wallet/src/output_manager_service/storage/sqlite_db/mod.rs
1
72.03
-0.42% comms/core/src/connection_manager/listener.rs
1
68.97
-0.49% comms/core/src/connectivity/requester.rs
Jobs
ID Job ID Ran Files Coverage
1 37828815456.1 08 Oct 2026 08:25PM UTC 798
74.59
GitHub Action Run
Source Files on build 37828815456
  • Tree
  • List 798
  • Changed 39
  • Source Changed 8
  • Coverage Changed 39
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37828815456
  • 74d1bcb7 on github
  • Prev Build on development (#37777676484)
  • Next Build on development (#37943560178)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc