Skip to content

Releases: mit-plv/fiat-crypto

Fiat Cryptography v0.0.14

27 Aug 07:19
68ab6bf
Compare
Choose a tag to compare
Pre-release

Likely the last release compatible with Coq 8.11 -- 8.14. Supports Coq 8.11 -- Coq 8.15 (and possibly 8.16)

What's Changed

Bedrock2 and Rupicola Pipelines

Code Generators

  • Zig inversion code: compute f and precomp at compile-time by @jedisct1 in #1275
  • Generate Java files with the expected file names on all platforms by @jedisct1 in #1260
  • Generate code for the scalar field of standard curves by @jedisct1 in #1259

User Messages

Assembly Equivalence Checker

  • Finish assembly equivalence checker proof by @JasonGross in #1178
  • Add more operations to parsing in the equivalence checker: call, cmovb, cmp, db, dd, dq, dw, je, jmp, mul, pop, push, rcr, and shrx, and prefixes like rep ret, repz ret, repnz ret, and labels and align and default rel by @JasonGross in #1197
  • Support duplicate functions in multiple --hints-files by @JasonGross in #1199
  • Better equivalence-checker error messages by @JasonGross in #1193
  • Minor asm improvements by @JasonGross in #1209
  • Add support for parsing polynomials by @JasonGross in #1213
  • Use poly parsing to support more labels by @JasonGross in #1214
  • Error if there are assembly files with no globals by @JasonGross in #1216
  • Add some operations to equivalence checker by @JasonGross in #1191
  • Fold carry identity dropping into the general identity dropping by @JasonGross in #1217
  • fixed annotations on assembly output for assembly-checker by @OwenConoly in #1357
  • Add pretty-printer for asm error messages by @JasonGross in #1219

Misc Utility Lemmas

Misc Infrastructure

Read more

Fiat Cryptography v0.0.13

29 Mar 22:52
Compare
Choose a tag to compare
Pre-release

What's Changed

  • General
    • Add support for SKIP_COQSCRIPTS_INCLUDE=1
  • Experimental Assembly Equivalence Checker:

Full Changelog: v0.0.12...v0.0.13

Fiat Cryptography v0.0.12

22 Mar 17:41
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v0.0.11...v0.0.12

Fiat Cryptography v0.0.11

28 Dec 14:18
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: v0.0.10...v0.0.11

Fiat Cryptography v0.0.10

13 Dec 19:59
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Zig:
    • use @import("builtin") instead of the deprecated reexport
  • Rust:
    • Add conditional no_std to Cargo.toml
    • allow(non_camel_case_types) is now an inner attribute
  • JSON:
    • Fix bitwidths by avoiding rounding
  • Coq:
    • Bump minimum Coq dependency to 8.11
    • Edwards-Montgomery isomorphism proof
  • experimental x86 assembly symbolic equivalence checker

New Contributors

Full Changelog: v0.0.9...v0.0.10

Fiat Cryptography v0.0.9

04 Oct 16:16
Compare
Choose a tag to compare
Pre-release

Last tagged release compatible with Coq 8.9, 8.10

  • Adds named typedefs for loose, tight, Montgomery, and non-Montgomery field elements in generated code, as well as a relax method
  • Emits __inline__ via #define only ifdef __GNUC__
  • carry_{add,sub,opp} methods are now included in generated Go code
  • Various adjustments to generated Zig code, including changing of casting and more standard casing
  • Java now uses a slightly different method of casting (#995)
  • Added flags --inline, --inline-internal, --no-field-element-typedefs, --relax-primitive-carry-to-bitwidth, --shiftr-avoid-uint1, --doc-text-before-type-name, --doc-newline-in-typedef-bounds; adjusted default of --asm-stack-size

Fiat Cryptography v0.0.8

18 May 18:43
Compare
Choose a tag to compare
Pre-release

Minor improvements in generated comments.
Moved inversion files to a new folder.

Fiat Cryptography v0.0.7

28 Apr 11:37
Compare
Choose a tag to compare
Pre-release

Last (pre-)release before moving the inversion-c files to a new folder.

Contains the following changes, among others:

  • Fix a bug in parsing 0x<num1>e<num2>
  • Fix a timing issue in the BY inversion template
  • C Stringification: prepend __extension__ before the typedef with __int128; This allows the generated C code to compile with gcc and -Wpedantic.
  • Adjust style of generated Go code to be more in line with standard Go
  • New Zig backend

Fiat Cryptography v0.0.6

05 Jan 21:15
Compare
Choose a tag to compare
Pre-release
Regenerate bedrock2 files

Fiat Cryptography v0.0.5

03 Jan 19:32
Compare
Choose a tag to compare
Pre-release
Regenerate bedrock2 files