Some useful tools for I2P
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
wipedlifepotato e1e0ab3a88
Merge branch 'master' into master
1 year ago
common fix make, drop unsupported websocks tools 4 years ago
i2pd@a6bd8275ca fix keyinfo on latest gcc, update Makefile 2 years ago
scripts i2pdctl: compatibility with Java 6 years ago
todelete undo old vain version + pre init macros for InitCrypto 1 year ago
.gitignore gitignore updated 3 years ago
.gitmodules i2pd sumodule added 8 years ago
LICENSE keygen added 8 years ago
Makefile Merge branch 'master' into master 1 year ago
README.md Add famtool example and vain usage to README.md 1 year ago
b33address.cpp clean code 4 years ago
dependencies.sh LSB Release instead uname if we can 1 year ago
famtool.cpp fixed build error for LocalRouterInfo and SSU2 2 years ago
i2pbase64.cpp clean code 4 years ago
keygen.cpp keygen in user friendly mode 3 years ago
keyinfo.cpp fix keyinfo on latest gcc, update Makefile 2 years ago
offlinekeys.cpp user friendly mode 4 years ago
regaddr.cpp fix keyinfo on latest gcc, update Makefile 2 years ago
regaddr_3ld.cpp fixed build with recent libi2pd 4 years ago
regaddralias.cpp clean code 4 years ago
routerinfo.cpp fixed build error for LocalRouterInfo and SSU2 2 years ago
vain.cpp multiple search addresses 1 year ago
vanity.hpp multiple search addresses 1 year ago
verifyhost.cpp add verifyhost tool 4 years ago
x25519.cpp fixed #74 3 years ago

README.md

i2pd-tools

This repository contains tools that supplement i2pd.

Notice: git submodules are used so make sure to clone this repository recursively

git clone --recursive https://github.com/purplei2p/i2pd-tools

Building

Dependencies

  • boost chrono

  • boost date-time

  • boost filesystem

  • boost program-options

  • libssl

  • zlib1g

    (run dependencies.sh)

Building

make

Tools included

routerinfo

print information about a router info file

usage

print ip and port for router info excluding ipv6

./routerinfo -p ~/.i2pd/netDb/r6/routerInfo-blah.dat

print iptables firewall rules to allow 1 nodes in netdb through firewall including ipv6 addresses

./routerinfo -6 -f ~/.i2pd/netDb/r6/routerInfo-blah.dat

keygen

Generate an I2P private key

Usage

Make a EDDSA-SHA512-ED25519 destination key

./keygen privkey.dat

Make an destination key with a certain key type

./keygen privkey.dat <number>

or

./keygen privkey.dat <key name>
key name number
DSA-SHA1 0
ECDSA-SHA256-P256 1
ECDSA-SHA384-P384 2
ECDSA-SHA512-P521 3
RSA-SHA256-2048 4
RSA-SHA384-3072 5
RSA-SHA512-4096 6
EDDSA-SHA512-ED25519 7
GOSTR3410_CRYPTO_PRO_A-GOSTR3411-256 9
GOSTR3410_TC26_A_512-GOSTR3411-512 10
RED25519-SHA512 11

For more information on the types of signatures, see the documentation.

vain

Vanity generation address.

Usage

./vain --usage

Time to Generate on a 2.70GHz Processor

characters time to generate (approx.)
1 ~0.082s
2 ~0.075s
3 ~0.100s
4 ~0.394s
5 ~6.343s
6 ~1m-5m
7 ~30m

keyinfo

Prints information about an I2P private key

Usage

Print just the b32 address for this key

 ./keyinfo privatekey.dat

... just the base64 address

./keyinfo -d privatekey.dat

Print all info about the public key

./keyinfo -v privatekey.dat

regaddr

Generate authentication string to register a domain on reg.i2p and stats.i2p

./regaddr domain.dat domain.i2p > auth_string.txt
cat auth_string.txt

Send output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html

To register a subdomain, use regaddr_3ld

regaddr_3ld

Generate authentication string to register a subdomain on reg.i2p and stats.i2p in 3 steps

./regaddr_3ld step1 sub_domain.dat sub.domain.i2p > step1.txt
./regaddr_3ld step2 step1.txt domain.dat domain.i2p > step2.txt
./regaddr_3ld step3 step2.txt sub_domain.dat > step3.txt
cat step3.txt

Send output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html

regaddralias

Generate authentication string to register an alias address for existing domain on reg.i2p and stats.i2p

./regaddralias domain-oldkeys.dat domain-newkeys.i2p domain > auth_string.txt
cat auth_string.txt

Send output of auth_string to http://reg.i2p/add and http://stats.i2p/i2p/addkey.html

x25519

Generate key pair with output in base64 encoding. Now the x25519 keys are used for authentication with an encrypted LeaseSet.

famtool

this is program for works with family of routers in i2p-network.

usage: ./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]

generate a new family signing key for family called ``i2pfam'' ./famtool -g -n i2pfam -c myfam.crt -k myfam.pem

sign a router info with family signing key ./famtool -s -n i2pfam -k myfam.pem -i router.keys -f router.info

verify signed router.info ./famtool -V -n i2pfam -c myfam.pem -f router.info

Example of usage

$ ./famtool -g -n i2pfam -c myfam.crt -k myfam.pem
family i2pfam made
$ cat myfam.crt
-----BEGIN CERTIFICATE-----
MIIB3TCCAYOgAwIBAgIBADAKBggqhkjOPQQDAjB4MQswCQYDVQQGEwJYWDELMAkG
A1UECAwCWFgxCzAJBgNVBAcMAlhYMR4wHAYDVQQKDBVJMlAgQW5vbnltb3VzIE5l
dHdvcmsxDzANBgNVBAsMBmZhbWlseTEeMBwGA1UEAwwVaTJwZmFtLmZhbWlseS5p
MnAubmV0MB4XDTIzMDczMTE5MjQ1MFoXDTMzMDcyODE5MjQ1MFoweDELMAkGA1UE
BhMCWFgxCzAJBgNVBAgMAlhYMQswCQYDVQQHDAJYWDEeMBwGA1UECgwVSTJQIEFu
b255bW91cyBOZXR3b3JrMQ8wDQYDVQQLDAZmYW1pbHkxHjAcBgNVBAMMFWkycGZh
bS5mYW1pbHkuaTJwLm5ldDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLejNp1Y
1tnMGFaUIuzNpNL8B9KvaeSSh+OWhRcHn2x1D8TPCVA4IMS0jiMIodCcdyTmz0Qg
SXsWDqT2CbBMENQwCgYIKoZIzj0EAwIDSAAwRQIgU58CeHXlluPZNxpmxb7HSHsJ
STCA8C946oas+8uLU+MCIQDe6Km/h8w+oCh+j6UHobN0EAVtQPQGwkq2XXs1jqX2
bQ==
-----END CERTIFICATE-----
$ cat myfam.pem
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIAFA82vZzZN8nZIOVnadSS73G2NNc5pUsh4qmpK2M0nsoAoGCCqGSM49
AwEHoUQDQgAEt6M2nVjW2cwYVpQi7M2k0vwH0q9p5JKH45aFFwefbHUPxM8JUDgg
xLSOIwih0Jx3JObPRCBJexYOpPYJsEwQ1A==
-----END EC PRIVATE KEY-----