From 317278cd16d08099c39bfb7019dcb4cf303e7cf3 Mon Sep 17 00:00:00 2001 From: Javid Khan Date: Mon, 5 Oct 2026 11:29:43 +0530 Subject: [PATCH 1/3] ecc/goldilocks: reject trailing data when decoding a point --- ecc/goldilocks/point.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ecc/goldilocks/point.go b/ecc/goldilocks/point.go index 8b09ab47..3e9e2cd4 100644 --- a/ecc/goldilocks/point.go +++ b/ecc/goldilocks/point.go @@ -41,7 +41,9 @@ func isLessThan(x, y []byte) bool { // FromBytes returns a point from the input buffer. func FromBytes(in []byte) (*Point, error) { - if len(in) < fp.Size+1 { + // The length check is exact: previous versions accepted trailing data + // after the fp.Size+1 byte encoding. + if len(in) != fp.Size+1 { return nil, errors.New("wrong input length") } err := errors.New("invalid decoding") From 17498f75949f4020acc71860c8c4649fade96228 Mon Sep 17 00:00:00 2001 From: Bas Westerbaan Date: Mon, 5 Oct 2026 22:21:09 +0200 Subject: [PATCH 2/3] Use human language --- ecc/goldilocks/point.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ecc/goldilocks/point.go b/ecc/goldilocks/point.go index 3e9e2cd4..ee9f423b 100644 --- a/ecc/goldilocks/point.go +++ b/ecc/goldilocks/point.go @@ -40,10 +40,10 @@ func isLessThan(x, y []byte) bool { } // FromBytes returns a point from the input buffer. +// +// Note, previous versions of Circl accepted trailing data. func FromBytes(in []byte) (*Point, error) { - // The length check is exact: previous versions accepted trailing data - // after the fp.Size+1 byte encoding. - if len(in) != fp.Size+1 { + if len(in) != fp.Size+1 { return nil, errors.New("wrong input length") } err := errors.New("invalid decoding") From 68429c0c9afbebee071d7aa683f0be4e0996e5f3 Mon Sep 17 00:00:00 2001 From: Bas Westerbaan Date: Mon, 5 Oct 2026 22:23:21 +0200 Subject: [PATCH 3/3] tabs --- ecc/goldilocks/point.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ecc/goldilocks/point.go b/ecc/goldilocks/point.go index ee9f423b..3ea44212 100644 --- a/ecc/goldilocks/point.go +++ b/ecc/goldilocks/point.go @@ -43,7 +43,7 @@ func isLessThan(x, y []byte) bool { // // Note, previous versions of Circl accepted trailing data. func FromBytes(in []byte) (*Point, error) { - if len(in) != fp.Size+1 { + if len(in) != fp.Size+1 { return nil, errors.New("wrong input length") } err := errors.New("invalid decoding")