X-Git-Url: https://jxself.org/git/?p=skeinsum.git;a=blobdiff_plain;f=skein_cli.c;h=82b2ae3a59922be03c84ee35dba4548c272e2899;hp=bbe820c4082c4316bbf36f9084cc95c8fd5f4803;hb=b2515452a0850b7b150e1b8dbfdbd3e9cfb1ea6b;hpb=f92102e1a10a938eaad61481658409dd9b686d54 diff --git a/skein_cli.c b/skein_cli.c index bbe820c..82b2ae3 100644 --- a/skein_cli.c +++ b/skein_cli.c @@ -52,14 +52,14 @@ enum static struct option const long_options[] = { - { "binary", no_argument, NULL, 'b' }, - { "check", no_argument, NULL, 'c' }, - { "quiet", no_argument, NULL, QUIET_OPTION }, - { "status", no_argument, NULL, STATUS_OPTION }, - { "text", no_argument, NULL, 't' }, - { "warn", no_argument, NULL, 'w' }, - { "tag", no_argument, NULL, TAG_OPTION }, - { "help", no_argument, NULL, HELP_OPTION }, + { "binary", no_argument, NULL, 'b' }, + { "check", no_argument, NULL, 'c' }, + { "quiet", no_argument, NULL, QUIET_OPTION }, + { "status", no_argument, NULL, STATUS_OPTION }, + { "text", no_argument, NULL, 't' }, + { "warn", no_argument, NULL, 'w' }, + { "tag", no_argument, NULL, TAG_OPTION }, + { "help", no_argument, NULL, HELP_OPTION }, { "version", no_argument, NULL, VERSION_OPTION }, { NULL, 0, NULL, 0 } }; @@ -183,12 +183,26 @@ int HashBinaryMode(char file_name[], char MsgDigest[]) return HashWithMode(file_name, MsgDigest, 'b'); } -int HashStringMode(char Msg[],char MsgDigest[]) +void HashStringMode(char Msg[],char MsgDigest[]) { unsigned char output[hashbitlen/4]; Hash(hashbitlen,(unsigned char*) Msg,sizeof(Msg),output); printHexMsg(output,hashbitlen/4,MsgDigest); - return 1; +} + +void HashStdin(char MsgDigest[], int tag) +{ + char stri[100]; + char longstring[1000]; + longstring[0] = 0; + while(fgets(stri,100,stdin)) + strcat(longstring, stri); + HashStringMode(longstring, MsgDigest); + if (tag) { + printf("skein%d_v%s (-) = %s\n", hashbitlen, skeinVersion, MsgDigest); + } else { + printf("%s *-\n", MsgDigest); + } } int isProper(char MsgDigest[]) @@ -440,23 +454,8 @@ int main(int argc, char** argv) } } else if(errorFound != 1) - { // read stdin for strings - char stri[100]; - char longstring[1000]; - longstring[0] = 0; - while((fgets(stri,100,stdin))!=NULL) - { - strcat(longstring,stri); - } - HashStringMode(longstring,MsgDigest); - if(tag == 1) - { - printf("skein%d_v%s (-) = %s\n",hashbitlen,skeinVersion,MsgDigest); - } - else - { - printf("%s *-\n",MsgDigest); - } + { + HashStdin(MsgDigest, tag); } } @@ -489,23 +488,8 @@ int main(int argc, char** argv) } } else if(errorFound != 1) - { // read stdin for strings - char stri[100]; - char longstring[1000]; - longstring[0] = 0; - while((fgets(stri,100,stdin))!=NULL) - { - strcat(longstring,stri); - } - HashStringMode(longstring,MsgDigest); - if(tag == 1) - { - printf("skein%d_v%s (-) = %s\n",hashbitlen,skeinVersion,MsgDigest); - } - else - { - printf("%s -\n",MsgDigest); - } + { + HashStdin(MsgDigest, tag); } } @@ -546,23 +530,8 @@ int main(int argc, char** argv) } } else if(errorFound != 1) - { // hasing strings read from stdin - char stri[100]; - char longstring[1000]; /* TODO!!! Fix buffer overflow!!! */ - longstring[0] = 0; - while((fgets(stri,100,stdin))!=NULL) - { - strcat(longstring,stri); - } - HashStringMode(longstring,MsgDigest); - if(tag == 1) - { - printf("skein%d_v%s (-) = %s\n",hashbitlen,skeinVersion,MsgDigest); - } - else - { - printf("%s -\n",MsgDigest); - } + { + HashStdin(MsgDigest, tag); } } else if(check == 1) @@ -726,18 +695,8 @@ int main(int argc, char** argv) } } - if ((errorFound != 1) && (argc == 1 || (hashString == 1 && number_files == 0))) - { - char stri[100]; - char longstring[1000]; - longstring[0] = 0; - while((fgets(stri,100,stdin))!=NULL) - { - strcat(longstring,stri); - } - HashStringMode(longstring,MsgDigest); - printf("%s -\n",MsgDigest); - } + if (!errorFound && (argc == 1 || (hashString == 1 && !number_files))) + HashStdin(MsgDigest, 0); return 1; }