This commit is contained in:
swrup 2025-11-30 22:02:40 +01:00
parent 6fe1a5a0dd
commit 509f4da375

View file

@ -1,5 +1,9 @@
open Crypto
open Bin_type
open Api
let denom_signature ~master_key let denom_signature ~master_key
Api.FutureDenom. FutureDenom.
{ {
section_name= _; section_name= _;
value; value;
@ -21,15 +25,14 @@ let denom_signature ~master_key
| Rsa v -> v | Rsa v -> v
| CS _ -> Fmt.failwith "CS key types are not supported." | CS _ -> Fmt.failwith "CS key types are not supported."
in in
let pub = denom_pub.Api.RsaDenominationKey.rsa_pub in let pub = denom_pub.RsaDenominationKey.rsa_pub in
Crypto.RsaPublicKey.to_octets pub RsaPublicKey.to_octets pub
in in
let h_denom_pub = Api.HashCode.hash pub_octets in let h_denom_pub = HashCode.hash pub_octets in
let master = Crypto.EddsaPrivateKey.(pub_of_priv master_key) in
let denom_hash = Bin_type.DenominationHash.hash pub_octets in
let master_sig = let master_sig =
(*let open Bin_type in*)
let open Bin_signature.DenominationKeyValidityPS in let open Bin_signature.DenominationKeyValidityPS in
let master = EddsaPrivateKey.(pub_of_priv master_key) in
let denom_hash = DenominationHash.hash pub_octets in
{ {
master; master;
start= stamp_start; start= stamp_start;
@ -43,12 +46,12 @@ let denom_signature ~master_key
denom_hash; denom_hash;
} }
|> Bin.to_string bin |> Bin.to_string bin
|> Crypto.EddsaSignature.sign ~key:master_key |> EddsaSignature.sign ~key:master_key
in in
Api.DenomSignature.{ h_denom_pub; master_sig } DenomSignature.{ h_denom_pub; master_sig }
let signkey_signature ~master_key let signkey_signature ~master_key
Api.FutureSignKey. FutureSignKey.
{ {
key; key;
stamp_start; stamp_start;
@ -66,12 +69,12 @@ let signkey_signature ~master_key
signkey_pub= key; signkey_pub= key;
} }
|> Bin.to_string bin |> Bin.to_string bin
|> Crypto.EddsaSignature.sign ~key:master_key |> EddsaSignature.sign ~key:master_key
in in
Api.SignKeySignature.{ key; master_sig } SignKeySignature.{ key; master_sig }
let make_master_signatures ~master_key let make_master_signatures ~master_key
Api.FutureKeysResponse. FutureKeysResponse.
{ {
future_denoms; future_denoms;
future_signkeys; future_signkeys;
@ -82,7 +85,7 @@ let make_master_signatures ~master_key
} = } =
let denom_sigs = List.map (denom_signature ~master_key) future_denoms in let denom_sigs = List.map (denom_signature ~master_key) future_denoms in
let signkey_sigs = List.map (signkey_signature ~master_key) future_signkeys in let signkey_sigs = List.map (signkey_signature ~master_key) future_signkeys in
Api.MasterSignatures.{ denom_sigs; signkey_sigs } MasterSignatures.{ denom_sigs; signkey_sigs }
let verify_future_key_response _future_key_response = let verify_future_key_response _future_key_response =
(* TODO *) (* TODO *)