fn verify_final_pre_reduced_cofactored()

in src/main.rs [246:261]


fn verify_final_pre_reduced_cofactored(
    pub_key: &EdwardsPoint,
    unpacked_signature: &(EdwardsPoint, Scalar),
    hash: &Scalar,
) -> Result<()> {
    let eight_hash = eight() * hash;
    let eight_s = eight() * unpacked_signature.1;

    let rprime =
        EdwardsPoint::vartime_double_scalar_mul_basepoint(&eight_hash, &pub_key.neg(), &eight_s);
    if (unpacked_signature.0.mul_by_cofactor() - rprime).is_identity() {
        Ok(())
    } else {
        Err(anyhow!("Invalid pre-reduced cofactored signature"))
    }
}