Skip to content

Commit

Permalink
[secp256k1]refactor: Use (int)&(int) in boolean context to avoid comp…
Browse files Browse the repository at this point in the history
…iler warning

Summary:
This fixes a compiler warning:
```
./src/ecdsa_impl.h:312:12: warning: use of bitwise '&' with boolean operands [-Wbitwise-instead-of-logical]
    return !secp256k1_scalar_is_zero(sigr) & !secp256k1_scalar_is_zero(sigs);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

This is a backport of [[bitcoin-core/secp256k1#1009 | secp256k1#1009]]

Test Plan:
With clang14:
`ninja all check-all`

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D10735
  • Loading branch information
MarcoFalke authored and PiRK committed Dec 23, 2021
1 parent 3610aa7 commit e7571cd
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/secp256k1/src/ecdsa_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -304,12 +304,12 @@ static int secp256k1_ecdsa_sig_sign(const secp256k1_ecmult_gen_context *ctx, sec
high = secp256k1_scalar_is_high(sigs);
secp256k1_scalar_cond_negate(sigs, high);
if (recid) {
*recid ^= high;
*recid ^= high;
}
/* P.x = order is on the curve, so technically sig->r could end up being zero, which would be an invalid signature.
* This is cryptographically unreachable as hitting it requires finding the discrete log of P.x = N.
*/
return !secp256k1_scalar_is_zero(sigr) & !secp256k1_scalar_is_zero(sigs);
return (int)(!secp256k1_scalar_is_zero(sigr)) & (int)(!secp256k1_scalar_is_zero(sigs));
}

#endif /* SECP256K1_ECDSA_IMPL_H */

0 comments on commit e7571cd

Please sign in to comment.