From 6bb14fcbf61f3f2ad437d31b5f738e7782085d7f Mon Sep 17 00:00:00 2001 From: swrup Date: Fri, 27 Feb 2026 20:57:30 +0100 Subject: [PATCH] --- src/keys.ml | 11 +++-------- src/signkey.ml | 10 ++++++++++ test/validate_response.ml | 19 ++++--------------- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/keys.ml b/src/keys.ml index 2c32e2ae..09d6da82 100644 --- a/src/keys.ml +++ b/src/keys.ml @@ -274,15 +274,10 @@ module Make (Conn : Pg.CONN) : S = struct } let verify_future_signkey Api.SignKeySignature.{ key; master_sig } = - let open Signatures.ExchangeSigningKeyValidity in let* fsk = find_future_signkey key in - verify Config.master_public_key master_sig - { - R.start= fsk.stamp_start; - expire= fsk.stamp_expire; - end_= fsk.stamp_end; - signkey_pub= key; - } + let sk = sk_of_future_sk fsk master_sig in + Signkey.verify_exchange_signing_key_validity ~key:Config.master_public_key + sk let verify_future_denomination Api.DenomSignature.{ h_denom_pub; master_sig } = diff --git a/src/signkey.ml b/src/signkey.ml index 8d58e117..78e4ea46 100644 --- a/src/signkey.ml +++ b/src/signkey.ml @@ -8,5 +8,15 @@ type t = { master_sig: Signatures.ExchangeSigningKeyValidity.t; } +let verify_exchange_signing_key_validity ~key sk = + let open Signatures.ExchangeSigningKeyValidity in + verify key sk.master_sig + { + R.start= sk.stamp_start; + expire= sk.stamp_expire; + end_= sk.stamp_end; + signkey_pub= sk.pub; + } + let is_valid_at ~timestamp sk = Timestamp.geq sk.stamp_start timestamp && Timestamp.lt timestamp sk.stamp_end diff --git a/test/validate_response.ml b/test/validate_response.ml index 068eaa57..5c9cd3c5 100644 --- a/test/validate_response.ml +++ b/test/validate_response.ml @@ -35,29 +35,18 @@ let keys content = }) in + let sk_l = List.map SignKey.to_signkey v.signkeys in let* () = - let open SignKey in - v.signkeys + sk_l |> list_iter - (fun { key; stamp_start; stamp_expire; stamp_end; master_sig } -> - let open Signatures.ExchangeSigningKeyValidity in - verify v.master_public_key master_sig - { - R.start= stamp_start; - expire= stamp_expire; - end_= stamp_end; - signkey_pub= key; - }) + (Signkey.verify_exchange_signing_key_validity ~key:v.exchange_pub) in let* () = - let opt = - List.find_opt (fun sk -> sk.SignKey.key = v.exchange_pub) v.signkeys - in + let opt = List.find_opt (fun sk -> sk.Signkey.pub = v.exchange_pub) sk_l in match opt with | None -> Fmt.error "exchange_pub is not in signkeys list" | Some sk -> - let sk = SignKey.to_signkey sk in (* TODO will need to fake time to validate expired data *) let now = Timestamp.of_ptime (Ptime_clock.now ()) in if Signkey.is_valid_at ~timestamp:now sk then Ok ()