diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2020-05-26 10:50:23 +0200 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2020-05-26 10:50:23 +0200 |
commit | 870c6d65864ff8265c5e4863529df4a44f99e1b1 (patch) | |
tree | 969a842d7ebe1369e2accbbee31fb970bb705241 | |
parent | 7b48b9e292ce90d1d663ca9ce7b2ccc95f0fd00e (diff) | |
download | gnunet-870c6d65864ff8265c5e4863529df4a44f99e1b1.tar.gz gnunet-870c6d65864ff8265c5e4863529df4a44f99e1b1.zip |
test vectors in binary
-rw-r--r-- | src/gnsrecord/gnunet-gnsrecord-tvg.c | 114 | ||||
-rw-r--r-- | src/revocation/gnunet-revocation-tvg.c | 42 |
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 | ||
39 | static void | 39 | static void |
40 | print_record(const struct GNUNET_GNSRECORD_Data *rd) | 40 | print_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 | |||
56 | static void | ||
57 | print_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 | ||
37 | static void | ||
38 | print_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 | ||