Shallot allows you to create customized .onion addresses for link:https://www.torproject.org/[Tor's] link:https://www.torproject.org/docs/hidden-services[hidden services]. (By customized, it is meant that part of the address can be selected. Choosing an entire address would take far longer than the universe is believed to have been in existence.)
$ ./configure && make
$ ./shallot
$ ./shallot ^test
----------------------------------------------------------------
Found matching pattern after 99133 tries: testvztz3tfoiofv.onion
----------------------------------------------------------------
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQC3R85m6NQaA1ZjaYqvz1hvFIjbL4RtKdJbG8hlC9xEBkvfr/BG
8Z5vDiUzdbDt8mEBuZUDanx80uGJvbXTgmczX0UlkEOgGiZ8RKpnsbKaf/EJNrIw
T7MSXQmWNcm22nDeViV7fwy+Usyal2RE5cdVCFsPtEbVZqCumlKkEgCyFwIDBAZ7
AoGBAJSa2cGuru/XhzJAEAIwHZbgPDnum9T/srOYxUKW6afHZeOu5S4Cclwb+xb/
pGOtzn71XZfCKMfiVdxB/f3XTcRrYB2VnBoNToTD7WfH6DksdDf4zunqiEjvxi9K
R+tKhxmF7OedrRt8wIhUmFd1E2Q9nbTHI6icdB4kR4QkYKZzAkEA5M6samK7+495
6SWpRXiePIs7sHKWuxdCrG7kW5RNJrv2CcGYwK46TPcaXBcRfM4eq9+9PGoKi0IO
gSpOZ5vRYQJBAM0QAZYTZ6ApD014x372MX1ZNofuYL/+XF8ZPZV6Sh4+9MUBuNPb
yL7BENDr6pX4Zm6OepvAphhCa4vGno2pHncCQQCQnfhUCHANU4bjtX4EOoI63WDq
UwBOeIWxu0YvGt7Z25Dg9CNz/aX8UZIoj6VyKxLRbR9+K3mNrNgaopW+ZDKzAkEA
ttgTK1ALe+3v+5H+Ez1SvFPREDFcHihrfD1Ipc5zicY9ixTArgdyZvk+Pi+AMBVV
sL2HWvjRLEAgRclvKfkwWwJAFtM+BIGRM5me+fMALuBBEtKnbJ6maflsyucErEb0
pIIBkovF5oyWO3lSBmtStJIANNkHOg8aXqjcgPKusDN7CQ==
-----END RSA PRIVATE KEY-----
If you place the RSA private key (including its header and footer) in a file
called private_key
in the HiddenServiceDir
you specified in your torrc, (If
you don't know what that means,
link:https://www.torproject.org/docs/tor-manual[read the Tor man page]. If you
still don't understand, Shallot probably isn't for you.) then when you restart
your Tor, a hostname
file will be created in HiddenServiceDir
that contains
your shiny new .onion address.
It is sometimes claimed that private keys generated by Shallot are less secure than those generated by Tor. This is false. Although Shallot generates a keypair with an unusually large public exponent e, it performs all of the sanity checks specified by PKCS #1 v2.1 (directly in sane_key), and then performs all of the sanity checks that Tor does when it generates an RSA keypair (by calling the OpenSSL function RSA_check_key).
.Time to Generate a .onion with a Given Number of Initial Characters on a 1.5Ghz Processor [align="right",float="left",width="30%"] |======================================= |characters | time to generate (approx.) | 1 | less than 1 second | 2 | less than 1 second | 3 | less than 1 second | 4 | 2 seconds | 5 | 1 minute | 6 | 30 minutes | 7 | 1 day | 8 | 25 days | 9 | 2.5 years | 10 | 40 years | 11 | 640 years | 12 | 10 millenia | 13 | 160 millenia | 14 | 2.6 million years |=======================================
Shallot has a long history in Onion Land. In its original incarnation, Shallot was originally written by a mysterious Onion Lander called Bebop, who created its predecessor, onionhash-0.0.1, at some unknown time in the distant past. That quickly(?) evolved into onionhash 0.0.2 and 0.0.3, until Bebop and link:http://torlandypjxiligx.onion/[Bebop's New Home in Onionspace] mysteriously vanished. At this point, it was picked up by `Orum, who gave Shallot its current name, and went through three versions until `Orum's site, link:http://hangman5naigg7rr.onion/[hangman - hidden (in plain) site], went down. I (katmagic) got Shallot's sources from link:http://taswebqlseworuhc.onion/[Tas's site] and put them into a Git repository. I made a few modifications, wrote a new README, and put the whole thing up on GitHub for all to see.