feat: open pubky auth links - #722
Conversation
This comment has been minimized.
This comment has been minimized.
d8110c0 to
48b2191
Compare
48b2191 to
c108dee
Compare
jvsena42
left a comment
There was a problem hiding this comment.
Reviewed the link as an attacker-controlled trust boundary. Validation is strict — exact scheme/host/path, no userinfo/port/fragment, exactly one x-bitkit-claim=watch-only-account-v1, caps must equal the fixed watch-only set, duplicate relay/secret rejected — and I could not escalate through it. The wrapper forces requiresBitkitClaim, so ordinaryApproval (the only path that forwards URL-supplied capabilities) is unreachable from a link; the companion path passes the hardcoded watchOnlyAccountCapabilities constant. The claim payload is version|accountIndex|addressType|78-byte xpub — public material, no spending key. Secrets are not logged, and retained-link handling is single-slot and PIN-gated.
One medium, about provenance rather than authorisation. One thing I could not settle offline: whether Pubky Ring actually registers pubkyring:// — if not, Ring sign-in reports "not installed".
Minor gap while you are here: duplicate caps parameters are not rejected the way duplicate relay/secret are. Not exploitable (the companion path never reads URL caps, so a divergence yields rejection), but inconsistent with the other duplicate checks.
4f7a770 to
151170c
Compare
Closes #715
This PR receives Bitkit-targeted Pubky marketplace setup links and keeps them available through startup, restoration, PIN, scene, and app lifecycle delivery until existing watch-only consent can present.
Description
bitkit://pubky-auth/setupwrapper with one supported Bitkit claim.Linked Issues/Tasks
Preview
QA Notes
Manual Tests
bitkit://gift-…: Gift Loading opens and owns node failure presentation.Automated Checks
SceneDelegateTests,PubkyAuthURLSchemeTests,PubkyAuthRequestTests, andPubkyAuthApprovalSheetTestson42affaee.42affaee.git diff --check: passed.