aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2020-05-26 10:50:23 +0200
committerMartin Schanzenbach <mschanzenbach@posteo.de>2020-05-26 10:50:23 +0200
commit870c6d65864ff8265c5e4863529df4a44f99e1b1 (patch)
tree969a842d7ebe1369e2accbbee31fb970bb705241 /src
parent7b48b9e292ce90d1d663ca9ce7b2ccc95f0fd00e (diff)
downloadgnunet-870c6d65864ff8265c5e4863529df4a44f99e1b1.tar.gz
gnunet-870c6d65864ff8265c5e4863529df4a44f99e1b1.zip
test vectors in binary
Diffstat (limited to 'src')
-rw-r--r--src/gnsrecord/gnunet-gnsrecord-tvg.c114
-rw-r--r--src/revocation/gnunet-revocation-tvg.c42
2 files changed, 81 insertions, 75 deletions
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index 862bd6f86..789ff8aa3 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -37,34 +37,41 @@
37#define TEST_RRCOUNT 2 37#define TEST_RRCOUNT 2
38 38
39static void 39static void
40print_record(const struct GNUNET_GNSRECORD_Data *rd) 40print_bytes (void *buf,
41 size_t buf_len,
42 int fold)
41{ 43{
42 char *data_enc; 44 int i;
43 char *string_v; 45
44 string_v = GNUNET_GNSRECORD_value_to_string (rd->record_type, 46 for (i = 0; i < buf_len; i++)
45 rd->data, 47 {
46 rd->data_size); 48 if ((0 != i) && (0 != fold) && (i % fold == 0))
47 fprintf (stdout, 49 printf ("\n");
48 "EXPIRATION: %"PRIu64"\n", rd->expiration_time); 50 printf ("%02x", ((unsigned char*) buf)[i]);
51 }
52 printf ("\n");
53}
54
55
56static void
57print_record (const struct GNUNET_GNSRECORD_Data *rd)
58{
59
60 fprintf (stdout,
61 "EXPIRATION: %" PRIu64 "\n", rd->expiration_time);
49 fprintf (stdout, 62 fprintf (stdout,
50 "DATA_SIZE: %zu\n", rd->data_size); 63 "DATA_SIZE: %zu\n", rd->data_size);
51 fprintf (stdout, 64 fprintf (stdout,
52 "TYPE: %d\n", rd->record_type); 65 "TYPE: %d\n", rd->record_type);
53 fprintf (stdout, 66 fprintf (stdout,
54 "FLAGS: %d\n", rd->flags); 67 "FLAGS: %d\n", rd->flags);
55 GNUNET_STRINGS_base64_encode (rd->data,
56 rd->data_size,
57 &data_enc);
58 fprintf (stdout,
59 "DATA (base64):\n%s\n",
60 data_enc);
61 fprintf (stdout, 68 fprintf (stdout,
62 "DATA (Human readable):\n%s\n\n", string_v); 69 "DATA:\n");
63 GNUNET_free (string_v); 70 print_bytes ((char*) rd->data, rd->data_size, 8);
64 71 fprintf (stdout, "\n");
65 GNUNET_free (data_enc);
66} 72}
67 73
74
68/** 75/**
69 * Main function that will be run. 76 * Main function that will be run.
70 * 77 *
@@ -80,7 +87,7 @@ run (void *cls,
80 const struct GNUNET_CONFIGURATION_Handle *cfg) 87 const struct GNUNET_CONFIGURATION_Handle *cfg)
81{ 88{
82 struct GNUNET_GNSRECORD_Data rd[2]; 89 struct GNUNET_GNSRECORD_Data rd[2];
83 struct GNUNET_TIME_Absolute exp_abs = GNUNET_TIME_absolute_get(); 90 struct GNUNET_TIME_Absolute exp_abs = GNUNET_TIME_absolute_get ();
84 struct GNUNET_GNSRECORD_Block *rrblock; 91 struct GNUNET_GNSRECORD_Block *rrblock;
85 char *bdata; 92 char *bdata;
86 struct GNUNET_CRYPTO_EcdsaPrivateKey id_priv; 93 struct GNUNET_CRYPTO_EcdsaPrivateKey id_priv;
@@ -91,22 +98,16 @@ run (void *cls,
91 size_t data_size; 98 size_t data_size;
92 char *rdata; 99 char *rdata;
93 size_t rdata_size; 100 size_t rdata_size;
94 char* data_enc;
95 101
96 GNUNET_CRYPTO_ecdsa_key_create (&id_priv); 102 GNUNET_CRYPTO_ecdsa_key_create (&id_priv);
97 GNUNET_CRYPTO_ecdsa_key_get_public (&id_priv, 103 GNUNET_CRYPTO_ecdsa_key_get_public (&id_priv,
98 &id_pub); 104 &id_pub);
99 GNUNET_STRINGS_base64_encode (&id_priv, 105 fprintf (stdout, "Zone private key (d, little-endian scalar):\n");
100 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), 106 print_bytes (&id_priv, sizeof(id_priv), 0);
101 &data_enc); 107 fprintf (stdout, "\n");
102 fprintf(stdout, "Zone private key (d):\n%s\n", data_enc); 108 fprintf (stdout, "Zone public key (zk):\n");
103 GNUNET_free (data_enc); 109 print_bytes (&id_pub, sizeof(id_pub), 0);
104 GNUNET_STRINGS_base64_encode (&id_pub, 110 fprintf (stdout, "\n");
105 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey),
106 &data_enc);
107 fprintf(stdout, "Zone public key (zk):\n%s\n", data_enc);
108 GNUNET_free (data_enc);
109
110 111
111 GNUNET_CRYPTO_ecdsa_key_create (&pkey_data_p); 112 GNUNET_CRYPTO_ecdsa_key_create (&pkey_data_p);
112 GNUNET_CRYPTO_ecdsa_key_get_public (&pkey_data_p, 113 GNUNET_CRYPTO_ecdsa_key_get_public (&pkey_data_p,
@@ -114,7 +115,8 @@ run (void *cls,
114 fprintf (stdout, 115 fprintf (stdout,
115 "Label: %s\nRRCOUNT: %d\n\n", TEST_RECORD_LABEL, TEST_RRCOUNT); 116 "Label: %s\nRRCOUNT: %d\n\n", TEST_RECORD_LABEL, TEST_RRCOUNT);
116 memset (rd, 0, sizeof (struct GNUNET_GNSRECORD_Data) * 2); 117 memset (rd, 0, sizeof (struct GNUNET_GNSRECORD_Data) * 2);
117 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value (GNUNET_DNSPARSER_TYPE_A, TEST_RECORD_A, &data, &data_size)); 118 GNUNET_assert (GNUNET_OK == GNUNET_GNSRECORD_string_to_value (
119 GNUNET_DNSPARSER_TYPE_A, TEST_RECORD_A, &data, &data_size));
118 rd[0].data = data; 120 rd[0].data = data;
119 rd[0].data_size = data_size; 121 rd[0].data_size = data_size;
120 rd[0].expiration_time = exp_abs.abs_value_us; 122 rd[0].expiration_time = exp_abs.abs_value_us;
@@ -137,34 +139,28 @@ run (void *cls,
137 rd, 139 rd,
138 rdata_size, 140 rdata_size,
139 rdata); 141 rdata);
140 GNUNET_STRINGS_base64_encode (rdata, 142 fprintf (stdout, "RDATA:\n");
141 rdata_size, 143 print_bytes (rdata, rdata_size, 8);
142 &data_enc); 144 fprintf (stdout, "\n");
143 fprintf(stdout, "RDATA:\n%s\n\n", data_enc);
144 GNUNET_free (data_enc);
145 rrblock = GNUNET_GNSRECORD_block_create (&id_priv, 145 rrblock = GNUNET_GNSRECORD_block_create (&id_priv,
146 exp_abs, 146 exp_abs,
147 TEST_RECORD_LABEL, 147 TEST_RECORD_LABEL,
148 rd, 148 rd,
149 TEST_RRCOUNT); 149 TEST_RRCOUNT);
150 size_t bdata_size = ntohl (rrblock->purpose.size) - 150 size_t bdata_size = ntohl (rrblock->purpose.size)
151 sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - 151 - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
152 sizeof(struct GNUNET_TIME_AbsoluteNBO); 152 - sizeof(struct GNUNET_TIME_AbsoluteNBO);
153 size_t rrblock_size = ntohl (rrblock->purpose.size) + 153 size_t rrblock_size = ntohl (rrblock->purpose.size)
154 sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + 154 + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)
155 sizeof(struct GNUNET_CRYPTO_EcdsaSignature); 155 + sizeof(struct GNUNET_CRYPTO_EcdsaSignature);
156 156
157 bdata = (char*)&rrblock[1]; 157 bdata = (char*) &rrblock[1];
158 GNUNET_STRINGS_base64_encode (bdata, 158 fprintf (stdout, "BDATA:\n");
159 bdata_size, 159 print_bytes (bdata, bdata_size, 8);
160 &data_enc); 160 fprintf (stdout, "\n");
161 fprintf(stdout, "BDATA:\n%s\n\n", data_enc); 161 fprintf (stdout, "RRBLOCK:\n");
162 GNUNET_free (data_enc); 162 print_bytes (rrblock, rrblock_size, 8);
163 GNUNET_STRINGS_base64_encode (rrblock, 163 fprintf (stdout, "\n");
164 rrblock_size,
165 &data_enc);
166 fprintf(stdout, "RRBLOCK:\n%s\n", data_enc);
167 GNUNET_free (data_enc);
168 164
169} 165}
170 166
diff --git a/src/revocation/gnunet-revocation-tvg.c b/src/revocation/gnunet-revocation-tvg.c
index 2b850e436..b8f462b28 100644
--- a/src/revocation/gnunet-revocation-tvg.c
+++ b/src/revocation/gnunet-revocation-tvg.c
@@ -34,6 +34,22 @@
34#define TEST_EPOCHS 2 34#define TEST_EPOCHS 2
35#define TEST_DIFFICULTY 5 35#define TEST_DIFFICULTY 5
36 36
37static void
38print_bytes (void *buf,
39 size_t buf_len,
40 int fold)
41{
42 int i;
43
44 for (i = 0; i < buf_len; i++)
45 {
46 if ((0 != i) && (0 != fold) && (i%fold == 0))
47 printf("\n");
48 printf("%02x", ((unsigned char*)buf)[i]);
49 }
50 printf("\n");
51}
52
37/** 53/**
38 * Main function that will be run. 54 * Main function that will be run.
39 * 55 *
@@ -53,21 +69,16 @@ run (void *cls,
53 struct GNUNET_REVOCATION_PowP pow; 69 struct GNUNET_REVOCATION_PowP pow;
54 struct GNUNET_REVOCATION_PowCalculationHandle *ph; 70 struct GNUNET_REVOCATION_PowCalculationHandle *ph;
55 struct GNUNET_TIME_Relative exp; 71 struct GNUNET_TIME_Relative exp;
56 char* data_enc;
57 72
58 GNUNET_CRYPTO_ecdsa_key_create (&id_priv); 73 GNUNET_CRYPTO_ecdsa_key_create (&id_priv);
59 GNUNET_CRYPTO_ecdsa_key_get_public (&id_priv, 74 GNUNET_CRYPTO_ecdsa_key_get_public (&id_priv,
60 &id_pub); 75 &id_pub);
61 GNUNET_STRINGS_base64_encode (&id_priv, 76 fprintf(stdout, "Zone private key (d, little-endian scalar):\n");
62 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey), 77 print_bytes (&id_priv, sizeof(id_priv), 0);
63 &data_enc); 78 fprintf(stdout, "\n");
64 fprintf(stdout, "Zone private key (d):\n%s\n\n", data_enc); 79 fprintf(stdout, "Zone public key (zk):\n");
65 GNUNET_free (data_enc); 80 print_bytes (&id_pub, sizeof(id_pub), 0);
66 GNUNET_STRINGS_base64_encode (&id_pub, 81 fprintf(stdout, "\n");
67 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey),
68 &data_enc);
69 fprintf(stdout, "Zone public key (zk):\n%s\n\n", data_enc);
70 GNUNET_free (data_enc);
71 memset (&pow, 0, sizeof (pow)); 82 memset (&pow, 0, sizeof (pow));
72 GNUNET_REVOCATION_pow_init (&id_priv, 83 GNUNET_REVOCATION_pow_init (&id_priv,
73 &pow); 84 &pow);
@@ -88,11 +99,10 @@ run (void *cls,
88 GNUNET_assert (GNUNET_OK == GNUNET_REVOCATION_check_pow (&pow, 99 GNUNET_assert (GNUNET_OK == GNUNET_REVOCATION_check_pow (&pow,
89 TEST_DIFFICULTY, 100 TEST_DIFFICULTY,
90 exp)); 101 exp));
91 GNUNET_STRINGS_base64_encode (&pow, 102 fprintf(stdout, "Proof:\n");
92 sizeof (struct GNUNET_REVOCATION_PowP), 103 print_bytes (&pow,
93 &data_enc); 104 sizeof (pow),
94 fprintf(stdout, "Proof:\n%s\n", data_enc); 105 8);
95 GNUNET_free (data_enc);
96} 106}
97 107
98 108