{"id":13456154,"url":"https://github.com/Logicwax/gpg-hd","last_synced_at":"2025-03-24T09:31:32.556Z","repository":{"id":38620647,"uuid":"325177656","full_name":"Logicwax/gpg-hd","owner":"Logicwax","description":"A BIP-39 / seed-phrase / brain-wallet based Hierarchical Deterministic GPG / SSH key generator that also provisions OpenPGP smartcards for easy key backup and recovery.","archived":false,"fork":false,"pushed_at":"2023-02-22T09:00:55.000Z","size":39,"stargazers_count":38,"open_issues_count":2,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-28T23:33:52.405Z","etag":null,"topics":["bip-0039","bip39","brainwallet","deterministic","gpg","gpg-keychain","openpgp","ssh-key","yubikey"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Logicwax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-12-29T03:35:52.000Z","updated_at":"2024-10-02T16:53:43.000Z","dependencies_parsed_at":"2024-01-13T17:48:34.137Z","dependency_job_id":"d988645f-2dc8-421a-837a-5e2460babb5a","html_url":"https://github.com/Logicwax/gpg-hd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicwax%2Fgpg-hd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicwax%2Fgpg-hd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicwax%2Fgpg-hd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicwax%2Fgpg-hd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Logicwax","download_url":"https://codeload.github.com/Logicwax/gpg-hd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245243303,"owners_count":20583603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bip-0039","bip39","brainwallet","deterministic","gpg","gpg-keychain","openpgp","ssh-key","yubikey"],"created_at":"2024-07-31T08:01:16.989Z","updated_at":"2025-03-24T09:31:30.593Z","avatar_url":"https://github.com/Logicwax.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Deterministic GPG brainwallet keychain generator\n=============================\n\nGPG-HD is a deterministic full GPG keychain (CA key + 3 subkeys) generator using an input seed such as a BIP-39 phrase.  It also automates writing this keychain to Yubikeys and generates public SSH keys.  For those who don't want their digital identity to be tied to physical media in case of theft/loss/or electronic failure.  This Idea was prompted by [electrum](https://electrum.org/), DJB's blog [Entropy Attacks](http://blog.cr.yp.to/20140205-entropy.html), and Arttu Kasvio's [ deterministic GPG key project.](https://github.com/arttukasvio/deterministic)\n\n\n\nRequirements\n------------\n\n* gpg\n* monkeysphere \n* python3-crypto\n* python3-pexpect\n\n\nInstallation\n------------\n\nsudo apt-get install gpg monkeysphere python3-crypto python3-pexpect make\n\n\nOr if you're really lazy: \n`make install`  (will need sudo elevation)\n\nHow to use\n----------\n\n`./gpg-hd -h`\n\n`./gpg-hd \"some awesome BIP-39 seed ...\"  [--card]`\n\n`./gpg-hd --name=\"Satoshi Nakamoto\" --email=\"satoshi@aol.com\" [--card] \"some awesome BIP-39 seed phrase ...\"`\n\nIf the argument `--card` is supplied then GPG-HD will attempt to write the three subkeys (Encryption, Auth, Sig) to a card such as a Yubikey. \n\nBy default GPG-HD uses 1970-01-1 (Unix epoch of 1 second) to signal a deterministic keychain.  Optionally one can over-ride this with `--date=unix_time_in_secs`\n while key expirations are defaulted to 2 years.\n\nPrivate and Public GPG keychain files + SSH public key are located in the `keys` sub-directory.\n\n\nTesting\n----------\n\nIf on a non-debian system, you can easily test with docker (needs to be installed):\n\n`make docker-test`\n\n\nUse Cases\n----------\n\nOn an airgap machine, use a safe brainwallet such as [PortalWallet](https://github.com/Logicwax/PortalWallet) to generate a BIP-39 phrase:\n\n`SEED = portalwallet(\"satoshi\")`\n\n `SEED=\"fetch december jazz hood pact owner cloth apart impact then person actual\"`\n\n `./gpg-hd $SEED --name=\"satoshi\" --email=\"satoshi@aol.com\"`\n\n or \n\n `./gpg-hd $SEED --name=\"satoshi\" --email=\"satoshi@aol.com\" --card` will create a yubikey (which you can also use for SSH authentication along with the exported SSH key)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLogicwax%2Fgpg-hd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLogicwax%2Fgpg-hd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLogicwax%2Fgpg-hd/lists"}