From 7d3dab1bc8e2f92f2c9fa21f1571bbda49c9216d Mon Sep 17 00:00:00 2001 From: Hannes Mehnert Date: Mon, 26 Feb 2024 11:32:59 +0100 Subject: [PATCH] [new release] mirage-crypto (8 packages) (0.11.3) CHANGES: * mirage-crypto, mirage-crypto-rng{,lwt,mirage}: support CL.EXE compiler (mirage/mirage-crypto#137 @jonahbeckford) - mirage-crypto-pk not yet due to gmp dependency, mirage-crypto-ec doesn't pass testsuite * mirage-crypto-ec: use simpler square root for ed25519 - saving 3 multiplications and 2 squarings, details https://mailarchive.ietf.org/arch/msg/cfrg/qlKpMBqxXZYmDpXXIx6LO3Oznv4/ (mirage/mirage-crypto#196 @hannesm) * mirage-crypto-ec: use sliding window method with pre-computed calues of multiples of the generator point for NIST curves, speedup around 4x for P-256 sign (mirage/mirage-crypto#191 @Firobe, review @palainp @hannesm) * mirage-crypto-ec: documentation: warn about power timing analysis on `k` in Dsa.sign (mirage/mirage-crypto#195 @hannesm, as proposed by @edwintorok) * mirage-crypto-ec: replace internal Cstruct.t by string (speedup up to 2.5x) (mirage/mirage-crypto#146 @dinosaure @hannesm @reynir, review @Firobe @palainp @hannesm @reynir) * bench/speed: add EC (ECDSA & EdDSA generate/sign/verify, ECDH secret/share) operations (mirage/mirage-crypto#192 @hannesm) * mirage-crypto-rng: use rdtime instead of rdcycle on RISC-V (rdcycle is privileged since Linux kernel 6.6) (mirage/mirage-crypto#194 @AdrianBunk, review by @edwintorok) * mirage-crypto-rng: support Loongarch (mirage/mirage-crypto#190 @fangyaling, review @loongson-zn) * mirage-crypto-rng: support NetBSD (mirage/mirage-crypto#189 @drchrispinnock) * mirage-crypto-rng: allocate less in Fortuna when feeding (mirage/mirage-crypto#188 @hannesm, reported by @palainp) * mirage-crypto-ec: avoid mirage-crypto-pk and asn1-combinators test dependency (instead, craft our own asn.1 decoder -- mirage/mirage-crypto#200 @hannesm) ### Performance differences between v0.11.2 and v0.11.3 and OpenSSL The overall result is promising: P-256 sign operation improved 9.4 times, but is still a 4.9 times slower than OpenSSL. Numbers in operations per second (apart from speedup, which is a factor v0.11.3 / v0.11.2), gathered on a Intel i7-5600U CPU 2.60GHz using FreeBSD 14.0, OCaml 4.14.1, and OpenSSL 3.0.12. #### P224 | op | v0.11.2 | v0.11.3 | speedup | OpenSSL | |--------|---------|---------|---------|---------| | gen | 1160 | 20609 | 17.8 | | | sign | 931 | 8169 | 8.8 | 21319 | | verify | 328 | 1606 | 4.9 | 10719 | | dh-sec | 1011 | 12595 | 12.5 | | | dh-kex | 992 | 2021 | 2.0 | 16691 | #### P256 | op | v0.11.2 | v0.11.3 | speedup | OpenSSL | |--------|---------|---------|---------|---------| | gen | 990 | 19365 | 19.6 | | | sign | 792 | 7436 | 9.4 | 36182 | | verify | 303 | 1488 | 4.9 | 13383 | | dh-sec | 875 | 11508 | 13.2 | | | dh-kex | 895 | 1861 | 2.1 | 17742 | #### P384 | op | v0.11.2 | v0.11.3 | speedup | OpenSSL | |--------|---------|---------|---------|---------| | gen | 474 | 6703 | 14.1 | | | sign | 349 | 3061 | 8.8 | 900 | | verify | 147 | 544 | 3.7 | 1062 | | dh-sec | 378 | 4405 | 11.7 | | | dh-kex | 433 | 673 | 1.6 | 973 | #### P521 | op | v0.11.2 | v0.11.3 | speedup | OpenSSL | |--------|---------|---------|---------|---------| | gen | 185 | 1996 | 10.8 | | | sign | 137 | 438 | 3.2 | 2737 | | verify | 66 | 211 | 3.2 | 1354 | | dh-sec | 180 | 1535 | 8.5 | | | dh-kex | 201 | 268 | 1.3 | 2207 | #### 25519 | op | v0.11.2 | v0.11.3 | speedup | OpenSSL | |--------|---------|---------|---------|---------| | gen | 23271 | 22345 | 1.0 | | | sign | 11228 | 10985 | 1.0 | 21794 | | verify | 8149 | 8029 | 1.0 | 7729 | | dh-sec | 14075 | 13968 | 1.0 | | | dh-kex | 13487 | 14079 | 1.0 | 24824 | --- .../mirage-crypto-ec.0.11.3/opam | 59 +++++++++++++++++++ .../mirage-crypto-pk.0.11.3/opam | 42 +++++++++++++ .../mirage-crypto-rng-async.0.11.3/opam | 39 ++++++++++++ .../mirage-crypto-rng-eio.0.11.3/opam | 38 ++++++++++++ .../mirage-crypto-rng-lwt.0.11.3/opam | 36 +++++++++++ .../mirage-crypto-rng-mirage.0.11.3/opam | 41 +++++++++++++ .../mirage-crypto-rng.0.11.3/opam | 40 +++++++++++++ .../mirage-crypto/mirage-crypto.0.11.3/opam | 39 ++++++++++++ 8 files changed, 334 insertions(+) create mode 100644 packages/mirage-crypto-ec/mirage-crypto-ec.0.11.3/opam create mode 100644 packages/mirage-crypto-pk/mirage-crypto-pk.0.11.3/opam create mode 100644 packages/mirage-crypto-rng-async/mirage-crypto-rng-async.0.11.3/opam create mode 100644 packages/mirage-crypto-rng-eio/mirage-crypto-rng-eio.0.11.3/opam create mode 100644 packages/mirage-crypto-rng-lwt/mirage-crypto-rng-lwt.0.11.3/opam create mode 100644 packages/mirage-crypto-rng-mirage/mirage-crypto-rng-mirage.0.11.3/opam create mode 100644 packages/mirage-crypto-rng/mirage-crypto-rng.0.11.3/opam create mode 100644 packages/mirage-crypto/mirage-crypto.0.11.3/opam diff --git a/packages/mirage-crypto-ec/mirage-crypto-ec.0.11.3/opam b/packages/mirage-crypto-ec/mirage-crypto-ec.0.11.3/opam new file mode 100644 index 00000000000..a81ae9d3323 --- /dev/null +++ b/packages/mirage-crypto-ec/mirage-crypto-ec.0.11.3/opam @@ -0,0 +1,59 @@ +opam-version: "2.0" +synopsis: "Elliptic Curve Cryptography with primitives taken from Fiat" +description: """ +An implementation of key exchange (ECDH) and digital signature (ECDSA/EdDSA) +algorithms using code from Fiat (). + +The curves P224 (SECP224R1), P256 (SECP256R1), P384 (SECP384R1), +P521 (SECP521R1), and 25519 (X25519, Ed25519) are implemented by this package. +""" +maintainer: "Hannes Mehnert " +authors: [ + "Hannes Mehnert " + "Nathan Rebours " + "Clément Pascutto " + "Etienne Millon " +# and from the fiat-crypto AUTHORS file + "Andres Erbsen " + "Google Inc." + "Jade Philipoom " + "Massachusetts Institute of Technology" + "Zoe Paraskevopoulou " +] +license: "MIT" +homepage: "https://github.com/mirage/mirage-crypto" +doc: "https://mirage.github.io/mirage-crypto/doc" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +depends: [ + "dune" {>= "2.7"} + "ocaml" {>= "4.08.0"} + "cstruct" {>= "6.0.0"} + "dune-configurator" + "eqaf" {>= "0.7"} + "mirage-crypto" {=version} + "mirage-crypto-rng" {=version} + "hex" {with-test} + "alcotest" {with-test & >= "0.8.1"} + "ppx_deriving_yojson" {with-test} + "ppx_deriving" {with-test} + "yojson" {with-test & >= "1.6.0"} +] +conflicts: [ + "ocaml-freestanding" +] +build: [ + ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +tags: ["org:mirage"] +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto-pk/mirage-crypto-pk.0.11.3/opam b/packages/mirage-crypto-pk/mirage-crypto-pk.0.11.3/opam new file mode 100644 index 00000000000..71e641cf764 --- /dev/null +++ b/packages/mirage-crypto-pk/mirage-crypto-pk.0.11.3/opam @@ -0,0 +1,42 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "ISC" +synopsis: "Simple public-key cryptography for the modern age" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "conf-gmp-powm-sec" {build} + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "ounit2" {with-test} + "randomconv" {with-test & >= "0.1.3"} + "cstruct" {>="6.00"} + "mirage-crypto" {=version} + "mirage-crypto-rng" {=version} + "sexplib0" + "zarith" {>= "1.4"} + "eqaf" {>= "0.8"} +] +conflicts: [ + "ocaml-freestanding" +] +description: """ +Mirage-crypto-pk provides public-key cryptography (RSA, DSA, DH). +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto-rng-async/mirage-crypto-rng-async.0.11.3/opam b/packages/mirage-crypto-rng-async/mirage-crypto-rng-async.0.11.3/opam new file mode 100644 index 00000000000..5dd8e383d2c --- /dev/null +++ b/packages/mirage-crypto-rng-async/mirage-crypto-rng-async.0.11.3/opam @@ -0,0 +1,39 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "ISC" +synopsis: "Feed the entropy source in an Async-friendly way" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "dune-configurator" {>= "2.0.0"} + "async" {>= "v0.14"} + "logs" + "mirage-crypto" {=version} + "mirage-crypto-rng" {=version} +] +available: os != "win32" +description: """ + +Mirage-crypto-rng-async feeds the entropy source for Mirage_crypto_rng-based +random number generator implementations, in an Async-friendly way. +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" + diff --git a/packages/mirage-crypto-rng-eio/mirage-crypto-rng-eio.0.11.3/opam b/packages/mirage-crypto-rng-eio/mirage-crypto-rng-eio.0.11.3/opam new file mode 100644 index 00000000000..9ed25b5bf4c --- /dev/null +++ b/packages/mirage-crypto-rng-eio/mirage-crypto-rng-eio.0.11.3/opam @@ -0,0 +1,38 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["Bikal Gurung " ] +maintainer: "Bikal Gurung " +license: "ISC" +synopsis: "Feed the entropy source in an eio-friendly way" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "5.0.0"} + "dune" {>= "2.7"} + "eio" {>= "0.12"} + "cstruct" {>= "6.0.0"} + "logs" + "mirage-crypto-rng" {=version} + "duration" + "mtime" + "eio_main" {with-test} +] +description: """ +Mirage-crypto-rng-eio feeds the entropy source for Mirage_crypto_rng-based +random number generator implementations, in an eio-friendly way. +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto-rng-lwt/mirage-crypto-rng-lwt.0.11.3/opam b/packages/mirage-crypto-rng-lwt/mirage-crypto-rng-lwt.0.11.3/opam new file mode 100644 index 00000000000..3cab3d19e62 --- /dev/null +++ b/packages/mirage-crypto-rng-lwt/mirage-crypto-rng-lwt.0.11.3/opam @@ -0,0 +1,36 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "ISC" +synopsis: "A cryptographically secure PRNG" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "duration" + "logs" + "mirage-crypto" {=version} + "mirage-crypto-rng" {=version} + "mtime" {>= "1.0.0"} + "lwt" {>= "4.0.0"} +] +description: """ +Mirage-crypto-rng-lwt provides entropy collection code for the RNG using Lwt. +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto-rng-mirage/mirage-crypto-rng-mirage.0.11.3/opam b/packages/mirage-crypto-rng-mirage/mirage-crypto-rng-mirage.0.11.3/opam new file mode 100644 index 00000000000..1c250652606 --- /dev/null +++ b/packages/mirage-crypto-rng-mirage/mirage-crypto-rng-mirage.0.11.3/opam @@ -0,0 +1,41 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "BSD-2-Clause" +synopsis: "Entropy collection for a cryptographically secure PRNG" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "mirage-crypto-rng" {=version} + "duration" + "cstruct" {>= "4.0.0"} + "logs" + "lwt" {>= "4.0.0"} + "mirage-runtime" {>= "3.8.0"} + "mirage-time" {>= "2.0.0"} + "mirage-clock" {>= "3.0.0"} + "mirage-unix" {with-test & >= "5.0.0"} + "mirage-time-unix" {with-test & >= "2.0.0"} + "mirage-clock-unix" {with-test & >= "3.0.0"} +] +description: """ +Mirage-crypto-rng-mirage provides entropy collection code for the RNG. +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto-rng/mirage-crypto-rng.0.11.3/opam b/packages/mirage-crypto-rng/mirage-crypto-rng.0.11.3/opam new file mode 100644 index 00000000000..5098dd85cd6 --- /dev/null +++ b/packages/mirage-crypto-rng/mirage-crypto-rng.0.11.3/opam @@ -0,0 +1,40 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "ISC" +synopsis: "A cryptographically secure PRNG" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "dune-configurator" {>= "2.0.0"} + "duration" + "cstruct" {>= "6.0.0"} + "logs" + "mirage-crypto" {=version} + "ounit2" {with-test} + "randomconv" {with-test & >= "0.1.3"} +] +conflicts: [ "mirage-runtime" {< "3.8.0"} ] +description: """ +Mirage-crypto-rng provides a random number generator interface, and +implementations: Fortuna, HMAC-DRBG, getrandom/getentropy based (in the unix +sublibrary) +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051" diff --git a/packages/mirage-crypto/mirage-crypto.0.11.3/opam b/packages/mirage-crypto/mirage-crypto.0.11.3/opam new file mode 100644 index 00000000000..a61cd19df5e --- /dev/null +++ b/packages/mirage-crypto/mirage-crypto.0.11.3/opam @@ -0,0 +1,39 @@ +opam-version: "2.0" +homepage: "https://github.com/mirage/mirage-crypto" +dev-repo: "git+https://github.com/mirage/mirage-crypto.git" +bug-reports: "https://github.com/mirage/mirage-crypto/issues" +doc: "https://mirage.github.io/mirage-crypto/doc" +authors: ["David Kaloper " "Hannes Mehnert " ] +maintainer: "Hannes Mehnert " +license: "ISC" +synopsis: "Simple symmetric cryptography for the modern age" + +build: [ ["dune" "subst"] {dev} + ["dune" "build" "-p" name "-j" jobs ] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} ] + +depends: [ + "ocaml" {>= "4.08.0"} + "dune" {>= "2.7"} + "dune-configurator" {>= "2.0.0"} + "ounit2" {with-test} + "cstruct" {>="6.0.0"} + "eqaf" {>= "0.8"} +] +conflicts: [ + "ocaml-freestanding" + "result" {< "1.5"} +] +description: """ +Mirage-crypto provides symmetric ciphers (DES, AES, RC4, ChaCha20/Poly1305), and +hashes (MD5, SHA-1, SHA-2). +""" +url { + src: + "https://github.com/mirage/mirage-crypto/releases/download/v0.11.3/mirage-crypto-0.11.3.tbz" + checksum: [ + "sha256=bfb530fa169cd905ebc7e2449f3407cfbd67023ac0b291b8b6f4a1437a5d95b1" + "sha512=7b6f4e8128622b53eb2176881b5d6160f224e8606c7dd21aaf47974f15db7aa475cffaff3214aaaabba0f8986398f159c1fbb1bff29228c9b0a3fae67ef8d731" + ] +} +x-commit-hash: "3ebc0e3e1bb6c471292b9f0c18afa3ce20d5f051"