Skip to content

QR Codes

Vincent Breitmoser edited this page May 25, 2018 · 6 revisions

QR Code format

  • QR Codes contain an Uri with the openpgp4fpr scheme and the full OpenPGP v4 key fingerprint, such as OPENPGP4FPR:73EE2314F65FA92EC2390D3A718C070100012282.
  • The Uri is fully uppercase to use the more efficient alphanumeric encoding that does not support lowercase letters.
  • Only full fingerprints are supported, not key IDs. After scanning, OpenKeychain allows for certification of keys and this is only secure with full fingerprints.
  • OpenKeychain also supports opening openpgp4fpr Uris with full fingerprints via Android's android.intent.action.VIEW Intent.

vCard support

OpenKeychain supports OpenPGP key fingerprints encoded in QR Code vCards. Key to be imported is retrieved from vCard's KEY field.

The following example shows how to embed a public key fingerprint as an openpgp4fpr scheme URI inside the vCard:

FN:Linus Torvalds

After encoding this text as a QR Code and scanning it with OpenKeychain's built-in QR Code scanner the key with fingerprint ABAF11C65A2970B130ABE3C479BE3E4300411886 will be imported.

About openpgp4fpr (copied from effigies/openpgp4info)

In 2010, the Monkeysphere project introduced the openpgp4fpr:<FINGERPRINT> scheme for sharing OpenPGP version 4 key fingerprints, where <FINGERPRINT> is the full 40 hex character fingerprint of a master key, and has since been adopted in vCards for sharing public keys.

Perhaps more significantly, several Android applications (APG/OpenKeychain, and the Guardian Project's GnuPG port) now accept this scheme as a means of quickly exchanging public keys via QR codes. The Android "intents" interface paves the way for openpgp4fpr URIs to become increasingly common.

In early 2015, the WHATWG accepted openpgp4fpr: as a whitelisted scheme.


You can’t perform that action at this time.