cryptol: Cryptol: The Language of Cryptography
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
Warnings:
- [option-o2] 'ghc-options: -O2' is rarely needed. Check that it is giving a real benefit and not just imposing longer compile times on your users.
- [recursive-glob] In the 'data-files': glob '**/*.cry' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
- [recursive-glob] In the 'data-files': glob '**/*.h' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
- [recursive-glob] In the 'data-files': glob '**/*.smt2' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
- [missing-upper-bounds] On library, these packages miss upper bounds: - arithmoi - bytestring - array - containers - criterion-measurement - deepseq - directory - exceptions - file-embed - filepath - gitrev - ghc-prim - GraphSCC - heredoc - language-c99 - language-c99-simple - monad-control - monadLib - parameterized-utils - pretty - prettyprinter - pretty-show - primitive - process - simple-smt - stm - strict - text - tf-random - transformers-base - vector - mtl - time - panic - hgmp - libffi - Win32 Please add them. There is more information at https://pvp.haskell.org/
- [missing-upper-bounds] On library, these packages miss upper bounds: - arithmoi - bytestring - array - containers - criterion-measurement - deepseq - directory - exceptions - file-embed - filepath - gitrev - ghc-prim - GraphSCC - heredoc - language-c99 - language-c99-simple - monad-control - monadLib - parameterized-utils - pretty - prettyprinter - pretty-show - primitive - process - simple-smt - stm - strict - text - tf-random - transformers-base - vector - mtl - time - panic - hgmp - libffi - unix Please add them. There is more information at https://pvp.haskell.org/
- [missing-upper-bounds] On library 'cryptol-repl-internal', these packages miss upper bounds: - ansi-terminal - transformers Please add them. There is more information at https://pvp.haskell.org/
- [missing-upper-bounds] On executable 'check-exercises', these packages miss upper bounds: - ansi-terminal - containers - directory - extra - filepath - mtl - optparse-applicative - process - temporary - text Please add them. There is more information at https://pvp.haskell.org/
- [missing-upper-bounds] On executable 'cryptol-html', these packages miss upper bounds: - blaze-html Please add them. There is more information at https://pvp.haskell.org/
Cryptol is a domain-specific language for specifying cryptographic algorithms. A Cryptol implementation of an algorithm resembles its mathematical specification more closely than an implementation in a general purpose language. For more, see http://www.cryptol.net/.
Properties
| Versions | 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.3.0, 2.4.0, 2.5.0, 2.6.0, 2.7.0, 2.8.0, 2.9.0, 2.9.1, 2.10.0, 2.11.0, 2.12.0, 2.13.0, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 3.4.1, 3.5.0 |
|---|---|
| Change log | CHANGES.md |
| Dependencies | aeson (>=2.0 && <2.3), ansi-terminal, arithmoi (>=0.12), array (>=0.4), async (>=2.2 && <2.3), base (>=4.9 && <5), base-compat (>=0.6 && <0.13), blaze-html, bv-sized (>=1.0 && <1.1), bytestring (>=0.10), containers (>=0.5), criterion-measurement, cryptohash-sha256 (>=0.11 && <0.12), cryptol, deepseq (>=1.3), directory (>=1.2.2.0), exceptions, extra, file-embed (>=0.0.16), filepath (>=1.3), ghc-bignum (>=1.0 && <1.4), ghc-prim, gitrev (>=1.0), GraphSCC (>=1.0.4), haskeline (>=0.7 && <0.9), heredoc (>=0.2), hgmp, integer-gmp (>=1.0 && <1.1), language-c99, language-c99-simple, libBF (>=0.6 && <0.7), libffi (>=0.2), MemoTrie (>=0.6 && <0.7), monad-control (>=1.0), monadLib (>=3.7.2), mtl (>=2.2.1), optparse-applicative, panic (>=0.3), parameterized-utils (>=2.0.2), pretty, pretty-show, prettyprinter (>=1.7.0), primitive, process (>=1.2), rme-what4 (>=0.1 && <0.2), sbv (>=9.1 && <10.11), simple-smt (>=0.9.8), stm (>=2.4), strict, temporary, text (>=1.1), tf-random (>=0.5), time (>=1.6.0.1), toml-parser (>=2.0 && <2.1), transformers, transformers-base (>=0.4), unix, vector, what4 (>=1.6 && <1.8), Win32 [details] |
| License | BSD-3-Clause |
| Copyright | 2013-2025 Galois Inc. |
| Author | Galois, Inc. |
| Maintainer | cryptol@galois.com |
| Category | Language |
| Home page | https://tools.galois.com/cryptol |
| Bug tracker | https://github.com/GaloisInc/cryptol/issues |
| Source repo | head: git clone https://github.com/GaloisInc/cryptol.git this: git clone https://github.com/GaloisInc/cryptol.git(tag 3.4.1) |
| Uploaded | by aschwerdfeger_galois at 2026-01-27T20:28:07Z |
Modules
- Cryptol
- Cryptol.AES
- Cryptol.Backend
- Cryptol.Backend.Arch
- Cryptol.Backend.Concrete
- Cryptol.Backend.FloatHelpers
- Cryptol.Backend.Monad
- Cryptol.Backend.SBV
- Cryptol.Backend.SeqMap
- Cryptol.Backend.What4
- Cryptol.Backend.WordValue
- Cryptol.Eval
- Cryptol.Eval.Concrete
- Cryptol.Eval.Env
- Cryptol.Eval.FFI
- Cryptol.Eval.FFI.Abstract
- Cryptol.Eval.FFI.Abstract.Call
- Cryptol.Eval.FFI.Abstract.Export
- Cryptol.Eval.FFI.Abstract.Import
- Cryptol.Eval.FFI.C
- Cryptol.Eval.FFI.Error
- Cryptol.Eval.FFI.ForeignSrc
- Cryptol.Eval.FFI.GenHeader
- Cryptol.Eval.FFI.Abstract
- Cryptol.Eval.Generic
- Cryptol.Eval.Prims
- Cryptol.Eval.Reference
- Cryptol.Eval.SBV
- Cryptol.Eval.Type
- Cryptol.Eval.Value
- Cryptol.Eval.What4
- Cryptol.F2
- IR
- Cryptol.IR.Builder
- Cryptol.IR.FreeVars
- Cryptol.IR.Prove
- Cryptol.IR.TraverseNames
- Cryptol.ModuleSystem
- Cryptol.ModuleSystem.Base
- Cryptol.ModuleSystem.Binds
- Cryptol.ModuleSystem.Env
- Cryptol.ModuleSystem.Exports
- Cryptol.ModuleSystem.Fingerprint
- Cryptol.ModuleSystem.Interface
- Cryptol.ModuleSystem.Monad
- Cryptol.ModuleSystem.Name
- Cryptol.ModuleSystem.Names
- Cryptol.ModuleSystem.NamingEnv
- Cryptol.ModuleSystem.NamingEnv.Types
- Cryptol.ModuleSystem.Renamer
- Cryptol.ModuleSystem.Renamer.Error
- Cryptol.ModuleSystem.Renamer.ImplicitImports
- Cryptol.ModuleSystem.Renamer.Imports
- Cryptol.ModuleSystem.Renamer.Monad
- Cryptol.Parser
- Cryptol.Parser.AST
- Cryptol.Parser.AST.Builder
- Cryptol.Parser.ExpandPropGuards
- Cryptol.Parser.Layout
- Cryptol.Parser.Lexer
- Cryptol.Parser.Name
- Cryptol.Parser.Names
- Cryptol.Parser.NoInclude
- Cryptol.Parser.NoPat
- Cryptol.Parser.Position
- Cryptol.Parser.Selector
- Cryptol.Parser.Token
- Cryptol.Parser.Unlit
- Cryptol.Parser.Utils
- Cryptol.Parser.AST
- Cryptol.PrimeEC
- Cryptol.Project
- Cryptol.Project.Cache
- Cryptol.Project.Config
- Cryptol.Project.Monad
- Cryptol.Project.WildMatch
- REPL
- Cryptol.REPL.Browse
- Cryptol.REPL.Command
- Cryptol.REPL.Help
- Cryptol.REPL.Monad
- Cryptol.REPL.Trie
- Cryptol.SHA
- Cryptol.Symbolic
- Cryptol.Symbolic.SBV
- Cryptol.Symbolic.What4
- Testing
- Cryptol.Testing.Random
- Transform
- Cryptol.Transform.MonoValues
- Cryptol.Transform.Specialize
- Cryptol.TypeCheck
- Cryptol.TypeCheck.AST
- Cryptol.TypeCheck.Default
- Cryptol.TypeCheck.Docstrings
- Cryptol.TypeCheck.Error
- Cryptol.TypeCheck.FFI
- Cryptol.TypeCheck.FFI.Error
- Cryptol.TypeCheck.FFI.FFIType
- Cryptol.TypeCheck.Infer
- Cryptol.TypeCheck.InferTypes
- Cryptol.TypeCheck.Instantiate
- Cryptol.TypeCheck.Interface
- Cryptol.TypeCheck.Kind
- Cryptol.TypeCheck.Module
- Cryptol.TypeCheck.ModuleBacktickInstance
- Cryptol.TypeCheck.ModuleInstance
- Cryptol.TypeCheck.Monad
- Cryptol.TypeCheck.PP
- Cryptol.TypeCheck.Parseable
- Cryptol.TypeCheck.Sanity
- Cryptol.TypeCheck.SimpType
- Cryptol.TypeCheck.SimpleSolver
- Cryptol.TypeCheck.Solve
- Solver
- Cryptol.TypeCheck.Solver.Class
- Cryptol.TypeCheck.Solver.Improve
- Cryptol.TypeCheck.Solver.InfNat
- Cryptol.TypeCheck.Solver.Numeric
- Cryptol.TypeCheck.Solver.Numeric.Fin
- Cryptol.TypeCheck.Solver.Numeric.Interval
- Cryptol.TypeCheck.Solver.SMT
- Cryptol.TypeCheck.Solver.Selector
- Cryptol.TypeCheck.Solver.Types
- Cryptol.TypeCheck.Solver.Utils
- Cryptol.TypeCheck.Subst
- Cryptol.TypeCheck.Subst.Type
- Cryptol.TypeCheck.TCon
- Cryptol.TypeCheck.Type
- Cryptol.TypeCheck.TypeMap
- Cryptol.TypeCheck.TypeOf
- Cryptol.TypeCheck.TypePat
- Cryptol.TypeCheck.Unify
- Utils
- Cryptol.Utils.Benchmark
- Cryptol.Utils.Debug
- Cryptol.Utils.Fixity
- Cryptol.Utils.Ident
- Cryptol.Utils.Logger
- Cryptol.Utils.Misc
- Cryptol.Utils.PP
- Cryptol.Utils.Panic
- Cryptol.Utils.Patterns
- Cryptol.Utils.RecordMap
- Cryptol.Utils.Types
- Cryptol.Version
Flags
Automatic Flags
| Name | Description | Default |
|---|---|---|
| static | Create a statically-linked binary | Disabled |
| relocatable | Don't use the Cabal-provided data directory for looking up Cryptol libraries. This is useful when the data directory can't be known ahead of time, like for a relocatable distribution. | Enabled |
| ffi | Enable the foreign function interface | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- cryptol-3.4.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees