base64(3)

NAME
base64 - Provides base64 encode and decode, see
    RFC 2045.

DESCRIPTION

Provides base64 encode and decode, see RFC 2045.

DATA TYPES
base64_alphabet() =
    65..90 | 97..122 | 48..57 | 43 | 47 | 45 | 95 | 61

    Base 64 Encoding alphabet, see RFC 4648.
base64_mode() = standard | urlsafe

    Selector for the Base 64 Encoding alphabet used for encoding and decoding. See RFC 4648 Sections 4 and 5.
options() = #{padding => boolean(), mode => base64_mode()}

    Customises the behaviour of the encode and decode functions. Default value if omitted entirely or partially is #{mode => standard, padding => true}.
base64_string() = [base64_alphabet()]

    Base 64 encoded string.
base64_binary() = binary()

    Base 64 encoded binary.
byte_string() = [byte()]

    Arbitrary sequences of octets.

EXPORTS

decode(Base64) -> Data
decode_to_string(Base64) -> DataString
mime_decode(Base64) -> Data
mime_decode_to_string(Base64) -> DataString

    Types:
        Base64 = base64_string() | base64_binary()
        Data = binary()
        DataString = byte_string()

    Decodes a base64 string encoded using the standard alphabet according to RFC 4648 Section 4 to plain ASCII.

    mime_decode/1 and mime_decode_to_string/1 strip away illegal characters, while decode/1 and decode_to_string/1 only strip away whitespace characters.

    Checks the correct number of = padding characters at the end of the encoded string.

decode(Base64, Options) -> Data
decode_to_string(Base64, Options) -> DataString
mime_decode(Base64, Options) -> Data
mime_decode_to_string(Base64, Options) -> DataString

    Types:
        Base64 = base64_string() | base64_binary()
        Options = options()
        Data = binary()
        DataString = byte_string()

    Decodes a base64 string encoded using the alphabet indicated by the mode option to plain ASCII.

    mime_decode/2 and mime_decode_to_string/2 strip away illegal characters, while decode/2 and decode_to_string/2 only strip away whitespace characters.

    The mode option can be one of the following:

        standard:
            Default. Decode the given string using the standard base64 alphabet according to RFC 4648 Section 4, that is "+" and "/" are representing bytes 62 and 63 respectively, while "-" and "_" are illegal characters.

        urlsafe:
            Decode the given string using the alternative "URL and Filename safe" base64 alphabet according to RFC 4648 Section 5, that is "-" and "_" are representing bytes 62 and 63 respectively, while "+" and "/" are illegal characters.

    The padding option can be one of the following:

        true:
            Default. Checks the correct number of = padding characters at the end of the encoded string.

        false:
            Accepts an encoded string with missing = padding characters at the end.

encode(Data) -> Base64
encode_to_string(Data) -> Base64String

    Types:
        Data = byte_string() | binary()
        Base64 = base64_binary()
        Base64String = base64_string()

    Encodes a plain ASCII string into base64 using the standard alphabet according to RFC 4648 Section 4. The result is 33% larger than the data.

    Always appends correct number of = padding characters to the encoded string.

encode(Data, Options) -> Base64
encode_to_string(Data, Options) -> Base64String

    Types:
        Data = byte_string() | binary()
        Options = options()
        Base64 = base64_binary()
        Base64String = base64_string()

    Encodes a plain ASCII string into base64 using the alphabet indicated by the mode option. The result is 33% larger than the data.

    The mode option can be one of the following:

        standard:
            Default. Encode the given string using the standard base64 alphabet according to RFC 4648 Section 4.

        urlsafe:
            Encode the given string using the alternative "URL and Filename safe" base64 alphabet according to RFC 4648 Section 5.

    The padding option can be one of the following:

        true:
            Default. Appends correct number of = padding characters to the encoded string.

        false:
            Skips appending = padding characters to the encoded string.