pub fn prove(&self, pk: &VRFPublicKey, alpha: &[u8]) -> Proof {
        let h_point = pk.hash_to_curve(alpha);
        let k_scalar =
            ed25519_Scalar::from_bytes_mod_order_wide(&nonce_generation_bytes(self.nonce, h_point));
        let gamma = h_point * self.key;
        let c_scalar = hash_points(&[
            h_point,
            gamma,
            ED25519_BASEPOINT_POINT * k_scalar,
            h_point * k_scalar,
        ]);

        Proof {
            gamma,
            c: c_scalar,
            s: k_scalar + c_scalar * self.key,
        }
    }
/// Produces a proof for an input (using the expanded private key)
Produces a proof for an input (using the expanded private key)
Produces a proof for an input ( using the expanded private key )
pub fn prove(&self, pk: &VRFPublicKey, alpha: &[u8]) -> Proof {
        let h_point = pk.hash_to_curve(alpha);
        let k_scalar =
            ed25519_Scalar::from_bytes_mod_order_wide(&nonce_generation_bytes(self.nonce, h_point));
        let gamma = h_point * self.key;
        let c_scalar = hash_points(&[
            h_point,
            gamma,
            ED25519_BASEPOINT_POINT * k_scalar,
            h_point * k_scalar,
        ]);
        Proof {
            gamma,
            c: c_scalar,
            s: k_scalar + c_scalar * self.key,
        }
    }
pub fn prove ( & self , pk : & VRFPublicKey , alpha : & [ u8 ] ) -> Proof { let h_point = pk . hash_to_curve ( alpha ) ; let k_scalar = ed25519_Scalar :: from_bytes_mod_order_wide ( & nonce_generation_bytes ( self . nonce , h_point ) ) ; let gamma = h_point * self . key ; let c_scalar = hash_points ( & [ h_point , gamma , ED25519_BASEPOINT_POINT * k_scalar , h_point * k_scalar , ] ) ; Proof { gamma , c : c_scalar , s : k_scalar + c_scalar * self . key , } }
Produces a proof for an input (using the expanded private key)
Produces a proof for an input ( using the expanded private key )
&self
pk
&VRFPublicKey
alpha
&[u8]
&self
pk
&VRFPublicKey
alpha
&[u8]