Reference

sigtool(1)

signature and database management tool

NAME

sigtool - signature and database management tool

SYNOPSIS

sigtool [options]

DESCRIPTION

sigtool can be used to generate MD5 checksums, convert data into hexadecimal format, list virus signatures and build/unpack/test/verify CVD databases and update scripts.

COMMON OPTIONS

-h, --help

Output help information and exit.

-V, --version

Print version number and exit.

--quiet

Be quiet, output only error messages.

--debug

Enable debug messages

--stdout

Write all messages to stdout.

--tempdir=DIRECTORY

Create temporary files in DIRECTORY. Directory must be writable for the user running sigtool.

--leave-temps

Do not remove temporary files.

--datadir=DIR

Use DIR as the default database directory for all operations.

COMMANDS FOR WORKING WITH SIGNATURES

-l[FILE], --list-sigs[=FILE]

List all signature names from the local database directory (default) or from FILE.

-fREGEX, --find-sigs=REGEX

Find and display signatures from the local database directory which match the given REGEX. The whole signature body (name, hex string, etc.) is checked.

--decode-sigs=REGEX

Decode signatures read from the standard input (eg. piped from --find-sigs)

--test-sigs=DATABASE TARGET_FILE

Test all signatures from DATABASE against TARGET_FILE. This option will only give valid results if the target file is the final one (after unpacking, normalization, etc.) for which the signatures were created.

COMMANDS TO GENERATE SIGNATURES

--md5 [FILES]

Generate MD5 checksum from stdin or MD5 sigs for FILES.

--sha1 [FILES]

Generate SHA1 checksum from stdin or SHA1 sigs for FILES.

--sha2-256 [FILES]

Generate SHA2-256 checksum from stdin or SHA2-256 sigs for FILES. The previous option --sha256 is deprecated and may be removed in a future version.

--mdb [FILES]

Generate .mdb (PE section hash) signatures for FILES.

--imp [FILES]

Generate .imp (PE import address table hash) signatures for FILES.

--fuzzy-img [FILES]

Generate image fuzzy hash for each file.

COMMANDS TO NORMALIZE FILES

--html-normalise=FILE

Create normalised HTML files comment.html, nocomment.html, and script.html in current working directory.

--ascii-normalise=FILE

Create normalised text file from ascii source.

--utf16-decode=FILE

Decode UTF16 encoded data.

COMMANDS FOR FILE ANALYSIS

--vba=FILE

Extract VBA/Word6 macros from given MS Office document.

--vba-hex=FILE

Extract Word6 macros from given MS Office document and display the corresponding hex values.

--print-certs=FILE

Print Authenticode details from a PE file.

--hex-dump

Read data from stdin and write hex string to stdout.

COMMANDS FOR WORKING WITH CVDS

-i, --info

Print a CVD information and verify MD5 and a digital signature.

--build=FILE, -b FILE

Build a CVD file. -s, --server is required for signed virus databases(.cvd), or, --unsigned for unsigned(.cud).

--max-bad-sigs=NUMBER

Maximum number of mismatched signatures when building a CVD. Default: 3000

--flevel

Specify a custom flevel. Default: 77

--cvd-version

Specify the version number to use for the build. Default is to use the value+1 from the current CVD in --datadir. If no datafile is found the default behaviour is to prompt for a version number, this switch will prevent the prompt. NOTE: If a CVD is found in the --datadir its version+1 is used and this value is ignored.

--no-cdiff

Don't create a .cdiff file when building a new database file.

--hybrid

Create a hybrid (standard and bytecode) database file.

--unsigned

Create a database file without digital signatures (.cud).

--server=ADDR

ClamAV Signing Service address (for virus database maintainers only).

--unpack=FILE, -u FILE

Unpack FILE (CVD) to a current directory.

--unpack-current

Unpack a local CVD file (main or daily) to current directory.

--fips-limits

Enforce FIPS-like limits on using hash algorithms for cryptographic purposes. Will disable MD5 & SHA1 FP sigs and will require '.sign' files to verify CVD authenticity.

COMMANDS FOR WORKING WITH CDIFF PATCH FILES

--diff=OLD NEW, -d OLD NEW

Create a diff file for OLD and NEW CVDs/INCDIRs.

--compare=OLD NEW, -c OLD NEW

This command will compare two text files and print differences in a cdiff format.

--run-cdiff=FILE, -r FILE

Execute update script FILE in current directory.

--verify-cdiff=FILE, -r FILE

Verify DIFF against CVD/INCDIR.

COMMANDS FOR CREATING AND VERIFYING DETACHED DIGITAL SIGNATURES

--sign

Sign a file. The resulting .sign file name will be in the form: dbname-version.cvd.sign or FILE.sign for non-CVD targets. It will be created next to the target file. If a .sign file already exists, then the new signature will be appended to file.

--key=FILE

Specify a signing key.

--cert=FILE

Specify a signing cert. May be used more than once to add intermediate and root certificates.

--append

Use to add a signature line to an existing .sign file. Otherwise an existing .sign file will be overwritten.

--verify

Find and verify a detached digital signature for the given file. The digital signature file name must be in the form: dbname-version.cvd.sign or FILE.sign for non-CVD targets. It must be found next to the target file.

--cvdcertsdir=DIR

Specify a directory containing the root CA cert needed to verify the signature. If not provided, then sigtool will look in the default certs directory.

ENVIRONMENT VARIABLES

Sigtool uses the following environment variables:

SIGNDUSER

The username to authenticate with the signing server when building a signed CVD database.

SIGNDPASS

The password to authenticate with the signing server when building a signed CVD database.

CVD_CERTS_DIR

Specify a directory containing the root CA cert needed to verify detached CVD digital signatures. If not provided, then sigtool will look in the default directory.

EXAMPLES

Generate hex string from testfile and save it to testfile.hex:

cat testfile | sigtool --hex-dump > testfile.hex

CREDITS

Please check the full documentation for credits.

AUTHOR

Tomasz Kojm <[email protected]>

SEE ALSO

freshclam(1), freshclam.conf(5)

History

--datadir since Debian 6.0 (Squeeze); --debug since Arch Linux 2026-11-01; --leave-temps since Debian 12 (Bookworm); --tempdir since Debian 12 (Bookworm).

--build until Debian 13 (Trixie); --cvd-version until Debian 13 (Trixie); --decode-sigs until Debian 13 (Trixie); --find-sigs until Debian 13 (Trixie); --flevel until Debian 13 (Trixie); --hex-dump until Debian 13 (Trixie); --html-normalise until Debian 13 (Trixie); --info until Debian 13 (Trixie); --list-sigs until Debian 13 (Trixie); --max-bad-sigs until Debian 13 (Trixie); --md5 until Debian 13 (Trixie); --mdb until Debian 13 (Trixie); --no-cdiff until Debian 13 (Trixie); --print-certs until Debian 13 (Trixie); --run-cdiff until Debian 13 (Trixie); --server until Debian 13 (Trixie); --sha1 until Debian 13 (Trixie); --sha256 until Debian 13 (Trixie); --unpack until Debian 13 (Trixie); --unpack-current until Debian 13 (Trixie); --unsigned until Debian 13 (Trixie); --utf16-decode until Debian 13 (Trixie); --vba until Debian 13 (Trixie); --vba-hex until Debian 13 (Trixie); --verify-cdiff until Debian 13 (Trixie); -b until Debian 13 (Trixie); -fREGEX until Debian 13 (Trixie); -i until Debian 13 (Trixie); -l until Debian 13 (Trixie); -r until Debian 13 (Trixie); -u until Debian 13 (Trixie).