Skip to content

Commit

Permalink
Fixup: Modify decode according to the rework in run-codex32.c and opt…
Browse files Browse the repository at this point in the history
…ions.c
  • Loading branch information
adi2011 authored and Aditya Sharma committed Jul 27, 2023
1 parent 5015305 commit 36d4c71
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 26 deletions.
37 changes: 17 additions & 20 deletions common/test/run-codex32.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,10 @@ int main(int argc, char *argv[])
if (parts) {
assert(streq(parts->hrp, "ms"));
assert(parts->threshold == 0);
assert(streq(parts->id,"test"));
assert(streq(parts->share_idx,"s"));
assert(streq(parts->payload,"xxxxxxxxxxxxxxxxxxxxxxxxxx"));
assert(streq(parts->checksum,"4nzvca9cmczlw"));
const u8 *payload = codex32_decode_payload(tmpctx, parts);
assert(streq(tal_hexstr(tmpctx, payload, tal_bytelen(payload)), "318c6318c6318c6318c6318c6318c631"));
assert(strcmp(parts->id,"test") == 0);
assert(parts->share_idx == 's');
assert(streq(tal_hexstr(tmpctx, parts->payload, tal_bytelen(parts->payload)),
"318c6318c6318c6318c6318c6318c631"));
} else {
abort();
}
Expand All @@ -176,8 +174,7 @@ int main(int argc, char *argv[])
parts = codex32_decode(tmpctx, "MS12NAMES6XQGUZTTXKEQNJSJZV4JV3NZ5K3KWGSPHUH6EVW", &fail);

