{"id":28299050,"url":"https://github.com/mwarning/authaddrs","last_synced_at":"2025-06-15T09:31:15.682Z","repository":{"id":11281793,"uuid":"13690879","full_name":"mwarning/AuthAddrs","owner":"mwarning","description":"AuthAddrs filters a list of network addresses using a public/secret key challenge.","archived":false,"fork":false,"pushed_at":"2014-02-13T13:03:41.000Z","size":192,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T01:06:51.284Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/mwarning.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}},"created_at":"2013-10-18T22:05:53.000Z","updated_at":"2014-02-13T13:03:43.000Z","dependencies_parsed_at":"2022-09-16T19:01:46.311Z","dependency_job_id":null,"html_url":"https://github.com/mwarning/AuthAddrs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mwarning/AuthAddrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2FAuthAddrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2FAuthAddrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2FAuthAddrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2FAuthAddrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwarning","download_url":"https://codeload.github.com/mwarning/AuthAddrs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwarning%2FAuthAddrs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259952074,"owners_count":22936925,"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-05-23T06:16:21.709Z","updated_at":"2025-06-15T09:31:15.673Z","avatar_url":"https://github.com/mwarning.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"AuthAddrs\n===========\n\n## Description\n\nAuthAddrs filters a list of IP addresses for nodes that can solve\na specific cryptographic challenge. By default, AuthAddrs\nexits after one verified IP address will be printed out or after\nthe timeout is reached.\n\nThis tool is used for the testing of authentification schemes.\n\nAuthentication is done via a public/secret key system\nimplemented by the [libnacl](http://nacl.cr.yp.to/)/[libsodium](https://github.com/jedisct1/libsodium) library.\n\n## Usage Example\n\n1. Generate a key pair:\n    ```\n$ ./auth_addrs gen\npublic key: bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa\nsecret key: ce75e6ec974f29462bd4bd255f7eac2f4a51d214eb4503d939ade2fd757fab60bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa\n```\n\n2. Start server instances on one or more computers:\n\n    Node at 192.168.1.2\n    ```$./auth_addrs server --secret-key ce75e6ec974f29462bd4bd255f7eac2f4a51d214eb4503d939ade2fd757fab60bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa```\n\n    Node at 192.168.1.5\n    ```$./auth_addrs server --secret-key ce75e6ec974f29462bd4bd255f7eac2f4a51d214eb4503d939ade2fd757fab60bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa```\n\n    Node at 192.168.1.8 (but using the wrong secret)\n    ```$./auth_addrs server --secret-key aaaae6ec974f29462bd4bd255f7eac2f4a51d214eb4503d939ade2fd757fab60bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa```\n\n3. Start client with public key and all potential address\n    ```\n$./auth_addrs client 192.168.1.2 192.168.1.5 192.168.8 --wait --public-key bea123645d036aa9eddd745d5c87d0e328b28f9a1eb8d86e86ce360e2fabfaaa\n192.168.1.2\n192.168.1.5\n```\n\n    The client will now send random strings to each node (a challenge).\n    Every server will sign the challenge using its secret key and send it\n    back to the client. The client will try to verify the response using the\n    public key. The address of every successfully verified server will be\n    then printed out to the console.\n\n## Options\n\nUsage: `auth_addr` gen\n\n  * Generates a new public/secret key pair.\n\nUsage: `auth_addr` client [arguments] --public-key *key* [addresses]\n\n  * `--port` *port*  \n    Set the port to listen for replies.  \n    Default: 5292\n\n  * `--help, -h`  \n    Show this help text.\n\n  * `--ipv6,-6`  \n    IPv6 mode. Default is IPv4.\n\n  * `--public-key` *key/file*  \n    The public key or a file.\n\n  * `--verbosity` *level*  \n    Verbosity level: quiet, verbose or debug.  \n    Default: verbose\n\n  * `--timeout` *seconds*  \n    Quit after n seconds.  \n    Default: 1\n\n  * `--wait`  \n    Wait for the timeout to expire.\n\nUsage: `auth_addr` server [arguments] --secret-key *key*\n\n  * `--port` *port*  \n    Set the port to listen for replies.  \n    Default: 5292\n\n  * `--help, -h`  \n    Show this help text.\n\n  * `--ipv6,-6`  \n    IPv6 mode. Default is IPv4.\n\n  * `--secret-key` *key/file*  \n    The secret key or a file.\n\n  * `--verbosity` *level*  \n    Verbosity level: quiet, verbose or debug  \n    Default: verbose\n\n  *  `--daemon`  \n    Run server as daemon.\n\n  *  `--user` *name*  \n    Change user when starting as daemon.\n\n\n##Example\n\nAs an example we generate a new key pair.\nThe keys are displayed shortened.\n\n```\n./auth_addrs gen\npublic key: 1d749d4d...\nsecret key: 7aec1be6514b6...\n```\n\nNow we start two server instances with the correct secret key\nand one with a wrong key.\n\n```\nauth_addrs server --port 3333 --secret-key 7aec1be6514b6...\nauth_addrs server --port 4444 --secret-key 999c1be6514b6...\nauth_addrs server --port 5555 --secret-key 7aec1be6514b6...\n```\n\nThe client node now checks all given servers for the secret message:\n\n```\nauth_addrs client --port 1234 --wait --public-key 1d749d4d... localhost:3333 localhost:4444 localhost:5555\n127.0.0.1:3333\n127.0.0.1:5555\n```\n\nAs you can see, only two instances have the correct secret key.\n\n## LICENSE\n\n  GPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwarning%2Fauthaddrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwarning%2Fauthaddrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwarning%2Fauthaddrs/lists"}