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