base64-0.4.0: RFC 4648-compliant padded and unpadded base64 and base64url encodings

Copyright(c) 2019 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>
StabilityExperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.ByteString.Base64

Description

This module contains the combinators implementing the RFC 4648 specification for the Base64 encoding including unpadded and lenient variants

Synopsis

Documentation

encodeBase64 :: ByteString -> Text Source #

Encode a ByteString value as Base64 Text with padding.

See: RFC-4648 section 4

encodeBase64' :: ByteString -> ByteString Source #

Encode a ByteString value as a Base64 ByteString value with padding.

See: RFC-4648 section 4

decodeBase64 :: ByteString -> Either Text ByteString Source #

Decode a padded Base64-encoded ByteString value.

See: RFC-4648 section 4

Note: This function is not RFC compliant, and will add padding to an unpadded Base64-encoded value for decoding. For strictly RFC-compliant decoding, use decodeBase64Unpadded.

decodeBase64Lenient :: ByteString -> ByteString Source #

Leniently decode an unpadded Base64-encoded ByteString value. This function will not generate parse errors. If input data contains padding chars, then the input will be parsed up until the first pad character.

Note: This is not RFC 4648-compliant.

isBase64 :: ByteString -> Bool Source #

Tell whether a ByteString value is base64 encoded.

isValidBase64 :: ByteString -> Bool Source #

Tell whether a ByteString value is a valid Base64 format.

This will not tell you whether or not this is a correct Base64url representation, only that it conforms to the correct shape. To check whether it is a true Base64 encoded ByteString value, use isBase64.