RFC 8032, "Edwards-Curve Digital Signature Algorithm (EdDSA)", January 2017
Source of RFC: cfrg (irtf)
Errata-ID: 5968
- Status:
- Verified
- Type:
- Technical
- Reported By:
- Valeria Nikolaenko
- Date Reported:
- 2020-01-28
- Verified by:
- Nick Sullivan
- Date Verified:
- 2026-01-27
Section 3.1 says:
3.1. Encoding
An integer 0 < S < L - 1 is encoded in little-endian form as a b-bit
string ENC(S).
It should say:
3.1. Encoding
An integer 0 <= S <= L - 1 is encoded in little-endian form as a b-bit
string ENC(S).
Notes:
The range of the scalar should include the end-points: 0 and L-1.
--VERIFIER NOTE--
Verified. Section 3.1 specifies 0 < S < L - 1 (excluding both 0 and
L-1) but Section 5.1.7 verification requires 0 <= S < L (including
both endpoints). This internal inconsistency is corrected by changing
Section 3.1 to 0 <= S <= L - 1, which is mathematically equivalent
to 0 <= S < L. Security is unaffected as both formulations reject
S >= L (preventing malleability). All known implementations follow
Section 5.1.7's range. See EID 7031 (same paper - held for document
update as it adds content rather than fixing an error).