diff --git a/src/crypto.ml b/src/crypto.ml index 6abf3849..71c2fa37 100644 --- a/src/crypto.ml +++ b/src/crypto.ml @@ -47,6 +47,11 @@ module EddsaPrivateKey = struct type t = priv + (* + let generate () = + Mirage_crypto_ec.Ed25519.generate () + *) + let pub_of_priv = pub_of_priv let to_octets t = priv_to_octets t diff --git a/src/eddsa_key.ml b/src/eddsa_key.ml new file mode 100644 index 00000000..83716d56 --- /dev/null +++ b/src/eddsa_key.ml @@ -0,0 +1,20 @@ +open Crypto + +type secmod +type signkey +type master +type 'a priv = EddsaPrivateKey.t +type 'a pub = EddsaPublicKey.t + +type 'a t = { + priv: 'a priv; + pub: 'a pub; +} + +let generate () = + let priv, pub = Mirage_crypto_ec.Ed25519.generate () in + { priv; pub } + +let generate_secmod = generate +let generate_signkey = generate +let generate_master = generate diff --git a/src/eddsa_key.mli b/src/eddsa_key.mli new file mode 100644 index 00000000..1fe5a023 --- /dev/null +++ b/src/eddsa_key.mli @@ -0,0 +1,16 @@ +(*open Crypto*) + +type secmod +type signkey +type master +type 'a priv +type 'a pub + +type 'a t = { + priv: 'a priv; + pub: 'a pub; +} + +val generate_secmod : unit -> secmod t +val generate_signkey : unit -> signkey t +val generate_master : unit -> master t