filter un-signed signkeys

This commit is contained in:
swrup 2026-01-22 04:10:26 +01:00
parent bf61b306ba
commit 0fed6735db

View file

@ -117,8 +117,11 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
List.map denomgroup_of_denomdata denom_data_l List.map denomgroup_of_denomdata denom_data_l
in in
let* signkeys = let signkeys =
let+ signkey_data_l = Pg.get_active_signkeys db_conn |> unwrap_err_caqti in (* TODO
use database signkey data / verify secmod and database are in sync *)
(*let+ signkey_data_l = Pg.get_active_signkeys db_conn |> unwrap_err_caqti in*)
let signkey_data_l = Secmod.get_signkeys_data sm in
let signkey_data_l = let signkey_data_l =
List.sort List.sort
(fun a b -> (fun a b ->
@ -126,7 +129,7 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
Stdlib.compare a.stamp_start b.stamp_start) Stdlib.compare a.stamp_start b.stamp_start)
signkey_data_l signkey_data_l
in in
List.map List.filter_map
(fun Signkey_data. (fun Signkey_data.
{ {
pub; pub;
@ -136,12 +139,12 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
master_sig; master_sig;
revoked_sig= _; revoked_sig= _;
} -> } ->
let master_sig = match master_sig with
match master_sig with | None -> None
| None -> Fmt.failwith "signkey_data without master_sig" | Some master_sig ->
| Some v -> v Some
in SignKey.
SignKey.{ key= pub; stamp_start; stamp_expire; stamp_end; master_sig }) { key= pub; stamp_start; stamp_expire; stamp_end; master_sig })
signkey_data_l signkey_data_l
in in
@ -155,17 +158,13 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
(* Compact EdDSA signature (binary-only) over the (* Compact EdDSA signature (binary-only) over the
contatentation of all of the master_sigs (in reverse contatentation of all of the master_sigs (in reverse
chronological order by group) in the arrays under "denominations". *) chronological order by group) in the arrays under "denominations". *)
let l = let hc =
List.map denom_data_l
(fun v -> |> List.filter_map (fun v -> v.Denom_data.master_sig)
match v.Denom_data.master_sig with |> List.map Bin_sig.DenominationKeyValidity.to_octets
| None -> Fmt.failwith "denom_data without master_sig" |> String.concat ""
| Some v -> v) |> Bin_type.Hash_64.hash
denom_data_l
in in
let l = List.map (fun v -> Bin_sig.DenominationKeyValidity.to_octets v) l in
let data = String.concat "" l in
let hc = Bin_type.Hash_64.hash data in
let open Bin_sig.ExchangeKeySet in let open Bin_sig.ExchangeKeySet in
sign_f sign_f
~f:(Secmod.sign_with_signkey sm ~pub:exchange_pub) ~f:(Secmod.sign_with_signkey sm ~pub:exchange_pub)