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

View file

@ -77,13 +77,17 @@ module MK (R : sig
val bin : r Bin.t val bin : r Bin.t
end) : sig end) : sig
open Crypto
type r = R.r type r = R.r
type t 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
(* Ok () on verification success *) (* 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 jsont : t Jsont.t
val caqti : t Caqti_type.t val caqti : t Caqti_type.t
end = struct end = struct
@ -93,7 +97,9 @@ end = struct
type t = EddsaSignature.t type t = EddsaSignature.t
let bin = R.bin 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 ~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 verify ~key t r =
let b = EddsaSignature.verify ~key t ~msg:(Bin.to_string bin r) in let b = EddsaSignature.verify ~key t ~msg:(Bin.to_string bin r) in

View file

@ -74,6 +74,7 @@ end
module EddsaSignature : sig module EddsaSignature : sig
type t type t
val mk_signf : ('r -> string) -> 'r -> key:EddsaPrivateKey.t -> t
val sign : key:EddsaPrivateKey.t -> string -> t val sign : key:EddsaPrivateKey.t -> string -> t
val verify : key:EddsaPublicKey.t -> t -> msg:string -> bool val verify : key:EddsaPublicKey.t -> t -> msg:string -> bool
val to_octets : t -> string val to_octets : t -> string
@ -88,6 +89,9 @@ end = struct
binary-encoded objects with just the R and S values *) binary-encoded objects with just the R and S values *)
type t = string 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." *) (* 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 sign ~key s = Mirage_crypto_ec.Ed25519.sign ~key s
let verify ~key s ~msg = Mirage_crypto_ec.Ed25519.verify ~key s ~msg let verify ~key s ~msg = Mirage_crypto_ec.Ed25519.verify ~key s ~msg