This commit is contained in:
parent
43fd85b827
commit
91281b5dce
2 changed files with 19 additions and 27 deletions
|
|
@ -1,21 +0,0 @@
|
||||||
open Bos.OS
|
|
||||||
open Syntax
|
|
||||||
open Crypto
|
|
||||||
|
|
||||||
let read fname = File.read fname |> unwrap_err_msg
|
|
||||||
|
|
||||||
let write_eddsa fname priv =
|
|
||||||
EddsaPrivateKey.to_octets priv |> File.write fname |> unwrap_err_msg
|
|
||||||
|
|
||||||
let write_rsa fname priv =
|
|
||||||
RsaPrivateKey.to_octets priv |> File.write fname |> unwrap_err_msg
|
|
||||||
|
|
||||||
let read_eddsa fname =
|
|
||||||
let* data = read fname in
|
|
||||||
let+ v = EddsaPrivateKey.of_octets data in
|
|
||||||
v
|
|
||||||
|
|
||||||
let read_rsa fname =
|
|
||||||
let* data = read fname in
|
|
||||||
let+ v = RsaPrivateKey.of_octets data in
|
|
||||||
v
|
|
||||||
|
|
@ -45,6 +45,19 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
open Crypto
|
open Crypto
|
||||||
module DenominationHash = Hash.DenominationHash
|
module DenominationHash = Hash.DenominationHash
|
||||||
|
|
||||||
|
let read fname = Bos.OS.File.read fname |> unwrap_err_msg
|
||||||
|
let write fname s = Bos.OS.File.write fname s |> unwrap_err_msg
|
||||||
|
let write_eddsa fname priv = write fname (EddsaPrivateKey.to_octets priv)
|
||||||
|
let write_rsa fname priv = write fname (RsaPrivateKey.to_octets priv)
|
||||||
|
|
||||||
|
let read_eddsa fname =
|
||||||
|
let* data = read fname in
|
||||||
|
EddsaPrivateKey.of_octets data
|
||||||
|
|
||||||
|
let read_rsa fname =
|
||||||
|
let* data = read fname in
|
||||||
|
RsaPrivateKey.of_octets data
|
||||||
|
|
||||||
type sk = Signkey.t
|
type sk = Signkey.t
|
||||||
type future_sk = Api.FutureSignKey.t
|
type future_sk = Api.FutureSignKey.t
|
||||||
type dn = Denomination.t
|
type dn = Denomination.t
|
||||||
|
|
@ -205,10 +218,10 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
let list_to_ht l = Hashtbl.of_seq (List.to_seq l)
|
let list_to_ht l = Hashtbl.of_seq (List.to_seq l)
|
||||||
|
|
||||||
let load () =
|
let load () =
|
||||||
let* sm_key = Data_file.read_eddsa sm_key_fname in
|
let* sm_key = read_eddsa sm_key_fname in
|
||||||
let sm_pubkey = EddsaPrivateKey.pub_of_priv sm_key in
|
let sm_pubkey = EddsaPrivateKey.pub_of_priv sm_key in
|
||||||
|
|
||||||
let* sk_keys = list_map Data_file.read_eddsa (List.init 1 sk_fname) in
|
let* sk_keys = list_map read_eddsa (List.init 1 sk_fname) in
|
||||||
let* sk_l =
|
let* sk_l =
|
||||||
list_map
|
list_map
|
||||||
(fun priv ->
|
(fun priv ->
|
||||||
|
|
@ -226,7 +239,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
list_map
|
list_map
|
||||||
(fun coin ->
|
(fun coin ->
|
||||||
let section_name = coin.Config.Coin.section_name in
|
let section_name = coin.Config.Coin.section_name in
|
||||||
let+ priv = Data_file.read_rsa (dn_fname section_name) in
|
let+ priv = read_rsa (dn_fname section_name) in
|
||||||
(section_name, priv))
|
(section_name, priv))
|
||||||
Config.Coin.all_coins
|
Config.Coin.all_coins
|
||||||
in
|
in
|
||||||
|
|
@ -447,11 +460,11 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
Ok ()
|
Ok ()
|
||||||
|
|
||||||
let save () =
|
let save () =
|
||||||
let* () = Data_file.write_eddsa sm_key_fname t.sm_key in
|
let* () = write_eddsa sm_key_fname t.sm_key in
|
||||||
let* () =
|
let* () =
|
||||||
Hashtbl.to_seq_values t.sk_key_ht
|
Hashtbl.to_seq_values t.sk_key_ht
|
||||||
|> List.of_seq
|
|> List.of_seq
|
||||||
|> List.mapi (fun i priv -> Data_file.write_eddsa (sk_fname i) priv)
|
|> List.mapi (fun i priv -> write_eddsa (sk_fname i) priv)
|
||||||
|> list_iter Fun.id
|
|> list_iter Fun.id
|
||||||
in
|
in
|
||||||
let* () =
|
let* () =
|
||||||
|
|
@ -463,7 +476,7 @@ module Make (Conn : Pg.CONN) = struct
|
||||||
| None -> Error "invalid state, section_name not found"
|
| None -> Error "invalid state, section_name not found"
|
||||||
| Some s -> Ok s
|
| Some s -> Ok s
|
||||||
in
|
in
|
||||||
Data_file.write_rsa (dn_fname section_name) priv)
|
write_rsa (dn_fname section_name) priv)
|
||||||
in
|
in
|
||||||
Logs.info (fun m -> m "saved secmod private keys data");
|
Logs.info (fun m -> m "saved secmod private keys data");
|
||||||
Ok ()
|
Ok ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue