Mercurial > libbase64
annotate README.md @ 38:c25a01b2229b
tests: switch to rexo
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 11 Oct 2021 17:03:45 +0200 |
parents | 7c10de272d6b |
children | 86b259a3f272 |
rev | line source |
---|---|
19 | 1 libbase64 -- Base64 encoding and decoding |
2 ========================================= | |
0 | 3 |
4 Introduction | |
5 ------------ | |
6 | |
37 | 7 Base64 encoding and decoding easily in pure C99. |
32
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
8 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
9 Features |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
10 -------- |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
11 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
12 - base64 encoding, |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
13 - base64 decoding (with base64url support), |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
14 - no dynamic allocation required, |
37 | 15 - only C99 required. |
33
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
16 - less than 200 lines of code. |
32
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
17 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
18 Quick overview |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
19 -------------- |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
20 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
21 Encode data. We use -1 to read until end of input string. |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
22 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
23 char encoded[128]; |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
24 size_t size; |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
25 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
26 size = b64_encode("Hello world!", -1, encoded, sizeof (encoded)); |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
27 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
28 Decode data. As with previous example, we use -1 to read until enf of base64 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
29 input string. |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
30 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
31 char decoded[128]; |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
32 size_t size; |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
33 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
34 size = b64_decode("ABx=", -1, decoded, sizeof (decoded)); |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
35 |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
36 Note: even with binary data the function `b64_decode` still append a NUL |
c96f2b26678a
misc: general cleanups
David Demelier <markand@malikania.fr>
parents:
19
diff
changeset
|
37 terminator. Use the return code from the function to get the size binary data. |
33
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
38 |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
39 Documentation |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
40 ------------- |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
41 |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
42 See the libbase64(3) manual page. |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
43 |
01c29bee0c54
man: add libbase64.3 manual page
David Demelier <markand@malikania.fr>
parents:
32
diff
changeset
|
44 man ./libbase64.3 |