projects
/
skeinsum.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
HashMatch: do return values more strict.
[skeinsum.git]
/
skein_cli.c
diff --git
a/skein_cli.c
b/skein_cli.c
index c8ae45b48ff37219fd4369ba9011ae10dd5979ca..0ab840835690951179942431663d506041ab4fba 100644
(file)
--- 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';
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)
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 (strcmp(MsgDigest, StoredDigest)) {
printf("%s: FAILED\n", filename);
return 0;
}
+
if (quiet > 0)
printf("%s: OK\n", filename);
return 1;
}
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];
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 ++;
}
NotProper ++;
NoMatch ++;
}
- else if (
!HashMatch(MsgDigest_tmp, file_tmp, quiet)
)
+ else if (
HashMatch(MsgDigest_tmp, file_tmp, quiet) <= 0
)
{
NoMatch++;
}
{
NoMatch++;
}