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

enbility / ship-go / 35367173385
93%

Build:
DEFAULT BRANCH: dev
Ran 18 Sep 2026 04:17PM UTC
Jobs 1
Files 46
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

18 Sep 2026 04:13PM UTC coverage: 92.953% (-0.1%) from 93.102%
35367173385

push

github

web-flow
fix(hub): abort TLS handshake on spoofed server certificate (TC_SHIP_SEC_001/002) (#119)

Fixes #117 

Runs the existing `validateRemoteCertificate` from a
`VerifyPeerCertificate` hook on the client
TLS config, so a spoofed server certificate is rejected while the TLS
handshake is still
  running instead of after the WebSocket upgrade.

- `createWebSocketDialer` installs the hook; `expectedSKI` is threaded
through
    `establishWebSocketConnection` from `connectFoundService`
- a rejected certificate no longer triggers the path-less retry dial
(one `bad_certificate`
    alert instead of two)
  - no new validation logic and no `api/` changes

Tests: new `hub/hub_connections_sec_test.go` covers both TestSpec
variants (SEC_001: own SKI
corrupted; SEC_002: a trusted `SKI_T1` forged onto a new key pair)
end-to-end against a TLS
server with a spoofed certificate, asserting the peer never sees an HTTP
request, plus a table
test on the hook and a server-role subtest in
`TestVerifyPeerCertificate`.

  Verified the end-to-end test fails without the fix.

  `Test_ConnectFoundService_CertificateSkiValidationError` asserted on
`"certificate validation failed"`, a message from the post-upgrade path
the certificate no
longer reaches; the assertion now checks the earlier rejection instead.

40 of 40 new or added lines in 1 file covered. (100.0%)

12 existing lines in 3 files now uncovered.

6134 of 6599 relevant lines covered (92.95%)

11589.88 hits per line

Coverage Regressions

Lines Coverage ∆ File
4
87.11
0.06% hub/hub_connections_client.go
4
95.69
-0.96% mdns/avahi.go
4
91.39
-1.91% mdns/zeroconf.go
Jobs
ID Job ID Ran Files Coverage
1 35367173385.1 18 Sep 2026 04:17PM UTC 46
92.95
GitHub Action Run
Source Files on build 35367173385
  • Tree
  • List 46
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35367173385
  • 72fc3ff0 on github
  • Prev Build on dev (#35364100236)
  • Next Build on dev (#35613403500)
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