rename
This commit is contained in:
parent
24b9adc300
commit
f6cf06591b
7 changed files with 30 additions and 30 deletions
|
|
@ -24,7 +24,7 @@ let config req _server _env =
|
||||||
for now we only have one item in each "denom group"
|
for now we only have one item in each "denom group"
|
||||||
change this once we have denom/signkey rotation *)
|
change this once we have denom/signkey rotation *)
|
||||||
let denomgroup_of_denomdata
|
let denomgroup_of_denomdata
|
||||||
Denom_data.
|
Denomination.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
value;
|
value;
|
||||||
|
|
@ -120,16 +120,16 @@ let mk_keys ~db_conn (module Sm : Secmod.S) ~last_issue_date =
|
||||||
let denom_data_l =
|
let denom_data_l =
|
||||||
(* reverse chronological order *)
|
(* reverse chronological order *)
|
||||||
List.sort
|
List.sort
|
||||||
(fun a b -> Stdlib.compare b.Denom_data.stamp_start a.stamp_start)
|
(fun a b -> Stdlib.compare b.Denomination.stamp_start a.stamp_start)
|
||||||
denom_data_l
|
denom_data_l
|
||||||
in
|
in
|
||||||
let list_issue_date =
|
let list_issue_date =
|
||||||
match denom_data_l with
|
match denom_data_l with
|
||||||
| [] -> Time.Timestamp.never
|
| [] -> Time.Timestamp.never
|
||||||
| v :: _ -> v.Denom_data.stamp_start
|
| v :: _ -> v.Denomination.stamp_start
|
||||||
in
|
in
|
||||||
let denominations =
|
let denominations =
|
||||||
let open Denom_data in
|
let open Denomination in
|
||||||
(* if `?last_issue_date` query param does not exactly match the `stamp_start`
|
(* if `?last_issue_date` query param does not exactly match the `stamp_start`
|
||||||
of one of the denomination keys, all keys are returned *)
|
of one of the denomination keys, all keys are returned *)
|
||||||
let l =
|
let l =
|
||||||
|
|
@ -162,12 +162,12 @@ let mk_keys ~db_conn (module Sm : Secmod.S) ~last_issue_date =
|
||||||
let signkey_data_l =
|
let signkey_data_l =
|
||||||
List.sort
|
List.sort
|
||||||
(fun a b ->
|
(fun a b ->
|
||||||
let open Signkey_data in
|
let open Signkey in
|
||||||
Stdlib.compare b.stamp_start a.stamp_start)
|
Stdlib.compare b.stamp_start a.stamp_start)
|
||||||
signkey_data_l
|
signkey_data_l
|
||||||
in
|
in
|
||||||
List.filter_map
|
List.filter_map
|
||||||
(fun Signkey_data.
|
(fun Signkey.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
stamp_start;
|
stamp_start;
|
||||||
|
|
@ -197,7 +197,7 @@ let mk_keys ~db_conn (module Sm : Secmod.S) ~last_issue_date =
|
||||||
chronological order by group) in the arrays under "denominations". *)
|
chronological order by group) in the arrays under "denominations". *)
|
||||||
let hc =
|
let hc =
|
||||||
denom_data_l
|
denom_data_l
|
||||||
|> List.filter_map (fun v -> v.Denom_data.master_sig)
|
|> List.filter_map (fun v -> v.Denomination.master_sig)
|
||||||
|> List.map Signatures.DenominationKeyValidity.to_octets
|
|> List.map Signatures.DenominationKeyValidity.to_octets
|
||||||
|> String.concat ""
|
|> String.concat ""
|
||||||
|> Hash.H64.hash
|
|> Hash.H64.hash
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ module Keys_get = struct
|
||||||
master_sig= _;
|
master_sig= _;
|
||||||
revoked_sig= _;
|
revoked_sig= _;
|
||||||
} :
|
} :
|
||||||
Denom_data.t) =
|
Denomination.t) =
|
||||||
let denom_pub =
|
let denom_pub =
|
||||||
DenominationKey.of_rsa RsaDenominationKey.{ age_mask; rsa_pub= pub }
|
DenominationKey.of_rsa RsaDenominationKey.{ age_mask; rsa_pub= pub }
|
||||||
in
|
in
|
||||||
|
|
@ -60,7 +60,7 @@ module Keys_get = struct
|
||||||
master_sig= _;
|
master_sig= _;
|
||||||
revoked_sig= _;
|
revoked_sig= _;
|
||||||
} :
|
} :
|
||||||
Signkey_data.t) =
|
Signkey.t) =
|
||||||
let signkey_secmod_sig =
|
let signkey_secmod_sig =
|
||||||
let open Signatures.SigningKeyAnnouncement in
|
let open Signatures.SigningKeyAnnouncement in
|
||||||
let exchange_pub = pub in
|
let exchange_pub = pub in
|
||||||
|
|
@ -74,14 +74,14 @@ module Keys_get = struct
|
||||||
let mk_future_keys_response (module Sm : Secmod.S) =
|
let mk_future_keys_response (module Sm : Secmod.S) =
|
||||||
let future_signkeys =
|
let future_signkeys =
|
||||||
Sm.get_signkeys_data ()
|
Sm.get_signkeys_data ()
|
||||||
|> List.filter (fun k -> Option.is_none k.Signkey_data.master_sig)
|
|> List.filter (fun k -> Option.is_none k.Signkey.master_sig)
|
||||||
|> List.map (fun signkey -> mk_future_signkey (module Sm) signkey)
|
|> List.map (fun signkey -> mk_future_signkey (module Sm) signkey)
|
||||||
in
|
in
|
||||||
let future_denoms =
|
let future_denoms =
|
||||||
Sm.get_denoms_data ()
|
Sm.get_denoms_data ()
|
||||||
|> List.filter (fun k -> Option.is_none k.Denom_data.master_sig)
|
|> List.filter (fun k -> Option.is_none k.Denomination.master_sig)
|
||||||
|> List.map (fun dn_data ->
|
|> List.map (fun dn_data ->
|
||||||
let opt = Sm.find_denom_section_name dn_data.Denom_data.h_pub in
|
let opt = Sm.find_denom_section_name dn_data.Denomination.h_pub in
|
||||||
match opt with
|
match opt with
|
||||||
| None -> Fmt.failwith "section_name not found."
|
| None -> Fmt.failwith "section_name not found."
|
||||||
| Some section_name ->
|
| Some section_name ->
|
||||||
|
|
@ -116,7 +116,7 @@ module Keys_post = struct
|
||||||
let verify_denom_signature (module Sm : Secmod.S)
|
let verify_denom_signature (module Sm : Secmod.S)
|
||||||
DenomSignature.{ h_denom_pub; master_sig } =
|
DenomSignature.{ h_denom_pub; master_sig } =
|
||||||
let* denom =
|
let* denom =
|
||||||
match Sm.find_denom_data h_denom_pub with
|
match Sm.find_denomination h_denom_pub with
|
||||||
| None ->
|
| None ->
|
||||||
Fmt.error
|
Fmt.error
|
||||||
"404 not found, One of the keys for which a signature was provided \
|
"404 not found, One of the keys for which a signature was provided \
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ let signkey_data =
|
||||||
let revoked_sig = option Signatures.MasterSigningKeyRevocation.caqti in
|
let revoked_sig = option Signatures.MasterSigningKeyRevocation.caqti in
|
||||||
custom
|
custom
|
||||||
~encode:(fun
|
~encode:(fun
|
||||||
Signkey_data.
|
Signkey.
|
||||||
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; revoked_sig }
|
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; revoked_sig }
|
||||||
->
|
->
|
||||||
match master_sig with
|
match master_sig with
|
||||||
|
|
@ -73,7 +73,7 @@ let denom_data =
|
||||||
let revoked_sig = option Signatures.MasterDenominationKeyRevocation.caqti in
|
let revoked_sig = option Signatures.MasterDenominationKeyRevocation.caqti in
|
||||||
custom
|
custom
|
||||||
~encode:(fun
|
~encode:(fun
|
||||||
Denom_data.
|
Denomination.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
value;
|
value;
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,10 @@ module type S = sig
|
||||||
|
|
||||||
(* TODO query database instead? *)
|
(* TODO query database instead? *)
|
||||||
val get_sm_key_pub : unit -> eddsa_pub
|
val get_sm_key_pub : unit -> eddsa_pub
|
||||||
val get_signkeys_data : unit -> Signkey_data.t list
|
val get_signkeys_data : unit -> Signkey.t list
|
||||||
val get_denoms_data : unit -> Denom_data.t list
|
val get_denoms_data : unit -> Denomination.t list
|
||||||
val find_signkey_data : eddsa_pub -> Signkey_data.t option
|
val find_signkey_data : eddsa_pub -> Signkey.t option
|
||||||
val find_denom_data : denomination_hash -> Denom_data.t option
|
val find_denomination : denomination_hash -> Denomination.t option
|
||||||
val find_denom_section_name : denomination_hash -> string option
|
val find_denom_section_name : denomination_hash -> string option
|
||||||
|
|
||||||
(* - management operations - *)
|
(* - management operations - *)
|
||||||
|
|
@ -57,12 +57,12 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
|
|
||||||
type signkey = {
|
type signkey = {
|
||||||
priv: eddsa_priv;
|
priv: eddsa_priv;
|
||||||
sk_data: Signkey_data.t;
|
sk_data: Signkey.t;
|
||||||
}
|
}
|
||||||
|
|
||||||
type denom = {
|
type denom = {
|
||||||
priv: rsa_priv;
|
priv: rsa_priv;
|
||||||
dn_data: Denom_data.t;
|
dn_data: Denomination.t;
|
||||||
}
|
}
|
||||||
|
|
||||||
type t = {
|
type t = {
|
||||||
|
|
@ -84,7 +84,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
(Fpath.to_string fname)
|
(Fpath.to_string fname)
|
||||||
| Some sk_data -> Ok sk_data
|
| Some sk_data -> Ok sk_data
|
||||||
|
|
||||||
let db_lookup_denom_data conn ~section_name priv =
|
let db_lookup_denomination conn ~section_name priv =
|
||||||
let pub = RsaPrivateKey.pub_of_priv priv in
|
let pub = RsaPrivateKey.pub_of_priv priv in
|
||||||
let h_pub = Hash.DenominationHash.hash (RsaPublicKey.to_octets pub) in
|
let h_pub = Hash.DenominationHash.hash (RsaPublicKey.to_octets pub) in
|
||||||
let* opt = Pg.find_denom conn h_pub |> unwrap_err_caqti in
|
let* opt = Pg.find_denom conn h_pub |> unwrap_err_caqti in
|
||||||
|
|
@ -133,7 +133,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
| None -> Ok None
|
| None -> Ok None
|
||||||
| Some priv ->
|
| Some priv ->
|
||||||
(* todo: could check that coin config match db values *)
|
(* todo: could check that coin config match db values *)
|
||||||
let* dn_data = db_lookup_denom_data conn ~section_name priv in
|
let* dn_data = db_lookup_denomination conn ~section_name priv in
|
||||||
Hashtbl.replace dn_section_name_ht dn_data.h_pub section_name;
|
Hashtbl.replace dn_section_name_ht dn_data.h_pub section_name;
|
||||||
let denom = { priv; dn_data } in
|
let denom = { priv; dn_data } in
|
||||||
Ok (Some denom))
|
Ok (Some denom))
|
||||||
|
|
@ -177,7 +177,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
let master_sig = None in
|
let master_sig = None in
|
||||||
let revoked_sig = None in
|
let revoked_sig = None in
|
||||||
let sk_data =
|
let sk_data =
|
||||||
Signkey_data.
|
Signkey.
|
||||||
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; revoked_sig }
|
{ pub; stamp_start; stamp_expire; stamp_end; master_sig; revoked_sig }
|
||||||
in
|
in
|
||||||
{ priv; sk_data }
|
{ priv; sk_data }
|
||||||
|
|
@ -217,7 +217,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
let master_sig = None in
|
let master_sig = None in
|
||||||
let revoked_sig = None in
|
let revoked_sig = None in
|
||||||
let dn_data =
|
let dn_data =
|
||||||
Denom_data.
|
Denomination.
|
||||||
{
|
{
|
||||||
pub;
|
pub;
|
||||||
value;
|
value;
|
||||||
|
|
@ -317,7 +317,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
let find_signkey_data pub =
|
let find_signkey_data pub =
|
||||||
find_signkey pub |> Option.map (fun v -> v.sk_data)
|
find_signkey pub |> Option.map (fun v -> v.sk_data)
|
||||||
|
|
||||||
let find_denom_data h_denom =
|
let find_denomination h_denom =
|
||||||
find_denom h_denom |> Option.map (fun v -> v.dn_data)
|
find_denom h_denom |> Option.map (fun v -> v.dn_data)
|
||||||
|
|
||||||
let find_denom_section_name h_denom =
|
let find_denom_section_name h_denom =
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,10 @@ module type S = sig
|
||||||
|
|
||||||
(* TODO query database instead? *)
|
(* TODO query database instead? *)
|
||||||
val get_sm_key_pub : unit -> eddsa_pub
|
val get_sm_key_pub : unit -> eddsa_pub
|
||||||
val get_signkeys_data : unit -> Signkey_data.t list
|
val get_signkeys_data : unit -> Signkey.t list
|
||||||
val get_denoms_data : unit -> Denom_data.t list
|
val get_denoms_data : unit -> Denomination.t list
|
||||||
val find_signkey_data : eddsa_pub -> Signkey_data.t option
|
val find_signkey_data : eddsa_pub -> Signkey.t option
|
||||||
val find_denom_data : denomination_hash -> Denom_data.t option
|
val find_denomination : denomination_hash -> Denomination.t option
|
||||||
val find_denom_section_name : denomination_hash -> string option
|
val find_denom_section_name : denomination_hash -> string option
|
||||||
|
|
||||||
(* - management operations - *)
|
(* - management operations - *)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue