diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2014-01-08 14:19:26 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2014-01-08 14:19:26 +0000 |
commit | 12238152a19e50265861a409352217139bc68ac3 (patch) | |
tree | 4ac2401b99876ed85414530e1f7e273994283d3a /bin/md5/md5.c | |
parent | f19ed3954eab3c7d9d8e8aad63c89932d7786297 (diff) |
Add -DSMALL support to kill a lot of the unncecessary hashes and checksums
that the install media won't need
ok millert, but he used the word butcher!
Diffstat (limited to 'bin/md5/md5.c')
-rw-r--r-- | bin/md5/md5.c | 67 |
1 files changed, 54 insertions, 13 deletions
diff --git a/bin/md5/md5.c b/bin/md5/md5.c index bf5a7e7af92..cf97d5aca53 100644 --- a/bin/md5/md5.c +++ b/bin/md5/md5.c @@ -1,4 +1,4 @@ -/* $OpenBSD: md5.c,v 1.59 2014/01/08 14:15:54 deraadt Exp $ */ +/* $OpenBSD: md5.c,v 1.60 2014/01/08 14:19:25 deraadt Exp $ */ /* * Copyright (c) 2001,2003,2005-2006 Todd C. Miller <Todd.Miller@courtesan.com> @@ -52,23 +52,31 @@ enum program_mode { MODE_MD5, +#if !defined(SMALL) MODE_CKSUM, +#endif } pmode; union ANY_CTX { +#if !defined(SMALL) CKSUM_CTX cksum; MD4_CTX md4; MD5_CTX md5; RMD160_CTX rmd160; SHA1_CTX sha1; +#endif /* !defined(SMALL) */ SHA2_CTX sha2; +#if !defined(SMALL) SUM_CTX sum; SYSVSUM_CTX sysvsum; +#endif /* !defined(SMALL) */ }; /* Default print style for hash and chksum functions. */ int style_hash = STYLE_NORMAL; +#if !defined(SMALL) int style_cksum = STYLE_REVERSE; +#endif /* !defined(SMALL) */ #define NHASHES 11 struct hash_function { @@ -83,6 +91,7 @@ struct hash_function { char * (*end)(void *, char *); TAILQ_ENTRY(hash_function) tailq; } functions[NHASHES + 1] = { +#if !defined(SMALL) { "CKSUM", CKSUM_DIGEST_LENGTH, @@ -93,7 +102,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))CKSUM_Update, (void (*)(unsigned char *, void *))CKSUM_Final, (char *(*)(void *, char *))CKSUM_End - }, { + }, + { "SUM", SUM_DIGEST_LENGTH, &style_cksum, @@ -103,7 +113,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SUM_Update, (void (*)(unsigned char *, void *))SUM_Final, (char *(*)(void *, char *))SUM_End - }, { + }, + { "SYSVSUM", SYSVSUM_DIGEST_LENGTH, &style_cksum, @@ -113,7 +124,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SYSVSUM_Update, (void (*)(unsigned char *, void *))SYSVSUM_Final, (char *(*)(void *, char *))SYSVSUM_End - }, { + }, + { "MD4", MD4_DIGEST_LENGTH, &style_hash, @@ -133,7 +145,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))MD5Update, (void (*)(unsigned char *, void *))MD5Final, (char *(*)(void *, char *))MD5End - }, { + }, + { "RMD160", RMD160_DIGEST_LENGTH, &style_hash, @@ -143,7 +156,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))RMD160Update, (void (*)(unsigned char *, void *))RMD160Final, (char *(*)(void *, char *))RMD160End - }, { + }, + { "SHA1", SHA1_DIGEST_LENGTH, &style_hash, @@ -153,7 +167,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SHA1Update, (void (*)(unsigned char *, void *))SHA1Final, (char *(*)(void *, char *))SHA1End - }, { + }, + { "SHA224", SHA224_DIGEST_LENGTH, &style_hash, @@ -163,7 +178,9 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SHA224Update, (void (*)(unsigned char *, void *))SHA224Final, (char *(*)(void *, char *))SHA224End - }, { + }, +#endif /* !defined(SMALL) */ + { "SHA256", SHA256_DIGEST_LENGTH, &style_hash, @@ -173,7 +190,9 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SHA256Update, (void (*)(unsigned char *, void *))SHA256Final, (char *(*)(void *, char *))SHA256End - }, { + }, +#if !defined(SMALL) + { "SHA384", SHA384_DIGEST_LENGTH, &style_hash, @@ -183,7 +202,9 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SHA384Update, (void (*)(unsigned char *, void *))SHA384Final, (char *(*)(void *, char *))SHA384End - }, { + }, +#endif /* !defined(SMALL) */ + { "SHA512", SHA512_DIGEST_LENGTH, &style_hash, @@ -193,7 +214,8 @@ struct hash_function { (void (*)(void *, const unsigned char *, unsigned int))SHA512Update, (void (*)(unsigned char *, void *))SHA512Final, (char *(*)(void *, char *))SHA512End - }, { + }, + { NULL, } }; @@ -204,10 +226,12 @@ void digest_end(const struct hash_function *, void *, char *, size_t, int); int digest_file(const char *, struct hash_list *, int); int digest_filelist(const char *, struct hash_function *); void digest_print(const struct hash_function *, const char *, const char *); +#if !defined(SMALL) void digest_printstr(const struct hash_function *, const char *, const char *); void digest_string(char *, struct hash_list *); void digest_test(struct hash_list *); void digest_time(struct hash_list *, int); +#endif /* !defined(SMALL) */ void hash_insert(struct hash_list *, struct hash_function *, int); void usage(void) __attribute__((__noreturn__)); @@ -227,7 +251,9 @@ main(int argc, char **argv) static const char *optstr[2] = { "bch:pqrs:tx", +#if !defined(SMALL) "a:bch:o:pqrs:tx" +#endif /* !defined(SMALL) */ }; TAILQ_INIT(&hl); @@ -235,8 +261,10 @@ main(int argc, char **argv) error = bflag = cflag = pflag = qflag = rflag = tflag = xflag = 0; pmode = MODE_MD5; +#if !defined(SMALL) if (strcmp(__progname, "cksum") == 0 || strcmp(__progname, "sum") == 0) pmode = MODE_CKSUM; +#endif /* !defined(SMALL) */ /* Check for -b option early since it changes behavior. */ while ((fl = getopt(argc, argv, optstr[pmode])) != -1) { @@ -299,6 +327,7 @@ main(int argc, char **argv) case 'c': cflag = 1; break; +#if !defined(SMALL) case 'o': if (strcmp(optarg, "1") == 0) hf = &functions[1]; @@ -316,6 +345,7 @@ main(int argc, char **argv) if (hftmp == TAILQ_END(&hl)) hash_insert(&hl, hf, 0); break; +#endif /* !defined(SMALL) */ case 'h': ofile = fopen(optarg, "w+"); if (ofile == NULL) @@ -374,9 +404,12 @@ main(int argc, char **argv) style_hash = STYLE_REVERSE; if (qflag) { style_hash = STYLE_TERSE; +#if !defined(SMALL) style_cksum = STYLE_TERSE; +#endif /* !defined(SMALL) */ } +#if !defined(SMALL) if (tflag) digest_time(&hl, tflag); else if (xflag) @@ -390,7 +423,9 @@ main(int argc, char **argv) while (argc--) error += digest_filelist(*argv++, TAILQ_FIRST(&hl)); - } else if (pflag || argc == 0) + } else +#endif /* !defined(SMALL) */ + if (pflag || argc == 0) error = digest_file("-", &hl, pflag); else while (argc--) @@ -431,6 +466,7 @@ digest_end(const struct hash_function *hf, void *ctx, char *buf, size_t bsize, } } +#if !defined(SMALL) void digest_string(char *string, struct hash_list *hl) { @@ -446,6 +482,7 @@ digest_string(char *string, struct hash_list *hl) digest_printstr(hf, string, digest); } } +#endif /* !defined(SMALL) */ void digest_print(const struct hash_function *hf, const char *what, @@ -459,7 +496,7 @@ digest_print(const struct hash_function *hf, const char *what, (void)fprintf(ofile, "%s %s\n", digest, what); break; case STYLE_TERSE: - (void)fprintf(ofile,"%s\n", digest); + (void)fprintf(ofile, "%s\n", digest); break; } } @@ -531,6 +568,7 @@ digest_file(const char *file, struct hash_list *hl, int echo) return(0); } +#if !defined(SMALL) /* * Parse through the input file looking for valid lines. * If one is found, use this checksum and file as a reference and @@ -791,6 +829,7 @@ digest_test(struct hash_list *hl) digest); } } +#endif /* !defined(SMALL) */ void usage(void) @@ -800,12 +839,14 @@ usage(void) fprintf(stderr, "usage: %s [-bpqrtx] [-c [checklist ...]] " "[-h hashfile] [-s string] [file ...]\n", __progname); break; +#if !defined(SMALL) case MODE_CKSUM: fprintf(stderr, "usage: %s [-bpqrtx] [-a algorithms] " "[-c [checklist ...]] [-h hashfile] [-o 1 | 2]\n" " %*s [-s string] [file ...]\n", __progname, (int)strlen(__progname), ""); break; +#endif /* !defined(SMALL) */ } exit(EXIT_FAILURE); |