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
-
boost chrono
-
boost date-time
-
boost filesystem
-
boost program-options
-
libssl
-
zlib1g
(run
dependencies.sh
)
make
print information about a router info file
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
Generate an I2P private key
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.
Vanity generation address.
./vain --usage
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 |
Prints information about an I2P private key
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
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
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
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
Generate key pair with output in base64 encoding. Now the x25519 keys are used for authentication with an encrypted LeaseSet.
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
$ ./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-----