Mercurial > libbase64
annotate README.md @ 58:7e79e9126366 default tip @
misc: update copyright years
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 04 Jan 2024 10:41:43 +0100 |
parents | 86b259a3f272 |
children |
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 |
41
86b259a3f272
misc: update documentation
David Demelier <markand@malikania.fr>
parents:
37
diff
changeset
|
36 Note: don't discard return value, in contrast to `b64_encode` the output buffer |
86b259a3f272
misc: update documentation
David Demelier <markand@malikania.fr>
parents:
37
diff
changeset
|
37 isn't NUL terminated as it may contain 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 |
41
86b259a3f272
misc: update documentation
David Demelier <markand@malikania.fr>
parents:
37
diff
changeset
|
42 See the `libbase64(3)` manual page. |