wip phantom type on eddsa_key

This commit is contained in:
swrup 2025-12-15 17:37:17 +01:00
parent f69f393abb
commit 3a68ab9df9
4 changed files with 61 additions and 3 deletions

View file

@ -92,11 +92,10 @@ end = struct
type r = R.r type r = R.r
type t = EddsaSignature.t type t = EddsaSignature.t
let bin = R.bin let sign ~key r = EddsaSignature.sign ~key (Bin.to_string R.bin r)
let sign ~key r = EddsaSignature.sign ~key (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 R.bin r) in
match b with match b with
| false -> Error "signature verification failure" | false -> Error "signature verification failure"
| true -> Ok () | true -> Ok ()
@ -105,6 +104,23 @@ end = struct
let caqti : EddsaSignature.t Caqti_type.t = EddsaSignature.caqti let caqti : EddsaSignature.t Caqti_type.t = EddsaSignature.caqti
end end
module MK'' (R : sig
type k
type r
(*val bin : r Bin.t*)
end) : sig
type r = R.r
type t = (R.k, r) Eddsa.sig_
val caqti : t Caqti_type.t
end = struct
type r = R.r
type t = (R.k, r) Eddsa.sig_
let caqti = Eddsa.sig_caqti
end
module DenominationKeyAnnouncement = struct module DenominationKeyAnnouncement = struct
module R = struct module R = struct
(* TODO taler_signatures purpose (* TODO taler_signatures purpose

View file

@ -47,6 +47,11 @@ module EddsaPrivateKey = struct
type t = priv type t = priv
(*
let generate () =
Mirage_crypto_ec.Ed25519.generate ()
*)
let pub_of_priv = pub_of_priv let pub_of_priv = pub_of_priv
let to_octets t = priv_to_octets t let to_octets t = priv_to_octets t

21
src/eddsa.ml Normal file
View file

@ -0,0 +1,21 @@
open Crypto
type sm
type sk
type master
type 'k priv = EddsaPrivateKey.t
type 'k pub = EddsaPublicKey.t
type 'k key = {
priv: 'k priv;
pub: 'k pub;
}
type ('k, 'r) sig_ = EddsaSignature.t
let generate () =
let priv, pub = Mirage_crypto_ec.Ed25519.generate () in
{ priv; pub }
let pub_caqti = EddsaPublicKey.caqti
let sig_caqti = EddsaSignature.caqti

16
src/eddsa.mli Normal file
View file

@ -0,0 +1,16 @@
type sm
type sk
type master
type 'k priv
type 'k pub
type 'k key = {
priv: 'k priv;
pub: 'k pub;
}
type ('k, 'r) sig_
val generate : unit -> 'k key
val pub_caqti : 'k pub Caqti_type.t
val sig_caqti : ('k, 'r) sig_ Caqti_type.t