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

This module contains ByteString-valued combinators for implementing the RFC 4648 specification of the Base32 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
  • SourceBase32.hs

Encoding

4 declarations

Decoding

3 declarations

Decode an arbitrarily padded Base32-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 Base32-encoded values are optionally padded.

See: RFC-4648 section 6

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

Validation

2 declarations
valueisBase32 :: ByteString -> Bool
#

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

Examples:
Example1 expression
isBase32 "KN2W4"True
Example1 expression
isBase32 "KN2W4==="True
Example1 expression
isBase32 "KN2W4=="False

Tell whether a ByteString value is a valid Base32 format.

This will not tell you whether or not this is a correct Base32 representation, only that it conforms to the correct shape (including padding/size etc.). To check whether it is a true Base32 encoded ByteString value, use isBase32.

Examples:
Example1 expression
isValidBase32 "KN2W4"True
Example1 expression
isValidBase32 "KN2W4="False
Example1 expression
isValidBase32 "KN2W4%"False