mte/src/secmod_keys.ml

22 lines
594 B
OCaml
Raw Normal View History

2025-10-16 08:23:40 +02:00
type t = {
pub: Mirage_crypto_ec.Ed25519.pub;
sign: string -> string;
}
let make ~name =
let finally _key = () in
Vif.Device.v ~name ~finally [] @@ fun () ->
(* TODO
- look if it exists
- if not, create it (TOFU initialization scheme)
- write it *)
let priv, pub = Mirage_crypto_ec.Ed25519.generate () in
{ pub; sign= Mirage_crypto_ec.Ed25519.sign ~key:priv }
let signkey_device = make ~name:"signkey"
(* the actual exchange's signing key
signed by the secmod signkey *)
let exchange_device = make ~name:"exchange"
let denom_device = make ~name:"denom"