Commit Graph

47 Commits

Author SHA1 Message Date
emaste
c93e21e3ee md5: enter capability on last fd or when acting as a filter
Reviewed by:	allanjude, cem
MFC after:	2 months
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D8271
2016-10-19 21:07:17 +00:00
allanjude
6d6e6f6722 Import the skein hashing algorithm, based on the threefish block cipher
Connect it to userland (libmd, libcrypt, sbin/md5) and kernel (crypto.ko)

Support for skein as a ZFS checksum algorithm was introduced in r289422
but is disconnected because FreeBSD lacked a Skein implementation.

A further commit will enable it in ZFS.

Reviewed by:	cem
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D6166
2016-05-29 01:15:36 +00:00
allanjude
4581e38971 Implement SHA-512 truncated (224 and 256 bits)
This implements SHA-512/256, which generates a 256 bit hash by
calculating the SHA-512 then truncating the result. A different initial
value is used, making the result different from the first 256 bits of
the SHA-512 of the same input. SHA-512 is ~50% faster than SHA-256 on
64bit platforms, so the result is a faster 256 bit hash.

The main goal of this implementation is to enable support for this
faster hashing algorithm in ZFS. The feature was introduced into ZFS
in r289422, but is disconnected because SHA-512/256 support was missing.
A further commit will enable it in ZFS.

This is the follow on to r292782

Reviewed by:	cem
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D6061
2016-05-28 16:06:07 +00:00
allanjude
c7c2f2dfab Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c
cperciva's libmd implementation is 5-30% faster

The same was done for SHA256 previously in r263218

cperciva's implementation was lacking SHA-384 which I implemented, validated against OpenSSL and the NIST documentation

Extend sbin/md5 to create sha384(1)

Chase dependancies on sys/crypto/sha2/sha2.{c,h} and replace them with sha512{c.c,.h}

Reviewed by:	cperciva, des, delphij
Approved by:	secteam, bapt (mentor)
MFC after:	2 weeks
Sponsored by:	ScaleEngine Inc.
Differential Revision:	https://reviews.freebsd.org/D3929
2015-12-27 17:33:59 +00:00
delphij
e1529aa2cb Constify.
Suggested by:	rdivacky
MFC after:	2 weeks
2015-03-31 19:12:13 +00:00
delphij
5538403b83 Fix remaining warnings.
MFC after:	2 weeks
2015-03-27 18:23:06 +00:00
delphij
09f4dc6853 - Correct type for checkAgainst.
- Staticify flags that are not used outside the file scope.

