[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] branch master updated: GNS: Also consume a set of test vectors.
From: |
gnunet |
Subject: |
[gnunet] branch master updated: GNS: Also consume a set of test vectors. |
Date: |
Mon, 03 Jul 2023 11:56:48 +0200 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository gnunet.
The following commit(s) were added to refs/heads/master by this push:
new cefb5c679 GNS: Also consume a set of test vectors.
cefb5c679 is described below
commit cefb5c679c9d6673247e77148fed4df1b107463d
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Mon Jul 3 11:56:33 2023 +0200
GNS: Also consume a set of test vectors.
---
src/gnsrecord/gnunet-gnsrecord-tvg.c | 15 +-
src/gnsrecord/test_gnsrecord_testvectors.c | 299 +++++++++++++++++++++++++++--
2 files changed, 289 insertions(+), 25 deletions(-)
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c
b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index 588f16b4b..b2a8d1405 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -116,17 +116,17 @@ print_record (const struct GNUNET_GNSRECORD_Data *rd)
at = GNUNET_TIME_relative_to_absolute (rt);
abs_nbo = GNUNET_htonll (at.abs_value_us);
}
- printf ("EXPIRATION: %" PRIu64 " us\n", rd->expiration_time);
+ printf (" EXPIRATION: %" PRIu64 " us\n", rd->expiration_time);
print_bytes (&abs_nbo, sizeof (abs_nbo), 8);
- printf ("\nDATA_SIZE:\n");
+ printf ("\n DATA_SIZE:\n");
print_bytes (&size_nbo, sizeof (size_nbo), 8);
- printf ("\nTYPE:\n");
+ printf ("\n TYPE:\n");
print_bytes (&type_nbo, sizeof (type_nbo), 8);
- printf ("\nFLAGS: ");
+ printf ("\n FLAGS: ");
print_bytes ((void*) &flags, sizeof (flags), 8);
printf ("\n");
fprintf (stdout,
- "DATA:\n");
+ " DATA:\n");
print_bytes ((char*) rd->data, rd->data_size, 8);
printf ("\n");
}
@@ -241,6 +241,7 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count,
const char *label)
&rrblock));
struct GNUNET_CRYPTO_EcdsaPublicKey derived_key;
struct GNUNET_CRYPTO_EcdsaPrivateKey *derived_privkey;
+
GNUNET_CRYPTO_ecdsa_public_key_derive (&id_pub.ecdsa_key,
label,
"gns",
@@ -251,8 +252,8 @@ run_pkey (struct GNUNET_GNSRECORD_Data *rd, int rd_count,
const char *label)
printf ("ZKDF(zkey):\n");
print_bytes (&derived_key, sizeof (derived_key), 8);
printf ("\n");
- printf ("Derived private key (d'):\n");
- print_bytes (derived_privkey, sizeof (*derived_privkey), 8);
+ printf ("Derived private key (d', big-endian):\n");
+ print_bytes_ (derived_privkey, sizeof (*derived_privkey), 8, 1);
printf ("\n");
size_t bdata_size = ntohl (rrblock->size) - sizeof (struct
GNUNET_GNSRECORD_Block);
diff --git a/src/gnsrecord/test_gnsrecord_testvectors.c
b/src/gnsrecord/test_gnsrecord_testvectors.c
index 2b05c1b5d..60af14b15 100644
--- a/src/gnsrecord/test_gnsrecord_testvectors.c
+++ b/src/gnsrecord/test_gnsrecord_testvectors.c
@@ -6,50 +6,293 @@
struct GnsTv
{
+ uint32_t expected_rd_count;
+ struct GNUNET_GNSRECORD_Data expected_rd[2048];
char *d;
char *zid;
- int rrcount;
char *label;
char *q;
char *rdata;
- char *bdata;
char *rrblock;
};
-#define TVCOUNT 1
+#define TVCOUNT 4
struct GnsTv tvs[] = {
- { .d = "5af7020ee19160328832352bbc6a68a8d71a7cbe1b929969a7c66d415a0d8f65\0",
+ { .d =
+ "50 d7 b6 52 a4 ef ea df"
+ "f3 73 96 90 97 85 e5 95"
+ "21 71 a0 21 78 c8 e7 d4"
+ "50 fa 90 79 25 fa fd 98",
.zid =
-
"000100143cf4b924032022f0dc50581453b85d93b047b63d446c5845cb48445ddb96688f\0",
- .rrcount = 1,
- .label = "7465737464656c65676174696f6e\0",
+ "00 01 00 00 67 7c 47 7d"
+ "2d 93 09 7c 85 b1 95 c6"
+ "f9 6d 84 ff 61 f5 98 2c"
+ "2c 4f e0 2d 5a 11 fe df"
+ "b0 c2 90 1f",
+ .label = "74 65 73 74 64 65 6c 65"
+ "67 61 74 69 6f 6e",
.q =
-
"ed76cefdb6a9d73a9e1f10d96717eba3fc89ebe1b37584f6b077c2912e2fc5f312cf74e1b4d4dfca5abaec736d72666f0faa2945217f3b1436aa4e27c14c9732\0",
+ "4a dc 67 c5 ec ee 9f 76"
+ "98 6a bd 71 c2 22 4a 3d"
+ "ce 2e 91 70 26 c9 a0 9d"
+ "fd 44 ce f3 d2 0f 55 a2"
+ "73 32 72 5a 6c 8a fb bb"
+ "b0 f7 ec 9a f1 cc 42 64"
+ "12 99 40 6b 04 fd 9b 5b"
+ "57 91 f8 6c 4b 08 d5 f4",
.rdata =
-
"0008c06fb9281580002000010001000021e3b30ff93bc6d35ac8c6e0e13afdff794cb7b44bbbc748d259d0a0284dbe84\0",
- .bdata =
-
"9cc455a1293319435993cb3d67179ec06ea8d8894e904a0c35e91c5c2ff2ed939cc2f8301231f44e592a4ac87e4998b94625c64af51686a2b36a2b2892d44f2d\0",
+ "00 1c ee 8b 3a 4e b5 80"
+ "00 20 00 01 00 01 00 00"
+ "21 e3 b3 0f f9 3b c6 d3"
+ "5a c8 c6 e0 e1 3a fd ff"
+ "79 4c b7 b4 4b bb c7 48"
+ "d2 59 d0 a0 28 4d be 84",
.rrblock =
-
"000000b0000100149bf233198c6d53bbdbac495cabd91049a684af3f4051bacab0dcf21c8cf27a1a44d240d07902f490b7c43ef00758abce8851c18c70ac6df97a88f79211cf875f784885ca3e349ec4ca892b9ff084c5358965b8e74a2315952d4c8c06521c2f0c0008c06fb92815809cc455a1293319435993cb3d67179ec06ea8d8894e904a0c35e91c5c2ff2ed939cc2f8301231f44e592a4ac87e4998b94625c64af51686a2b36a2b2892d44f2d\0"}
+ "00 00 00 a0 00 01 00 00"
+ "18 2b b6 36 ed a7 9f 79"
+ "57 11 bc 27 08 ad bb 24"
+ "2a 60 44 6a d3 c3 08 03"
+ "12 1d 03 d3 48 b7 ce b6"
+ "0b af 41 a3 af 96 03 ea"
+ "be 46 0f 8a f6 7f 10 26"
+ "6c 14 90 17 2b 27 18 24"
+ "7f 29 09 99 f0 9f 34 d4"
+ "02 76 47 47 83 ed 63 39"
+ "d4 2c 76 80 b1 b2 ec 40"
+ "46 05 d6 f5 6b b3 f5 e3"
+ "7a 94 6d 4a 14 83 06 03"
+ "00 1c ee 8b 3a 4e b5 80"
+ "6c d1 19 47 8c d9 1c 80"
+ "dc 67 56 f8 96 83 f1 d5"
+ "d7 2e 1a a6 d9 bb 2d 14"
+ "ea 7a 24 9a ce b6 a6 00"
+ "59 f1 e9 d4 15 1b 0e ce"
+ "5f e7 fa 58 63 4d 81 c5"},
+ { .d =
+ "50 d7 b6 52 a4 ef ea df"
+ "f3 73 96 90 97 85 e5 95"
+ "21 71 a0 21 78 c8 e7 d4"
+ "50 fa 90 79 25 fa fd 98",
+ .zid =
+ "00 01 00 00 67 7c 47 7d"
+ "2d 93 09 7c 85 b1 95 c6"
+ "f9 6d 84 ff 61 f5 98 2c"
+ "2c 4f e0 2d 5a 11 fe df"
+ "b0 c2 90 1f",
+ .label =
+ "e5 a4 a9 e4 b8 8b e7 84"
+ "a1 e6 95 b5",
+ .q =
+ "af f0 ad 6a 44 09 73 68"
+ "42 9a c4 76 df a1 f3 4b"
+ "ee 4c 36 e7 47 6d 07 aa"
+ "64 63 ff 20 91 5b 10 05"
+ "c0 99 1d ef 91 fc 3e 10"
+ "90 9f 87 02 c0 be 40 43"
+ "67 78 c7 11 f2 ca 47 d5"
+ "5c f0 b5 4d 23 5d a9 77",
+ .rdata =
+ "00 1c ee 8b 3a 4e b5 80"
+ "00 10 00 00 00 00 00 1c"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 de ad be ef"
+ "00 3f f2 aa 54 08 db 40"
+ "00 06 00 00 00 01 00 01"
+ "e6 84 9b e7 a7 b0 00 28"
+ "bb 13 ff 37 19 40 00 0b"
+ "00 04 00 00 00 10 48 65"
+ "6c 6c 6f 20 57 6f 72 6c"
+ "64 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00",
+ .rrblock =
+ "00 00 00 f0 00 01 00 00"
+ "a5 12 96 df 75 7e e2 75"
+ "ca 11 8d 4f 07 fa 7a ae"
+ "55 08 bc f5 12 aa 41 12"
+ "14 29 d4 a0 de 9d 05 7e"
+ "04 85 97 8d 22 64 74 a9"
+ "22 fe 78 60 49 89 eb 52"
+ "61 38 0d 16 11 e6 9f 01"
+ "fc e0 d5 6d fc 53 24 c5"
+ "08 2a 6b ef 15 7c 9d 27"
+ "c3 35 4a 39 75 a4 30 98"
+ "d4 2b 5e d6 12 3c f5 41"
+ "c4 7c b4 22 16 4c a9 30"
+ "00 1c ee 8b 3a 4e b5 80"
+ "03 a3 4a e6 1e 07 1c 08"
+ "17 fd d4 57 68 e8 c7 cd"
+ "ab 72 b3 06 61 6e d1 f9"
+ "3f b5 64 e1 63 4c 64 64"
+ "29 20 ac 74 eb cd 97 f8"
+ "1f 8a 93 d4 b0 c8 f7 c2"
+ "0d ff 38 bb 60 b4 ed 9d"
+ "cd 02 d7 e3 9f 4b 89 c2"
+ "95 79 e0 75 dd ba 7b 8d"
+ "ad 4b 9d cd ef 15 57 4c"
+ "f3 50 b6 32 b3 93 a4 90"
+ "fc f4 90 32 be eb 4e 68"
+ "25 72 70 b1 70 6f c6 1f"
+ "d4 a4 c9 95 6c 64 f5 9e"
+ "81 d0 2b 6a 30 f5 8a 48"
+ "23 58 a1 2a ec 3d 0f 2d"},
+ { .d =
+ "5a f7 02 0e e1 91 60 32"
+ "88 32 35 2b bc 6a 68 a8"
+ "d7 1a 7c be 1b 92 99 69"
+ "a7 c6 6d 41 5a 0d 8f 65",
+ .zid =
+ "00 01 00 14 3c f4 b9 24"
+ "03 20 22 f0 dc 50 58 14"
+ "53 b8 5d 93 b0 47 b6 3d"
+ "44 6c 58 45 cb 48 44 5d"
+ "db 96 68 8f",
+ .label =
+ "74 65 73 74 64 65 6c 65"
+ "67 61 74 69 6f 6e",
+ .q =
+ "ab aa ba c0 e1 24 94 59"
+ "75 98 83 95 aa c0 24 1e"
+ "55 59 c4 1c 40 74 e2 55"
+ "7b 9f e6 d1 54 b6 14 fb"
+ "cd d4 7f c7 f5 1d 78 6d"
+ "c2 e0 b1 ec e7 60 37 c0"
+ "a1 57 8c 38 4e c6 1d 44"
+ "56 36 a9 4e 88 03 29 e9",
+ .rdata =
+ "00 1c ee 8b 3a 4e b5 80"
+ "00 20 00 01 00 01 00 00"
+ "21 e3 b3 0f f9 3b c6 d3"
+ "5a c8 c6 e0 e1 3a fd ff"
+ "79 4c b7 b4 4b bb c7 48"
+ "d2 59 d0 a0 28 4d be 84",
+ .rrblock =
+ "00 00 00 b0 00 01 00 14"
+ "9b f2 33 19 8c 6d 53 bb"
+ "db ac 49 5c ab d9 10 49"
+ "a6 84 af 3f 40 51 ba ca"
+ "b0 dc f2 1c 8c f2 7a 1a"
+ "f4 27 a9 98 be 90 91 f3"
+ "bd 44 19 c2 86 06 81 fa"
+ "0f c8 46 5c 35 e2 10 91"
+ "f0 87 fd 8d dc a8 78 51"
+ "53 d6 d9 bd 73 4f 08 9c"
+ "26 b6 52 da ea b4 73 25"
+ "71 e5 d9 2b c9 96 3d ad"
+ "d8 be 55 31 87 26 52 00"
+ "00 1c ee 8b 3a 4e b5 80"
+ "16 c7 0f d2 9a 62 38 9e"
+ "9b 04 9a 09 31 ba ba 46"
+ "a1 73 bb 56 f6 bf 56 16"
+ "18 ba a1 69 0f ae fa 1c"
+ "c4 24 75 55 4d 47 96 98"
+ "39 8d f6 f0 42 0b 9e c2"
+ "6f b0 43 cf 1e fc 34 bd"
+ "2e a0 c6 4a 7d ef d6 ac"},
+ { .d =
+ "5a f7 02 0e e1 91 60 32"
+ "88 32 35 2b bc 6a 68 a8"
+ "d7 1a 7c be 1b 92 99 69"
+ "a7 c6 6d 41 5a 0d 8f 65",
+ .zid =
+ "00 01 00 14 3c f4 b9 24"
+ "03 20 22 f0 dc 50 58 14"
+ "53 b8 5d 93 b0 47 b6 3d"
+ "44 6c 58 45 cb 48 44 5d"
+ "db 96 68 8f",
+ .label =
+ "e5 a4 a9 e4 b8 8b e7 84"
+ "a1 e6 95 b5",
+ .q =
+ "ba f8 21 77 ee c0 81 e0"
+ "74 a7 da 47 ff c6 48 77"
+ "58 fb 0d f0 1a 6c 7f bb"
+ "52 fc 8a 31 be f0 29 af"
+ "74 aa 0d c1 5a b8 e2 fa"
+ "7a 54 b4 f5 f6 37 f6 15"
+ "8f a7 f0 3c 3f ce be 78"
+ "d3 f9 d6 40 aa c0 d1 ed",
+ .rdata =
+ "00 1c ee 8b 3a 4e b5 80"
+ "00 10 00 00 00 00 00 1c"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 de ad be ef"
+ "00 3f f2 aa 54 08 db 40"
+ "00 06 00 00 00 01 00 01"
+ "e6 84 9b e7 a7 b0 00 28"
+ "bb 13 ff 37 19 40 00 0b"
+ "00 04 00 00 00 10 48 65"
+ "6c 6c 6f 20 57 6f 72 6c"
+ "64 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00"
+ "00 00 00 00 00 00 00 00",
+ .rrblock =
+ "00 00 01 00 00 01 00 14"
+ "74 f9 00 68 f1 67 69 53"
+ "52 a8 a6 c2 eb 98 48 98"
+ "c5 3a cc a0 98 04 70 c6"
+ "c8 12 64 cb dd 78 ad 11"
+ "36 47 fb d2 27 cb 62 bf"
+ "bf 28 6a cb 82 fc f3 64"
+ "67 3c dd 18 a7 a7 1e b3"
+ "44 8e 71 72 35 89 a6 4a"
+ "43 59 11 fe 14 f3 26 e9"
+ "48 48 21 16 78 74 19 dd"
+ "ce f6 1a c2 2e 66 7a 0b"
+ "99 4a c4 cb 6d a5 49 05"
+ "00 1c ee 8b 3a 4e b5 80"
+ "8e 45 6d e7 7d 37 2f 82"
+ "f4 0b a0 4c 04 ca ac 4c"
+ "04 f2 8a 2b 5f 34 1d fc"
+ "73 59 8c 18 2a 9e 06 5e"
+ "e1 02 bc 7b a5 f1 cb e2"
+ "48 a3 d4 6e 56 3c 47 1d"
+ "8d 10 0b 36 40 9e 37 31"
+ "89 94 bf fd d4 c8 d0 ff"
+ "68 00 de a3 1b 81 09 b1"
+ "eb fb 21 71 f8 77 b8 6d"
+ "c2 53 1a b2 5e bb 88 62"
+ "7f 93 74 56 d9 d7 a8 75"
+ "e5 f4 98 57 da 14 1c 61"
+ "52 ae 88 d0 6e 9a 47 fb"
+ "fd f3 b5 f7 db 99 e4 47"
+ "93 4e 31 66 d1 15 bf 16"
+ "63 4e 5f 51 b8 87 fb 70"
+ "3b d4 4a 42 9b d3 32 ab"}
};
int
parsehex (char *src, char *dst, size_t dstlen, int invert)
{
- char *line = src;
- char *data = line;
int off;
int read_byte;
int data_len = 0;
+ char data[strlen (src) + 1];
+ char *pos = data;
+ int i = 0;
+ int j = 0;
+
+ for (i = 0; i < strlen (src); i++)
+ {
+ if ((src[i] == ' ') || (src[i] == '\n'))
+ continue;
+ data[j++] = src[i];
+ }
- while (sscanf (data, " %02x%n", &read_byte, &off) == 1)
+ while (sscanf (pos, " %02x%n", &read_byte, &off) == 1)
{
if (invert)
dst[dstlen - 1 - data_len++] = read_byte;
else
dst[data_len++] = read_byte;
- data += off;
+ pos += off;
}
return data_len;
}
@@ -60,8 +303,17 @@ res_checker (void *cls,
unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd)
{
struct GnsTv *tv = cls;
- GNUNET_assert (rd_count == tv->rrcount);
+ GNUNET_assert (rd_count == tv->expected_rd_count);
printf ("RRCOUNT good: %d\n", rd_count);
+ for (int i = 0; i < rd_count; i++)
+ {
+ GNUNET_assert (rd[i].record_type == tv->expected_rd[i].record_type);
+ GNUNET_assert (rd[i].expiration_time ==
tv->expected_rd[i].expiration_time);
+ GNUNET_assert (rd[i].flags == tv->expected_rd[i].flags);
+ GNUNET_assert (rd[i].data_size == tv->expected_rd[i].data_size);
+ GNUNET_assert (0 == memcmp (rd[i].data, tv->expected_rd[i].data,
+ rd[i].data_size));
+ }
}
@@ -72,8 +324,8 @@ main ()
struct GNUNET_IDENTITY_PublicKey pub;
struct GNUNET_IDENTITY_PublicKey pub_parsed;
struct GNUNET_GNSRECORD_Block *rrblock;
- char *bdata;
char label[128];
+ char rdata[8096];
for (int i = 0; i < TVCOUNT; i++)
{
@@ -88,6 +340,17 @@ main ()
parsehex (tvs[i].rrblock, (char*) rrblock, 0, 0);
parsehex (tvs[i].label, (char*) label, 0, 0);
printf ("Got label: %s\n", label);
+ int len = parsehex (tvs[i].rdata, (char*) rdata, 0, 0);
+ tvs[i].expected_rd_count = GNUNET_GNSRECORD_records_deserialize_get_size (
+ len,
+ rdata);
+ GNUNET_assert (tvs[i].expected_rd_count < 2048);
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_GNSRECORD_records_deserialize (len,
+ rdata,
+ tvs[i].
+ expected_rd_count,
+ tvs[i].expected_rd));
GNUNET_GNSRECORD_block_decrypt (rrblock,
&pub_parsed,
label,
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnunet] branch master updated: GNS: Also consume a set of test vectors.,
gnunet <=