From 5abb872d1fdb4f99dad066125e5345734d0e0ba8 Mon Sep 17 00:00:00 2001 From: swrup Date: Thu, 5 Feb 2026 19:26:59 +0100 Subject: [PATCH] --- src/api.ml | 2 +- src/denom_data.ml | 4 ++-- src/http_keys.ml | 4 ++-- src/http_management.ml | 32 +++++++++++++++---------------- src/pg.ml | 10 +++++----- src/pg_type.ml | 20 +++++++++---------- src/secmod.ml | 10 ++++++---- src/secmod.mli | 10 ++++++---- src/{bin_sig.ml => signatures.ml} | 0 src/signkey_data.ml | 4 ++-- tools/offline_impl.ml | 14 +++++++------- tools/offline_sig.ml | 8 ++++---- 12 files changed, 61 insertions(+), 57 deletions(-) rename src/{bin_sig.ml => signatures.ml} (100%) diff --git a/src/api.ml b/src/api.ml index 48f49b1b..1055f077 100644 --- a/src/api.ml +++ b/src/api.ml @@ -22,7 +22,7 @@ - number is "float", but we probably want int everywhere instead - numeric values capped at 2^53 -1 inclusive because json *) open Crypto -open Bin_sig +open Signatures open Jsont.Object module DenominationHash = Hash.DenominationHash diff --git a/src/denom_data.ml b/src/denom_data.ml index c9cb8615..7d94367d 100644 --- a/src/denom_data.ml +++ b/src/denom_data.ml @@ -13,6 +13,6 @@ type t = { fee_refund: Amount.t; age_mask: int; h_pub: denomination_hash; - master_sig: Bin_sig.DenominationKeyValidity.t option; - revoked_sig: Bin_sig.MasterDenominationKeyRevocation.t option; + master_sig: Signatures.DenominationKeyValidity.t option; + revoked_sig: Signatures.MasterDenominationKeyRevocation.t option; } diff --git a/src/http_keys.ml b/src/http_keys.ml index c5fdfada..a0662948 100644 --- a/src/http_keys.ml +++ b/src/http_keys.ml @@ -180,11 +180,11 @@ let mk_keys ~db_conn (module Sm : Secmod.S) ~last_issue_date = let hc = denom_data_l |> List.filter_map (fun v -> v.Denom_data.master_sig) - |> List.map Bin_sig.DenominationKeyValidity.to_octets + |> List.map Signatures.DenominationKeyValidity.to_octets |> String.concat "" |> Hash.H64.hash in - let open Bin_sig.ExchangeKeySet in + let open Signatures.ExchangeKeySet in sign_f ~f:(Sm.sign_with_signkey ~pub:exchange_pub) R.{ list_issue_date; hc } in diff --git a/src/http_management.ml b/src/http_management.ml index 8c2da282..61cb5e5e 100644 --- a/src/http_management.ml +++ b/src/http_management.ml @@ -25,7 +25,7 @@ module Keys_get = struct DenominationKey.of_rsa RsaDenominationKey.{ age_mask; rsa_pub= pub } in let denom_secmod_sig = - let open Bin_sig.DenominationKeyAnnouncement in + let open Signatures.DenominationKeyAnnouncement in let h_denom_pub = h_pub in let h_section_name = Hash.Cstring.H64.hash section_name in let anchor_time = stamp_start in @@ -62,7 +62,7 @@ module Keys_get = struct } : Signkey_data.t) = let signkey_secmod_sig = - let open Bin_sig.SigningKeyAnnouncement in + let open Signatures.SigningKeyAnnouncement in let exchange_pub = pub in let anchor_time = stamp_start in let duration = Timestamp.diff stamp_start stamp_expire in @@ -123,7 +123,7 @@ module Keys_post = struct is unknown to the exchange." | Some denom -> Ok denom in - let open Bin_sig.DenominationKeyValidity in + let open Signatures.DenominationKeyValidity in let r : r = { master= Config.master_public_key; @@ -150,7 +150,7 @@ module Keys_post = struct is unknown to the exchange." | Some signkey -> Ok signkey in - let open Bin_sig.ExchangeSigningKeyValidity in + let open Signatures.ExchangeSigningKeyValidity in let r : r = { start= signkey.stamp_start; @@ -220,7 +220,7 @@ end module Denom_revoke = struct let verify (module Sm : Secmod.S) h_denom_pub DenomRevocationSignature.{ master_sig } = - let open Bin_sig.MasterDenominationKeyRevocation in + let open Signatures.MasterDenominationKeyRevocation in verify_f ~f:Sm.verify_with_master_key master_sig { h_denom_pub } let do_ ~db_conn (module Sm : Secmod.S) h_denom_pub @@ -251,7 +251,7 @@ end module Signkey_revoke = struct let verify (module Sm : Secmod.S) exchange_pub SignkeyRevocationSignature.{ master_sig } = - let open Bin_sig.MasterSigningKeyRevocation in + let open Signatures.MasterSigningKeyRevocation in verify_f ~f:Sm.verify_with_master_key master_sig { exchange_pub } let do_ ~db_conn (module Sm : Secmod.S) exchange_pub @@ -289,7 +289,7 @@ module Auditors = struct master_sig; validity_start; } = - let open Bin_sig.MasterAddAuditor in + let open Signatures.MasterAddAuditor in verify_f ~f:Sm.verify_with_master_key master_sig { start_date= validity_start; @@ -338,7 +338,7 @@ end module Auditors_disable = struct let verify (module Sm : Secmod.S) auditor_pub AuditorTeardownMessage.{ master_sig; validity_end } = - let open Bin_sig.MasterDelAuditor in + let open Signatures.MasterDelAuditor in verify_f ~f:Sm.verify_with_master_key master_sig { end_date= validity_end; auditor_pub } @@ -387,7 +387,7 @@ module Wire_fee = struct closing_fee; wire_fee; } = - let open Bin_sig.MasterWireFee in + let open Signatures.MasterWireFee in verify_f ~f:Sm.verify_with_master_key master_sig_wire { h_wire_method= Hash.Cstring.H64.hash wire_method; @@ -454,7 +454,7 @@ module Global_fees = struct let kyc_timeout = Time.Relative.forever in let kyc_fee = Amount.dummy_value in (* * *) - let open Bin_sig.GlobalFees in + let open Signatures.GlobalFees in verify_f ~f:Sm.verify_with_master_key master_sig { start_date; @@ -529,7 +529,7 @@ module Wire = struct let credit_restrictions = "" in let debit_restrictions = "" in let* () = - let open Bin_sig.MasterWireDetails in + let open Signatures.MasterWireDetails in verify_f ~f:Sm.verify_with_master_key master_sig_wire { h_wire_details= FullPaytoHash.hash payto_uri; @@ -539,7 +539,7 @@ module Wire = struct } in let* () = - let open Bin_sig.MasterAddWire in + let open Signatures.MasterAddWire in verify_f ~f:Sm.verify_with_master_key master_sig_add { start_date= validity_start; @@ -594,7 +594,7 @@ end module Wire_disable = struct let verify (module Sm : Secmod.S) WireTeardownMessage.{ payto_uri; master_sig_del; validity_end } = - let open Bin_sig.MasterDelWire in + let open Signatures.MasterDelWire in verify_f ~f:Sm.verify_with_master_key master_sig_del { end_date= validity_end; h_wire= FullPaytoHash.hash payto_uri } @@ -637,7 +637,7 @@ module Drain = struct date; amount; } = - let open Bin_sig.MasterDrainProfit in + let open Signatures.MasterDrainProfit in verify_f ~f:Sm.verify_with_master_key master_sig { wtid; @@ -677,7 +677,7 @@ module AmlOfficer = struct master_sig; change_date; } = - let open Bin_sig.MasterAmlOfficerStatus in + let open Signatures.MasterAmlOfficerStatus in let is_active = match is_active with true -> 1_l | false -> 0_l in verify_f ~f:Sm.verify_with_master_key master_sig { @@ -718,7 +718,7 @@ module Partners = struct end_date; wad_fee; } = - let open Bin_sig.PartnerConfiguration in + let open Signatures.PartnerConfiguration in verify_f ~f:Sm.verify_with_master_key master_sig { partner_pub; diff --git a/src/pg.ml b/src/pg.ml index f57985e1..32428045 100644 --- a/src/pg.ml +++ b/src/pg.ml @@ -111,7 +111,7 @@ let insert_denom = let insert_denomination_revocation = let denomination_revocation_insert = - let master_sig = Bin_sig.MasterDenominationKeyRevocation.caqti in + let master_sig = Signatures.MasterDenominationKeyRevocation.caqti in Caqti_type.(t2 denomination_hash master_sig ->. unit) "INSERT INTO denomination_revocations (denominations_serial, master_sig) \ SELECT denominations_serial, $2 FROM denominations WHERE \ @@ -122,7 +122,7 @@ let insert_denomination_revocation = let insert_signkey_revocation = let signkey_revocation_insert = - let master_sig = Bin_sig.MasterSigningKeyRevocation.caqti in + let master_sig = Signatures.MasterSigningKeyRevocation.caqti in Caqti_type.(t2 eddsa_pub master_sig ->. unit) "INSERT INTO signkey_revocations (esk_serial, master_sig) SELECT \ esk_serial, $2 FROM exchange_sign_keys WHERE exchange_pub=$1" @@ -175,7 +175,7 @@ let disable_auditor = let insert_auditor_denom_sig = let insert_auditor_denom_sig = - let auditor_sig = Bin_sig.ExchangeKeyValidity.caqti in + let auditor_sig = Signatures.ExchangeKeyValidity.caqti in Caqti_type.(t3 eddsa_pub denomination_hash auditor_sig ->. unit) "WITH ax AS (SELECT auditor_uuid FROM auditors WHERE auditor_pub=$1) \ INSERT INTO auditor_denom_sigs (auditor_uuid, denominations_serial, \ @@ -192,7 +192,7 @@ let insert_auditor_denom_sig = (* this does not return auditors that are not auditing any denom *) let get_auditor_keys = let get_auditor_keys = - let auditor_sig = Bin_sig.ExchangeKeyValidity.caqti in + let auditor_sig = Signatures.ExchangeKeyValidity.caqti in Caqti_type.( unit ->* t5 eddsa_pub string string denomination_hash auditor_sig) "SELECT a.auditor_pub, a.auditor_url, a.auditor_name, dn.denom_pub_hash, \ @@ -229,7 +229,7 @@ let get_auditor_keys = let insert_wire_fee = let insert_wire_fee = - let master_sig = Bin_sig.MasterWireFee.caqti in + let master_sig = Signatures.MasterWireFee.caqti in Caqti_type.(t6 wire_method time time amount amount master_sig ->. unit) "INSERT INTO wire_fee (wire_method, start_date, end_date, wire_fee, \ closing_fee, master_sig) VALUES ($1, $2, $3, ($4,$5), ($6,$7), $8)" diff --git a/src/pg_type.ml b/src/pg_type.ml index c274be25..0a2e8f15 100644 --- a/src/pg_type.ml +++ b/src/pg_type.ml @@ -47,8 +47,8 @@ include struct end let signkey_data = - let master_sig = Bin_sig.ExchangeSigningKeyValidity.caqti in - let revoked_sig = option Bin_sig.MasterSigningKeyRevocation.caqti in + let master_sig = Signatures.ExchangeSigningKeyValidity.caqti in + let revoked_sig = option Signatures.MasterSigningKeyRevocation.caqti in custom ~encode:(fun Signkey_data. @@ -72,8 +72,8 @@ let signkey_data = (t6 eddsa_pub time time time master_sig revoked_sig) let denom_data = - let master_sig = Bin_sig.DenominationKeyValidity.caqti in - let revoked_sig = option Bin_sig.MasterDenominationKeyRevocation.caqti in + let master_sig = Signatures.DenominationKeyValidity.caqti in + let revoked_sig = option Signatures.MasterDenominationKeyRevocation.caqti in custom ~encode:(fun Denom_data. @@ -151,7 +151,7 @@ let account_restrictions = string let global_fee = - let master_sig = Bin_sig.GlobalFees.caqti in + let master_sig = Signatures.GlobalFees.caqti in custom ~encode:(fun GlobalFees. @@ -204,7 +204,7 @@ let global_fee = t9 time time amount amount amount time_span int32 time_span master_sig) let aggregate_transfer_fee = - let master_sig = Bin_sig.MasterWireFee.caqti in + let master_sig = Signatures.MasterWireFee.caqti in Caqti_type.custom ~encode:(fun AggregateTransferFee. @@ -217,7 +217,7 @@ let aggregate_transfer_fee = Caqti_type.(t5 amount amount time time master_sig) let exchange_wire_account = - let master_sig = Bin_sig.MasterWireDetails.caqti in + let master_sig = Signatures.MasterWireDetails.caqti in Caqti_type.custom ~encode:(fun ExchangeWireAccount. @@ -263,7 +263,7 @@ let exchange_wire_account = master_sig (option string) (option int)) let drain_profit_message = - let master_sig = Bin_sig.MasterDrainProfit.caqti in + let master_sig = Signatures.MasterDrainProfit.caqti in Caqti_type.custom ~encode:(fun DrainProfitsMessage. @@ -293,7 +293,7 @@ let drain_profit_message = Caqti_type.(t6 b32 string string time amount master_sig) let aml_officer_setup = - let master_sig = Bin_sig.MasterAmlOfficerStatus.caqti in + let master_sig = Signatures.MasterAmlOfficerStatus.caqti in Caqti_type.custom ~encode:(fun AmlOfficerSetup. @@ -333,7 +333,7 @@ let aml_officer_setup = Caqti_type.(t6 eddsa_pub master_sig string bool bool time) let exchange_partner_setup = - let master_sig = Bin_sig.PartnerConfiguration.caqti in + let master_sig = Signatures.PartnerConfiguration.caqti in Caqti_type.custom ~encode:(fun ExchangePartnerSetupRequest. diff --git a/src/secmod.ml b/src/secmod.ml index deb9f53b..ed74310f 100644 --- a/src/secmod.ml +++ b/src/secmod.ml @@ -23,19 +23,21 @@ module type S = sig do db interaction from secmod? *) val add_signkey_master_signatures : - (eddsa_pub * Bin_sig.ExchangeSigningKeyValidity.t) list -> + (eddsa_pub * Signatures.ExchangeSigningKeyValidity.t) list -> (unit, string) result val add_denom_master_signatures : - (denomination_hash * Bin_sig.DenominationKeyValidity.t) list -> + (denomination_hash * Signatures.DenominationKeyValidity.t) list -> (unit, string) result val revoke_signkey : - eddsa_pub -> Bin_sig.MasterSigningKeyRevocation.t -> (unit, string) result + eddsa_pub -> + Signatures.MasterSigningKeyRevocation.t -> + (unit, string) result val revoke_denomination : denomination_hash -> - Bin_sig.MasterDenominationKeyRevocation.t -> + Signatures.MasterDenominationKeyRevocation.t -> (unit, string) result val store : unit -> (unit, string) result diff --git a/src/secmod.mli b/src/secmod.mli index 33b6aa21..0205b866 100644 --- a/src/secmod.mli +++ b/src/secmod.mli @@ -23,19 +23,21 @@ module type S = sig do db interaction from secmod? *) val add_signkey_master_signatures : - (eddsa_pub * Bin_sig.ExchangeSigningKeyValidity.t) list -> + (eddsa_pub * Signatures.ExchangeSigningKeyValidity.t) list -> (unit, string) result val add_denom_master_signatures : - (denomination_hash * Bin_sig.DenominationKeyValidity.t) list -> + (denomination_hash * Signatures.DenominationKeyValidity.t) list -> (unit, string) result val revoke_signkey : - eddsa_pub -> Bin_sig.MasterSigningKeyRevocation.t -> (unit, string) result + eddsa_pub -> + Signatures.MasterSigningKeyRevocation.t -> + (unit, string) result val revoke_denomination : denomination_hash -> - Bin_sig.MasterDenominationKeyRevocation.t -> + Signatures.MasterDenominationKeyRevocation.t -> (unit, string) result val store : unit -> (unit, string) result diff --git a/src/bin_sig.ml b/src/signatures.ml similarity index 100% rename from src/bin_sig.ml rename to src/signatures.ml diff --git a/src/signkey_data.ml b/src/signkey_data.ml index e5700d64..22a7a0cd 100644 --- a/src/signkey_data.ml +++ b/src/signkey_data.ml @@ -5,6 +5,6 @@ type t = { stamp_start: Timestamp.t; stamp_expire: Timestamp.t; stamp_end: Timestamp.t; - master_sig: Bin_sig.ExchangeSigningKeyValidity.t option; - revoked_sig: Bin_sig.MasterSigningKeyRevocation.t option; + master_sig: Signatures.ExchangeSigningKeyValidity.t option; + revoked_sig: Signatures.MasterSigningKeyRevocation.t option; } diff --git a/tools/offline_impl.ml b/tools/offline_impl.ml index e56fdbc1..3438ec66 100644 --- a/tools/offline_impl.ml +++ b/tools/offline_impl.ml @@ -64,7 +64,7 @@ let revoke_denom ~output ~master_key ~h_denom = let* h_denom_pub = DenominationHash.of_b32 h_denom in let denom_revoke = let master_sig = - let open Bin_sig.MasterDenominationKeyRevocation in + let open Signatures.MasterDenominationKeyRevocation in sign_f ~f:(Crypto.EddsaSignature.sign ~key) { h_denom_pub } in Api.DenomRevocationSignature.{ master_sig } @@ -77,7 +77,7 @@ let revoke_signkey ~output ~master_key ~signkey = let* key = read_master_key_file master_key in let signkey_revoke = let master_sig = - let open Bin_sig.MasterSigningKeyRevocation in + let open Signatures.MasterSigningKeyRevocation in sign_f ~f:(Crypto.EddsaSignature.sign ~key) { exchange_pub= signkey } in Api.SignkeyRevocationSignature.{ master_sig } @@ -100,7 +100,7 @@ let global_fees ~output ~master_key ~start_date ~end_date ~history_fee | true -> Ok (Int32.of_int purse_account_limit) in let master_sig = - let open Bin_sig.GlobalFees in + let open Signatures.GlobalFees in (* TODO KYC *) let kyc_timeout = Time.Relative.forever in let kyc_fee = Amount.dummy_value in @@ -141,7 +141,7 @@ let enable_auditor ~output ~master_key ~auditor_url ~auditor_name ~auditor_pub let open Crypto in let* key = read_master_key_file master_key in let master_sig = - let open Bin_sig.MasterAddAuditor in + let open Signatures.MasterAddAuditor in sign_f ~f:(EddsaSignature.sign ~key) { start_date= validity_start; @@ -161,7 +161,7 @@ let disable_auditor ~output ~master_key ~auditor_pub ~validity_end = let open Crypto in let* key = read_master_key_file master_key in let master_sig = - let open Bin_sig.MasterDelAuditor in + let open Signatures.MasterDelAuditor in sign_f ~f:(EddsaSignature.sign ~key) { end_date= validity_end; auditor_pub } in let v = Api.AuditorTeardownMessage.{ master_sig; validity_end } in @@ -174,7 +174,7 @@ let wire_fee ~output ~master_key ~wire_method ~fee_start ~fee_end ~closing_fee let open Crypto in let* key = read_master_key_file master_key in let master_sig_wire = - let open Bin_sig.MasterWireFee in + let open Signatures.MasterWireFee in sign_f ~f:(EddsaSignature.sign ~key) { h_wire_method= Hash.Cstring.H64.hash wire_method; @@ -204,7 +204,7 @@ let drain ~output ~master_key ~debit_account_section ~credit_payto_uri ~wtid let open Crypto in let* key = read_master_key_file master_key in let master_sig = - let open Bin_sig.MasterDrainProfit in + let open Signatures.MasterDrainProfit in sign_f ~f:(EddsaSignature.sign ~key) { wtid; diff --git a/tools/offline_sig.ml b/tools/offline_sig.ml index aca4f735..94675300 100644 --- a/tools/offline_sig.ml +++ b/tools/offline_sig.ml @@ -24,7 +24,7 @@ let verify_future_keys_response = let h_section_name = Hash.Cstring.H64.hash section_name in let anchor_time = stamp_start in let duration_withdraw = Timestamp.diff stamp_start stamp_expire_withdraw in - let open Bin_sig.DenominationKeyAnnouncement in + let open Signatures.DenominationKeyAnnouncement in verify_f ~f:(EddsaSignature.verify ~key:sm_denom_pub) denom_secmod_sig @@ -36,7 +36,7 @@ let verify_future_keys_response = let exchange_pub = key in let anchor_time = stamp_start in let duration = Timestamp.diff stamp_start stamp_expire in - let open Bin_sig.SigningKeyAnnouncement in + let open Signatures.SigningKeyAnnouncement in verify_f ~f:(EddsaSignature.verify ~key:sm_signkey_pub) signkey_secmod_sig @@ -93,7 +93,7 @@ let mk_future_keys = let octets = DenominationKey.to_octets denom_pub in let h_denom_pub = DenominationHash.hash octets in let master_sig = - let open Bin_sig.DenominationKeyValidity in + let open Signatures.DenominationKeyValidity in let master = EddsaPrivateKey.(pub_of_priv master_key) in sign_f ~f:(EddsaSignature.sign ~key:master_key) @@ -116,7 +116,7 @@ let mk_future_keys = FutureSignKey. { key; stamp_start; stamp_expire; stamp_end; signkey_secmod_sig= _ } = let master_sig = - let open Bin_sig.ExchangeSigningKeyValidity in + let open Signatures.ExchangeSigningKeyValidity in sign_f ~f:(EddsaSignature.sign ~key:master_key) {