PR:		bin/193471
Submitted by:	Robert Sprowson <webpages sprow.co.uk>
MFC after:	2 weeks
2015-03-26 22:34:27 +00:00
delphij
7f137631a1 Teach md5(1) about sha512.
MFC after:	1 month
2012-08-01 00:36:12 +00:00
eadler
96cc1902f8 Document the -c option in --help output
PR:		bin/167463
Submitted by:	"Bryan Drewery" <bryan@shatow.net>
Approved by:	cperciva
MFC after:	3 days
2012-05-09 17:32:10 +00:00
eadler
26f0073331 - add "check" option to MD5 and friends to compare files against known hash.
PR:		bin/146541
Submitted by:	eadler
Reviewed by:	jhell@dataix.net
Approved by:	secteam (cperciva)
Approved by:	cperciva
MFC after:	3 weeks
2011-11-13 16:35:47 +00:00
kevlo
50b997c3ef Use RUSAGE_SELF for the current process instead of hardcoded value 2008-09-02 02:59:13 +00:00
obrien
0ce48c9314 style(9) (verifed no-change in .o's) 2008-02-07 18:10:24 +00:00
phk
7a469c93bd Fix an 11 year old mistake: Let the hash functions take a void* instead
of unsigned char* argument.
2006-01-17 15:35:57 +00:00
cperciva
180357cd92 In light of the recent 2^69 operation collision-finding attack on SHA1,
add support for SHA256.

Tested on:	i386, sparc64
Tested using:	NIST test vectors, built-in tests
X-MFC-after:	5.4-RELEASE
2005-03-09 19:23:04 +00:00
eik
65e528a8ff fix handling of an unknown progeam name
Noticed by:	Joshua Goodall <joshua@roughtrade.net>
Approved by:	ru
2004-06-22 09:18:50 +00:00
eik
6ce46a0816 Add sha1 and rmd160 checksum tools.
Since the algorithms are already supported in libmd,
the size increase is small when a dynamic root is used.

Approved by:	joerg, ru
MFC after:	2 weeks
2004-06-11 16:07:02 +00:00
se
7c072fe20e Set exit code to 1 in case at least one of the input files
could not be opened.
2003-11-02 23:12:08 +00:00
obrien
19105c8312 Use __FBSDID() to quiet GCC 3.3 warnings. 2003-05-03 18:41:59 +00:00
silby
6d6e9671a5 Improvements to md5.c so that it uses getrusage to time
benchmarks, and prints out results in float format.
2003-02-14 04:48:06 +00:00
silby
2a088a1417 Change the -x option so that it does an actual REAL test of
the correctness of this program.  Previously, it printed out
the MD5 values of some test strings, but did not tell you
if they were correct or not!
2003-01-26 08:23:37 +00:00
phk
551ea08f0f Fix
md5 -q -s foo
to not expect input on stdin after hashing the string.

MFC after:      1 week
2001-12-19 21:19:43 +00:00
dillon
827bb2a335 Add missing cast for improper time_t use in computation. 2001-10-28 00:01:58 +00:00
des
caaabb45e0 Fix include ordering breakage from rev. 1.23.
Please-read-style(9):	dd
2001-06-29 06:21:57 +00:00
ru
548ffba853 Only checksum stdin if nothing has been checksummed yet.
PR:		bin/28386
2001-06-25 08:52:57 +00:00
dd
ef9ae51ffe Include missing header files which define functions for which gcc has
builtins (e.g., exit, strcmp).
2001-06-24 23:04:23 +00:00
ru
510c2815e8 Fix argument processing.
Make this compile with WARNS=2.

PR:		bin/27524
MFC after:	3 days
2001-05-22 10:33:43 +00:00
obrien
a52e06db8b Update usage().
Submitted by:	nectar
2000-11-08 20:41:35 +00:00
obrien
b6b57faeef Add -q quite mode. 1999-12-04 01:29:43 +00:00
obrien
06059e1bbb Make `-r -s' also match the BSDI output. 1999-11-11 11:59:03 +00:00
obrien
20d3040a5c Change the "-r" output format to match BSDI's default output format. 1999-11-09 17:28:47 +00:00
obrien
9c150e9d7e Add a new "-r" (right) option that reverses the order a filename and the
hash is printed.  This aids visual diffs.
1999-11-07 04:14:55 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
billf
95fd90d5ae Since we are using strlen() let's assign it to the correct type and
include the proper header.
1999-07-21 00:51:14 +00:00
kris
2035287c27 Fixes for -t option:
* Don't buffer "Digesting..." output - flush it immediately.
* Increase the number of repetitions by a factor of 100, and the block size by
  a factor of 10 so as to give meaningful results on modern machines (108
  seconds on my P120, and ~26 seconds on a P-II 350).

PR:		bin/10604
Submitted by:	Stanislav Shalunov <shalunov@lynxhub.lz.att.com>
1999-05-01 14:54:21 +00:00
charnier
f345a63c40 Correct use of .Nm. Spelling. Add rcsid, remove unused #includes, use err(3). 1998-07-06 07:04:50 +00:00
steve
6f5cdf1a51 Fix a few style nits from previous commit.
Submitted by:	Bruce Evans <bde@zeta.org.au>
1997-12-29 14:05:49 +00:00
steve
2d5f5de492 Get md5(1) to use getopt(3). Also some minor -Wall cleaning
while here.

PR:		5387
Submitted by:	Matthew Hunt <mph@pobox.com>
1997-12-29 03:40:37 +00:00
peter
4968036f61 Revert $FreeBSD$ to $Id$ 1997-02-22 14:40:44 +00:00
phk
4a4bd14c4c Trivial fix for braino.
Reviewed by:	phk
Submitted by:	Martin Ibert <mib@ppe.bb-data.de>
1997-01-16 10:12:30 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
bde
842a7446a3 Moved #include of <sys/types.h> earlier so that this compiles when
<stdio.h> doesn't (bogusly) include <sys/types.h>.

Cleaned up #includes.
1996-10-25 06:48:29 +00:00
phk
a50b55b1b3 Fix to match new API. Fixes memory leak, faster. 1995-07-12 09:14:46 +00:00
rgrimes
f3a2b348da Remove trailing whitespace. 1995-05-30 06:12:45 +00:00
phk
1f2fc94f00 oops. 1995-02-26 02:00:35 +00:00
phk
8c6185fb31 Add a '-p' option to md5. This will save some time in generation of the
ctm deltas.
1995-02-26 01:55:31 +00:00
phk
12eca3f971 Clean this file up so it is readable... 1995-02-20 00:48:50 +00:00
pst
51b49316ee Incorproate version of md5 placed into public domain by RSA. 1994-10-29 23:58:02 +00:00