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 
10 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 FILE_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  */
22 static 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  */
35 static inline size_t base64_decoded_max_len ( const char *encoded ) {
36  return ( ( ( strlen ( encoded ) + 4 - 1 ) / 4 ) * 3 );
37 }
38 
39 extern size_t base64_encode ( const void *raw, size_t raw_len, char *data,
40  size_t len );
41 extern int base64_decode ( const char *encoded, void *data, size_t len );
42 
43 #endif /* _IPXE_BASE64_H */
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
static size_t base64_decoded_max_len(const char *encoded)
Calculate maximum length of base64-decoded string.
Definition: base64.h:35
ring len
Length.
Definition: dwmac.h:231
static size_t raw_len
Definition: base16.h:54
size_t strlen(const char *src)
Get length of string.
Definition: string.c:244
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
FILE_SECBOOT(PERMITTED)
uint8_t data[48]
Additional event data.
Definition: ena.h:22
__be32 raw[7]
Definition: CIB_PRM.h:28
size_t base64_encode(const void *raw, size_t raw_len, char *data, size_t len)
Base64-encode data.
Definition: base64.c:52
String functions.