{"id":25060256,"url":"https://github.com/42ways/simple-keystore","last_synced_at":"2025-03-31T11:16:03.123Z","repository":{"id":71972513,"uuid":"283790561","full_name":"42ways/simple-keystore","owner":"42ways","description":"This is a very simple keystore to track and share stuff like infrastructure information, credentials etc. using PGP encryption","archived":false,"fork":false,"pushed_at":"2020-07-30T16:23:07.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-06T16:05:55.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/42ways.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-30T13:59:47.000Z","updated_at":"2020-07-30T16:23:09.000Z","dependencies_parsed_at":"2023-07-10T10:32:37.347Z","dependency_job_id":null,"html_url":"https://github.com/42ways/simple-keystore","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/42ways%2Fsimple-keystore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ways%2Fsimple-keystore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ways%2Fsimple-keystore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/42ways%2Fsimple-keystore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/42ways","download_url":"https://codeload.github.com/42ways/simple-keystore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246458008,"owners_count":20780678,"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":[],"created_at":"2025-02-06T15:57:36.815Z","updated_at":"2025-03-31T11:16:03.115Z","avatar_url":"https://github.com/42ways.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# simple-keystore\n\nThis is a very simple encrypted storage to track and share stuff like infrastructure information, credentials etc. using PGP encryption, implemented for our small team in the early 2000s.\n\nTo keep it simple and convenient, scripts and data are stored together in the same repository. Updating your workspace (retrieval of the latest data), commiting changes and pushing back to the repository are all handled by the scripts (using git).\n\n\n## Usage\n\nThe system basically consists of two bash scripts.\n\n### show-keys\n\nUpdate the workspace, decrypt the file `keys.asc` to `keys` and show it's contents on the console (using `less`).\n\nThe file `keys.asc` has to be encypted using your public PGP key in order to be able to decrypt it.\n\nThe temporary plain text files will be overridden with random data.\n\n### edit-keys\n\nUpdate the workspace (`git pull`), decrypt the file `keys.asc` to `keys` and open an editor (using the VISUAL environment variable, defaults to \"vi\" if not set). After leaving the editor, changes will be commited and pushed back to your repository.\n\nThe initial file `keys.asc` has to be encypted using your public PGP key in order to be able to decrypt it. It will be encrypted with all keys listed in `encypt-to-users` after editing.\n\nYou will be prompted for a commit comment.\n\nThe temporary plain text files will be overridden with random data.\n\n## Files\n\n### encrypt-to-users\n\nList of PGP addresses to encrypt the keys file. The public keys of all addresses must be available for your GPG installation.\n\n### sign-user\n\n(Optional) PGP address for signing the keys file. Will be your GPG user if omitted.\n\n## Requirements\n\n* GPG\n* git\n* perl (for overwriting the plain text files with garbage. Feel free to implement `erase-keys` in a language of you choice if this annoys you)\n\n## Bootstrap\n\nIn order to install, you have to setup a git repository you want to use for your secret information and add the files from this project by following these steps:\n\n* create an empty git repository on a trustworthy git server (a local machine is highly recommended for this!)\n* clone the newly created repository to your workstation\n* pull the content of this repository into your empty workspace\n  * `git pull https://github.com/42ways/simple-keystore.git`\n* edit the files `encrypt-to-users` and optionally `sign-user` to include the addresses you want to use\n* create your initial `keys.asc` file, e.g. by using the provided plain text `keys.sample`, encrypting and adding it to your repo\n  * `cp keys.sample keys`\n  * `gpg --sign --encrypt --armor -r \u003cYOUR_GPG_USER_ID\u003e keys`\n  * `git add keys.asc`\n  * `git commit -avm 'add initial keys.asc'`\n* do an initial edit of your new key store by calling `edit-keys` (you will be prompted if you want to reuse the still existing plain text file) and enter some information into the file\n\nNow the file `keys.asc` should have been updated with your newly entered information (prove this with `show-keys`) and the changes should have been pushed to your remote.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F42ways%2Fsimple-keystore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F42ways%2Fsimple-keystore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F42ways%2Fsimple-keystore/lists"}