Files
Fedor IndutnyandGitHub 594982a992 fix: signature verification due to leading zeros
According to FIPS 186-5, section 6.4.2 ECDSA Signature
Verification Algorithm, the hash of the message must be adjusted
based on the order n of the base point of the elliptic curve:

    If log2(n) ≥ hashlen, set E = H. Otherwise, set E equal to
    the leftmost log2(n) bits of H.

Unfortunately because elliptic converts messages to BN instances the
reported `byteLength()` for the message can be incorrect if the message
has 8 or more leading zero bits.

Here we fix it by:

1. Counting leading zeroes in hex strings provided as messages
2. Counting all array entries in Array-like (e.g. Buffer)
   messages
3. Providing an `msgBitLength` option to both `.sign`/`.verify` to let
   user override the behavior

Original PR: https://github.com/indutny/elliptic/pull/322
Credit: @Markus-MS
2024-10-25 20:13:12 -07:00
..
2020-08-02 08:33:08 -07:00
2020-08-02 08:33:08 -07:00
2020-08-02 08:33:08 -07:00
2020-08-02 08:33:08 -07:00
2020-08-02 08:33:08 -07:00