A block hash file uses a special binary format for storing a list of blocked host names.
blockHashMake reads the list of host names from the standard input and generates a binary file.
blockHashMake can be invoked with a single "--help" or "--version" command line argument (e.g. "blockHashMake --version") which will output the version number of blockHashMake and provide basic usage information.
The command line arguments are as follows:
blockHashMake [filename] [sip hash key] [hash bucket count]The filename is the name of the file we output the block hash to. If not specified, blockHashMake will output to the file named "bigBlock.bin". blockHashMake should not clobber an already existing file; if a file named "bigBlock.bin" (or the filename specified on the command line) already exists, be sure to delete the file before invoking blockHashMake to recreate the file.
The sip hash key is usually set by the blockHashMake program, which, by default, uses /dev/urandom to generate a random 64-bit key for the block hash file (the Windows port of blockHashMake uses the CryptGenRandom function to get a random 64-bit key). If the sip hash key is given a value of 0, this can make a block hash file which can be shared on the internet.
Warning: For security purposes, please set the sip hash key to 0 if sharing a block hash file on the internet!
Deadwood will only load a block hash file with a sip hash key of 0 if allow_block_hash_zero_key has a value of 1.
A user specified sip hash key only has up to 16 bits of entropy. sip hash key should not be used if a secret key for the hash compression algorithm is desired.
The hash bucket count is the number of hash buckets the resulting block hash file will have. Having more hash buckets makes the block hash file larger, but sometimes allows searching for a string in a block hash to be a little faster. The default value, which is 125% of the number of host names given to blockHashMake, is a reasonable compromise between speed and size.
porn.example.com naughty.foo evil.host.invalidEach line is a host name. Should there be a duplicate host name, blockHashMake will only store one instance of the host name in question. Host names are case insensitive; upper case ASCII letters are converted in to lower case letters beofre adding the host name to the block hash generated by blockHashMake.
In order to allow there to be notes in files that blockHashMake reads, blockHashMake has simple support for comments: Any line which begins with the # character will be ignored by the blockHashMake program. Note that the # character must be at the very beginning of a line for the line to be ignored by BlockHashMake.
For example:
# Porn sites porn.example.com fetish.example.net # Phishing sites naughty.foo evil.host.invalidThis will add porn.example.com, fetish.example.net, naughty.foo, and evil.host.invalid to the block hash file, while ignoring the two lines which start with #.
blockHashMake has no support for Punycode. Please use another program to convert international domain names with non-ASCII characters in to their punycode representation before adding them to a block hash with blockHashMake.
This is a project developed on a strictly volunteer, non-commercial basis. It has been developed outside the course of a commercial activity, developed entirely in the Americas (i.e. outside of Europe) and therefore is not subject to the restrictions or conditions of the proposed EU Cyber Resilience Act. Someone selling a product that uses any component of this may be subject to this act and may need to handle any and all necessary compliance.