Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102664597
D30309.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D30309.diff
View Options
diff --git a/sbin/md5/Makefile b/sbin/md5/Makefile
--- a/sbin/md5/Makefile
+++ b/sbin/md5/Makefile
@@ -4,27 +4,49 @@
PACKAGE=runtime
PROG= md5
-LINKS= ${BINDIR}/md5 ${BINDIR}/rmd160 \
+LINKS= ${BINDIR}/md5 ${BINDIR}/md5sum \
+ ${BINDIR}/md5 ${BINDIR}/rmd160 \
+ ${BINDIR}/md5 ${BINDIR}/rmd160sum \
${BINDIR}/md5 ${BINDIR}/sha1 \
+ ${BINDIR}/md5 ${BINDIR}/sha1sum \
${BINDIR}/md5 ${BINDIR}/sha224 \
+ ${BINDIR}/md5 ${BINDIR}/sha224sum \
${BINDIR}/md5 ${BINDIR}/sha256 \
+ ${BINDIR}/md5 ${BINDIR}/sha256sum \
${BINDIR}/md5 ${BINDIR}/sha384 \
+ ${BINDIR}/md5 ${BINDIR}/sha384sum \
${BINDIR}/md5 ${BINDIR}/sha512 \
+ ${BINDIR}/md5 ${BINDIR}/sha512sum \
${BINDIR}/md5 ${BINDIR}/sha512t256 \
+ ${BINDIR}/md5 ${BINDIR}/sha512t256sum \
${BINDIR}/md5 ${BINDIR}/skein256 \
+ ${BINDIR}/md5 ${BINDIR}/skein256sum \
${BINDIR}/md5 ${BINDIR}/skein512 \
- ${BINDIR}/md5 ${BINDIR}/skein1024
+ ${BINDIR}/md5 ${BINDIR}/skein512sum \
+ ${BINDIR}/md5 ${BINDIR}/skein1024 \
+ ${BINDIR}/md5 ${BINDIR}/skein1024sum
-MLINKS= md5.1 rmd160.1 \
+MLINKS= md5.1 md5sum.1 \
+ md5.1 rmd160.1 \
+ md5.1 rmd160sum.1 \
md5.1 sha1.1 \
+ md5.1 sha1sum.1 \
md5.1 sha224.1 \
+ md5.1 sha224sum.1 \
md5.1 sha256.1 \
+ md5.1 sha256sum.1 \
md5.1 sha384.1 \
+ md5.1 sha384sum.1 \
md5.1 sha512.1 \
+ md5.1 sha512sum.1 \
md5.1 sha512t256.1 \
+ md5.1 sha512t256sum.1 \
md5.1 skein256.1 \
+ md5.1 skein256sum.1 \
md5.1 skein512.1 \
- md5.1 skein1024.1
+ md5.1 skein512sum.1 \
+ md5.1 skein1024.1 \
+ md5.1 skein1024sum.1
LIBADD= md
diff --git a/sbin/md5/md5.1 b/sbin/md5/md5.1
--- a/sbin/md5/md5.1
+++ b/sbin/md5/md5.1
@@ -1,10 +1,12 @@
.\" $FreeBSD$
-.Dd June 19, 2020
+.Dd May 19, 2021
.Dt MD5 1
.Os
.Sh NAME
.Nm md5 , sha1 , sha224 , sha256 , sha384 , sha512 , sha512t256 , rmd160 ,
-.Nm skein256 , skein512 , skein1024
+.Nm skein256 , skein512 , skein1024 ,
+.Nm md5sum , sha1sum , sha224sum , sha256sum , sha384sum , sha512sum ,
+.Nm sha512t256sum , rmd160sum , skein256sum , skein512sum , skein1024sum
.Nd calculate a message-digest fingerprint (checksum) for a file
.Sh SYNOPSIS
.Nm
@@ -26,6 +28,15 @@
or
.Dq message digest
of the input.
+The
+.Nm md5sum , sha1sum , sha224sum , sha256sum , sha384sum , sha512sum ,
+.Nm sha512t256sum , rmd160sum , skein256sum , skein512sum ,
+and
+.Nm skein1024sum
+utilities do the same, but default to the reversed format of
+the
+.Fl r
+flag.
It is conjectured that it is computationally infeasible to
produce two messages having the same message digest, or to produce any
message having a given prespecified target message digest.
@@ -59,9 +70,18 @@
The hexadecimal checksum of each file listed on the command line is printed
after the options are processed.
.Bl -tag -width indent
+.It Fl b
+Ignored for compatibility with the coreutils
+.Nm -sum
+programs.
.It Fl c Ar string
Compare the digest of the file against this string.
.Pq Note that this option is not yet useful if multiple files are specified.
+This option causes an error in for the
+.Nm -sum
+programs because it check the checksums listed in a file for the coreutils
+.Nm -sum
+programs that is not yet implemented.
.It Fl s Ar string
Print a checksum of the given
.Ar string .
@@ -81,6 +101,9 @@
options.
.It Fl t
Run a built-in time trial.
+For the
+.Nm -sum
+versions, this is a nop for compatibility with coreutils.
.It Fl x
Run a built-in test script.
.El
@@ -171,6 +194,13 @@
.Pp
The RIPEMD-160 page:
.Pa http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html .
+.Sh BUGS
+All of the utilities that end in
+.Sq sum
+are intended to be compatible with the GNU coreutils programs.
+However, the long arguments and the
+.Fl -check
+functionality are not provided.
.Sh ACKNOWLEDGMENTS
This program is placed in the public domain for free general use by
RSA Data Security.
diff --git a/sbin/md5/md5.c b/sbin/md5/md5.c
--- a/sbin/md5/md5.c
+++ b/sbin/md5/md5.c
@@ -177,13 +177,32 @@
char buf[HEX_DIGEST_LENGTH];
size_t len;
unsigned digest;
- const char* progname;
+ char *progname;
+ bool gnu_emu = false;
if ((progname = strrchr(argv[0], '/')) == NULL)
progname = argv[0];
else
progname++;
+ /*
+ * GNU coreutils has a number of programs named *sum. These produce
+ * similar results to the BSD version, but in a different format,
+ * similar to BSD's -r flag. We install links to this program with
+ * ending 'sum' to provide this compatibility. Check here to see if the
+ * name of the program ends in 'sum', set the flag and drop the 'sum' so
+ * the digest lookup works. Also, make -t a nop when running in this mode
+ * since that means 'text file' there (though it's a nop in coreutils
+ * on unix-like systems). The -c flag conflicts, so it's just disabled
+ * in this mode (though in the future it might be implemented).
+ */
+ len = strlen(progname);
+ if (len > 3 && strcmp(progname + len - 3, "sum") == 0) {
+ progname[len - 3] = '\0';
+ rflag = 1;
+ gnu_emu = true;
+ }
+
for (digest = 0; digest < sizeof(Algorithm)/sizeof(*Algorithm); digest++)
if (strcasecmp(Algorithm[digest].progname, progname) == 0)
break;
@@ -195,9 +214,13 @@
checkAgainst = NULL;
checksFailed = 0;
skip = 0;
- while ((ch = getopt(argc, argv, "c:pqrs:tx")) != -1)
+ while ((ch = getopt(argc, argv, "bc:pqrs:tx")) != -1)
switch (ch) {
+ case 'b':
+ break;
case 'c':
+ if (gnu_emu)
+ errx(1, "-c check option not supported");
checkAgainst = optarg;
break;
case 'p':
@@ -214,8 +237,10 @@
string = optarg;
break;
case 't':
- MDTimeTrial(&Algorithm[digest]);
- skip = 1;
+ if (!gnu_emu) {
+ MDTimeTrial(&Algorithm[digest]);
+ skip = 1;
+ } /* else: text mode is a nop */
break;
case 'x':
MDTestSuite(&Algorithm[digest]);
@@ -348,7 +373,7 @@
printf(" done\n");
printf("Digest = %s", p);
printf("\nTime = %f seconds\n", seconds);
- printf("Speed = %f MiB/second\n", (float) TEST_BLOCK_LEN *
+ printf("Speed = %f MiB/second\n", (float) TEST_BLOCK_LEN *
(float) TEST_BLOCK_COUNT / seconds / (1 << 20));
}
/*
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 16, 1:35 PM (22 h, 58 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14659341
Default Alt Text
D30309.diff (5 KB)
Attached To
Mode
D30309: md5: Create md5sum, etc compatible programs
Attached
Detach File
Event Timeline
Log In to Comment