/*
This file is part of GNUnet.
- (C) 2001-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2001-2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
/**
- * Convert binary data to ASCII encoding. The ASCII encoding is rather
- * GNUnet specific. It was chosen such that it only uses characters
- * in [0-9A-V], can be produced without complex arithmetics and uses a
- * small number of characters. The GNUnet encoding uses 103 characters.
+ * Convert binary data to ASCII encoding using Base32Hex (RFC 4648).
* Does not append 0-terminator, but returns a pointer to the place where
* it should be placed, if needed.
*
/**
- * Convert ASCII encoding back to data
- * out_size must match exactly the size of the data before it was encoded.
+ * Return the base32crockford encoding of the given buffer.
+ *
+ * The returned string will be freshly allocated, and must be free'd
+ * with #GNUNET_free().
+ *
+ * @param buf buffer with data
+ * @param size size of the buffer @a buf
+ * @return freshly allocated, null-terminated string
+ */
+char *
+GNUNET_STRINGS_data_to_string_alloc (const void *buf,
+ size_t size);
+
+
+/**
+ * Convert Base32hex encoding back to data.
+ * @a out_size must match exactly the size of the data before it was encoded.
*
* @param enc the encoding
- * @param enclen number of characters in 'enc' (without 0-terminator, which can be missing)
+ * @param enclen number of characters in @a enc (without 0-terminator, which can be missing)
* @param out location where to store the decoded data
* @param out_size size of the output buffer @a out
* @return #GNUNET_OK on success, #GNUNET_SYSERR if result has the wrong encoding
size_t
GNUNET_STRINGS_base64_encode (const char *data, size_t len, char **output);
+
/**
* Decode from Base64.
*