Compute a (multi) point multiplication ps is a list of (Jacobian tuple, scalar) pairs.
(self, ps)
| 200 | return (x3, y3, z3) |
| 201 | |
| 202 | def mul(self, ps): |
| 203 | """Compute a (multi) point multiplication |
| 204 | |
| 205 | ps is a list of (Jacobian tuple, scalar) pairs. |
| 206 | """ |
| 207 | r = (0, 1, 0) |
| 208 | for i in range(255, -1, -1): |
| 209 | r = self.double(r) |
| 210 | for (p, n) in ps: |
| 211 | if ((n >> i) & 1): |
| 212 | r = self.add(r, p) |
| 213 | return r |
| 214 | |
| 215 | SECP256K1_FIELD_SIZE = 2**256 - 2**32 - 977 |
| 216 | SECP256K1 = EllipticCurve(SECP256K1_FIELD_SIZE, 0, 7) |
no test coverage detected