{"id":20512638,"url":"https://github.com/felix-kaestner/pinentry-touchid","last_synced_at":"2025-04-13T23:08:05.937Z","repository":{"id":37534997,"uuid":"479537152","full_name":"felix-kaestner/pinentry-touchid","owner":"felix-kaestner","description":"Custom GPG pinentry program for macOS that allows using Touch ID for retrieving the key passphrase from the macOS keychain","archived":false,"fork":false,"pushed_at":"2022-06-21T17:14:31.000Z","size":20,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-13T23:07:54.439Z","etag":null,"topics":["gpg","macos","pinentry","touchid"],"latest_commit_sha":null,"homepage":"https://github.com/felix-kaestner/pinentry-touchid","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felix-kaestner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-08T21:01:07.000Z","updated_at":"2025-04-02T22:58:27.000Z","dependencies_parsed_at":"2022-08-26T15:22:46.347Z","dependency_job_id":null,"html_url":"https://github.com/felix-kaestner/pinentry-touchid","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felix-kaestner%2Fpinentry-touchid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felix-kaestner%2Fpinentry-touchid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felix-kaestner%2Fpinentry-touchid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felix-kaestner%2Fpinentry-touchid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felix-kaestner","download_url":"https://codeload.github.com/felix-kaestner/pinentry-touchid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248794571,"owners_count":21162615,"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":["gpg","macos","pinentry","touchid"],"created_at":"2024-11-15T20:42:13.153Z","updated_at":"2025-04-13T23:08:05.917Z","avatar_url":"https://github.com/felix-kaestner.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pinentry-TouchID\n\nCustom GPG pinentry program for macOS that allows using Touch ID for retrieving the key passphrase from the macOS keychain. (MacBook Pro with TouchID only)\n\n## Installation\n\n### Prerequisites\n\n* [gnupg](https://formulae.brew.sh/formula/gnupg)\n* [pinentry-mac](https://formulae.brew.sh/formula/pinentry-mac)\n\nInstall both using [Homebrew](https://brew.sh):\n\n```sh\n$ brew install gnupg pinentry-mac\n```\n\n### Pre-build Binaries\n\nDownload pre-build `pinentry-touchid` binaries from the [GitHub Releases page](https://github.com/felix-kaestner/pinentry-touchid/releases).\n\n```sh\n$ VERSION=$(curl -fsSL https://api.github.com/repos/felix-kaestner/pinentry-touchid/releases/latest | jq -r .tag_name)\n$ curl -fsSL -o pinentry-touchid \"https://github.com/felix-kaestner/pinentry-touchid/releases/download/${VERSION}/pinentry-touchid-${VERSION}-$(uname -s)-$(uname -m)\"\n$ mv pinentry-touchid /usr/local/bin/pinentry-touchid\n```\n\n### Manual\n\nClone the repository:\n\n```sh\n$ git clone https://github.com/felix-kaestner/pinentry-touchid.git\n```\n\nBuild the binary using:\n\n```sh\n$ ./build.sh\n```\n\n## Quickstart\n\nList the keygrip of the GPG Key for which you want to store the passphrase:\n\n```sh\n$ gpg --list-keys --with-keygrip\n\n/Users/user/.gnupg/pubring.kbx\n----------------------------------------\npub   rsa4096 2022-04-01 [SC]\n      \u003c ... \u003e\n      Keygrip = 78066B99A804208F8DDB3C8F388C56C1C74EA812\nuid           [ultimate] Felix Kästner \u003cmail@felix-kaestner.com\u003e\n```\n\nCreate a new entry in the MacOS Keychain for storing your passphrase:\n\nGo to `Keychain Access` \u003e Select the `login` keychain under _Default Keychains_ \u003e Click on _Create new Keychain item._ in the upper right (via the pencil icon).\nFill in the prompt with the following information:\n\n* Keychain Item Name: `\"GnuPG\"`\n* Account Name: GPG Keygrip\n* Password: Your Passphrase\n\nFinally, click on `Add`.\n\n\u003cimg width=\"641\" src=\"https://user-images.githubusercontent.com/23213965/162564229-2f6149f6-49c5-472a-a1c9-e4a9c0494205.png\"\u003e\n\nConfigure the `gpg-agent` to use `pinentry-touchid` as its pinentry program. Add or replace the following line to your gpg agent configuration in: `~/.gnupg/gpg-agent.conf`:\n```sh\n$ pinentry-program /usr/local/bin/pinentry-touchid\n```\n\n`Pinentry-TouchID` is now fully configured! \n\nWhen used for the first time, MacOS will prompt you to allow access to the keychain. Simply provide access by using your user password and clicking `Always Allow`, so you won't be asked on every use.\n\n\u003cimg width=\"546\" src=\"https://user-images.githubusercontent.com/23213965/162564580-0949974b-65cc-49ca-91ff-37af8923d524.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelix-kaestner%2Fpinentry-touchid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelix-kaestner%2Fpinentry-touchid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelix-kaestner%2Fpinentry-touchid/lists"}