This commit is contained in:
swrup 2025-12-15 18:08:01 +01:00
parent f69f393abb
commit 3e67140b96
2 changed files with 12 additions and 2 deletions

View file

@ -77,13 +77,17 @@ 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 signf : r -> key:EddsaPrivateKey.t -> t
val sign : key:EddsaPrivateKey.t -> r -> t
val sign' : r -> (string -> EddsaSignature.t) -> t r -> (r -> string) -> t
(* Ok () on verification success *)
val verify : key:Crypto.EddsaPublicKey.t -> t -> r -> (unit, string) result
val verify : key:EddsaPublicKey.t -> t -> r -> (unit, string) result
val jsont : t Jsont.t
val caqti : t Caqti_type.t
end = struct
@ -93,7 +97,9 @@ end = struct
type t = EddsaSignature.t
let bin = R.bin
let signf = EddsaSignature.mk_signf (Bin.to_string bin)
let sign ~key r = EddsaSignature.sign ~key (Bin.to_string bin r)
let sign' r signf = signf (Bin.to_string bin r)
let verify ~key t r =
let b = EddsaSignature.verify ~key t ~msg:(Bin.to_string bin r) in

View file

@ -74,6 +74,7 @@ end
module EddsaSignature : sig
type t
val mk_signf : ('r -> string) -> 'r -> key:EddsaPrivateKey.t -> t
val sign : key:EddsaPrivateKey.t -> string -> t
val verify : key:EddsaPublicKey.t -> t -> msg:string -> bool
val to_octets : t -> string
@ -88,6 +89,9 @@ end = struct
binary-encoded objects with just the R and S values *)
type t = string
let mk_signf to_string =
fun r ~key -> Mirage_crypto_ec.Ed25519.sign ~key (to_string r)
(* mirage_crypto: "The result is the concatenation of r and s, as specified in RFC 8032." *)
let sign ~key s = Mirage_crypto_ec.Ed25519.sign ~key s
let verify ~key s ~msg = Mirage_crypto_ec.Ed25519.verify ~key s ~msg