diff options
author | wollman <wollman@FreeBSD.org> | 1999-02-26 18:44:56 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1999-02-26 18:44:56 +0000 |
commit | 2c2e09fe901b540fa2fc4ec83bcd85b87468b0ad (patch) | |
tree | 80bb58430cb013a059396dde14c1e348f3cef4ee /usr.sbin/mtree/create.c | |
parent | 563552afce2240b94a832861f16a3ebb3c17dccb (diff) | |
download | FreeBSD-src-2c2e09fe901b540fa2fc4ec83bcd85b87468b0ad.zip FreeBSD-src-2c2e09fe901b540fa2fc4ec83bcd85b87468b0ad.tar.gz |
Add support for SHA-1 and RIPEMD160, now that libmd includes them. Make
all of the hashes (including MD5) conditionalized in case we want
to turn one of them off later.
Diffstat (limited to 'usr.sbin/mtree/create.c')
-rw-r--r-- | usr.sbin/mtree/create.c | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/usr.sbin/mtree/create.c b/usr.sbin/mtree/create.c index 47a5e39..e591001 100644 --- a/usr.sbin/mtree/create.c +++ b/usr.sbin/mtree/create.c @@ -36,7 +36,7 @@ static char sccsid[] = "@(#)create.c 8.1 (Berkeley) 6/6/93"; #endif static const char rcsid[] = - "$Id: create.c,v 1.12 1999/01/12 02:58:23 jkoshy Exp $"; + "$Id: create.c,v 1.13 1999/01/18 06:58:25 jkoshy Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -47,7 +47,15 @@ static const char rcsid[] = #include <fcntl.h> #include <fts.h> #include <grp.h> +#ifdef MD5 #include <md5.h> +#endif +#ifdef SHA1 +#include <sha.h> +#endif +#ifdef RMD160 +#include <ripemd.h> +#endif #include <pwd.h> #include <stdio.h> #include <time.h> @@ -203,16 +211,42 @@ statf(indent, p) (void)close(fd); output(indent, &offset, "cksum=%lu", val); } +#ifdef MD5 if (keys & F_MD5 && S_ISREG(p->fts_statp->st_mode)) { - char *md5digest, buf[33]; + char *digest, buf[33]; + + digest = MD5File(p->fts_accpath, buf); + if (!digest) { + err(1, "line %d: %s", lineno, p->fts_accpath); + } else { + output(indent, &offset, "md5digest=%s", digest); + } + } +#endif /* MD5 */ +#ifdef SHA1 + if (keys & F_SHA1 && S_ISREG(p->fts_statp->st_mode)) { + char *digest, buf[41]; + + digest = SHA1_File(p->fts_accpath, buf); + if (!digest) { + err(1, "line %d: %s", lineno, p->fts_accpath); + } else { + output(indent, &offset, "sha1digest=%s", digest); + } + } +#endif /* SHA1 */ +#ifdef RMD160 + if (keys & F_RMD160 && S_ISREG(p->fts_statp->st_mode)) { + char *digest, buf[41]; - md5digest = MD5File(p->fts_accpath,buf); - if (!md5digest) { + digest = RIPEMD160_File(p->fts_accpath, buf); + if (!digest) { err(1, "line %d: %s", lineno, p->fts_accpath); } else { - output(indent, &offset, "md5digest=%s", md5digest); + output(indent, &offset, "ripemd160digest=%s", digest); } } +#endif /* RMD160 */ if (keys & F_SLINK && (p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE)) output(indent, &offset, "link=%s", rlink(p->fts_accpath)); |