packages feed

aes-gcm-0.0.0.0: aes-gcm.cabal

cabal-version:      3.0
name:               aes-gcm
version:            0.0.0.0
license:            GPL-2.0-or-later
license-file:       LICENSE
author:             Herbert Valerio Riedel
maintainer:         hvr@gnu.org
copyright:          © 2024 Herbert Valerio Riedel
category:           Cryptography
build-type:         Simple
extra-doc-files:    ChangeLog.md

synopsis: AES Galois/Counter Mode (GCM) AEAD Cipher
description:
    This library provides a type-safe API to OpenSSL's AES GCM ([NIST SP 800-38D](https://doi.org/10.6028/NIST.SP.800-38D)) implementation.
    The API provides both a pure one-shot interface as well as an 'IO'-based incremental interface for streaming large amounts of data.

extra-source-files:
    cbits/hs_aes_gcm.h
    testdata/README
    testdata/gcm-spec.rsp

common defaults
    default-language: Haskell2010
    other-extensions:
        CApiFFI
        DeriveDataTypeable
        ExistentialQuantification
        Rank2Types
        ScopedTypeVariables

    ghc-options:      -Wall

    build-depends:
      , base       ^>= { 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17, 4.18, 4.19, 4.20, 4.21 }
      , bytestring ^>= { 0.10.8, 0.11, 0.12 }

library
    import:           defaults

    hs-source-dirs:   src
    exposed-modules:  Crypto.Cipher.AES.GCM
    include-dirs:     cbits/

    -- compat with version 1.1.1w verified on Debian 10
    pkgconfig-depends: libcrypto >= 1.1.1w

test-suite aes-gcm-test
    import:           defaults
    type:             exitcode-stdio-1.0

    other-extensions:
        DeriveFunctor
        OverloadedStrings
    ghc-options: -rtsopts

    hs-source-dirs:   src-test
    main-is:          Test.hs
    other-modules:    CAVS

    build-depends:
      , aes-gcm
      , base16-bytestring ^>= 1.0.2.0
      , tasty             ^>= 1.5
      , tasty-hunit       ^>= 0.10