summaryrefslogtreecommitdiff
path: root/include/nsutils/base64.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/nsutils/base64.h')
-rw-r--r--include/nsutils/base64.h71
1 files changed, 69 insertions, 2 deletions
diff --git a/include/nsutils/base64.h b/include/nsutils/base64.h
index 2baeec6..fb26426 100644
--- a/include/nsutils/base64.h
+++ b/include/nsutils/base64.h
@@ -28,7 +28,7 @@
* \param input_length The length of the source data.
* \param output The buffer to recive data into, the caller must free.
* \param output_length The length of data placed in \a output
- * \return NSERROR_OK on success and \a output updated else error code.
+ * \return NSUERROR_OK on success and \a output updated else error code.
*/
nsuerror nsu_base64_encode_alloc(const uint8_t *input,
size_t input_length,
@@ -36,6 +36,56 @@ nsuerror nsu_base64_encode_alloc(const uint8_t *input,
size_t *output_length);
/**
+ * Base 64 encode data.
+ *
+ * encode source data into buffer it using the Base64 encoding.
+ *
+ * \param input The source data to encode.
+ * \param input_length The length of the source data.
+ * \param output The output buffer
+ * \param output_length The size of the \a output buffer on entry updated with length written on exit.
+ * \return NSUERROR_OK on success and \a output_length updated else error code.
+ */
+nsuerror nsu_base64_encode(const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t *output_length);
+
+/**
+ * Base 64 encode data.
+ *
+ * allocate a buffer and encode source data into it using the base64 URL safe
+ * encoding.
+ *
+ * \param input The source data to encode.
+ * \param input_length The length of the source data.
+ * \param output The buffer to recive data into, the caller must free.
+ * \param output_length The length of data placed in \a output
+ * \return NSERROR_OK on success and \a output updated else error code.
+ */
+nsuerror nsu_base64_encode_alloc_url(const uint8_t *input,
+ size_t input_length,
+ uint8_t **output,
+ size_t *output_length);
+
+
+/**
+ * Base 64 encode data.
+ *
+ * encode source data into buffer using the Base64 URL safe encoding.
+ *
+ * \param input The source data to encode.
+ * \param input_length The length of the source data.
+ * \param output The output buffer
+ * \param output_length The size of the \a output buffer on entry updated with length written on exit.
+ * \return NSUERROR_OK on success and \a output_length updated else error code.
+ */
+nsuerror nsu_base64_encode_url(const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t *output_length);
+
+/**
* Base 64 decode data.
*
* allocate a buffer and decode source data into it using the Base64 encoding.
@@ -50,5 +100,22 @@ nsuerror nsu_base64_decode_alloc(const uint8_t *input,
size_t input_length,
uint8_t **output,
size_t *output_length);
-
+
+/**
+ * Base 64 decode data.
+ *
+ * Allocate a buffer and decode source data into it using the Base64 URL safe
+ * encoding.
+ *
+ * \param input The source data to decode.
+ * \param input_length The length of the source data.
+ * \param output The buffer to recive data into, the caller must free.
+ * \param output_length The length of data placed in \a output
+ * \return NSERROR_OK on success and \a output updated else error code.
+ */
+nsuerror nsu_base64_decode_alloc_url(const uint8_t *input,
+ size_t input_length,
+ uint8_t **output,
+ size_t *output_length);
+
#endif