tigersum/README.md

2.4 KiB

tigersum

A command line hashing program based on the tiger algorithm

Compiling

Dependencies

In order to build this program you will need:

  • cmake
  • a D compiler (such as gdc)

Configuring & compiling

You can generate a makefile and build the program with the following commands:

cmake -DCMAKE_BUILD_TYPE=Release <path_to_tigersum_source>
make -j2

Customizations

Backend selection

By default tigersum will use the freetiger implementation as its backend. If you choose to use the reference implementation instead, you can pass -DREFERENCE_TIGER=on on the command line to cmake:

cmake -DCMAKE_BUILD_TYPE=Release -DREFERENCE_TIGER=on <path_to_tigersum_source>
make -j2

Read buffer size

If you wish to do so you can fine-tune the size for the buffer that will be used to calculate the tiger hash. By default the buffer is 16KiB, but you can change that number by altering the value near the line

set(READ_BUFF_SIZE "1024 * 16")

in the CMakeLists.txt file. Note that for technical reasons the code enforces that number to be a multiple of 64. You can't chose a value smaller than 64. Please take all this into account if you change that value (you shouldn't need to).

Change the default tiger version

By default tigersum will calculate the tiger v1 hash of the data you feed in. You can select verion 1 or 2 at runtime using the --tiger parameter (see "Usage"). If you want v2 to be the default instead, you can change the line in src/CMakeLists.txt:

set(DEFAULT_TIGER_VERSION "1")

Changing 1 to 2 will set v2 as the default. You can still use the --tiger parameter at runtime as normal.

Usage

For usage please see the program's help by passing the --help or -h switch. In general the program should behave like md5sum and sha1sum. One exception is that you can use the --tiger or -i parameter to set the version of the algorithm you want to use. Pass --tiger 1 for version 1 (default), or --tiger 2 for version 2.

State of current version

Most of the switches exposed by md5sum/sha1sum also work with tigersum. Some switches are still work in progress:

  • --quiet
  • --status
  • --warn

Currently there is also no support for reading data from stdin, which means you can't pipe other commands to tigersum. This will be implemented soon.