Canonical EC signature check against r value in the signature might be unnecessary.
Open
- Dominant language
- C++
- Stars
- 39
- Forks
- 93
- PR merge metrics
- No merged PRs in 30d
Description
https://github.com/EOSIO/fc/blob/ff56d25e587f8131cfde06f1eb61baa899bc8a89/src/crypto/elliptic_common.cpp#L161
For canonical signature checks most standard ec libraries only enforce a low_s however the code referenced in this issue is enforcing a low_r (r being less than half of the curve order) as well. I'm wondering why that check is needed? Checking low_s should be enough to protect against signature malleability.
A clarification on why a low_r is being checked would be greatly appreciated, and if there is no need for it can that check be removed?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.