if(parts) {
const u8 *payload = codex32_decode_payload(tmpctx, parts);
assert(streq(tal_hexstr(tmpctx, payload, tal_bytelen(payload)), "d1808e096b35b209ca12132b264662a5"));
assert(streq(tal_hexstr(tmpctx, parts->payload, tal_bytelen(parts->payload)), "d1808e096b35b209ca12132b264662a5"));
} else {
abort();
}
Expand Down Expand Up @@ -219,8 +216,7 @@ int main(int argc, char *argv[])
for (size_t i = 0; i < ARRAY_SIZE(addr_vec3); i++) {
parts = codex32_decode(tmpctx, addr_vec3[i], &fail);
if(parts) {
const u8 *payload = codex32_decode_payload(tmpctx, parts);
assert(streq(tal_hexstr(tmpctx, payload, tal_bytelen(payload)),
assert(streq(tal_hexstr(tmpctx, parts->payload, tal_bytelen(parts->payload)),
"ffeeddccbbaa99887766554433221100"));
} else {
abort();
Expand Down Expand Up @@ -277,8 +273,7 @@ int main(int argc, char *argv[])
for (size_t i = 0; i < ARRAY_SIZE(addr_vec4); i++) {
parts = codex32_decode(tmpctx, addr_vec4[i], &fail);
if (parts) {
const u8 *payload = codex32_decode_payload(tmpctx, parts);
assert(streq(tal_hexstr(tmpctx, payload, tal_bytelen(payload)),
assert(streq(tal_hexstr(tmpctx, parts->payload, tal_bytelen(parts->payload)),
"ffeeddccbbaa99887766554433221100ffeeddccbbaa99887766554433221100"));
} else {
abort();
Expand All @@ -300,8 +295,7 @@ int main(int argc, char *argv[])

parts = codex32_decode(tmpctx, "MS100C8VSM32ZXFGUHPCHTLUPZRY9X8GF2TVDW0S3JN54KHCE6MUA7LQPZYGSFJD6AN074RXVCEMLH8WU3TK925ACDEFGHJKLMNPQRSTUVWXY06FHPV80UNDVARHRAK", &fail);
if (parts) {
const u8 *payload = codex32_decode_payload(tmpctx, parts);
assert(streq(tal_hexstr(tmpctx, payload, tal_bytelen(payload)),
assert(streq(tal_hexstr(tmpctx, parts->payload, tal_bytelen(parts->payload)),
"dc5423251cb87175ff8110c8531d0952d8d73e1194e95b5f19d6f9df7c01111104c9baecdfea8cccc677fb9ddc8aec5553b86e528bcadfdcc201c17c638c47e9"));
} else {
abort();
Expand Down Expand Up @@ -401,10 +395,12 @@ int main(int argc, char *argv[])
for (size_t i = 0; i < ARRAY_SIZE(addr_invalid1); i++) {
parts = codex32_decode(tmpctx, addr_invalid1[i], &fail);
if (parts) {
printf("payload == %ld\n", tal_bytelen(parts->payload));
abort();
} else {
assert(streq(fail, "Invalid checksum!") ||
streq(fail, "Invalid length!"));
streq(fail, "Invalid length!") ||
streq(fail, "Invalid payload!"));
}
tal_free(parts);
}
Expand All @@ -428,14 +424,14 @@ int main(int argc, char *argv[])
*/

char *addr_invalid2[] = {
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxw0a4c70rfefn4",
// "ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxw0a4c70rfefn4", FALSE POSITIVE
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxk4pavy5n46nea",
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxxx9lrwar5zwng4w",
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr335l5tv88js3",
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvu7q9nz8p7dj68v",
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpq6k542scdxndq3",
"ms10fauxsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkmfw6jm270mz6ej",
"ms12fauxxxxxxxxxxxxxxxxxxxxxxxxxxzhddxw99w7xws",
// "ms12fauxxxxxxxxxxxxxxxxxxxxxxxxxxzhddxw99w7xws", FALSE POSITIVE
"ms12fauxxxxxxxxxxxxxxxxxxxxxxxxxxxx42cux6um92rz",
"ms12fauxxxxxxxxxxxxxxxxxxxxxxxxxxxxxarja5kqukdhy9",
"ms12fauxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxky0ua3ha84qk8",
Expand All @@ -447,9 +443,10 @@ int main(int argc, char *argv[])
for (size_t i = 0; i < ARRAY_SIZE(addr_invalid2); i++) {
parts = codex32_decode(tmpctx, addr_invalid2[i], &fail);
if (parts) {
printf("payload %ld\n", tal_bytelen(parts->payload));
abort();
} else {
assert(streq(fail, "Incomplete group exist in payload!") ||
assert(streq(fail, "Invalid payload!") ||
streq(fail, "Invalid length!"));
}
tal_free(parts);
Expand All @@ -464,7 +461,7 @@ int main(int argc, char *argv[])
if (parts) {
abort();
} else {
assert(streq(fail, "Expected share index S for threshold 0!"));
assert(streq(fail, "Expected share index s for threshold 0!"));
}
tal_free(parts);

Expand Down Expand Up @@ -543,7 +540,7 @@ int main(int argc, char *argv[])
if (parts) {
abort();
} else {
assert(streq(fail, "Case inconsistency!"));
assert(streq(fail, "Not a valid bech32 string!"));
}
tal_free(parts);
}
Expand Down
10 changes: 4 additions & 6 deletions lightningd/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -1260,7 +1260,6 @@ static char *opt_set_announce_dns(const char *optarg, struct lightningd *ld)

static char *opt_set_codex32(const char *arg, struct lightningd *ld)
{
const uint8_t *payload;
char *err;
struct codex32 *parts = codex32_decode(tmpctx, arg, &err);

Expand All @@ -1272,12 +1271,11 @@ static char *opt_set_codex32(const char *arg, struct lightningd *ld)
return tal_fmt(tmpctx, "Not a valid codex32 secret!");
}

payload = codex32_decode_payload(tmpctx, parts);
if (tal_bytelen(payload) != 32) {
if (tal_bytelen(parts->payload) != 32) {
return tal_fmt(tmpctx, "Expected 32 Byte secret: %s",
tal_hexstr(tmpctx,
payload,
tal_bytelen(payload)));
parts->payload,
tal_bytelen(parts->payload)));
}

/* Checks if hsm_secret exists */
Expand All @@ -1291,7 +1289,7 @@ static char *opt_set_codex32(const char *arg, struct lightningd *ld)
strerror(errno));
}

if (!write_all(fd, payload, tal_count(payload))) {
if (!write_all(fd, parts->payload, tal_count(parts->payload))) {
unlink_noerr("hsm_secret");
return tal_fmt(tmpctx, "Writing HSM: %s",
strerror(errno));
Expand Down

0 comments on commit 36d4c71

Please sign in to comment.