Opened 3 years ago

Last modified 8 months ago

#5096 needs_information enhancement

Support transferring bridge addresses in QR codes

Reported by: rransom Owned by: n8fr8
Priority: normal Milestone:
Component: Orbot Version:
Keywords: bridgedb-https Cc: n8fr8, gsathya, isis
Actual Points: Parent ID:
Points:

Description

At some point (maybe in days, maybe in weeks), we will start distributing bridge addresses which contain multiple 80-bit-or-longer base32-encoded ‘cryptovariables’ (I don't know any other appropriate general term for them). Orbot users will want to not retype them into their puny phone keyboards.

See the ‘libzbar’ package for a QR-code decoder under the LGPL. See ‘libqrencode’ for a QR-code encoder under the LGPL. Neither of these can currently handle binary strings containing NULs (you don't want to be parsing/repacking bridge lines anyway, but you need to know about that bug before you use the QR-code hammer to pound e.g. OTR/GPG fingerprints, BitTorrent info hashes, or Curve25519/Ed25519 public keys).

Also, if you interact with a QR-code decoder through e.g. XML, don't get bobbytabled. (P.S. ‘zbarimg --xml’ sucks.)

Child Tickets

Change History (3)

comment:1 Changed 3 years ago by n8fr8

  • Status changed from new to accepted

What we have done with Gibberbot, our xmpp+otr app that supports QR code scanning for fingerprint verification, is integrate with the open-source ZXing/Android Barcode Scanner app (http://code.google.com/p/zxing/).

The app, via Android's intent system, supports a robust way to both display and request a scan with callback from the app. It also prompts the user to install the app if they do not have it.

Beyond the app itself, if we can support a URI scheme such as bridge:// and bridge+obfs:// we can support opening scanned QRCodes whether or not Orbot initiates the scan, as the Orbot app can be set to be the system wide handler for URLs with these schemes.

comment:2 Changed 12 months ago by isis

  • Cc isis added
  • Keywords bridgedb-https added

See also, the corresponding BridgeDB ticket: #11345. tl;dr: It's two lines of Python for me to add this feature to BridgeDB.

comment:3 Changed 8 months ago by chingucha

  • Status changed from accepted to needs_information
Note: See TracTickets for help on using tickets.