auditor

An aarch64 constant-time memory access auditing tool.
git clone git://git.ppad.tech/auditor.git
Log | Files | Refs | README | LICENSE

ppad-auditor.cabal (2505B)


      1 cabal-version:      3.0
      2 name:               ppad-auditor
      3 version:            0.1.0
      4 synopsis:           AArch64 constant-time memory access auditor
      5 license:            MIT
      6 license-file:       LICENSE
      7 author:             Jared Tobin
      8 maintainer:         jared@ppad.tech
      9 category:           Development
     10 build-type:         Simple
     11 tested-with:        GHC == 9.10.3
     12 description:
     13   Static analyzer for AArch64 GHC+LLVM assembly that enforces a strict
     14   memory-access policy (public base register + constant offset) to help
     15   verify constant-time properties.
     16 
     17 source-repository head
     18   type:     git
     19   location: git.ppad.tech/auditor.git
     20 
     21 library
     22   default-language: Haskell2010
     23   hs-source-dirs:   lib
     24   ghc-options:
     25       -Wall
     26   exposed-modules:
     27       Audit.AArch64
     28       Audit.AArch64.CallGraph
     29       Audit.AArch64.Types
     30       Audit.AArch64.Parser
     31       Audit.AArch64.CFG
     32       Audit.AArch64.Runtime
     33       Audit.AArch64.Runtime.GHC
     34       Audit.AArch64.Taint
     35       Audit.AArch64.Check
     36       Audit.AArch64.NCT
     37   build-depends:
     38       base >= 4.9 && < 5
     39     , bytestring >= 0.9 && < 0.13
     40     , containers >= 0.6 && < 0.8
     41     , deepseq >= 1.4 && < 1.6
     42     , megaparsec >= 9.0 && < 10
     43     , primitive >= 0.9 && < 0.10
     44     , text >= 1.2 && < 2.2
     45     , aeson >= 2.0 && < 2.3
     46 
     47 executable auditor
     48   default-language: Haskell2010
     49   hs-source-dirs:   app
     50   main-is:          Main.hs
     51   ghc-options:
     52       -Wall -O2 -threaded
     53   build-depends:
     54       aeson
     55     , base
     56     , bytestring
     57     , containers
     58     , optparse-applicative >= 0.16 && < 0.19
     59     , ppad-auditor
     60     , text
     61 
     62 test-suite auditor-tests
     63   type:                exitcode-stdio-1.0
     64   default-language:    Haskell2010
     65   hs-source-dirs:      test
     66   main-is:             Main.hs
     67   ghc-options:
     68     -rtsopts -Wall -O2
     69   build-depends:
     70       aeson
     71     , base
     72     , bytestring
     73     , containers
     74     , ppad-auditor
     75     , tasty
     76     , tasty-hunit
     77     , text
     78 
     79 benchmark auditor-bench
     80   type:                exitcode-stdio-1.0
     81   default-language:    Haskell2010
     82   hs-source-dirs:      bench
     83   main-is:             Main.hs
     84   ghc-options:
     85     -rtsopts -Wall -O2
     86   build-depends:
     87       base
     88     , bytestring
     89     , criterion >= 1.5 && < 1.7
     90     , ppad-auditor
     91     , text
     92 
     93 benchmark auditor-weigh
     94   type:                exitcode-stdio-1.0
     95   default-language:    Haskell2010
     96   hs-source-dirs:      bench
     97   main-is:             Weight.hs
     98   ghc-options:
     99     -rtsopts -Wall -O2
    100   build-depends:
    101       base
    102     , bytestring
    103     , ppad-auditor
    104     , text
    105     , weigh >= 0.0.16 && < 0.1