{"id":49970984,"url":"https://github.com/bp-alex/ip-bound-hmac","last_synced_at":"2026-05-18T08:06:51.988Z","repository":{"id":143129078,"uuid":"341426612","full_name":"bp-alex/IP-Bound-HMAC","owner":"bp-alex","description":"A Cloudflare Worker that returns a SHA-256 HMAC based on requestor IP address and provided URL path.","archived":true,"fork":false,"pushed_at":"2021-02-24T00:28:34.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-04T17:58:05.993Z","etag":null,"topics":["cloudflare-workers","hash","hmac","secrets-management","secrets-sharing","serverless"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/bp-alex.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":"2021-02-23T04:23:01.000Z","updated_at":"2025-05-28T05:46:29.000Z","dependencies_parsed_at":"2024-02-23T03:46:17.856Z","dependency_job_id":null,"html_url":"https://github.com/bp-alex/IP-Bound-HMAC","commit_stats":null,"previous_names":["bp-alex/ip-bound-hmac"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bp-alex/IP-Bound-HMAC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bp-alex%2FIP-Bound-HMAC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bp-alex%2FIP-Bound-HMAC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bp-alex%2FIP-Bound-HMAC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bp-alex%2FIP-Bound-HMAC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bp-alex","download_url":"https://codeload.github.com/bp-alex/IP-Bound-HMAC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bp-alex%2FIP-Bound-HMAC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33170447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T05:43:36.989Z","status":"ssl_error","status_checked_at":"2026-05-18T05:43:19.133Z","response_time":71,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cloudflare-workers","hash","hmac","secrets-management","secrets-sharing","serverless"],"created_at":"2026-05-18T08:06:46.484Z","updated_at":"2026-05-18T08:06:51.979Z","avatar_url":"https://github.com/bp-alex.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IP-Bound-HMAC\n\nA [Cloudflare Worker](https://workers.cloudflare.com/) that returns a SHA-256\nHMAC based on requestor IP address and provided URL path.\n\nIn effect this allows a client to make a HTTP GET request and receive a Base64\nresponse which can be used for purposes such as unsealing a local key store.\n\n# Public Deployment\n\nThis worker is deployed at `https://ip-bound-hmac.acegi.com.au`. This instance\nis freely provided on a \"best efforts\" basis and as such may be removed or stop\nworking at any time. Nevertheless you are welcome to use it if it assists your\nuse case and you are only making a small number of requests. It also lets you\nquickly test the worker without deploying it yourself (eg use different IP\naddresses and/or paths and observe the HMAC changes):\n\n  * https://ip-bound-hmac.acegi.com.au/hello-world\n  * https://ip-bound-hmac.acegi.com.au/another-path\n\n# Hosting Your Own Deployment\n\n1. Sign up for a Cloudflare Account and create a zone\n2. Add a DNS A record for `ip-bound-hmac.YOUR-DOMAIN` to `192.0.2.1`\n3. Install [Wrangler](https://developers.cloudflare.com/workers/cli-wrangler/install-update)\n4. Configure with `wrangler login`\n5. Clone this repository\n6. Copy `wrangler.yaml.example` to `wrangler.yaml` and adjust to your domain\n7. Create a secret using `wrangler secret put SECRET`\n8. Deploy using `wrangler publish`\n\n# Usage\n\nSimply request `https://ip-bound-hmac.YOUR-DOMAIN/any-path` and you will receive\nback a SHA-256 HMAC specific to that path, IP address and worker SECRET.\n\nSee [PiTang](https://github.com/benalexau/PiTang) for a practical example of how\nto use this worker to unlock LUKS volumes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbp-alex%2Fip-bound-hmac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbp-alex%2Fip-bound-hmac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbp-alex%2Fip-bound-hmac/lists"}