HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulebase32-0.4Haskell2010

Data.ByteString.Base32.Hex

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.

  • 9 values
  • Packagebase32-0.4
  • Exports9
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceHex.hs

Encoding

4 declarations

Decoding

3 declarations

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

Examples:
Example1 expression
decodeBase32 "ADQMS==="Right "Sun"
Example1 expression
decodeBase32 "ADQMS"Right "Sun"
Example1 expression
decodeBase32 "ADQM==="Left "Base32-encoded bytestring has invalid padding"

Validation

2 declarations
valueisBase32Hex :: ByteString -> Bool
#

Tell whether a ByteString value is encoded in padded or unpadded Base32hex format

Examples:
Example1 expression
isBase32Hex "ADQMS"True
Example1 expression
isBase32Hex "ADQMS==="True
Example1 expression
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.

Examples:
Example1 expression
isValidBase32Hex "ADQMS"True
Example1 expression
isValidBase32Hex "ADQMS="False
Example1 expression
isValidBase32Hex "ADQMS%"False