1{
2 lib,
3 buildDunePackage,
4 mirage-crypto,
5 dune-configurator,
6 pkg-config,
7 mirage-crypto-rng,
8 alcotest,
9 asn1-combinators,
10 ohex,
11 ounit2,
12 ppx_deriving_yojson,
13 ppx_deriving,
14 yojson,
15 withFreestanding ? false,
16 ocaml-freestanding,
17}:
18
19buildDunePackage {
20 pname = "mirage-crypto-ec";
21
22 inherit (mirage-crypto)
23 src
24 version
25 ;
26
27 nativeBuildInputs = [ pkg-config ];
28 buildInputs = [
29 dune-configurator
30 ];
31 propagatedBuildInputs = [
32 mirage-crypto
33 mirage-crypto-rng
34 ]
35 ++ lib.optionals withFreestanding [
36 ocaml-freestanding
37 ];
38
39 doCheck = true;
40 checkInputs = [
41 alcotest
42 asn1-combinators
43 ohex
44 ounit2
45 ppx_deriving_yojson
46 ppx_deriving
47 yojson
48 ];
49
50 meta = mirage-crypto.meta // {
51 description = "Elliptic Curve Cryptography with primitives taken from Fiat";
52 };
53}