diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/taler_util.h | 24 | ||||
-rw-r--r-- | src/util/util.c | 32 |
2 files changed, 56 insertions, 0 deletions
diff --git a/src/include/taler_util.h b/src/include/taler_util.h index 00397cc88..b6dd9596a 100644 --- a/src/include/taler_util.h +++ b/src/include/taler_util.h @@ -74,6 +74,30 @@ TALER_gcrypt_init (void); /** + * Convert a buffer to an 8-character string + * representative of the contents. This is used + * for logging binary data when debugging. + * + * @param buf buffer to log + * @param buf_size number of bytes in @a buf + * @return text representation of buf, valid until next + * call to this function + */ +const char * +TALER_b2s (const void *buf, + size_t buf_size); + +/** + * Convert a fixed-sized object to a string using + * #TALER_b2s(). + * + * @param obj address of object to convert + * @return string representing the binary obj buffer + */ +#define TALER_B2S(obj) TALER_b2s (obj, sizeof (*obj)) + + +/** * Round a time value so that it is suitable for transmission * via JSON encodings. * diff --git a/src/util/util.c b/src/util/util.c index f45598b0c..08438cfab 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -28,6 +28,38 @@ /** + * Convert a buffer to an 8-character string + * representative of the contents. This is used + * for logging binary data when debugging. + * + * @param buf buffer to log + * @param buf_size number of bytes in @a buf + * @return text representation of buf, valid until next + * call to this function + */ +const char * +TALER_b2s (const void *buf, + size_t buf_size) +{ + static char ret[9]; + struct GNUNET_HashCode hc; + char *tmp; + + GNUNET_CRYPTO_hash (buf, + buf_size, + &hc); + tmp = GNUNET_STRINGS_data_to_string_alloc (&hc, + sizeof (hc)); + memcpy (ret, + tmp, + 8); + GNUNET_free (tmp); + ret[8] = '\0'; + return ret; +} + + +/** * Obtain denomination amount from configuration file. * * @param cfg configuration to use |