cryptol v2.10.0 Release Notes

Release Date: 2020-11-19 // over 3 years ago
  • Language changes

    โœ… Cryptol now supports primality checking at the type level. The type-level predicate prime is true when its parameter passes the Miller-Rabin probabilistic primality test implemented in the GMP library.

    The Z p type is now a Field when p is prime, allowing additional operations on Z p values.

    The literals 0 and 1 can now be used at type Bit, as alternatives for False and True, respectively.

    ๐Ÿ†• New features

    ๐ŸŽ The interpreter now includes a number of primitive functions that allow faster execution of a number of common cryptographic functions, including the core operations of AES and SHA-2, operations on GF(2) polynomials (the existing pmod, pdiv, and pmult functions), and some operations on prime field elliptic curves. These functions are useful for implementing higher-level algorithms, such as many post-quantum schemes, with more acceptable performance than possible when running a top-to-bottom Cryptol implementation in the interpreter.

    ๐Ÿ‘€ For a full list of the new primitives, see the new Cryptol SuiteB and PrimeEC modules.

    The REPL now allows lines containing only comments, making it easier to copy and paste examples.

    ๐ŸŽ The interpreter has generally improved performance overall.

    Several error messages are more comprehensible and less verbose.

    ๐Ÿš€ Cryptol releases and nightly builds now include an RPC server alongside the REPL. This provides an alternative interface to the same interpreter and proof engine available from the REPL, but is better-suited to programmatic use. Details on the protocol used by the server are available here. A Python client for this protocol is available here.

    ๐Ÿ Windows builds are now distributed as both .tar.gz and .msi files.

    ๐Ÿ› Bug Fixes