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

Modulejose-0.11Haskell2010

Crypto.JOSE.Header

Types and functions for working with JOSE header parameters.

  • 2 types
  • 13 classes
  • 12 values
  • Packagejose-0.11
  • Exports27
  • LanguageHaskell2010
  • LicenceApache-2.0
  • SourceHeader.hs

Defining header data types

6 declarations

Defining header parsers

6 declarations

The parseParamsFor function defines the parser for a header type.

parseParamsFor
  :: (HasParams a, HasParams b)
  => Proxy b -> Maybe Object -> Maybe Object -> Parser a

It is defined over two objects: the protected header and the unprotected header. The following functions are provided for parsing header parameters:

headerOptional

An optional parameter that may be protected or unprotected.

headerRequired

A required parameter that may be protected or unprotected.

headerOptionalProtected

An optional parameter that, if present, MUST be carried in the protected header.

headerRequiredProtected

A required parameter that, if present, MUST be carried in the protected header.

Duplicate headers are forbidden. The above functions all perform duplicate header detection. If you do not use them, be sure to perform this detection yourself!

An example parser:

instance HasParams ACMEHeader where
  parseParamsFor proxy hp hu = ACMEHeader
    <$> parseParamsFor proxy hp hu
    <*> headerRequiredProtected "nonce" hp hu
classclass HasParams (a :: Type -> Type) where
#

A thing with parameters.

Methods

Instances2HasParams

Parsing headers

2 declarations
valueparseCrit
  1. :: (Foldable t0, Foldable t1, Traversable t2, Traversable t3, MonadFail m)
  2. => t0 Text

    reserved header parameters

  3. -> t1 Text

    recognised extensions

  4. -> Object

    full header (union of protected and unprotected headers)

  5. -> t2 (t3 Text)

    crit header

  6. -> m (t2 (t3 Text))
#

Parse a "crit" header param

Fails if:

  • any reserved header appears in "crit" header

  • any value in "crit" is not a recognised extension

  • any value in "crit" does not have a corresponding key in the object

Encoding headers

2 declarations

Header fields shared by JWS and JWE

11 declarations