This commit is contained in:
swrup 2026-02-18 20:45:22 +01:00
parent 7fe27b6e2a
commit 50a81663cd

View file

@ -288,44 +288,47 @@ module Make (Conn : Pg.CONN) = struct
let find_future_denomination h_pub = Hashtbl.find_opt t.future_dn_ht h_pub
let certify_future_signkey pub ~master_sig =
match
( Hashtbl.find_opt t.future_sk_ht pub,
Hashtbl.find_opt t.future_sk_key_ht pub )
with
| None, _ | _, None ->
Error "Keys certify_future_signkey: future signkey not found."
| Some future_sk, Some priv -> (
match Hashtbl.find_opt t.sk_ht pub with
| Some _sk -> Error "Keys certify_future_signkey: already certified"
| None ->
let Api.FutureSignKey.
{
key;
stamp_start;
stamp_expire;
stamp_end;
signkey_secmod_sig= _;
} =
future_sk
in
let sk =
Signkey.
{
pub= key;
stamp_start;
stamp_expire;
stamp_end;
master_sig;
revoked_sig= None;
}
in
Hashtbl.replace t.sk_ht pub sk;
Hashtbl.replace t.sk_key_ht pub priv;
Hashtbl.remove t.future_sk_ht pub;
Hashtbl.remove t.future_sk_key_ht pub;
let* priv, future_sk =
match
( Hashtbl.find_opt t.future_sk_key_ht pub,
Hashtbl.find_opt t.future_sk_ht pub )
with
| None, None ->
Error "Keys certify_future_signkey: future signkey not found."
| None, _ | _, None -> Error "Keys invalid state"
| Some priv, Some future_sk -> Ok (priv, future_sk)
in
match Hashtbl.find_opt t.sk_ht pub with
| Some _sk -> Error "Keys certify_future_signkey: already certified"
| None ->
let Api.FutureSignKey.
{
key;
stamp_start;
stamp_expire;
stamp_end;
signkey_secmod_sig= _;
} =
future_sk
in
let sk =
Signkey.
{
pub= key;
stamp_start;
stamp_expire;
stamp_end;
master_sig;
revoked_sig= None;
}
in
Hashtbl.replace t.sk_ht pub sk;
Hashtbl.replace t.sk_key_ht pub priv;
Hashtbl.remove t.future_sk_ht pub;
Hashtbl.remove t.future_sk_key_ht pub;
let* () = Pg.insert_signkey (module Conn) sk |> unwrap_err_caqti in
Ok ())
let* () = Pg.insert_signkey (module Conn) sk |> unwrap_err_caqti in
Ok ()
let certify_future_denomination h_pub ~master_sig =
match