diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2018-04-25 06:41:44 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2018-04-25 06:41:44 -0700 |
commit | 05bfafbce8b00d9a99e6bf858f5c3d1645442952 (patch) | |
tree | e91f72b8af8208ec24c3c1acc0ea9875d6d2e994 /one.cpp | |
parent | 9da79671976411072bbfd18ec1bb92507a0e63e2 (diff) | |
parent | d32a26f780ce7222aa89af64abecf7044ce62327 (diff) | |
download | infinitytier-05bfafbce8b00d9a99e6bf858f5c3d1645442952.tar.gz infinitytier-05bfafbce8b00d9a99e6bf858f5c3d1645442952.zip |
Merge branch 'master' into edge
Diffstat (limited to 'one.cpp')
-rw-r--r-- | one.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -466,7 +466,7 @@ static int cli(int argc,char **argv) } } else if (command == "join") { if (arg1.length() != 16) { - cliPrintHelp(argv[0],stderr); + printf("invalid network id" ZT_EOL_S); return 2; } requestHeaders["Content-Type"] = "application/json"; @@ -494,7 +494,7 @@ static int cli(int argc,char **argv) } } else if (command == "leave") { if (arg1.length() != 16) { - cliPrintHelp(argv[0],stderr); + printf("invalid network id" ZT_EOL_S); return 2; } unsigned int scode = Http::DEL( @@ -592,7 +592,7 @@ static int cli(int argc,char **argv) } } else if (command == "set") { if (arg1.length() != 16) { - cliPrintHelp(argv[0],stderr); + printf("invalid network id" ZT_EOL_S); return 2; } std::size_t eqidx = arg2.find('='); @@ -822,7 +822,7 @@ static int idtool(int argc,char **argv) char hexbuf[1024]; printf("%s",Utils::hex(signature.data,ZT_C25519_SIGNATURE_LEN,hexbuf)); } else if (!strcmp(argv[1],"verify")) { - if (argc < 4) { + if (argc < 5) { idtoolPrintHelp(stdout,argv[0]); return 1; } @@ -844,8 +844,19 @@ static int idtool(int argc,char **argv) if ((signature.length() > ZT_ADDRESS_LENGTH)&&(id.verify(inf.data(),(unsigned int)inf.length(),signature.data(),(unsigned int)signature.length()))) { printf("%s signature valid" ZT_EOL_S,argv[3]); } else { - fprintf(stderr,"%s signature check FAILED" ZT_EOL_S,argv[3]); - return 1; + signature.clear(); + if (OSUtils::readFile(argv[4],signature)) { + signature.assign(buf,Utils::unhex(signature.c_str(),buf,(unsigned int)sizeof(buf))); + if ((signature.length() > ZT_ADDRESS_LENGTH)&&(id.verify(inf.data(),(unsigned int)inf.length(),signature.data(),(unsigned int)signature.length()))) { + printf("%s signature valid" ZT_EOL_S,argv[3]); + } else { + fprintf(stderr,"%s signature check FAILED" ZT_EOL_S,argv[3]); + return 1; + } + } else { + fprintf(stderr,"%s signature check FAILED" ZT_EOL_S,argv[3]); + return 1; + } } } else if (!strcmp(argv[1],"initmoon")) { if (argc < 3) { |