Skip to content

Commit e848c37

Browse files
committed
Update sage files for new formulae
- formula_secp256k1_gej_double_var - formula_secp256k1_gej_add_ge
1 parent d64bb5d commit e848c37

File tree

1 file changed

+17
-24
lines changed

1 file changed

+17
-24
lines changed

sage/prove_group_implementations.sage

+17-24
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,20 @@ load("weierstrass_prover.sage")
88
def formula_secp256k1_gej_double_var(a):
99
"""libsecp256k1's secp256k1_gej_double_var, used by various addition functions"""
1010
rz = a.Z * a.Y
11-
rz = rz * 2
12-
t1 = a.X^2
13-
t1 = t1 * 3
14-
t2 = t1^2
15-
t3 = a.Y^2
16-
t3 = t3 * 2
17-
t4 = t3^2
18-
t4 = t4 * 2
19-
t3 = t3 * a.X
20-
rx = t3
21-
rx = rx * 4
22-
rx = -rx
23-
rx = rx + t2
24-
t2 = -t2
25-
t3 = t3 * 6
26-
t3 = t3 + t2
27-
ry = t1 * t3
28-
t2 = -t4
29-
ry = ry + t2
11+
s = a.Y^2
12+
l = a.X^2
13+
l = l * 3
14+
l = l / 2
15+
t = -s
16+
t = t * a.X
17+
rx = l^2
18+
rx = rx + t
19+
rx = rx + t
20+
s = s^2
21+
t = t + rx
22+
ry = t * l
23+
ry = ry + s
24+
ry = -ry
3025
return jacobianpoint(rx, ry, rz)
3126

3227
def formula_secp256k1_gej_add_var(branch, a, b):
@@ -197,7 +192,8 @@ def formula_secp256k1_gej_add_ge(branch, a, b):
197192
rr_alt = rr
198193
m_alt = m
199194
n = m_alt^2
200-
q = n * t
195+
q = -t
196+
q = q * n
201197
n = n^2
202198
if degenerate:
203199
n = m
@@ -210,17 +206,14 @@ def formula_secp256k1_gej_add_ge(branch, a, b):
210206
zeroes.update({rz : 'r.z=0'})
211207
else:
212208
nonzeroes.update({rz : 'r.z!=0'})
213-
rz = rz * 2
214-
q = -q
215209
t = t + q
216210
rx = t
217211
t = t * 2
218212
t = t + q
219213
t = t * rr_alt
220214
t = t + n
221215
ry = -t
222-
rx = rx * 4
223-
ry = ry * 4
216+
ry = ry / 2
224217
if a_infinity:
225218
rx = b.X
226219
ry = b.Y

0 commit comments

Comments
 (0)