wip phantom type on eddsa_key
This commit is contained in:
parent
f69f393abb
commit
3a68ab9df9
4 changed files with 61 additions and 3 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
21
src/eddsa.ml
Normal 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
16
src/eddsa.mli
Normal 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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue