Encode a ByteString value as a Base32hex Text value with padding.
See: RFC-4648 section 7
Examples:
encodeBase32 "Sun""ADQMS==="
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27
Modulebase32-0.4Haskell2010
This module contains ByteString-valued combinators for implementing the RFC 4648 specification of the Base32hex encoding format. This includes padded and unpadded decoding variants, as well as internal and external validation for canonicity.
Encode a ByteString value as a Base32hex Text value with padding.
See: RFC-4648 section 7
encodeBase32 "Sun""ADQMS==="
Encode a ByteString value as a Base32hex ByteString value with padding.
See: RFC-4648 section 7
encodeBase32' "Sun""ADQMS==="
Encode a ByteString value as a Base32hex Text value without padding.
See: RFC-4648 section 7
encodeBase32Unpadded' "Sun""ADQMS"
Encode a ByteString value as a Base32hex ByteString value without padding.
See: RFC-4648 section 7
encodeBase32Unpadded' "Sun""ADQMS"
Decode an arbitrarily padded Base32hex-encoded ByteString value. If its length is not a multiple of 8, then padding characters will be added to fill out the input to a multiple of 8 for safe decoding, as Base32hex-encoded values are optionally padded.
See: RFC-4648 section 7
decodeBase32 "ADQMS==="Right "Sun"
decodeBase32 "ADQMS"Right "Sun"
decodeBase32 "ADQM==="Left "Base32-encoded bytestring has invalid padding"
Decode an unpadded Base32hex-encoded ByteString value.
See: RFC-4648 section 7
decodeBase32Unpadded "ADQMS"Right "Sun"
decodeBase32Unpadded "ADQMS==="Left "Base32-encoded bytestring has invalid padding"
Decode a padded Base32hex-encoded ByteString value.
See: RFC-4648 section 7
decodeBase32Padded "ADQMS==="Right "Sun"
decodeBase32Padded "ADQMS"Left "Base32-encoded bytestring requires padding"
Tell whether a ByteString value is encoded in padded or unpadded Base32hex format
isBase32Hex "ADQMS"True
isBase32Hex "ADQMS==="True
isBase32Hex "ADQMS=="False
Tell whether a ByteString value is a valid Base32hex format.
This will not tell you whether or not this is a correct Base32hex representation,
only that it conforms to the correct shape (including padding/size etc.).
To check whether it is a true Base32hex encoded ByteString value, use isBase32.
isValidBase32Hex "ADQMS"True
isValidBase32Hex "ADQMS="False
isValidBase32Hex "ADQMS%"False