22 lines
594 B
OCaml
22 lines
594 B
OCaml
|
|
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"
|