Skip to content

repeater: approve URL-request enrollment by fingerprint compare instead of emoji pick; 0.7.1 - #43

Merged
devin-ai-integration[bot] merged 2 commits into
mainfrom
devin/1792518979-repeater-fingerprint-approval
Oct 20, 2026
Merged

devin-ai-integration[bot] merged 2 commits into
mainfrom
devin/1792518979-repeater-fingerprint-approval

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Quantum Repeater URL-request enrollment (repeater join ws://… + repeater approve) asked the host operator to pick the device's emoji set from 4 decoys. This replaces that with a yes/no approval where the operator compares two fingerprints, the device's and the repeater's, shown on both screens. Bumps the workspace to 0.7.1.

Device (request_waiting_message):

Asked the Quantum Repeater at {host} to enroll this device (repeater fingerprint 9da5c511).
This device's fingerprint: 168b 59bd 7d87 41db
Repeater fingerprint: 9da5 c511 362b 5ba1
On the host, run `entangle repeater approve` and check that it shows the same two fingerprints.

Host (approval_prompt + single keypress via classify_yes_no):

alice from 203.0.113.7, 4s ago
Device fingerprint: 168b 59bd 7d87 41db
Repeater fingerprint: 9da5 c511 362b 5ba1
Does `entangle repeater join` on alice show these two fingerprints? Approve? [y/n]
  • y approves and n denies (the Approved … / Denied … lines are unchanged). Esc, q or Ctrl+C cancels without recording a decision. After 3 invalid keys it cancels.
  • long_fingerprint is the first 16 hex characters of SHA-256 of the key, in groups of 4.
  • Why two fingerprints:
    • The device fingerprint stops an interceptor from being enrolled: Noise XX binds the initiator key, so an interceptor can't show the device's fingerprint.
    • The repeater fingerprint stops an interceptor from posing as the repeater to the device.
  • Wire and storage are unchanged. The client and server still run the commit/reveal SAS exchange, and EnrollmentRequest.sas stays; only the CLI stops displaying it. entangle-core::sas is untouched.
  • Mixed versions: URL-request enrollment needs 0.7.1 or later on both ends. Invite codes still work across versions. This is documented.
  • Docs: SETUP, ARCHITECTURE and playbook 06 are updated.

Tested:

  • Unit tests cover the new strings, the fingerprint vector and key classification.
  • An end-to-end PTY smoke ran a local repeater serve with join and approve for approve (y), deny (n) and cancel (Esc). On approve, both fingerprints matched across the two screens, and repeater devices listed the device as active.

Link to Devin session: https://app.devin.ai/sessions/fdd4197077c649ab9c690690b745a4fb
Open in Devin Desktop: https://app.devin.ai/desktop/session/fdd4197077c649ab9c690690b745a4fb?variant=devin
Requested by: @DailenG


Devin Review

Co-Authored-By: Dailen Gunter <daileng@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a106a25d-f5f0-428e-8325-8eeb595fad0c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Devin Review

Comment thread crates/entangle/src/repeater.rs Outdated
Comment thread crates/entangle/src/repeater.rs Outdated
Co-Authored-By: Dailen Gunter <daileng@gmail.com>
@devin-ai-integration
devin-ai-integration Bot merged commit a33763e into main Oct 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant