diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-03-22 17:33:59 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-03-22 17:33:59 +0000 |
commit | 728a3f8c8a1098dea35732c3ad59fb8d60ee8e0f (patch) | |
tree | 40c5157956a84df91ed09c8d620cf2d83626941e /src/util/test_strings_to_data.c | |
parent | 8bcc7b48e6e2e07ee5ba4da0e0c93714c6698c4d (diff) | |
download | gnunet-728a3f8c8a1098dea35732c3ad59fb8d60ee8e0f.tar.gz gnunet-728a3f8c8a1098dea35732c3ad59fb8d60ee8e0f.zip |
-fixing string decoder issue for input sizes of a multiple of 5
Diffstat (limited to 'src/util/test_strings_to_data.c')
-rw-r--r-- | src/util/test_strings_to_data.c | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/src/util/test_strings_to_data.c b/src/util/test_strings_to_data.c index d98cd8578..739773558 100644 --- a/src/util/test_strings_to_data.c +++ b/src/util/test_strings_to_data.c | |||
@@ -30,30 +30,33 @@ | |||
30 | int | 30 | int |
31 | main (int argc, char *argv[]) | 31 | main (int argc, char *argv[]) |
32 | { | 32 | { |
33 | GNUNET_log_setup ("util", "DEBUG", NULL); | 33 | char buf[1024]; |
34 | char *conv; | 34 | char *end; |
35 | char buf[255]; | 35 | char src[128]; |
36 | char *end; | 36 | char dst[128]; |
37 | struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded src; | 37 | unsigned int i; |
38 | struct GNUNET_CRYPTO_EccPublicKeyBinaryEncoded dest; | 38 | int ret = 0; |
39 | 39 | ||
40 | memset (&src, '\1', sizeof (src)); | 40 | GNUNET_log_setup ("util", "DEBUG", NULL); |
41 | memset (&dest, '\2', sizeof (dest)); | 41 | for (i=0;i<sizeof(src);i++) |
42 | 42 | { | |
43 | end = GNUNET_STRINGS_data_to_string (&src, sizeof (src), buf, sizeof (buf)); | 43 | memset (src, i, sizeof (src)); |
44 | end[0] = '\0'; | 44 | memset (dst, i+1, sizeof (dst)); |
45 | fprintf (stderr, "Key `%s'\n",buf); | 45 | |
46 | GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecc_public_key_from_string (buf, strlen (buf), &dest)); | 46 | end = GNUNET_STRINGS_data_to_string (&src, i, buf, sizeof (buf)); |
47 | 47 | end[0] = '\0'; | |
48 | conv = GNUNET_CRYPTO_ecc_public_key_to_string (&src); | 48 | if (GNUNET_OK != |
49 | GNUNET_assert (NULL != conv); | 49 | GNUNET_STRINGS_string_to_data (buf, strlen (buf), dst, i)) |
50 | fprintf (stderr, "Key `%s'\n",conv); | 50 | { |
51 | 51 | fprintf (stderr, "%u failed decode (%u bytes)\n", i, (unsigned int) strlen (buf)); | |
52 | 52 | ret = 1; | |
53 | GNUNET_assert (GNUNET_OK == GNUNET_STRINGS_string_to_data (conv, strlen (conv), (unsigned char *) &dest, sizeof (dest))); | 53 | } else if (0 != memcmp (src, dst, i)) |
54 | GNUNET_assert (0 == memcmp (&src, &dest, sizeof (dest))); | 54 | { |
55 | 55 | fprintf (stderr, "%u wrong decode (%u bytes)\n", i, (unsigned int) strlen (buf)); | |
56 | return 0; | 56 | ret = 1; |
57 | } | ||
58 | } | ||
59 | return ret; | ||
57 | } | 60 | } |
58 | 61 | ||
59 | 62 | ||