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

Alan-Jowett / sonde / 23462597537
82%

Build:
DEFAULT BRANCH: main
Ran 23 Mar 2026 10:11PM UTC
Jobs 1
Files 74
Run time 1min
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

23 Mar 2026 10:06PM UTC coverage: 86.005% (+0.3%) from 85.741%
23462597537

push

github

web-flow
feat(sonde-pair): close 12 crypto freshness and protocol negative test gaps (#423)

* feat(sonde-pair): close 12 crypto freshness and protocol negative test gaps

Address all 12 validation gaps identified in issue #358:

**Crypto freshness (HIGH):**
- PT-0304: Behavioral zeroing tests for ephemeral keys and ECDH shared
  secrets — verify \Zeroize\ mechanism clears buffers and that
  \generate_x25519_keypair\ produces independent keys per call.
- PT-0408: Error-path zeroing tests — \provision_node\ returns cleanly
  on \NodeErrorResponse\ and \IndicationTimeout\, with \Zeroizing\
  wrappers dropping ephemeral material and \
ode_psk\ normally.
- PT-0405: Fresh ephemeral per attempt — multi-attempt tests assert
  different \ph_public\ values in both Phase 1 (\REGISTER_PHONE\)
  and Phase 2 (\NODE_PROVISION\) BLE writes.
- PT-0301: Challenge uniqueness — two \pair_with_gateway\ calls with
  different RNG seeds produce different 32-byte challenges in
  \REQUEST_GW_INFO\.

**Protocol negative tests (MEDIUM):**
- PT-0302: TOFU check now also compares \gateway_id\, not just
  \public_key\. Same key + different \gateway_id\ is rejected as
  \PublicKeyMismatch\.
- PT-0303 / §4.1.1: ERROR(0x01) generic status code tested at both
  \GW_INFO_RESPONSE\ and \PHONE_REGISTERED\ steps — maps to
  \GatewayAuthFailed\.
- PT-1200: Malformed BLE envelope tests — wrong TYPE byte, truncated
  LEN, short body, trailing bytes.
- §5.2: \REQUEST_GW_INFO\ body verified to be exactly 32 bytes.
- §6.3/6.4: Cross-phase HKDF info string swap test — encrypting with
  \sonde-phone-reg-v1\ and decrypting with \sonde-node-pair-v1\ key
  (and vice versa) correctly fails.

**Low priority:**
- PT-0403: Definite-length CBOR containers explicitly verified — outer
  map header is 0xA* (not 0xBF), re-encoding round-trips identically.
- PT-0500: Additional error subcategories — \Unknown(0x99)\ node ack
  status, empty-diagnostic \MSG_ERROR\, unexpected message type,
  MTU-too-low with no-writes... (continued)

649 of 700 new or added lines in 5 files covered. (92.71%)

21448 of 24938 relevant lines covered (86.01%)

164.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
36
74.35
-0.73% crates/sonde-pair/src/cbor.rs
8
98.21
0.61% crates/sonde-pair/src/phase2.rs
7
97.04
0.88% crates/sonde-pair/src/phase1.rs
Jobs
ID Job ID Ran Files Coverage
1 23462597537.1 23 Mar 2026 10:11PM UTC 74
86.01
GitHub Action Run
Source Files on build 23462597537
  • Tree
  • List 74
  • Changed 6
  • Source Changed 5
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23462597537
  • f18449e2 on github
  • Prev Build on main (#23461945560)
  • Next Build on main (#23463086838)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc