add sha512-224sum (SHA512/224) and sha512-256sum (SHA512/256)

Signed-off-by: Mattias Andrée <maandree@kth.se>
This commit is contained in:
Mattias Andrée
2016-02-24 11:36:59 +01:00
committed by sin
parent ae1da536bb
commit a392cd475e
10 changed files with 347 additions and 109 deletions

View File

@@ -15,6 +15,8 @@ HDR =\
sha256.h\
sha384.h\
sha512.h\
sha512-224.h\
sha512-256.h\
text.h\
utf.h\
util.h
@@ -68,6 +70,8 @@ LIBUTILSRC =\
libutil/sha256.c\
libutil/sha384.c\
libutil/sha512.c\
libutil/sha512-224.c\
libutil/sha512-256.c\
libutil/strcasestr.c\
libutil/strlcat.c\
libutil/strlcpy.c\
@@ -141,6 +145,8 @@ BIN =\
sha256sum\
sha384sum\
sha512sum\
sha512-224sum\
sha512-256sum\
sleep\
sort\
split\
@@ -227,21 +233,21 @@ sbase-box: $(LIB) $(SRC)
mkdir -p build
cp $(HDR) build
cp confstr_l.h limits_l.h sysconf_l.h pathconf_l.h build
for f in $(SRC); do sed "s/^main(/$${f%.c}_&/" < $$f > build/$$f; done
echo '#include <libgen.h>' > build/$@.c
echo '#include <stdio.h>' >> build/$@.c
echo '#include <stdlib.h>' >> build/$@.c
echo '#include <string.h>' >> build/$@.c
echo '#include "util.h"' >> build/$@.c
for f in $(SRC); do echo "int $${f%.c}_main(int, char **);"; done >> build/$@.c
echo 'int main(int argc, char *argv[]) { char *s = basename(argv[0]);' >> build/$@.c
echo 'if(!strcmp(s,"sbase-box")) { argc--; argv++; s = basename(argv[0]); } if(0) ;' >> build/$@.c
echo "else if (!strcmp(s, \"install\")) return xinstall_main(argc, argv);" >> build/$@.c
echo "else if (!strcmp(s, \"[\")) return test_main(argc, argv);" >> build/$@.c
for f in $(SRC); do echo "else if(!strcmp(s, \"$${f%.c}\")) return $${f%.c}_main(argc, argv);"; done >> build/$@.c
echo 'else { fputs("[ ", stdout);' >> build/$@.c
for f in $(SRC); do echo "fputs(\"$${f%.c} \", stdout);"; done >> build/$@.c
echo 'putchar(0xa); }; return 0; }' >> build/$@.c
for f in $(SRC); do sed "s/^main(/$$(echo "$${f%.c}" | sed s/-/_/g)_&/" < $$f > build/$$f; done
echo '#include <libgen.h>' > build/$@.c
echo '#include <stdio.h>' >> build/$@.c
echo '#include <stdlib.h>' >> build/$@.c
echo '#include <string.h>' >> build/$@.c
echo '#include "util.h"' >> build/$@.c
for f in $(SRC); do echo "int $$(echo "$${f%.c}" | sed s/-/_/g)_main(int, char **);"; done >> build/$@.c
echo 'int main(int argc, char *argv[]) { char *s = basename(argv[0]);' >> build/$@.c
echo 'if(!strcmp(s,"sbase-box")) { argc--; argv++; s = basename(argv[0]); } if(0) ;' >> build/$@.c
echo "else if (!strcmp(s, \"install\")) return xinstall_main(argc, argv);" >> build/$@.c
echo "else if (!strcmp(s, \"[\")) return test_main(argc, argv);" >> build/$@.c
for f in $(SRC); do echo "else if(!strcmp(s, \"$${f%.c}\")) return $$(echo "$${f%.c}" | sed s/-/_/g)_main(argc, argv);"; done >> build/$@.c
echo 'else { fputs("[ ", stdout);' >> build/$@.c
for f in $(SRC); do echo "fputs(\"$${f%.c} \", stdout);"; done >> build/$@.c
echo 'putchar(0xa); }; return 0; }' >> build/$@.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ build/*.c $(LIB)
rm -r build