X-Git-Url: https://jxself.org/git/?p=skeinsum.git;a=blobdiff_plain;f=skein_cli.c;h=d6e7649480d4b930cf53cd415ac606a5283fd9ca;hp=c8ae45b48ff37219fd4369ba9011ae10dd5979ca;hb=6f9f4910116e2463dc4f9c842177fdf3e5b4ebae;hpb=6ec116da3188186d71484164c2ce430ac5a08966 diff --git a/skein_cli.c b/skein_cli.c index c8ae45b..d6e7649 100644 --- a/skein_cli.c +++ b/skein_cli.c @@ -210,6 +210,7 @@ void HashStdin(int tag) } } +/* Return: -1 = Error, 0 = Mismatch, 1 = Match */ int HashMatch(const char StoredDigest[], const char *filename, int quiet) { char mode = 't'; @@ -220,17 +221,19 @@ int HashMatch(const char StoredDigest[], const char *filename, int quiet) char MsgDigest[hashbitlen/2]; if (HashWithMode(filename, MsgDigest, mode) < 0) - return 0; + return -1; if (strcmp(MsgDigest, StoredDigest)) { printf("%s: FAILED\n", filename); return 0; } + if (quiet > 0) printf("%s: OK\n", filename); return 1; } +/* Return: -1 = some errors/mismatches, 1 = all ok */ int VerifyHashesFromFile(FILE *fp, int status, int warn, int quiet) { char hash[PATH_MAX + hashbitlen/4 + 4]; @@ -263,7 +266,7 @@ int VerifyHashesFromFile(FILE *fp, int status, int warn, int quiet) NotProper ++; NoMatch ++; } - else if (!HashMatch(MsgDigest_tmp, file_tmp, quiet)) + else if (HashMatch(MsgDigest_tmp, file_tmp, quiet) <= 0) { NoMatch++; } @@ -280,17 +283,18 @@ int VerifyHashesFromFile(FILE *fp, int status, int warn, int quiet) return (NotProper || NoMatch) ? -1 : 1; } -int isProper(char MsgDigest[]) +int isProper(const char MsgDigest[]) { - if ((strlen(MsgDigest) - hashbitlen/4) != 0) + int len = strlen(MsgDigest); + if (len != (hashbitlen / 4)) return 0; int index = 0; - char c = 0; - for(index = 0; index < strlen(MsgDigest);index++) + for (index = 0; index < len; index++) { - c = MsgDigest[index]; - if(!(( c >= '0' && c <= '9' ) || ( c >= 'A' && c <= 'F'))) - return 0; + char c = MsgDigest[index]; + if (c >= '0' && c <= '9') continue; + if (c >= 'A' && c <= 'F') continue; + return 0; } return 1;