MySQL 8.4.0
Source Code Documentation
base64.h File Reference
#include "mysqlrouter/http_common_export.h"
#include <algorithm>
#include <array>
#include <cstdint>
#include <cstring>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  Base64Impl
 Generic Base64 codec. More...
 
class  Base64Alphabet::Base64
 
class  Base64Alphabet::Base64Url
 
class  Base64Alphabet::Mcf
 Base64 alphabet for MCF. More...
 
class  Base64Alphabet::Crypt
 
class  Base64Alphabet::Bcrypt
 
class  Base64Alphabet::Uuencode
 
class  Base64Base< Alphabet, E, PaddingMandatory, PaddingChar >
 Base64 codec base class. More...
 

Namespaces

namespace  mysqlrouter
 
namespace  Base64Alphabet
 
namespace  Base64Alphabet::detail
 

Typedefs

using Base64Alphabet::alphabet_type = Base64Impl::alphabet_type
 type of all alphabet. More...
 
using Base64Alphabet::inverse_alphabet_type = Base64Impl::inverse_alphabet_type
 type of all inverse mappings of alphabets. More...
 
using Base64Alphabet::detail::ndx_256 = std::index_sequence< 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 >
 
using Base64 = Base64Base< Base64Alphabet::Base64, Base64Endianess::BIG, true, '='>
 'base64' alphabet from RFC4648. More...
 
using Base64Url = Base64Base< Base64Alphabet::Base64Url, Base64Endianess::BIG, true, '='>
 'base64url' URL and Filename-safe Base64 alphabet from RFC4648. More...
 
using Radix64Mcf = Base64Base< Base64Alphabet::Mcf, Base64Endianess::BIG, false, ' '>
 Base64 alphabet for MCF's pbkdf2 methods. More...
 
using Radix64Crypt = Base64Base< Base64Alphabet::Crypt, Base64Endianess::LITTLE, false, ' '>
 Radix64 for crypt (little-endian). More...
 
using Radix64CryptBE = Base64Base< Base64Alphabet::Crypt, Base64Endianess::BIG, false, ' '>
 Radix64 for crypt (big-endian). More...
 
using Radix64Bcrypt = Base64Base< Base64Alphabet::Bcrypt, Base64Endianess::LITTLE, false, ' '>
 Radix64 for bcrypt. More...
 
using Radix64Uuencode = Base64Base< Base64Alphabet::Uuencode, Base64Endianess::BIG, true, '`'>
 Radix64 for traditional Uuencode. More...
 

Enumerations

enum class  Base64Endianess { LITTLE , BIG }
 

Functions

const char * mysqlrouter::begin (const char *const c)
 
const char * mysqlrouter::end (const char *const c)
 
size_t mysqlrouter::size (const char *const c)
 
constexpr int8_t Base64Alphabet::detail::find_pos_of_char (const alphabet_type &v, uint8_t character, size_t v_ndx=0)
 find position of char in alphabet. More...
 
template<std::size_t... I>
constexpr inverse_alphabet_type Base64Alphabet::detail::make_inverse_array (const alphabet_type &v, std::index_sequence< I... >)
 build inverse-alphabet. More...
 
constexpr inverse_alphabet_type Base64Alphabet::detail::inverse (const alphabet_type &v)
 inverse More...
 

Typedef Documentation

◆ Base64

'base64' alphabet from RFC4648.

also used by:

  • uuencode-base64
  • data URI scheme (RFC2397)

alphabet : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

padding mandatory : yes, with =

◆ Base64Url

'base64url' URL and Filename-safe Base64 alphabet from RFC4648.

'+' and '/' in 'base64' have special meaning in URLs and would need to be URL-encoded.

alphabet : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_

padding mandatory : yes, with =

◆ Radix64Bcrypt

Radix64 for bcrypt.

alphabet : ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

padding mandatory : no

◆ Radix64Crypt

Radix64 for crypt (little-endian).

alphabet : ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

padding mandatory : no

◆ Radix64CryptBE

Radix64 for crypt (big-endian).

See also
Radix64Crypt

◆ Radix64Mcf

Base64 alphabet for MCF's pbkdf2 methods.

alphabet : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./

padding mandatory : no

◆ Radix64Uuencode

Radix64 for traditional Uuencode.

alphabet : 0x32...0x95

padding mandatory : yes, with accent

Enumeration Type Documentation

◆ Base64Endianess

enum class Base64Endianess
strong
Enumerator
LITTLE 
BIG