{"id":15886582,"url":"https://github.com/olebedev/pinentry-mac-keychain","last_synced_at":"2025-08-14T04:33:28.341Z","repository":{"id":142443313,"uuid":"594845541","full_name":"olebedev/pinentry-mac-keychain","owner":"olebedev","description":"A pinentry program for macOs that stores entered PINs in the macOS KeyChain. Convenient when use with smart cards, like Yubikey","archived":false,"fork":false,"pushed_at":"2023-02-10T09:33:17.000Z","size":10,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-28T01:25:57.935Z","etag":null,"topics":["gpg","keychain","pinentry","yubikey"],"latest_commit_sha":null,"homepage":"","language":"Go","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/olebedev.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-29T20:09:04.000Z","updated_at":"2024-03-19T07:50:52.000Z","dependencies_parsed_at":"2023-03-21T20:32:35.015Z","dependency_job_id":null,"html_url":"https://github.com/olebedev/pinentry-mac-keychain","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/olebedev%2Fpinentry-mac-keychain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fpinentry-mac-keychain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fpinentry-mac-keychain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olebedev%2Fpinentry-mac-keychain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olebedev","download_url":"https://codeload.github.com/olebedev/pinentry-mac-keychain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229801726,"owners_count":18126248,"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","keychain","pinentry","yubikey"],"created_at":"2024-10-06T05:40:54.415Z","updated_at":"2024-12-15T09:22:56.522Z","avatar_url":"https://github.com/olebedev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pinentry-mac-keychain\n\nCustom GPG pinentry program for macOS that fetching the password from the macOS keychain. _WARNING: Use it on your own risk._                               \n\n### How does it work\n\nThe `pinentry-mac-keychain` acts like a proxy between the `gpg-agent` and the original `pinentry-mac` \nexecutable in order to hijack requests for PIN and pull the PIN from the users keychain instead of\npoping up the `pinentry-mac` UI each time. This is useful if you can be sure no one will attempt\nto use your macOs machine to perform malicuous actions while you away but your Smart Card, like Yubikey,\nis plugged in. Otherwise it will be a significant security risk.\n\nThe program proxies only the requests that can be recongnised as the requirests for the PIN, coming from the GnuPG toolset (see the RegExp that detects that in [`./utils.go#L13`](./utils.go#L13)) and doesn't proxies any other requirests, like `MESSAGE` and `CONFIRM`.\n\n### Install\n\nInstallation is being performed via Nix package manager. So you'd need to have it installed first.\nOnce Nix is installed with Flakes support, you can install `pinentry-mac-keychain` via:\n\n```\n$ nix profile install github:olebedev/pinentry-mac-keychain\n```\n\nOtherwise, if your Nix installation doesn't support Flakes you can install it via:\n```\n$ nix-env -i -f https://github.com/olebedev/pinentry-mac-keychain/archive/main.tar.gz\n```\n\nAfter that, make sure you added the following line \n```\npinentry-program /Users/\u003cyour user name\u003e/.nix-profile/bin/pinentry-mac-keychain\n```\nto your `~/.gnupg/gpg-agent.conf` file and restarted GPG agent via:\n```\n$ gpgconf --kill all\n```\n\n### Build from source\n\n```\n$ go install .\n```\n\n### Debug\n\nIt can be built so it writes down logs into a file:\n```\n$ go install -ldflags \"-X main.logfile=$HOME/pinentry.log\"\n```\n\n### TODO:\n  - [ ] setup github actions\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folebedev%2Fpinentry-mac-keychain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folebedev%2Fpinentry-mac-keychain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folebedev%2Fpinentry-mac-keychain/lists"}