ec zz = EC_INIT;
if (ECPT_PYCHECK(x)) { PyObject *t; t = x; x = y; y = t; }
- if (!ECPT_PYCHECK(y) || (xx = tomp(x)) == 0) RETURN_NOTIMPL;
+ if (!ECPT_PYCHECK(y) || (xx = implicitmp(x)) == 0) RETURN_NOTIMPL;
ec_imul(ECPT_C(y), &zz, ECPT_P(y), xx);
MP_DROP(xx);
return (ecpt_pywrap(ECPT_COBJ(y), &zz));
PyObject *rc = 0;
if ((xx = implicitmp(x)) == 0 || (yy = implicitmp(y)) == 0 ||
- (z && z != Py_None && (zz = tomp(z)) == 0)) {
+ (z && z != Py_None && (zz = implicitmp(z)) == 0)) {
mp_drop(xx); mp_drop(yy); mp_drop(zz);
RETURN_NOTIMPL;
}
mp *r = 0;
PyObject *rc = 0;
- if ((xx = tomp(x)) == 0 || (yy = tomp(y)) == 0 ||
- (z && z != Py_None && (zz = tomp(z)) == 0)) {
+ if ((xx = implicitgf(x)) == 0 || (yy = implicitmp(y)) == 0 ||
+ (z && z != Py_None && (zz = implicitgf(z)) == 0)) {
mp_drop(xx); mp_drop(yy); mp_drop(zz);
RETURN_NOTIMPL;
}
me.assertEqual(pow(C.MP(5), 2, 7), 4)
me.assertEqual(pow(5, C.MP(2), 7), 4)
me.assertEqual(pow(5, 2, C.MP(7)), 4)
- for bad in [lambda x: [x]]:
+ for bad in [C.GF, k, kk, float, lambda x: [x]]:
me.assertRaises(TypeError, pow, C.MP(5), bad(2))
me.assertRaises(TypeError, pow, C.MP(5), bad(2), 7)
if not (T.PY2 and T.DEBUGP):
me.assertEqual(pow(C.GF(0x5), 2), C.GF(0x11))
me.assertEqual(pow(C.GF(0x5), C.MP(2)), C.GF(0x11))
me.assertEqual(pow(C.GF(5), 2, C.GF(0x13)), C.GF(0x2))
- for bad in [lambda x: [x]]:
+ for bad in [k, kk, float, lambda x: [x]]:
me.assertRaises(TypeError, pow, C.GF(5), bad(2))
me.assertRaises(TypeError, T.lsl, C.GF(5), bad(2))
- for bad in [lambda x: [x]]:
+ for bad in [C.MP, k, kk, float, lambda x: [x]]:
me.assertRaises(TypeError, pow, bad(5), C.GF(2))
me.assertRaises(TypeError, pow, bad(5), C.GF(2), bad(7))
me.assertRaises(TypeError, pow, bad(5), bad(2), C.GF(7))
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(P*l(17), Q)
+ #me.assertEqual(P*l(17), Q)
## Ordering.
me.assertTrue(P == P)