webauthn-0.9.0.0: webauthn.cabal
cabal-version: 2.4
name: webauthn
version: 0.9.0.0
license: Apache-2.0
license-file: LICENSE
copyright:
2020 - 2021: Arian van Putten,
2021 - : Tweag I/O
author:
Silvan Mosberger <contact@infinisil.com>,
Erin van der Veen <erin@erinvanderveen.nl>,
Arian van Putten <arian.vanputten@gmail.com>,
Laurens Duijvesteijn <git@duijf.io>
maintainer: Silvan Mosberger <contact@infinisil.com>
stability: provisional
homepage: https://github.com/tweag/webauthn
bug-reports: https://github.com/tweag/webauthn/issues
synopsis: Relying party (server) implementation of the WebAuthn 2 specification
description:
== About
This library implements the [Relying Party conformance class](https://www.w3.org/TR/webauthn-2/#sctn-conforming-relying-parties)
of the [Web Authentication Level 2](https://www.w3.org/TR/webauthn-2/) specification.
This allows web applications to create strong, attested, scoped, public key-based
credentials for the purpose of strongly authenticating users.
.
== Getting started
The "Crypto.WebAuthn" module and its documentation is the best place to get
started with the library.
The example server: [Main.hs](https://github.com/tweag/webauthn/blob/master/server/src/Main.hs)
shows how this module may be used to implement a relying party.
.
== Stability
While the general design of the library won't change, it's still in an alpha
state, so smaller breaking changes should be expected for now. We will
however follow the [PVP](https://pvp.haskell.org/) and properly label changes
with the appropriate version increase.
category: Web, Authentication
tested-with: GHC == 9.4.7
extra-source-files:
README.md,
changelog.md,
root-certs/**/*.crt,
tests/golden-metadata/**/*.jwt
tests/golden-metadata/**/*.json
tests/golden-metadata/**/*.crt
tests/golden-metadata/**/*.txt
tests/responses/**/*.json
common sanity
default-language: Haskell2010
ghc-options:
-Wall
-Wmissing-export-lists
-Wmissing-import-lists
-Wno-name-shadowing
-Wcompat
-Wincomplete-uni-patterns
default-extensions:
DerivingStrategies
DerivingVia
DeriveAnyClass
DeriveGeneric
GeneralizedNewtypeDeriving
LambdaCase
OverloadedStrings
TypeApplications
library
import: sanity
hs-source-dirs: src
build-depends:
base >= 4.13.0 && < 4.20,
aeson >= 2.0.1 && < 2.3,
asn1-encoding >= 0.9.6 && < 0.10,
asn1-parse >= 0.9.5 && < 0.10,
asn1-types >= 0.3.4 && < 0.4,
base16-bytestring >= 1.0.0 && < 1.1,
base64-bytestring >= 1.2.1 && < 1.3,
binary >= 0.8.7 && < 0.9,
bytestring >= 0.10.10 && < 0.13,
cborg >= 0.2.4 && < 0.3,
containers >= 0.6.2.1 && < 0.7,
crypton >= 0.32 && < 0.35,
crypton-x509 >= 1.7.6 && < 1.8,
crypton-x509-store >= 1.6.9 && < 1.7,
crypton-x509-validation >= 1.6.12 && < 1.7,
file-embed >= 0.0.11 && < 0.1,
hashable >= 1.3.2 && < 1.5,
hourglass >= 0.2.12 && < 0.3,
jose >= 0.11 && < 0.12,
lens >= 4.18.1 && < 5.3,
memory >= 0.15.0 && < 0.19,
monad-time >= 0.3.1 && < 0.5,
mtl >= 2.2.2 && < 2.4,
serialise >= 0.2.3 && < 0.3,
singletons >= 2.6 && < 3.2,
text >= 1.2.4 && < 2.2,
these >= 1.1.1.1 && < 1.3,
time >= 1.9.3 && < 1.14,
unordered-containers >= 0.2.12 && < 0.3,
uuid >= 1.3.13 && < 1.4,
validation >= 1.1 && < 1.3,
exposed-modules:
Crypto.WebAuthn,
Crypto.WebAuthn.AttestationStatementFormat,
Crypto.WebAuthn.AttestationStatementFormat.AndroidKey,
Crypto.WebAuthn.AttestationStatementFormat.AndroidSafetyNet,
Crypto.WebAuthn.AttestationStatementFormat.Apple,
Crypto.WebAuthn.AttestationStatementFormat.FidoU2F,
Crypto.WebAuthn.AttestationStatementFormat.None,
Crypto.WebAuthn.AttestationStatementFormat.Packed,
Crypto.WebAuthn.AttestationStatementFormat.TPM,
Crypto.WebAuthn.Encoding,
Crypto.WebAuthn.Encoding.Binary,
Crypto.WebAuthn.Encoding.Internal.WebAuthnJson,
Crypto.WebAuthn.Encoding.Strings,
Crypto.WebAuthn.Encoding.WebAuthnJson,
Crypto.WebAuthn.Operation,
Crypto.WebAuthn.Operation.Authentication,
Crypto.WebAuthn.Operation.CredentialEntry,
Crypto.WebAuthn.Operation.Registration,
Crypto.WebAuthn.Cose.Internal.Registry,
Crypto.WebAuthn.Cose.Internal.Verify,
Crypto.WebAuthn.Cose.PublicKey,
Crypto.WebAuthn.Cose.PublicKeyWithSignAlg,
Crypto.WebAuthn.Cose.SignAlg,
Crypto.WebAuthn.Internal.DateOrphans,
Crypto.WebAuthn.Internal.ToJSONOrphans,
Crypto.WebAuthn.Internal.Utils,
Crypto.WebAuthn.Metadata,
Crypto.WebAuthn.Metadata.FidoRegistry,
Crypto.WebAuthn.Metadata.Service.Decode,
Crypto.WebAuthn.Metadata.Service.Processing,
Crypto.WebAuthn.Metadata.Service.Types,
Crypto.WebAuthn.Metadata.Service.WebIDL,
Crypto.WebAuthn.Metadata.Statement.Decode,
Crypto.WebAuthn.Metadata.Statement.Types,
Crypto.WebAuthn.Metadata.Statement.WebIDL,
Crypto.WebAuthn.Metadata.UAF,
Crypto.WebAuthn.Metadata.WebIDL,
Crypto.WebAuthn.Model,
Crypto.WebAuthn.Model.Defaults,
Crypto.WebAuthn.Model.Identifier,
Crypto.WebAuthn.Model.Kinds,
Crypto.WebAuthn.Model.Types
test-suite tests
import: sanity
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: Main.hs
ghc-options:
-Wno-incomplete-uni-patterns
other-modules:
PublicKeySpec,
MetadataSpec,
Spec.Key,
Spec.Types,
Spec.Util,
Encoding,
Emulation,
Emulation.Client,
Emulation.Client.Arbitrary,
Emulation.Authenticator,
Emulation.Authenticator.Arbitrary
build-depends:
base,
QuickCheck,
aeson,
asn1-encoding,
bytestring,
containers,
crypton,
crypton-x509,
crypton-x509-store,
directory,
filepath,
hourglass,
hspec,
hspec-expectations-json,
memory,
mtl,
pem,
quickcheck-instances,
serialise,
singletons,
text,
these,
unordered-containers,
uuid,
validation,
webauthn,