iPXE
base64.h
Go to the documentation of this file.
1#ifndef _IPXE_BASE64_H
2#define _IPXE_BASE64_H
3
4/** @file
5 *
6 * Base64 encoding
7 *
8 */
9
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <stdint.h>
14#include <string.h>
15
16/**
17 * Calculate length of base64-encoded data
18 *
19 * @v raw_len Raw data length
20 * @ret encoded_len Encoded string length (excluding NUL)
21 */
22static inline size_t base64_encoded_len ( size_t raw_len ) {
23 return ( ( ( raw_len + 3 - 1 ) / 3 ) * 4 );
24}
25
26/**
27 * Calculate maximum length of base64-decoded string
28 *
29 * @v encoded Encoded string
30 * @v max_raw_len Maximum length of raw data
31 *
32 * Note that the exact length of the raw data cannot be known until
33 * the string is decoded.
34 */
35static inline size_t base64_decoded_max_len ( const char *encoded ) {
36 return ( ( ( strlen ( encoded ) + 4 - 1 ) / 4 ) * 3 );
37}
38
39extern size_t base64_encode ( const void *raw, size_t raw_len, char *data,
40 size_t len );
41extern int base64_decode ( const char *encoded, void *data, size_t len );
42
43#endif /* _IPXE_BASE64_H */
__be32 raw[7]
Definition CIB_PRM.h:0
static size_t raw_len
Definition base16.h:54
static size_t base64_decoded_max_len(const char *encoded)
Calculate maximum length of base64-decoded string.
Definition base64.h:35
size_t base64_encode(const void *raw, size_t raw_len, char *data, size_t len)
Base64-encode data.
Definition base64.c:52
int base64_decode(const char *encoded, void *data, size_t len)
Base64-decode string.
Definition base64.c:92
static size_t base64_encoded_len(size_t raw_len)
Calculate length of base64-encoded data.
Definition base64.h:22
ring len
Length.
Definition dwmac.h:226
uint8_t data[48]
Additional event data.
Definition ena.h:11
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
String functions.
size_t strlen(const char *src)
Get length of string.
Definition string.c:244