better secmod

This commit is contained in:
swrup 2025-12-16 14:20:41 +01:00
parent f69f393abb
commit bf45cdc6b1
6 changed files with 104 additions and 54 deletions

View file

@ -77,13 +77,19 @@ module MK (R : sig
val bin : r Bin.t
end) : sig
open Crypto
type r = R.r
type t
val sign : key:Crypto.EddsaPrivateKey.t -> r -> t
val sign_f : f:(string -> eddsa_sig) -> r -> t
val verify_f :
f:(eddsa_sig -> msg:string -> (unit, string) result) ->
t ->
r ->
(unit, string) result
(* Ok () on verification success *)
val verify : key:Crypto.EddsaPublicKey.t -> t -> r -> (unit, string) result
val jsont : t Jsont.t
val caqti : t Caqti_type.t
end = struct
@ -92,15 +98,8 @@ end = struct
type r = R.r
type t = EddsaSignature.t
let bin = R.bin
let sign ~key r = EddsaSignature.sign ~key (Bin.to_string bin r)
let verify ~key t r =
let b = EddsaSignature.verify ~key t ~msg:(Bin.to_string bin r) in
match b with
| false -> Error "signature verification failure"
| true -> Ok ()
let sign_f ~f r = f (Bin.to_string R.bin r)
let verify_f ~f t r = f t ~msg:(Bin.to_string R.bin r)
let jsont = EddsaSignature.jsont
let caqti : EddsaSignature.t Caqti_type.t = EddsaSignature.caqti
end