Skip to content
This repository has been archived by the owner on Oct 6, 2024. It is now read-only.
/ sha3sum Public archive

[Feature complete] SHA-3 and Keccak checksum utility

License

Notifications You must be signed in to change notification settings

maandree/sha3sum

Repository files navigation

This repo has been moved to Codeberg and may be out of date on GitHub.
Canonical repo: https://codeberg.org/maandree/sha3sum


NAME
	sha3sum - Keccak, SHA-3, SHAKE, and RawSHAKE checksum utilities

SYNOPSIS
	keccaksum      [option ...] [file ...]
	keccak-224sum  [option ...] [file ...]
	keccak-256sum  [option ...] [file ...]
	keccak-384sum  [option ...] [file ...]
	keccak-512sum  [option ...] [file ...]
	sha3-224sum    [option ...] [file ...]
	sha3-256sum    [option ...] [file ...]
	sha3-384sum    [option ...] [file ...]
	sha3-512sum    [option ...] [file ...]
	shake128sum    [option ...] [file ...]
	shake256sum    [option ...] [file ...]
	shake512sum    [option ...] [file ...]
	rawshake128sum [option ...] [file ...]
	rawshake256sum [option ...] [file ...]
	rawshake512sum [option ...] [file ...]

DESCRIPTION
	Fully configurable byte-orientated checksum utilities
	for Keccak and its close derivatives SHA-3, SHAKE and
	RawSHAKE.

	This utilities can generate checksums or verify the
	checksums of files.

OPTIONS

	-u
		Use upper-case output.

	-l
		Use lower-case output.

	-b
		Use binary output.

	-c
		Check checksums.

	-x
		Use hexadecimal input.

	-v
		Be verbose.

	-R rate
		Select rate.

	-C capacity
		Select capacity.

	-N, -O output-size
		Select output size.

	-S, -B state-size
		Select state size.

	-W word-size
		Select word size.

	-Z squeeze-count
		Select squeeze count.

RATIONALE
	We probably do not need this, but it is nice to have
	in case SHA-2 gets compromised.

SEE ALSO
	libkeccak(7), sum(1), cksum(1), md5sum(1), md6sum(1),
	sha1sum(1), sha224sum(1), sha256sum(1), sha384sum(1),
	sha512sum(1)

PERFORMANCE
	Performance comparison on a 1 GiB file (yes, that is
	quite large) with /dev/urandom data:

	$ keccak-224sum		│	$ keccak-256sum
	real	0m9.550s	│	real	0m9.841s
	user	0m9.223s	│	user	0m9.560s
	sys	0m0.320s	│	sys	0m0.260s
				│
	$ keccak-384sum		│	$ keccak-512sum
	real	0m12.902s	│	real	0m18.084s
	user	0m12.580s	│	user	0m17.823s
	sys	0m0.313s	│	sys	0m0.243s
				│
	$ keccaksum		│	$ sha1sum
	real	0m10.438s	│	real	0m3.421s
	user	0m10.140s	│	user	0m3.157s
	sys	0m0.287s	│	sys	0m0.253s
				│
	$ sha224sum		│	$ sha256sum
	real	0m8.196s	│	real	0m9.361s
	user	0m7.910s	│	user	0m9.097s
	sys	0m0.263s	│	sys	0m0.257s
				│
	$ sha384sum		│	$ sha512sum
	real	0m5.450s	│	real	0m4.507s
	user	0m5.223s	│	user	0m4.247s
	sys	0m0.220s	│	sys	0m0.257s
				│
	$ md5sum		│	$ md6sum
	real	0m2.987s	│	real	1m28.873s
	user	0m2.703s	│	user	1m28.470s
	sys	0m0.283s	│	sys	0m0.360s

	Note: The times are a bit random, and only one run
	has been made. "user" is the most interesting data.
	Additionally, only the pure keccak variants have been
	tested because the difference is between them and the
	other are quite small; and of course the other hashing
	utilities from other packages using other
	algorithm-families.

NOTES
	Packagers are advised to separate sha3sum(1) into its
	own packages, apart from the other commands, as it is
	mearly provided for compatibility and it could cause
	package conflict with other implementations that only
	provide sha3sum(1) such as busybox.