cabal-version: 2.4
name: acme-not-a-joke-wai
version: 0.1.0.0
-- A short (one-line) description of the package.
synopsis: ACME http-01 and tls-alpn-01 challenges and live certificates for wai/warp
-- A longer description of the package.
description: a wai middleware and a step handler to validate HTTP-01 challenges (rfc-8555) with the acme-not-a-joke library, so that a wai/warp application can get its own TLS certificates, and TLS settings answering TLS-ALPN-01 challenges (rfc-8737) from a running warp-tls server, without port 80. Also has a certificate store read by warp-tls at each handshake, so that new certificates are served without restarting.
-- The license under which the package is released.
license: BSD-3-Clause
license-file: LICENSE
homepage: https://lucasdicioccio.github.io/acme-not-a-joke/
bug-reports: https://github.com/lucasdicioccio/acme-not-a-joke/issues
author: Lucas DiCioccio
maintainer: lucas@dicioccio.fr
-- A copyright notice.
copyright: Lucas DiCioccio 2023-2026
category: Security
tested-with: GHC == 9.8.2 || == 9.10.3
extra-doc-files: CHANGELOG.md README.md
source-repository head
type: git
location: https://github.com/lucasdicioccio/acme-not-a-joke.git
subdir: acme-not-a-joke-wai
flag example
description: build the example program (a warp server getting its own certificate)
default: False
manual: True
library
hs-source-dirs: src
ghc-options: -Wall
default-language: Haskell2010
default-extensions: OverloadedStrings OverloadedRecordDot
exposed-modules:
Acme.NotAJoke.Wai.Http01
Acme.NotAJoke.Wai.TlsAlpn01
Acme.NotAJoke.Wai.WarpTLS
build-depends:
acme-not-a-joke >= 0.2 && < 0.3,
base >= 4.19.1 && < 5,
bytestring >= 0.12.1 && < 0.13,
containers >= 0.6.8 && < 0.8,
text >= 2.1.1 && < 2.2,
time >= 1.12.2 && < 1.13,
http-types >= 0.12.4 && < 0.13,
wai >= 3.2.4 && < 3.3,
crypton >= 1.0 && < 1.1,
crypton-x509 >= 1.8 && < 1.9,
tls >= 2.1.3 && < 2.5,
warp-tls >= 3.4.13 && < 3.5,
executable acme-not-a-joke-wai-example
if !flag(example)
buildable: False
hs-source-dirs: example
main-is: Main.hs
ghc-options: -Wall -threaded
default-language: Haskell2010
default-extensions: OverloadedStrings
build-depends:
acme-not-a-joke,
acme-not-a-joke-wai,
base,
directory >= 1.3.8 && < 1.4,
filepath >= 1.4.200 && < 1.6,
http-types,
text,
wai,
warp >= 3.4 && < 3.5,
warp-tls,
test-suite http01
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
ghc-options: -Wall
default-language: Haskell2010
default-extensions: OverloadedStrings
build-depends:
acme-not-a-joke,
acme-not-a-joke-wai,
base,
bytestring,
http-types,
wai,
test-suite warp-tls
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: WarpTLS.hs
ghc-options: -Wall -threaded
default-language: Haskell2010
default-extensions: OverloadedStrings
build-depends:
acme-not-a-joke,
acme-not-a-joke-wai,
base,
crypton,
crypton-asn1-types,
crypton-x509,
http-types,
network,
time-hourglass,
tls,
wai,
warp,
warp-tls,
test-suite tls-alpn-01
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: TlsAlpn01.hs
ghc-options: -Wall -threaded
default-language: Haskell2010
default-extensions: OverloadedStrings
build-depends:
acme-not-a-joke,
acme-not-a-joke-wai,
base,
bytestring,
crypton,
crypton-asn1-encoding,
crypton-asn1-types,
crypton-x509,
crypton-x509-validation,
http-types,
network,
time-hourglass,
tls,
wai,
warp,
warp-tls,