open Crypto open Time type t = { pub: eddsa_pub; stamp_start: Timestamp.t; stamp_expire: Timestamp.t; stamp_end: Timestamp.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.compare sk.stamp_start timestamp <= 0 && Timestamp.compare timestamp sk.stamp_end < 0