X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/7f38dc76ee0809207e67be7b2a2ddc600aba54d5..7f5eb608c6b3118e76e98f6e5de142f2343b0e45:/t/t-ec.py diff --git a/t/t-ec.py b/t/t-ec.py index ef80b90..f11da7d 100644 --- a/t/t-ec.py +++ b/t/t-ec.py @@ -59,7 +59,8 @@ 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(TypeError, C.ECPt, (1, 2, 3)) + me.assertRaises(ValueError, C.ECPt, "12345, 67890!??") + me.assertRaises(ValueError, C.ECPt, (1, 2, 3)) me.assertRaises(TypeError, C.ECPt, 1, 2, 3) me.assertRaises(TypeError, C.ECPt, 1234) me.assertRaises(TypeError, C.ECPt, object()) @@ -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): @@ -178,7 +180,9 @@ class TestCurves (T.GenericTestMixin): me.assertEqual(Q + R, 23*P) me.assertEqual(Q + R.point, 23*P) me.assertRaises(TypeError, T.add, Q.point, R.point) + me.assertRaises(TypeError, T.mul, kk(1), Q) me.assertEqual(Q - R, 11*P) + me.assertEqual(l(17)*P, Q) me.assertEqual(P*l(17), Q) ## Ordering. @@ -194,23 +198,29 @@ class TestCurves (T.GenericTestMixin): Z1 = C.ByteString.zero(1) me.assertEqual(O.ec2osp(), Z1) me.assertEqual(E.os2ecp(Z1), (O, Z0)) - t = C.ByteString(C.WriteBuffer() - .putu8(0x04) - .put(P.ix.storeb(k.noctets)) - .put(P.iy.storeb(k.noctets))) + t = C.WriteBuffer() \ + .putu8(0x04) \ + .put(P.ix.storeb(k.noctets)) \ + .put(P.iy.storeb(k.noctets)) \ + .contents me.assertEqual(P.ec2osp(), t) - me.assertEqual(C.ByteString(C.WriteBuffer().putecptraw(P)), t) + me.assertEqual(C.WriteBuffer().putecptraw(P).contents, t) + me.assertEqual(C.WriteBuffer().ec2osp(P).contents, t) me.assertEqual(E.os2ecp(t), (P, Z0)) me.assertEqual(C.ReadBuffer(t).getecptraw(E), P) + me.assertEqual(C.ReadBuffer(t).os2ecp(E), P) if isinstance(k, C.PrimeField): ybit = int(P.iy&1) else: try: ybit = int((P.y/P.x).value&C.GF(1)) except ZeroDivisionError: ybit = 0 - t = C.ByteString(C.WriteBuffer() - .putu8(0x02 | ybit) - .put(P.ix.storeb(k.noctets))) + t = C.WriteBuffer() \ + .putu8(0x02 | ybit) \ + .put(P.ix.storeb(k.noctets)) \ + .contents me.assertEqual(P.ec2osp(C.EC_LSB), t) + me.assertEqual(C.WriteBuffer().ec2osp(P, C.EC_LSB).contents, t) me.assertEqual(E.os2ecp(t, C.EC_LSB), (P, Z0)) + me.assertEqual(C.ReadBuffer(t).os2ecp(E, C.EC_LSB), P) ## Curve methods. Q = E.find(P.x); me.assertTrue(Q == P or Q == -P)