about summary refs log tree commit diff stats
path: root/base64.h
diff options
context:
space:
mode:
Diffstat (limited to 'base64.h')
-rw-r--r--base64.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/base64.h b/base64.h
new file mode 100644
index 0000000..7cec63d
--- /dev/null
+++ b/base64.h
@@ -0,0 +1,39 @@
+/*
+	base64.c - by Joe DF (joedf@ahkscript.org)
+	Released under the MIT License
+	
+	Revision: 18:30 2014-09-22
+	
+	Thank you for inspiration:
+	http://www.codeproject.com/Tips/813146/Fast-base-functions-for-encode-decode
+*/
+
+#include <stdio.h>
+
+//Base64 char table function - used internally for decoding
+unsigned int b64_int(unsigned int ch);
+
+// in_size : the number bytes to be encoded.
+// Returns the recommended memory size to be allocated for the output buffer excluding the null byte
+unsigned int b64e_size(unsigned int in_size);
+
+// in_size : the number bytes to be decoded.
+// Returns the recommended memory size to be allocated for the output buffer
+unsigned int b64d_size(unsigned int in_size);
+
+// in : buffer of "raw" binary to be encoded.
+// in_len : number of bytes to be encoded.
+// out : pointer to buffer with enough memory, user is responsible for memory allocation, receives null-terminated string
+// returns size of output including null byte
+unsigned int b64_encode(const unsigned int* in, unsigned int in_len, unsigned char* out);
+
+// in : buffer of base64 string to be decoded.
+// in_len : number of bytes to be decoded.
+// out : pointer to buffer with enough memory, user is responsible for memory allocation, receives "raw" binary
+// returns size of output excluding null byte
+unsigned int b64_decode(const unsigned char* in, unsigned int in_len, unsigned int* out);
+
+// file-version b64_encode
+// Input : filenames
+// returns size of output
+unsigned int b64_encodef(char *InFile, char *OutFile);
\ No newline at end of file