Module SchnorrPV.P

type pk = Curve.t
type signature = {
  1. sig_u_bytes : bool list;
  2. sig_r : Curve.t;
  3. c_bytes : bool list;
}
type sk = Curve.Scalar.t
val neuterize : sk -> pk
val sign : ?compressed:bool -> sk -> Plompiler.Csir.Scalar.t -> Curve.Scalar.t -> signature
val verify : ?compressed:bool -> msg:Plompiler.Csir.Scalar.t -> pk:pk -> signature:signature -> unit -> bool