xref: /linux/include/linux/base64.h (revision 509d3f45847627f4c5cdce004c3ec79262b5239c)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * base64 encoding, lifted from fs/crypto/fname.c.
4  */
5 
6 #ifndef _LINUX_BASE64_H
7 #define _LINUX_BASE64_H
8 
9 #include <linux/types.h>
10 
11 enum base64_variant {
12 	BASE64_STD,       /* RFC 4648 (standard) */
13 	BASE64_URLSAFE,   /* RFC 4648 (base64url) */
14 	BASE64_IMAP,      /* RFC 3501 */
15 };
16 
17 #define BASE64_CHARS(nbytes)   DIV_ROUND_UP((nbytes) * 4, 3)
18 
19 int base64_encode(const u8 *src, int len, char *dst, bool padding, enum base64_variant variant);
20 int base64_decode(const char *src, int len, u8 *dst, bool padding, enum base64_variant variant);
21 
22 #endif /* _LINUX_BASE64_H */
23