mte/src/secmod_denom.ml

24 lines
715 B
OCaml
Raw Normal View History

2025-10-16 08:23:40 +02:00
type rsa = {
coin: Types.Config_types.Coin.t;
pub: Types.RsaPublicKey.t;
sign: string -> string;
}
let hash_pub _pub = "todo public key converted to Crockford Base32"
let make_rsa (coin : Types.Config_types.Coin.t) =
assert (coin.cipher = `RSA);
assert (Option.is_some coin.rsa_keysize);
let rsa_keysize = coin.rsa_keysize |> Option.get in
let open Mirage_crypto_pk.Rsa in
let priv = generate ~bits:rsa_keysize () in
let pub = pub_of_priv priv in
let sign = decrypt ~crt_hardening:true ~mask:`Yes ~key:priv in
{ coin; pub; sign }
let denom_device =
let finally _key = () in
Vif.Device.v ~name:"rsa_denom" ~finally [] @@ fun () ->
let rsa_l = List.map make_rsa Config.coins in
rsa_l