this repo has no description

[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 |

Changed files
+334
packages
mirage-crypto
mirage-crypto.0.11.3
mirage-crypto-ec
mirage-crypto-ec.0.11.3
mirage-crypto-pk
mirage-crypto-pk.0.11.3
mirage-crypto-rng
mirage-crypto-rng.0.11.3
mirage-crypto-rng-async
mirage-crypto-rng-async.0.11.3
mirage-crypto-rng-eio
mirage-crypto-rng-eio.0.11.3
mirage-crypto-rng-lwt
mirage-crypto-rng-lwt.0.11.3
mirage-crypto-rng-mirage
mirage-crypto-rng-mirage.0.11.3
+59
packages/mirage-crypto-ec/mirage-crypto-ec.0.11.3/opam
···
···
+
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 (<https://github.com/mit-plv/fiat-crypto>).
+
+
The curves P224 (SECP224R1), P256 (SECP256R1), P384 (SECP384R1),
+
P521 (SECP521R1), and 25519 (X25519, Ed25519) are implemented by this package.
+
"""
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
authors: [
+
"Hannes Mehnert <hannes@mehnert.org>"
+
"Nathan Rebours <nathan.p.rebours@gmail.com>"
+
"Clément Pascutto <clement@tarides.com>"
+
"Etienne Millon <me@emillon.org>"
+
# and from the fiat-crypto AUTHORS file
+
"Andres Erbsen <andreser@mit.edu>"
+
"Google Inc."
+
"Jade Philipoom <jadep@mit.edu> <jade.philipoom@gmail.com>"
+
"Massachusetts Institute of Technology"
+
"Zoe Paraskevopoulou <zoe.paraskevopoulou@gmail.com>"
+
]
+
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"
+42
packages/mirage-crypto-pk/mirage-crypto-pk.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"
+39
packages/mirage-crypto-rng-async/mirage-crypto-rng-async.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"
+
+38
packages/mirage-crypto-rng-eio/mirage-crypto-rng-eio.0.11.3/opam
···
···
+
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 <gbikal@gmail.com>" ]
+
maintainer: "Bikal Gurung <gbikal@gmail.com>"
+
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"
+36
packages/mirage-crypto-rng-lwt/mirage-crypto-rng-lwt.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"
+41
packages/mirage-crypto-rng-mirage/mirage-crypto-rng-mirage.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"
+40
packages/mirage-crypto-rng/mirage-crypto-rng.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"
+39
packages/mirage-crypto/mirage-crypto.0.11.3/opam
···
···
+
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 <dk505@cam.ac.uk>" "Hannes Mehnert <hannes@mehnert.org>" ]
+
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
+
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"