{"id":20709007,"url":"https://github.com/difrex/pmd","last_synced_at":"2025-07-14T12:36:31.135Z","repository":{"id":30305332,"uuid":"33857067","full_name":"Difrex/PMd","owner":"Difrex","description":"Simple secure storage","archived":false,"fork":false,"pushed_at":"2017-09-14T09:30:30.000Z","size":33,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-14T06:02:31.548Z","etag":null,"topics":["api","gnupg","golang","storage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Difrex.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}},"created_at":"2015-04-13T08:34:22.000Z","updated_at":"2017-09-13T14:32:51.000Z","dependencies_parsed_at":"2022-09-15T18:40:23.629Z","dependency_job_id":null,"html_url":"https://github.com/Difrex/PMd","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Difrex/PMd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Difrex%2FPMd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Difrex%2FPMd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Difrex%2FPMd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Difrex%2FPMd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Difrex","download_url":"https://codeload.github.com/Difrex/PMd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Difrex%2FPMd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265293295,"owners_count":23742267,"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":["api","gnupg","golang","storage"],"created_at":"2024-11-17T01:34:30.437Z","updated_at":"2025-07-14T12:36:31.097Z","avatar_url":"https://github.com/Difrex.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PMd\n\nSimple secure storage.\n\nPublic server available at https://pm.lessmore.pw\n\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [PMd](#pmd)\n- [API](#api)\n    - [User registartion](#user-registartion)\n    - [Push data](#push-data)\n    - [Get data](#get-data)\n    - [List data versions](#list-data-versions)\n    - [Delete data version](#delete-data-version)\n    - [Selfdelete](#selfdelete)\n\n\u003c!-- markdown-toc end --\u003e\n\n\n# API\n\n## User registartion\n\nSend post request with you PGP public key.\n```\nPUBKEY=`gpg --export -a \u003cyou_keyid\u003e`\ncat \u003e reg.json \u003c\u003cEOF\n{\n    \"pubkey\": \"$PUBKEY\"\n}\nEOF\ncurl -XPOST -d @reg.json https://pm.lessmore.pw/register\n```\n\nReturn JSON:\n```\n{\"error\": \"\",\"userid\": 100}\n```\n\n## Push data\n\nPut you data in JSON and sign\n```\nSECRET=`cat my_secret | base64`\ncat \u003e data.json \u003c\u003cEOF\n{\n    \"data\": \"$SECRET\"\n}\ngpg --clearsign --sign-with $PUBKEY \u003e signed\n\ncurl -XPOST -d \"`cat signed`\" https://pm.lessmore.pw/push\n```\n\nReturn JSON with data version, time, and state\n```\n{\"version\":\"CyVYq3do1DM1mMf96ziAGfZB3s856zH6eWQVoQsMzgQ=\",\"time\":\"2017-09-13T16:51:53.025960496+03:00\",\"state\":\"OK\",\"error\":\"\"}\n```\n\n## Get data\n\nSign JSON request\n```\necho '{\"version\": \"CyVYq3do1DM1mMf96ziAGfZB3s856zH6eWQVoQsMzgQ=\"}' | gpg --clearsign --sign-with \u003cyou_keyid\u003e \u003e signed.json\ncurl -XPOST -d @signed.json https://pm.lessmore.pw/pull \n```\n\nReturn armored encrypted data\n```\n-----BEGIN PGP MESSAGE-----\n\nhQEMA/jh+hN2m5ysAQf/X4eTuoIZyIghBWBMsfr72RgIcquv5uE6QnybfZH2Aq8A\nf1rzhbBfbVlMgLwvKY/I7C9G5ZGCQQViyC7VaWxqvI8V3sOe8IEDyi1DqEzuxZA+\nFQgIEFJpbWRo0Fu4/tQmUuDYiVIFHC2h2/jc8+Kj8KR12hWnvL5mjKogqsTSpOtk\nOMCzcZs/1p298TlLx/RZoY+Ktn6IvRtE2PdEw0Kw7F4g9Jad3wyGykdH81rPETTt\nGPtV7CmaIVE4sSdWgDA/fkR8Gin0cKXVxC+c54wXs+iRpgX/nE1ZFGaPNG5MG117\nu/5S7mDg3S6Znaym38Mqu1oav7ImmsfvPNV8Q1LT+tJJAVqzJhDJY83XCTIDQict\n5xw0c6PnfRPUffvmdzrstSU35LV+tMz9kDGqjW1Ss40VC3PKixg0yk6Jz5SamLBS\n4sKoE8PDmL+qCw==\n=2qKU\n-----END PGP MESSAGE-----\n```\n\n## List data versions\n\nMake POST request with some signed message\n```\ncurl -XPOST -d @signed https://pm.lessmore.pw/list\n```\n\nReturn armored encrypted data with JSON structure:\n```\n{\n    \"state\": \"ok\",\n    \"versions\": [\n        {\n            \"time\": \"2017-09-13T13:40:58Z\",\n            \"version\": \"mCcTx-k\"\n        },\n        {\n            \"time\": \"2017-09-13T13:41:10Z\",\n            \"version\": \"-WvhMo\"\n        }\n    ]\n}\n```\n\n## Delete data\n\nDelete data\n\nSign JSON and send it\n```\n{\n    \"version\": \"-WvhMo\"\n}\ncurl -XPOST -d @signed https://pm.lessmore.pw/delete\n```\n\nReturn JSON\n```\n{\n    \"state\": \"ok\",\n    \"version\": \"-WvhMo\"\n}\n```\n\n## Selfdelete\n\nRemove **all** user data and delete user.\n\nSend signed message\n```\ncurl -XPOST -d @signed https://pm.lessmore.pw/purge\n```\n\nReturn JSON:\n```\n{\n    \"state\":\"ok\",\n    \"gpgid\":\"5083F08AACD7CDBC\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdifrex%2Fpmd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdifrex%2Fpmd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdifrex%2Fpmd/lists"}