{"id":13775719,"url":"https://github.com/rdkr/oniongen-go","last_synced_at":"2026-03-12T19:33:22.504Z","repository":{"id":18892879,"uuid":"85517634","full_name":"rdkr/oniongen-go","owner":"rdkr","description":"🔑 v3 .onion vanity URL generator written in Go","archived":false,"fork":false,"pushed_at":"2023-10-19T20:36:49.000Z","size":13,"stargazers_count":136,"open_issues_count":6,"forks_count":28,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-11T08:35:43.537Z","etag":null,"topics":["golang","onion","tor"],"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/rdkr.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":"2017-03-19T23:48:33.000Z","updated_at":"2025-03-20T10:20:40.000Z","dependencies_parsed_at":"2024-06-18T21:34:36.148Z","dependency_job_id":"b1b5532a-465c-4cf4-83a8-e7b03650fc54","html_url":"https://github.com/rdkr/oniongen-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rdkr/oniongen-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkr%2Foniongen-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkr%2Foniongen-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkr%2Foniongen-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkr%2Foniongen-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rdkr","download_url":"https://codeload.github.com/rdkr/oniongen-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdkr%2Foniongen-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30439912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"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":["golang","onion","tor"],"created_at":"2024-08-03T17:01:47.202Z","updated_at":"2026-03-12T19:33:22.466Z","avatar_url":"https://github.com/rdkr.png","language":"Go","funding_links":[],"categories":["\u003ca id=\"6e80463404d46f0493cf6e84597e4b5c\"\u003e\u003c/a\u003e工具","Go"],"sub_categories":["\u003ca id=\"e99ba5f3de02f68412b13ca718a0afb6\"\u003e\u003c/a\u003eTor\u0026\u0026\u0026Onion\u0026\u0026洋葱"],"readme":"# oniongen-go\n\nv3 .onion address vanity URL generator written in Go.\n\nThis implementation generates random ed25519 keys across all CPU cores. The ed25519 public key is converted to a Tor v3 .onion address which is then compared to a user supplied regex to find a vanity URL. If the regex for the .onion address matches, the secret key is expanded for use by Tor and the public key, secret key, and hostname are written to file in a new directory named for the .onion address. The program terminates when the user supplied number of addresses have been generated.\n\n## Usage\n\n```\ngo run main.go \u003cregex\u003e \u003cnumber\u003e\n\n    regex   regex pattern addresses should match, consisiting of: A-Z, 2-7\n    number  number of matching addresses to generate before exiting\n```\n\n## Example\n\n```\ngo run main.go \"^test\" 5\n\n    generate 5 onion addresses starting with \"test\"\n```\n\n## References\n\n- public key -\u003e onion: https://github.com/torproject/torspec/blob/12271f0e6db00dee9600425b2de063e02f19c1ee/rend-spec-v3.txt#L2136-L2158\n- secret key expansion:\n    - implementation in mkp224o: https://github.com/cathugger/mkp224o/blob/af5a7cfe122ba62e819b92c8b5a662151a284c69/ed25519/ed25519.h#L153-L161\n    - possibly related: https://github.com/torproject/torspec/blob/12271f0e6db00dee9600425b2de063e02f19c1ee/rend-spec-v3.txt#L2268-L2327 ??\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkr%2Foniongen-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frdkr%2Foniongen-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdkr%2Foniongen-go/lists"}