summaryrefslogtreecommitdiff
path: root/security/rdigest/files
diff options
context:
space:
mode:
Diffstat (limited to 'security/rdigest/files')
-rw-r--r--security/rdigest/files/patch-Makefile.in60
-rw-r--r--security/rdigest/files/patch-digest.190
-rw-r--r--security/rdigest/files/patch-digest.c210
3 files changed, 0 insertions, 360 deletions
diff --git a/security/rdigest/files/patch-Makefile.in b/security/rdigest/files/patch-Makefile.in
deleted file mode 100644
index cb5a6e1f303a..000000000000
--- a/security/rdigest/files/patch-Makefile.in
+++ /dev/null
@@ -1,60 +0,0 @@
-$NetBSD: patch-aa,v 1.2 2005/03/28 20:52:55 agc Exp $
-
---- Makefile.in.orig 2005-03-28 21:39:38.000000000 +0100
-+++ Makefile.in 2005-03-28 21:41:02.000000000 +0100
-@@ -57,7 +57,7 @@
- .c.o:
- $(COMPILE) -c $< -o $@
-
--all: digest
-+all: rdigest
-
- digest-types.h: bits
- ./bits digest-types.h
-@@ -65,10 +65,10 @@
- bits: bits.o
- $(LINK) $(bits_OBJS) $(LIBS)
-
--digest: $(digest_OBJS)
-+rdigest: $(digest_OBJS)
- $(LINK) $(digest_OBJS) $(LIBS)
-
--check: digest
-+check: rdigest
- @SHELL@ $(srcdir)/regress.sh
-
- digest.o: digest-types.h
-@@ -84,7 +84,7 @@
- whirlpool.o: digest-types.h
-
- clean:
-- rm -f *.o digest bits digest-types.h
-+ rm -f *.o rdigest bits digest-types.h
-
- distclean: clean
- rm -f Makefile config.h
-@@ -93,18 +93,18 @@
- maintainer-clean: distclean
- rm -f configure config.h.in
-
--install: digest
-+install: rdigest
- $(mkinstalldirs) $(DESTDIR)$(bindir)
-- @f=`echo digest|sed '$(transform)'`; \
-- echo "$(INSTALL_PROGRAM) digest $(DESTDIR)$(bindir)/$$f"; \
-- $(INSTALL_PROGRAM) digest $(DESTDIR)$(bindir)/$$f
-+ @f=`echo rdigest|sed '$(transform)'`; \
-+ echo "$(INSTALL_PROGRAM) rdigest $(DESTDIR)$(bindir)/$$f"; \
-+ $(INSTALL_PROGRAM) rdigest $(DESTDIR)$(bindir)/$$f
- $(mkinstalldirs) $(DESTDIR)$(mandir)/man1
-- @f=`echo digest.1|sed '$(transform)'`; \
-+ @f=`echo rdigest.1|sed '$(transform)'`; \
- echo "$(INSTALL_DATA) digest.1 $(DESTDIR)$(mandir)/man1/$$f"; \
- $(INSTALL_DATA) digest.1 $(DESTDIR)$(mandir)/man1/$$f
-
- uninstall:
-- @f=`echo digest|sed '$(transform)'`; \
-+ @f=`echo rdigest|sed '$(transform)'`; \
- echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
- rm -f $(DESTDIR)$(bindir)/$$f
-
diff --git a/security/rdigest/files/patch-digest.1 b/security/rdigest/files/patch-digest.1
deleted file mode 100644
index 3098b1d69af0..000000000000
--- a/security/rdigest/files/patch-digest.1
+++ /dev/null
@@ -1,90 +0,0 @@
-$NetBSD: patch-ab,v 1.3 2005/03/31 05:02:24 atatat Exp $
-
---- digest.1.orig 2005-03-30 23:40:39.000000000 -0500
-+++ digest.1
-@@ -2,5 +2,5 @@
- .\"
- .\"
--.\" Copyright (c) 2001 Alistair G. Crooks. All rights reserved.
-+.\" Copyright (c) 2001-2005 Alistair G. Crooks. All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
-@@ -32,12 +32,13 @@
- .\"
- .\"
--.Dd March 23, 2005
--.Dt DIGEST 1
-+.Dd March 31, 2005
-+.Dt RDIGEST 1
- .Os
- .Sh NAME
--.Nm digest
--.Nd calculate message digests
-+.Nm rdigest
-+.Nd calculate message digests of files and directories
- .Sh SYNOPSIS
- .Nm
-+.Op Fl x Ar directory
- .Ar algorithm
- .Op file ...
-@@ -45,6 +46,13 @@
- The
- .Nm
--utility calculates message digests of files or,
-+utility calculates message digests of files, directories, or,
- if no file is specified, standard input.
-+The
-+.Fl x
-+option can be used as many times as required to indicate directories
-+not to be included in a directory's hash.
-+This allows you to skip, eg, CVS subdirectories in a given tree, which
-+can have relatively volatile contents not pertinent to the hash.
-+.Pp
- The list of possible algorithms is:
- .Bl -tag -width Ds
-@@ -89,4 +97,23 @@ algorithm implementations, which are loc
- C library, and was designed to be scalable as new message digest
- algorithms are developed.
-+The checksum for a directory is implemented as the hash over a list of
-+one or two hashes for each of the items in the tree.
-+.Bl -bullet
-+.It
-+For a file, the string
-+.Dq f \&
-+along with the path make up the data for one hash, and the contents of
-+the file is used for the second hash.
-+.It
-+For a symbolic link, the string
-+.Dq l \&
-+along with the path to the symbolic link make up the data for one
-+hash, and the target of the symbolic link is used for the second hash.
-+.It
-+For a directory, the string
-+.Dq d \&
-+along with the path make up the data for one hash.
-+There is no second hash for a directory.
-+.El
- .Pp
- The
-@@ -95,4 +122,5 @@ utility exits 0 on success, and \*[Gt]0
- .Sh SEE ALSO
- .Xr cksum 1 ,
-+.Xr digest 1 ,
- .Xr md5 3 ,
- .Xr rmd160 3 ,
-@@ -102,8 +130,12 @@ The
- .Nm
- utility first appeared in
--.Nx 1.6 .
-+.Nx 2.0 .
- .Sh AUTHORS
- The
-+.Xr digest 1
-+utility was written by Alistair G. Crooks \*[Lt]agc@netbsd.org\*[Gt].
- .Nm
--utility was written by
--.An Alistair G. Crooks Aq agc@netbsd.org .
-+was implemented by Andrew Brown \*[Lt]atatat@netbsd.org\*[Gt] as a
-+patch to
-+.Xr digest 1
-+to add recursive capabilities.
diff --git a/security/rdigest/files/patch-digest.c b/security/rdigest/files/patch-digest.c
deleted file mode 100644
index bf6ee0d604a2..000000000000
--- a/security/rdigest/files/patch-digest.c
+++ /dev/null
@@ -1,210 +0,0 @@
-$NetBSD: patch-ac,v 1.2 2005/01/21 02:18:23 tv Exp $
-
---- digest.c.orig 2005-01-20 21:10:03.000000000 -0500
-+++ digest.c
-@@ -43,9 +43,14 @@ __RCSID("$NetBSD: digest.c,v 1.8 2003/07
- #endif
-
-
-+#include <sys/queue.h>
-+#include <sys/stat.h>
-+
- #ifdef HAVE_ERRNO_H
- #include <errno.h>
- #endif
-+#include <fcntl.h>
-+#include <fts.h>
- #ifdef HAVE_LOCALE_H
- #include <locale.h>
- #endif
-@@ -147,21 +152,178 @@ digest_file(char *fn, alg_t *alg)
- return (rc);
- }
-
-+struct excl {
-+ LIST_ENTRY(excl) n;
-+ const char *p;
-+};
-+
-+LIST_HEAD(, excl) excl;
-+
-+static void
-+exclude(const char *p)
-+{
-+ struct excl *e;
-+
-+ e = malloc(sizeof(struct excl));
-+ e->p = p;
-+ LIST_INSERT_HEAD(&excl, e, n);
-+}
-+
-+static int
-+skip(const char *p)
-+{
-+ struct excl *e;
-+
-+#ifdef LIST_FOREACH
-+ LIST_FOREACH(e, &excl, n)
-+#else
-+ for (e = excl.lh_first; e; e = e->n.le_next)
-+#endif
-+ if (strcmp(e->p, p) == 0)
-+ return (1);
-+
-+ return (0);
-+}
-+
-+static int
-+compar(const FTSENT **fa, const FTSENT **fb)
-+{
-+ return (strcmp((*fa)->fts_name, (*fb)->fts_name));
-+}
-+
-+static int
-+digest_directory(char *dn, alg_t *alg)
-+{
-+ char in[BUFSIZ * 20], dot[2];
-+ char *digest;
-+ int cc, rc, l, fd, cwd;
-+ char *pathlist[2];
-+ FTS *ftsp;
-+ FTSENT *f;
-+
-+ rc = 1;
-+ l = alg->hash_len * 2;
-+ digest = malloc(l + 1);
-+ sprintf(dot, ".");
-+ pathlist[0] = dot;
-+ pathlist[1] = NULL;
-+
-+ if ((cwd = open(".", O_RDONLY)) == -1 ||
-+ chdir(dn) == -1 ||
-+ (ftsp = fts_open(pathlist,
-+ FTS_COMFOLLOW | FTS_NOCHDIR | FTS_PHYSICAL,
-+ compar)) == NULL) {
-+ (void) fprintf(stderr, "%s\n", dn);
-+ free(digest);
-+ return (0);
-+ }
-+
-+ (*alg->hash_init)(&alg->hash_ctx);
-+
-+ while ((f = fts_read(ftsp)) != NULL) {
-+ /* skip the second pass on a directory */
-+ if (f->fts_info == FTS_DP)
-+ continue;
-+
-+ /* skip directories named CVS, RCS, or SCCS */
-+ if ((f->fts_info == FTS_NS ||
-+ S_ISDIR(f->fts_statp->st_mode)) &&
-+ skip(f->fts_name)) {
-+ fts_set(ftsp, f, FTS_SKIP);
-+ continue;
-+ }
-+
-+ /* try to handle things based on stat info */
-+ if (f->fts_info != FTS_NS) {
-+ /* only mention directories */
-+ if (S_ISDIR(f->fts_statp->st_mode)) {
-+ (*alg->hash_init)(&alg->hash_ctx2);
-+ (*alg->hash_update)(&alg->hash_ctx2, "d ", 2);
-+ (*alg->hash_update)(&alg->hash_ctx2, f->fts_path, f->fts_pathlen);
-+ (*alg->hash_end)(&alg->hash_ctx2, digest);
-+ digest[l] = '\n';
-+ (*alg->hash_update)(&alg->hash_ctx, digest, l + 1);
-+
-+ /* hash the filename and then the contents separately */
-+ } else if (S_ISREG(f->fts_statp->st_mode)) {
-+ if ((fd = open(f->fts_path, O_RDONLY)) != -1) {
-+ (*alg->hash_init)(&alg->hash_ctx2);
-+ (*alg->hash_update)(&alg->hash_ctx2, "f ", 2);
-+ (*alg->hash_update)(&alg->hash_ctx2, f->fts_path, f->fts_pathlen);
-+ (*alg->hash_end)(&alg->hash_ctx2, &digest[0]);
-+ digest[l] = '\n';
-+ (*alg->hash_update)(&alg->hash_ctx, digest, 33);
-+
-+ (*alg->hash_init)(&alg->hash_ctx2);
-+ while ((cc = read(fd, in, sizeof(in))) > 0) {
-+ (*alg->hash_update)(&alg->hash_ctx2, in, cc);
-+ }
-+ close(fd);
-+ (*alg->hash_end)(&alg->hash_ctx2, digest);
-+ digest[l] = '\n';
-+ (*alg->hash_update)(&alg->hash_ctx, digest, l + 1);
-+ } else {
-+ (void) fprintf(stderr, "%s\n", f->fts_path);
-+ rc = 0;
-+ }
-+
-+ /* hash in symlinks as well, along with the link contents */
-+ } else if (S_ISLNK(f->fts_statp->st_mode)) {
-+ if ((cc = readlink(f->fts_path, in, sizeof(in))) > 0) {
-+ (*alg->hash_init)(&alg->hash_ctx2);
-+ (*alg->hash_update)(&alg->hash_ctx2, "l ", 2);
-+ (*alg->hash_update)(&alg->hash_ctx2, f->fts_path, f->fts_pathlen);
-+ (*alg->hash_end)(&alg->hash_ctx2, digest);
-+ digest[l] = '\n';
-+ (*alg->hash_update)(&alg->hash_ctx, digest, l + 1);
-+
-+ (*alg->hash_init)(&alg->hash_ctx2);
-+ (*alg->hash_update)(&alg->hash_ctx2, in, cc);
-+ (*alg->hash_end)(&alg->hash_ctx2, digest);
-+ digest[l] = '\n';
-+ (*alg->hash_update)(&alg->hash_ctx, digest, l + 1);
-+ } else {
-+ (void) fprintf(stderr, "%s\n", f->fts_path);
-+ rc = 0;
-+ }
-+ }
-+ }
-+ }
-+
-+ fts_close(ftsp);
-+ fchdir(cwd);
-+ close(cwd);
-+
-+ if (rc == 1) {
-+ (*alg->hash_end)(&alg->hash_ctx, digest);
-+ (void) printf("%s (%s) = %s\n", alg->name, dn, digest);
-+ }
-+
-+ free(digest);
-+ return (rc);
-+}
-+
- int
- main(int argc, char **argv)
- {
- alg_t *alg;
- int rval;
- int i;
-+ struct stat st;
-+
-+ LIST_INIT(&excl);
-
- #ifdef HAVE_SETLOCALE
- (void) setlocale(LC_ALL, "");
- #endif
-- while ((i = getopt(argc, argv, "V")) != -1) {
-+ while ((i = getopt(argc, argv, "Vx:")) != -1) {
- switch(i) {
- case 'V':
- printf("%s\n", VERSION);
- return EXIT_SUCCESS;
-+ case 'x':
-+ exclude(optarg);
-+ break;
- }
- }
- argc -= optind;
-@@ -186,7 +348,9 @@ main(int argc, char **argv)
- }
- } else {
- for (i = 0 ; i < argc ; i++) {
-- if (!digest_file(argv[i], alg)) {
-+ if (stat(argv[i], &st) == -1 ||
-+ (S_ISREG(st.st_mode) && !digest_file(argv[i], alg)) ||
-+ (S_ISDIR(st.st_mode) && !digest_directory(argv[i], alg))) {
- (void) fprintf(stderr, "%s\n", argv[i]);
- rval = EXIT_FAILURE;
- }