packages feed

webauthn-0.1.0.0: webauthn.cabal

cabal-version: 2.4
name: webauthn
version: 0.1.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:
  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.
category: Web, Authentication
tested-with: GHC == 8.10.7
extra-source-files:
  README.md,
  root-certs/**/*.crt,
  tests/golden-metadata/big/blob.jwt,
  tests/golden-metadata/big/payload.json,
  tests/golden-metadata/big/origin,
  tests/golden-metadata/big/root.crt,
  tests/golden-metadata/small/blob.jwt,
  tests/golden-metadata/small/payload.json,
  tests/golden-metadata/small/origin,
  tests/golden-metadata/small/root.crt,
  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.14.3 && < 4.15,
    -- deriving-aeson has compilation performance problems with aeson >= 2.0,
    -- see https://github.com/fumieval/deriving-aeson/issues/16
    aeson                 >= 1.5.6 && < 2.0,
    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.2 && < 1.1,
    base64-bytestring     >= 1.2.1 && < 1.3,
    binary                >= 0.8.8 && < 0.9,
    bytestring            >= 0.10.12 && < 0.11,
    cborg                 >= 0.2.6 && < 0.3,
    containers            >= 0.6.5 && < 0.7,
    cryptonite            >= 0.29 && < 0.30,
    deriving-aeson        >= 0.2.8 && < 0.3,
    file-embed            >= 0.0.15 && < 0.1,
    hashable              >= 1.3.0 && < 1.4,
    hourglass             >= 0.2.12 && < 0.3,
    jose                  >= 0.8.5 && < 0.9,
    lens                  >= 4.19.2 && < 4.20,
    memory                >= 0.15.0 && < 0.16,
    monad-time            >= 0.3.1 && < 0.4,
    mtl                   >= 2.2.2 && < 2.3,
    serialise             >= 0.2.4 && < 0.3,
    singletons            >= 2.7 && < 2.8,
    text                  >= 1.2.4 && < 1.3,
    time                  >= 1.9.3 && < 1.10,
    unordered-containers  >= 0.2.16 && < 0.3,
    uuid                  >= 1.3.15 && < 1.4,
    validation            >= 1.1.2 && < 1.2,
    x509                  >= 1.7.5 && < 1.8,
    x509-store            >= 1.6.7 && < 1.7,
    x509-validation       >= 1.6.12 && < 1.7
  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.Operation,
    Crypto.WebAuthn.Operation.Authentication,
    Crypto.WebAuthn.Operation.CredentialEntry,
    Crypto.WebAuthn.Operation.Registration,
    Crypto.WebAuthn.Cose.Algorithm,
    Crypto.WebAuthn.Cose.Internal.Registry,
    Crypto.WebAuthn.Cose.Internal.Verify,
    Crypto.WebAuthn.Cose.Key,
    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.Model,
    Crypto.WebAuthn.Model.Identifier,
    Crypto.WebAuthn.Model.Kinds,
    Crypto.WebAuthn.Model.Types,
    Crypto.WebAuthn.Model.WebIDL,
    Crypto.WebAuthn.Model.WebIDL.Internal.Binary.Decoding,
    Crypto.WebAuthn.Model.WebIDL.Internal.Binary.Encoding,
    Crypto.WebAuthn.Model.WebIDL.Internal.Decoding,
    Crypto.WebAuthn.Model.WebIDL.Internal.Encoding,
    Crypto.WebAuthn.Model.WebIDL.Internal.Convert,
    Crypto.WebAuthn.Model.WebIDL.Types,
    Crypto.WebAuthn.WebIDL

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,
    cryptonite,
    directory,
    filepath,
    hourglass,
    hspec,
    hspec-expectations-json,
    memory,
    mtl,
    pem,
    quickcheck-instances,
    serialise,
    singletons,
    text,
    uuid,
    validation,
    webauthn,
    x509,
    x509-store