HORIZON HASKELLDocslts/ghc-10.0.x8fef28d2026-11-02Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8fef28d · 2026-11-02

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.

Contents
  1. Encoding
  2. Decoding
  3. Validation
Synopsis
  • Packagebase32-0.4
  • Exports9
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceHex.hs

Encoding

Decoding

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

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