FM-39 · Seed phrase concealmentDistribution: unlimited. Copy freely.
Bitcoin Seed BookSelf-custody field manual

Verify a tome's signature on Windows, Mac and Linux

Home » Resources » Verify a tome's signature on Windows, Mac and Linux

Each tome in the vault is a zip of about 98 MB holding five years of ciphers, and next to each zip is a small .sign file. The signature was made with this site's private key, which exists on one machine. The public half is on the signing key page. If a zip verifies against that key, it is byte for byte the one we published, wherever you got it: this site, a mirror, a torrent, a USB stick from a friend.

That matters because the ciphers are the thing you decode your seed with. A tampered cipher would hand back the wrong words, or the right words to someone else. Verifying takes a minute and you only have to do it once per tome.

Get the three files

  1. The zip, for example en-bip39-2000-2004.zip.
  2. Its signature, en-bip39-2000-2004.zip.sign. Both come from the vault, its mirrors, or the torrents.
  3. The public key. Copy the block from the signing key page into a plain-text file named bitcoinseedbook.com-key.pub, or download signing.key.txt and rename it.

Put all three in one folder.

We will never ask for a seed word or a passphrase, and you should never type one into this site or any tool it links to. The commands below touch only the downloaded files.

Linux

Open a terminal in the folder. OpenSSL is installed on nearly every distribution; if openssl version prints nothing, install the openssl package.

openssl dgst -verify bitcoinseedbook.com-key.pub -keyform PEM -sha256 \
  -signature en-bip39-2000-2004.zip.sign en-bip39-2000-2004.zip

The answer you want is one line:

Verified OK

Mac

Open Terminal, cd to the folder, and run the same command. macOS ships LibreSSL under the name openssl, and this command works unchanged. openssl version will say LibreSSL and that is fine.

openssl dgst -verify bitcoinseedbook.com-key.pub -keyform PEM -sha256 \
  -signature en-bip39-2000-2004.zip.sign en-bip39-2000-2004.zip

Windows

Windows has no openssl by default. Two ways to get one:

  • If Git for Windows is installed, open Git Bash in the folder. It includes openssl, and the Linux command above runs as written.
  • Otherwise, in PowerShell: winget install ShiningLight.OpenSSL.Light, then open a new PowerShell window in the folder and run:
openssl dgst -verify bitcoinseedbook.com-key.pub -keyform PEM -sha256 `
  -signature en-bip39-2000-2004.zip.sign en-bip39-2000-2004.zip

(PowerShell uses a backtick to continue a line; or put it all on one line.)

What the answers mean

Verified OK means the zip's SHA-256 digest matches the one the private key signed. The file is ours and unchanged.

Verification failure, usually with a few lines of bad signature error above it, means the zip, the signature or the key is not the one that goes with the others. Do not use the zip. Download it again from a different source, and if it fails twice, write to us (the address is on the home page). A single flipped byte, a download that stopped early, or a mirror that re-zipped the folder all produce this answer.

Any other output, such as unable to load key file, means the command didn't run: the key file isn't plain text, a filename is wrong, or the three files aren't in the folder you are in.

Check the key itself

A signature is only as good as the key you checked it against. If someone could hand you a different key, they could hand you a different zip that verifies against it. Three things make that hard:

  1. Fingerprint. The key's SHA-256 fingerprint, computed over its DER form, is

6a273eeff6fa3a6e9a44fac12394b6bfa991c7576222f508d9ad019d2227234d

Compute yours and compare:

openssl pkey -pubin -in bitcoinseedbook.com-key.pub -outform DER | openssl dgst -sha256

  1. A second channel. The key page is also served on the onion site, which is reached by a different route and signs its own address. A key that matches on both is a key nobody substituted in transit.
  2. Time. The key has not changed since the site started. If the page ever shows a different key, something is wrong, and we would say so here and in the signed onion.txt.

Keep it

Once a tome verifies, keep the zip and its signature together on the drive you store it on, and verify again when you copy it somewhere new. The ciphers inside never change; a tome that verified in 2023 verifies today. And keep more tomes than you use: nobody can tell from a big download which cipher is yours.

Sources