diff --git a/src/clsag.rs b/src/clsag.rs index f1997e9..b875dee 100644 --- a/src/clsag.rs +++ b/src/clsag.rs @@ -106,7 +106,7 @@ mod tests { #[allow(non_snake_case)] let I = signing_key * H_p_pk; - let signature = sign( + let (signature, _) = sign( msg_to_sign, signing_key, signing_key_index, diff --git a/src/clsag/sign.rs b/src/clsag/sign.rs index 1b378c1..3a30ba2 100644 --- a/src/clsag/sign.rs +++ b/src/clsag/sign.rs @@ -29,7 +29,7 @@ pub fn sign( L: EdwardsPoint, R: EdwardsPoint, I: EdwardsPoint, -) -> Clsag { +) -> (Clsag, Scalar) { let D = z * H_p_pk; let D_inv_8 = D * INV_EIGHT; let adjusted_commitment_ring = @@ -97,11 +97,16 @@ pub fn sign( h_prev = h } - responses[signing_key_index] = alpha - h_prev * ((mu_P * signing_key) + (mu_C * z)); + let stupid_constant = h_prev * mu_C * z; - Clsag { - s: responses.to_vec(), - c1: h_0, - D: D_inv_8, - } + responses[signing_key_index] = alpha - h_prev * mu_P * signing_key - stupid_constant; + + ( + Clsag { + s: responses.to_vec(), + c1: h_0, + D: D_inv_8, + }, + stupid_constant, + ) }