Refactor cryptcheck() to allow multiple list-files and stdin

Previously, it was not possible to use

sha1sum test.c | sha1sum -c

because the program would not differenciate between an empty
argument and a non-specified argument.
Moreover, why not allow this?

sha1sum -c hashlist1 hashlist2

Digging deeper I found that using function pointers and a
modification in the crypt-backend might simplify the program
a lot by passing the argument-list to both cryptmain and
cryptcheck.
Allowing more than one list-file to be specified is also
consistent with what the other implementations support,
so we not only have simpler code, we also do not silently
break if there's a script around passing multiple files to
check.
This commit is contained in:
FRIGN
2015-03-01 22:51:52 +01:00
parent 0226c05105
commit 9b06720f62
6 changed files with 56 additions and 53 deletions

View File

@@ -6,7 +6,7 @@ struct crypt_ops {
void *s;
};
int cryptcheck(char *, int, char **, struct crypt_ops *, uint8_t *, size_t);
int cryptcheck(int, char **, struct crypt_ops *, uint8_t *, size_t);
int cryptmain(int, char **, struct crypt_ops *, uint8_t *, size_t);
int cryptsum(struct crypt_ops *, FILE *, const char *, uint8_t *);
void mdprint(const uint8_t *, const char *, size_t);