summaryrefslogtreecommitdiff
path: root/spectro/base64.h
diff options
context:
space:
mode:
Diffstat (limited to 'spectro/base64.h')
-rw-r--r--spectro/base64.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/spectro/base64.h b/spectro/base64.h
new file mode 100644
index 0000000..726f20a
--- /dev/null
+++ b/spectro/base64.h
@@ -0,0 +1,33 @@
+
+/*
+ * Argyll Color Correction System
+ *
+ * Very simple & concise base64 encoder/decoder
+ *
+ * Author: Graeme W. Gill
+ *
+ * Copyright 2014, Graeme W. Gill
+ * All rights reserved.
+ *
+ * This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
+ * see the License2.txt file for licencing details.
+ */
+
+
+/* The maximum encoded length given decoded length */
+#define EBASE64LEN(len) (((len) * 4 + 2)/3)
+
+/* Encode slen bytes into nul terminated string. */
+/* if dlen is !NULL, then set it to resulting string length excluding nul */
+/* We assume that the destination buffer is long enough at EBASE64LEN */
+void ebase64(int *dlen, char *dst, unsigned char *src, int slen);
+
+/* The maximum decoded length given encoded length */
+#define DBASE64LEN(len) (((len) * 3)/4)
+
+/* Decode nul terminated string into bytes, ignoring illegal characters. */
+/* if dlen is !NULL, then set it to resulting byte length */
+/* We assume that the destination buffer is long enough at DBASE64LEN */
+void dbase64(int *dlen, unsigned char *dst, char *src);
+
+