Opened 9 years ago

Last modified 3 years ago

#5096 needs_information enhancement

Support transferring bridge addresses in QR codes

Reported by: rransom Owned by: n8fr8
Priority: Medium Milestone:
Component: Applications/Orbot Version:
Severity: Normal Keywords: bridgedb-https
Cc: n8fr8, gsathya, isis Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


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 (4)

comment:1 Changed 9 years ago by n8fr8

Status: newaccepted

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 (

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 7 years 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 6 years ago by chingucha

Status: acceptedneeds_information

comment:4 Changed 3 years ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

Note: See TracTickets for help on using tickets.