{"id":13375760,"url":"https://github.com/purplei2p/i2pd-tools","last_synced_at":"2025-04-04T15:10:58.915Z","repository":{"id":50129380,"uuid":"68387966","full_name":"PurpleI2P/i2pd-tools","owner":"PurpleI2P","description":"Some useful tools for I2P","archived":false,"fork":false,"pushed_at":"2025-02-25T20:47:44.000Z","size":288,"stargazers_count":129,"open_issues_count":6,"forks_count":38,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-28T14:11:08.801Z","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":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PurpleI2P.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":"2016-09-16T14:42:46.000Z","updated_at":"2025-03-26T17:13:01.000Z","dependencies_parsed_at":"2024-01-25T00:05:44.287Z","dependency_job_id":"dbd88530-90e5-4a40-8b34-0b0cfee58f34","html_url":"https://github.com/PurpleI2P/i2pd-tools","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleI2P%2Fi2pd-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleI2P%2Fi2pd-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleI2P%2Fi2pd-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PurpleI2P%2Fi2pd-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PurpleI2P","download_url":"https://codeload.github.com/PurpleI2P/i2pd-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198463,"owners_count":20900080,"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":"2024-07-30T05:01:54.949Z","updated_at":"2025-04-04T15:10:58.877Z","avatar_url":"https://github.com/PurpleI2P.png","language":"C++","funding_links":[],"categories":["\u003ca id=\"6e80463404d46f0493cf6e84597e4b5c\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"ceb532aae106b39ea224c7aef786c831\"\u003e\u003c/a\u003eI2P"],"readme":"# i2pd-tools\n\nThis repository contains tools that supplement i2pd.\n\nNotice: git submodules are used so make sure to clone this repository recursively\n\n    git clone --recursive https://github.com/purplei2p/i2pd-tools\n\n## Building\n\n### Dependencies\n\n* boost chrono\n\n* boost date-time\n\n* boost filesystem\n\n* boost program-options\n\n* libssl\n\n* zlib1g\n\n  (run `dependencies.sh`)\n\n### Building\n\n```sh\ngit submodule init \u0026\u0026 git submodule update\ngit submodule update --init\ngit pull --recurse-submodules\nmake\n```\n\n## Tools included\n\n### routerinfo\n\nprint information about a router info file\n\n#### usage\n\n\nprint ip and port for router info excluding ipv6\n\n    ./routerinfo -p ~/.i2pd/netDb/r6/routerInfo-blah.dat\n\nprint iptables firewall rules to allow 1 nodes in netdb through firewall including ipv6 addresses\n\n    ./routerinfo -6 -f ~/.i2pd/netDb/r6/routerInfo-blah.dat\n\n### keygen\n\nGenerate an I2P private key\n\n#### Usage\n\nMake a EDDSA-SHA512-ED25519 destination key\n\n    ./keygen privkey.dat\n\nMake an destination key with a certain key type\n\n    ./keygen privkey.dat \u003cnumber\u003e\n\nor\n\n    ./keygen privkey.dat \u003ckey name\u003e\n\n\n| key name                             | number |\n| ------------------------------------ | ------ |\n| DSA-SHA1                             | 0      |\n| ECDSA-SHA256-P256                    | 1      |\n| ECDSA-SHA384-P384                    | 2      |\n| ECDSA-SHA512-P521                    | 3      |\n| RSA-SHA256-2048                      | 4      |\n| RSA-SHA384-3072                      | 5      |\n| RSA-SHA512-4096                      | 6      |\n| EDDSA-SHA512-ED25519                 | 7      |\n| GOSTR3410_CRYPTO_PRO_A-GOSTR3411-256 | 9      |\n| GOSTR3410_TC26_A_512-GOSTR3411-512   | 10     |\n| RED25519-SHA512                      | 11     |\n\nFor more information on the types of signatures, see the [documentation](https://i2pd.readthedocs.io/en/latest/user-guide/tunnels/#signature-types).\n### vain\n\nVanity generation address.\n\n#### Usage\n\n./vain --usage\n\n#### Time to Generate on a 2.70GHz Processor\n| characters| time to generate (approx.) |\n| -------------------- | --------------- |\n|         1 \t       | ~0.082s\t     |\n|         2\t           | ~0.075s\t     |\n|         3\t           | ~0.100s\t     |\n|         4\t           | ~0.394s\t     |\n|         5\t           | ~6.343s\t     |\n|         6\t           | ~1m-5m\t \t     |\n|         7\t           | ~30m\t \t     |\n\n### keyinfo\n\nPrints information about an I2P private key\n\n#### Usage\n\nPrint just the b32 address for this key\n\n     ./keyinfo privatekey.dat\n\n... just the base64 address\n\n    ./keyinfo -d privatekey.dat\n\nPrint all info about the public key\n\n    ./keyinfo -v privatekey.dat\n\n### regaddr\n\nGenerate authentication string to register a domain on reg.i2p and stats.i2p\n\n    ./regaddr domain.dat domain.i2p \u003e auth_string.txt\n    cat auth_string.txt\n\nSend output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html\n\nTo register a subdomain, use [`regaddr_3ld`](#regaddr_3ld)\n\n### regaddr_3ld\n\nGenerate authentication string to register a subdomain on reg.i2p and stats.i2p in 3 steps\n\n    ./regaddr_3ld step1 sub_domain.dat sub.domain.i2p \u003e step1.txt\n    ./regaddr_3ld step2 step1.txt domain.dat domain.i2p \u003e step2.txt\n    ./regaddr_3ld step3 step2.txt sub_domain.dat \u003e step3.txt\n    cat step3.txt\n\nSend output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html\n\n### regaddralias\n\nGenerate authentication string to register an alias address for existing domain on reg.i2p and stats.i2p\n\n    ./regaddralias domain-oldkeys.dat domain-newkeys.i2p domain \u003e auth_string.txt\n    cat auth_string.txt\n\nSend output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html\n\n### x25519\n\nGenerate key pair with output in base64 encoding. Now the x25519 keys are used for authentication with an encrypted LeaseSet.\n\n### famtool\n[this is program for works with family of routers in i2p-network. ](https://i2pd.readthedocs.io/en/latest/user-guide/family/)\n    \nusage: ```./famtool [-h] [-v] [-g -n family -c family.crt -k family.pem] [-s -n family -k family.pem -i router.keys -f router.info] [-V -c family.crt -f router.info]```\n    \ngenerate a new family signing key for family called ``i2pfam''\n```./famtool -g -n i2pfam -c myfam.crt -k myfam.pem```\n    \nsign a router info with family signing key\n```./famtool -s -n i2pfam -k myfam.pem -i router.keys -f router.info```\n    \nverify signed router.info\n```./famtool -V -n i2pfam -c myfam.pem -f router.info```\n#### Example of usage\n    $ ./famtool -g -n i2pfam -c myfam.crt -k myfam.pem\n    family i2pfam made\n    $ cat myfam.crt\n    -----BEGIN CERTIFICATE-----\n    MIIB3TCCAYOgAwIBAgIBADAKBggqhkjOPQQDAjB4MQswCQYDVQQGEwJYWDELMAkG\n    A1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnltb3VzIE5l\n    dHdvcmsxDzANBgNVBAsMBmZhbWlseTEeMBwGA1UEAwwVaTJwZmFtLmZhbWlseS5p\n    MnAubmV0MB4XDTIzMDczMTE5MjQ1MFoXDTMzMDcyODE5MjQ1MFoweDELMAkGA1UE\n    BhMCWFgxCzAJBgNVBAgMAlhYMQswCQYDVQQHDAJYWDEeMBwGA1UECgwVSTJQIEFu\n    b255bW91cyBOZXR3b3JrMQ8wDQYDVQQLDAZmYW1pbHkxHjAcBgNVBAMMFWkycGZh\n    bS5mYW1pbHkuaTJwLm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLejNp1Y\n    1tnMGFaUIuzNpNL8B9KvaeSSh+OWhRcHn2x1D8TPCVA4IMS0jiMIodCcdyTmz0Qg\n    SXsWDqT2CbBMENQwCgYIKoZIzj0EAwIDSAAwRQIgU58CeHXlluPZNxpmxb7HSHsJ\n    STCA8C946oas+8uLU+MCIQDe6Km/h8w+oCh+j6UHobN0EAVtQPQGwkq2XXs1jqX2\n    bQ==\n    -----END CERTIFICATE-----\n    $ cat myfam.pem\n    -----BEGIN EC PRIVATE KEY-----\n    MHcCAQEEIAFA82vZzZN8nZIOVnadSS73G2NNc5pUsh4qmpK2M0nsoAoGCCqGSM49\n    AwEHoUQDQgAEt6M2nVjW2cwYVpQi7M2k0vwH0q9p5JKH45aFFwefbHUPxM8JUDgg\n    xLSOIwih0Jx3JObPRCBJexYOpPYJsEwQ1A==\n    -----END EC PRIVATE KEY-----\n\n#### AutoConf\nA program for help create the config file for i2pd\n\nFor a now a better way to manual write the config file\n\nFor usage just run ./AutoConf or AutoConf.exe\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurplei2p%2Fi2pd-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpurplei2p%2Fi2pd-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpurplei2p%2Fi2pd-tools/lists"}