Skip to content

cfv-project/cfv

Repository files navigation

cfv – Command-line File Verify

cfv is a utility to test and create a wide range of checksum verification files. It currently supports testing and creating sfv, sfvmd5, csv, csv2, csv4, crc, md5, bsdmd5, sha1, sha224, sha256, sha384, sha512, b3 (BLAKE3) and torrent files. Test-only support is available for par, par2.

cfv was originally written by Matthew Mueller (original project home). This is a friendly fork of cfv maintained by Lisa Gnedt.

Build Status Linux Build Status FreeBSD Supported Python versions License Latest PyPI version Number of PyPI downloads

Requirements

Python ≥ 3.7 – older versions might work, but are unsupported. For Python 2 support, see the python2 branch.

Optional

  • Python Imaging Library (PIL) or Pillow – only needed if you want to create the dimensions column of .crc files.
  • blake3 – needed for BLAKE3 b3sum files (B3SUMS, .b3, .bk3). Default output is 256 bits (32 bytes). Install via pip install blake3 or apt install python3-blake3.

Install

You can get the latest releases via the Python Package Index (PyPI) or from the Github releases page. Other distribution ways are work-in-progress, see issue #4.

From PyPI

If you have a working Python installation with pip, you can install via PyPI:

pip install cfv

From Source

Download a snapshot from the Github releases page or checkout the development version via Git.

pip install .
# optional: run tests to verify correct operation
cd test; ./test.py

From OS-specific Repositories

Arch Linux

To install the development version from AUR (maintained by @vestingz):

yay -S cfv-git

FreeBSD

A FreeBSD port is available (maintained by @Terry-Kennedy).

To install the pre-built package (updated quarterly, so may be out-of-date):

pkg install cfv

To build from source (make sure your source tree is up-to-date via any of the usual methods):

cd /usr/ports/security/cfv
make; make install; make clean

To update the pre-built package:

pkg upgrade cfv

To update from source (again, make sure your source tree is up-to-date):

portupgrade cfv

NixOS

To use the latest version included in nixpkgs (maintained by @jjtt):

nix-shell -p cfv

Usage

Please read the man page man cfv or the usage cfv -h and have fun ☺️

Contributions

Contributions are welcome, just open a pull request ☺️

Alternative Tools

Here is a community-compiled list of alternative tools that cover some of cfv's functionality (without warranty):

  • GNU coreutils *sum: md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, ...
  • cksfv
  • rhash (with -rc does more or less the same thing as cfv, performance is good and it supports most hash formats including bittorrent. It lacks cfv's -m though.)
  • aria2c (to verify torrent checksums)
  • bsdsfv (limited to 1024 files for some reason)
  • pure-sfv (doesn't seem to display progress information, even with -v)
  • bcfv (a Bash frontend to checksum programs (SHA, Blake3, MD5))

Copying

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the file COPYING for more information.