This commit is contained in:
swrup 2026-02-21 17:13:33 +01:00
parent 9b2865ec1f
commit 4ad4b20119
3 changed files with 22 additions and 22 deletions

View file

@ -273,7 +273,7 @@ module Make (Conn : Pg.CONN) = struct
match opt with match opt with
| None -> Error "signkey not found" | None -> Error "signkey not found"
| Some _sk -> | Some _sk ->
let* () = Secmod_eddsa.revoke_key pub in let* () = Secmod_eddsa.revoke pub in
let+ () = let+ () =
Pg.insert_signkey_revocation conn pub revoked_sig |> unwrap_err_caqti Pg.insert_signkey_revocation conn pub revoked_sig |> unwrap_err_caqti
in in
@ -285,7 +285,7 @@ module Make (Conn : Pg.CONN) = struct
| None -> Error "denomination not found" | None -> Error "denomination not found"
| Some sk -> | Some sk ->
let pub = sk.pub in let pub = sk.pub in
let* () = Secmod_rsa.revoke_key pub in let* () = Secmod_rsa.revoke pub in
let+ () = let+ () =
Pg.insert_denomination_revocation conn h_pub revoked_sig Pg.insert_denomination_revocation conn h_pub revoked_sig
|> unwrap_err_caqti |> unwrap_err_caqti

View file

@ -176,16 +176,16 @@ let keys () =
let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s
let find_key pub = let find pub =
Hashtbl.find_opt t.ht pub |> Option.to_result ~none:"key not found" Hashtbl.find_opt t.ht pub |> Option.to_result ~none:"key not found"
let sign ~pub s = let sign ~pub s =
let+ k = find_key pub in let+ k = find pub in
let data = EddsaSignature.sign ~key:k.priv s in let data = EddsaSignature.sign ~key:k.priv s in
data data
let delete_key pub = let delete pub =
let* k = find_key pub in let* k = find pub in
Hashtbl.remove t.ht k.pub; delete_key_file k Hashtbl.remove t.ht k.pub; delete_key_file k
let delete_outdated ~now = let delete_outdated ~now =
@ -193,19 +193,19 @@ let delete_outdated ~now =
|> List.of_seq |> List.of_seq
|> List.filter (fun k -> Absolute.compare now k.t2 >= 0) |> List.filter (fun k -> Absolute.compare now k.t2 >= 0)
|> List.map (fun k -> k.pub) |> List.map (fun k -> k.pub)
|> list_iter delete_key |> list_iter delete
let add_key t1 t2 = let add t1 t2 =
let priv, pub = EddsaPrivateKey.generate () in let priv, pub = EddsaPrivateKey.generate () in
let k = { priv; pub; t1; t2 } in let k = { priv; pub; t1; t2 } in
Hashtbl.replace t.ht k.pub k; Hashtbl.replace t.ht k.pub k;
() ()
(* delete and replace *) (* delete and replace *)
let revoke_key pub = let revoke pub =
let* k = find_key pub in let* k = find pub in
let* () = delete_key pub in let* () = delete pub in
add_key k.t1 k.t2; Ok () add k.t1 k.t2; Ok ()
(* TODO (* TODO
- more checks - more checks

View file

@ -203,16 +203,16 @@ let keys () =
let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s let sign_secmod s = EddsaSignature.sign ~key:t.sm_key_priv s
let find_key pub = let find pub =
Hashtbl.find_opt t.ht pub |> Option.to_result ~none:"key not found" Hashtbl.find_opt t.ht pub |> Option.to_result ~none:"key not found"
let sign ~pub s = let sign ~pub s =
let+ k = find_key pub in let+ k = find pub in
let data = RsaSignature.sign ~key:k.priv s in let data = RsaSignature.sign ~key:k.priv s in
data data
let delete_key pub = let delete pub =
let* k = find_key pub in let* k = find pub in
Hashtbl.remove t.ht k.pub; delete_key_file k Hashtbl.remove t.ht k.pub; delete_key_file k
let delete_outdated ~now = let delete_outdated ~now =
@ -220,17 +220,17 @@ let delete_outdated ~now =
|> List.of_seq |> List.of_seq
|> List.filter (fun k -> Absolute.compare now k.t2 >= 0) |> List.filter (fun k -> Absolute.compare now k.t2 >= 0)
|> List.map (fun k -> k.pub) |> List.map (fun k -> k.pub)
|> list_iter delete_key |> list_iter delete
let add_key section_name t1 t2 = let add section_name t1 t2 =
let priv, pub = RsaPrivateKey.generate ~bits:Cfg.rsa_keysize () in let priv, pub = RsaPrivateKey.generate ~bits:Cfg.rsa_keysize () in
let k = { section_name; priv; pub; t1; t2 } in let k = { section_name; priv; pub; t1; t2 } in
Hashtbl.replace t.ht k.pub k; Hashtbl.replace t.ht k.pub k;
() ()
(* delete and replace *) (* delete and replace *)
let revoke_key pub = let revoke pub =
let* k = find_key pub in let* k = find pub in
let* () = delete_key pub in let* () = delete pub in
add_key k.section_name k.t1 k.t2; add k.section_name k.t1 k.t2;
Ok () Ok ()