summaryrefslogtreecommitdiff
path: root/one.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2018-04-25 06:41:44 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2018-04-25 06:41:44 -0700
commit05bfafbce8b00d9a99e6bf858f5c3d1645442952 (patch)
treee91f72b8af8208ec24c3c1acc0ea9875d6d2e994 /one.cpp
parent9da79671976411072bbfd18ec1bb92507a0e63e2 (diff)
parentd32a26f780ce7222aa89af64abecf7044ce62327 (diff)
downloadinfinitytier-05bfafbce8b00d9a99e6bf858f5c3d1645442952.tar.gz
infinitytier-05bfafbce8b00d9a99e6bf858f5c3d1645442952.zip
Merge branch 'master' into edge
Diffstat (limited to 'one.cpp')
-rw-r--r--one.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/one.cpp b/one.cpp
index e5884557..9ebc83c1 100644
--- a/one.cpp
+++ b/one.cpp
@@ -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) {