Jump to >

We want you to feel safe using our products, and to make sure you're using authentic builds of Review Board.

We cryptographically sign all of our downloads using PGP signatures. You can download the signatures to verify that the files are indeed created by us and have not been tampered with or corrupted.

Here's how it works

Every single file available on downloads.reviewboard.org comes with a matching .asc file, which contains a PGP signature. This signature identifies the build was signed by our private key or one of its subkeys (listed below), which is unique to us and carefully protected.

Each grouping of downloads for a given release also has a matching .sha256sum file, which contains the SHA-256 checksums for each file in the release. You can verify those checksums to be sure you're getting what you expect. This file also has a matching .asc signature file.

How to verify our signatures

Installing the software

To validate the authenticity of the files, you'll need two tools:

  • sha256sum: Validates SHA-256 checksums
  • GnuPG: The GNU Privacy Guard, for validating signatures

If you're running Linux/MacOS X, you probably have sha256sum, and you can get GnuPG from either your package manager or from GnuPG.org.

If you're running Windows, you can get these from Cygwin. Alternatively, you can download standalone versions of both:

Here are some tutorials on how all this works, and how to get started:

Adding our key

Once you have GnuPG installed, you'll need our PGP public key. This is used to verify the signatures in the .asc files. You can fetch this through a terminal by typing:

$ gpg --recv-keys 285291B34ED1F993
gpg: requesting key 4ED1F993 from hkps server hkps.pool.sks-keyservers.net
gpg: key 4ED1F993: public key "Beanbag, Inc. (Support) <support@beanbaginc.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Signing our key (optional)

Now that you have the key, you can locally sign it with your own private key in order to trust it. You don't have to do this, but it means you don't have to check all the fingerprints later every time you go to verify a build.

By locally signing, your trust in the key will remain purely local to your system, and won't become part of the web of trust. You'll do this with the --lsign-key command. If you do fully trust this key and wish to state that fact (for instance, if you're convinced in the authenticity by fully trusting that what you're reading right now is legit, and have verified this key was signed by people you trust) then you can sign normally with --sign-key instead.

(If you don't have a private key, follow one of the tutorials above to get one.)

$ gpg --lsign-key 285291B34ED1F993
pub  4096R/4ED1F993  created: 2015-05-23  expires: 2018-06-19  usage: SC
                     trust: unknown       validity: unknown
sub  2048R/E47A2499  created: 2015-05-23  expires: 2018-06-19  usage: S
sub  2048R/82FB3BC7  created: 2015-05-23  expires: 2018-06-19  usage: E
sub  2048R/15A49BAB  created: 2015-05-23  expires: 2018-06-19  usage: A
sub  2048R/45668428  created: 2015-05-26  expires: 2018-06-19  usage: S
sub  2048R/C444966C  created: 2015-05-26  expires: 2018-06-19  usage: A
[ unknown] (1). Beanbag, Inc. (Support) <support@beanbaginc.com>
[ unknown] (2)  Beanbag, Inc. (Sales) <sales@beanbaginc.com>
[ unknown] (3)  Review Board Project Team <reviewboard@googlegroups.com>

Really sign all user IDs? (y/N) y

pub  4096R/4ED1F993  created: 2015-05-23  expires: 2018-06-19  usage: SC
                     trust: unknown       validity: unknown
 Primary key fingerprint: 09D5 06DA BB62 A09E 891D  A9F3 2852 91B3 4ED1 F993

     Beanbag, Inc. (Support) <support@beanbaginc.com>
     Beanbag, Inc. (Sales) <sales@beanbaginc.com>
     Review Board Project Team <reviewboard@googlegroups.com>

This key is due to expire on 2018-06-19.
Are you sure that you want to sign this key with your
key "Your key information"

The signature will be marked as non-exportable.

Really sign? (y/N) y

That's a lot of information to throw at you, but it's just giving you a complete understanding of our key. Make sure to verify what you see with what's here. If it's different, it's not our key.

When prompted, enter the password you've set for your own private key. Congrats, it's signed! You can now verify our signatures.

Verifying signatures

Now that you have the key, you can verify a signature of a download. Once you've downloaded a file, download its corresponding .asc file as well. In this example, we'll use ReviewBoard-2.0.19.tar.gz and ReviewBoard-2.0.19.tar.gz.asc.

$ gpg --verify ReviewBoard-2.0.19.tar.gz.asc
gpg: assuming signed data in 'ReviewBoard-2.0.19.tar.gz'
gpg: Signature made Mon Aug 24 22:07:45 2015 PDT using RSA key ID E47A2499
gpg: Good signature from "Beanbag, Inc. (Support) <support@beanbaginc.com>" [ultimate]
gpg:                 aka "Review Board Project Team <reviewboard@googlegroups.com>" [ultimate]
gpg:                 aka "Beanbag, Inc. (Sales) <sales@beanbaginc.com>" [ultimate]

If you didn't locally-sign our key above, this will warn that the key is not certificate with a trusted signature.

Note again that this will be signed by one of our subkeys, listed above. If you get an error of any sort, make sure the file has not been corrupted. If it continues, please send an e-mail to support@beanbaginc.com immediately.

Verifying SHA-256 checksums

You can also verify the checksums independently by fetching the desired files in the build along with the .sha256sum file. Run:

$ sha256sum -c filename.sha256sum
filename: OK

If you've only downloaded some of the files listed in the .sha256sum file, you'll get warnings about missing files. You can ignore those.

PGP Keys

Our builds will be identified with one of the following key IDs:

pub  4096R/285291B34ED1F993  created: 2015-05-23  expires: 2018-06-19  usage: SC
     key fingerprint = 09D5 06DA BB62 A09E 891D  A9F3 2852 91B3 4ED1 F993
sub  2048R/432CCE35E47A2499  created: 2015-05-23  expires: 2018-06-19  usage: S
     key fingerprint = E2E3 780A D76C 47A5 9E7F  A118 432C CE35 E47A 2499
sub  2048R/C02DA2A645668428  created: 2015-05-26  expires: 2018-06-19  usage: S
     key fingerprint = 40A3 5561 8EEB A026 62AE  AF76 C02D A2A6 4566 8428

It can be downloaded or viewed here:

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=kqug
-----END PGP PUBLIC KEY BLOCK-----