packages feed

webauthn-0.7.0.0: webauthn.cabal

cabal-version: 2.4
name: webauthn
version: 0.7.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.2.4
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.18,
    aeson                 >= 1.4.7 && < 2.2,
    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.12,
    cborg                 >= 0.2.4 && < 0.3,
    containers            >= 0.6.2 && < 0.7,
    cryptonite            >= 0.27 && < 0.31,
    file-embed            >= 0.0.11 && < 0.1,
    hashable              >= 1.3.0 && < 1.5,
    hourglass             >= 0.2.12 && < 0.3,
    jose                  >= 0.8.5 && < 0.11,
    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.1,
    these                 >= 1.1 && < 1.2,
    time                  >= 1.9.3 && < 1.12,
    unordered-containers  >= 0.2.11 && < 0.3,
    uuid                  >= 1.3.13 && < 1.4,
    validation            >= 1.1 && < 1.3,
    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.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,
    cryptonite,
    directory,
    filepath,
    hourglass,
    hspec,
    hspec-expectations-json,
    memory,
    mtl,
    pem,
    quickcheck-instances,
    serialise,
    singletons,
    text,
    these,
    unordered-containers,
    uuid,
    validation,
    webauthn,
    x509,
    x509-store