summaryrefslogtreecommitdiff
path: root/test/base64.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/base64.c')
-rw-r--r--test/base64.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/base64.c b/test/base64.c
new file mode 100644
index 0000000..f86e65e
--- /dev/null
+++ b/test/base64.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2014 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of libnsutils.
+ *
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+/**
+ * \file
+ *
+ * Base64 test program. Reads data from stdin and en/de codes it to/from base64
+ */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <nsutils/base64.h>
+
+int main(int argc, char**argv)
+{
+ uint8_t *buffer;
+ size_t buffer_len;
+ uint8_t *output;
+ size_t output_len;
+
+ if (scanf("%1024mc%n", &buffer, (int *)&buffer_len) < 1) {
+ return 1;
+ }
+
+ if (argc == 1) {
+ /* encode */
+ base64_encode_alloc(buffer, buffer_len, &output, &output_len);
+ } else {
+ /* decode */
+ base64_decode_alloc(buffer, buffer_len, &output, &output_len);
+ }
+
+ if (output != NULL) {
+ printf("%.*s", (int)output_len, output);
+ free(output);
+ }
+
+ free(buffer);
+
+}