diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-27 17:13:14 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-05-27 17:13:14 +0530 |
| commit | 49cc88def2f9edea59e79ca37f41400ad870579e (patch) | |
| tree | 55d84a76920dd4af7a7a2054d553ce29d11e726c /src/server/base64.c | |
| parent | 380d67bada7544f5f10cecc8c9dff7ed2f79e187 (diff) | |
went through all, but comms is working
Diffstat (limited to 'src/server/base64.c')
| -rw-r--r-- | src/server/base64.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/server/base64.c b/src/server/base64.c new file mode 100644 index 0000000..3400cfb --- /dev/null +++ b/src/server/base64.c @@ -0,0 +1,27 @@ +static const char b64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789+/"; + +void base64_encode( + const unsigned char *in, + size_t len, + char *out +) { + size_t i, j = 0; + + for (i = 0; i < len; i += 3) { + unsigned v = in[i] << 16; + + if (i + 1 < len) v |= in[i + 1] << 8; + if (i + 2 < len) v |= in[i + 2]; + + out[j++] = b64[(v >> 18) & 63]; + out[j++] = b64[(v >> 12) & 63]; + + out[j++] = (i + 1 < len) ? b64[(v >> 6) & 63] : '='; + out[j++] = (i + 2 < len) ? b64[v & 63] : '='; + } + + out[j] = 0; +} |
