From 55114a87bd04f6c10811dcdfa65c0acf49430a30 Mon Sep 17 00:00:00 2001 Message-Id: <55114a87bd04f6c10811dcdfa65c0acf49430a30.1717290439.git.mdw@distorted.org.uk> From: Mark Wooding Date: Sun, 24 Nov 2019 21:54:44 +0000 Subject: [PATCH] ec.c: Reject strings with trailing junk in the curve-point constructor. Organization: Straylight/Edgeware From: Mark Wooding --- ec.c | 1 + t/t-ec.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ec.c b/ec.c index aadcad0..7a6ed95 100644 --- a/ec.c +++ b/ec.c @@ -525,6 +525,7 @@ static int ecptxl_1(ec_curve *c, ec *p, PyObject *x) qd.e = 0; if (!ec_ptparse(&qd, p)) VALERR(qd.e); + qd_skipspc(&qd); if (!qd_eofp(&qd)) VALERR("junk at eof"); goto fix; } else if (c && (xx = tomp(x)) != 0) { xx = F_IN(c->f, xx, xx); diff --git a/t/t-ec.py b/t/t-ec.py index 75dc2be..02ae4d1 100644 --- a/t/t-ec.py +++ b/t/t-ec.py @@ -59,6 +59,7 @@ class TestCurvelessPoints (U.TestCase): me.assertRaises(ValueError, C.ECPt, "12345") me.assertRaises(ValueError, C.ECPt, "12345,") me.assertRaises(ValueError, C.ECPt, "12345, xyzzy") + me.assertRaises(ValueError, C.ECPt, "12345, 67890!??") me.assertRaises(TypeError, C.ECPt, (1, 2, 3)) me.assertRaises(TypeError, C.ECPt, 1, 2, 3) me.assertRaises(TypeError, C.ECPt, 1234) @@ -144,6 +145,7 @@ class TestCurves (T.GenericTestMixin): me.assertEqual(E("%s, %s" % (P.ix, P.iy)), P) me.assertRaises(ValueError, E, "1234") me.assertRaises(ValueError, E, "1234,") + me.assertRaises(ValueError, E, "1234, 5678?") me.assertRaises(TypeError, E, 1, None) Q = E(P.ix); me.assertTrue(Q == P or Q == -P) for i in T.range(128): -- [mdw]