Skip to content

Commit 5312a61

Browse files
committed
Save 2S + 2M by reusing an intermediate value.
1 parent 33e7db2 commit 5312a61

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

extra25519/extra25519.go

+5-9
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,13 @@ func ScalarBaseMult(publicKey, representative, privateKey *[32]byte) bool {
119119
var b edwards25519.FieldElement
120120
edwards25519.FeAdd(&b, &u, &edwards25519.A)
121121

122-
var c, b3, b8 edwards25519.FieldElement
122+
var c, b3, b7, b8 edwards25519.FieldElement
123123
edwards25519.FeSquare(&b3, &b) // 2
124124
edwards25519.FeMul(&b3, &b3, &b) // 3
125125
edwards25519.FeSquare(&c, &b3) // 6
126-
edwards25519.FeMul(&c, &c, &b) // 7
127-
edwards25519.FeMul(&b8, &c, &b) // 8
128-
edwards25519.FeMul(&c, &c, &u)
126+
edwards25519.FeMul(&b7, &c, &b) // 7
127+
edwards25519.FeMul(&b8, &b7, &b) // 8
128+
edwards25519.FeMul(&c, &b7, &u)
129129
q58(&c, &c)
130130

131131
var chi edwards25519.FieldElement
@@ -135,11 +135,7 @@ func ScalarBaseMult(publicKey, representative, privateKey *[32]byte) bool {
135135
edwards25519.FeSquare(&t0, &u)
136136
edwards25519.FeMul(&chi, &chi, &t0)
137137

138-
edwards25519.FeSquare(&t0, &b) // 2
139-
edwards25519.FeMul(&t0, &t0, &b) // 3
140-
edwards25519.FeSquare(&t0, &t0) // 6
141-
edwards25519.FeMul(&t0, &t0, &b) // 7
142-
edwards25519.FeSquare(&t0, &t0) // 14
138+
edwards25519.FeSquare(&t0, &b7) // 14
143139
edwards25519.FeMul(&chi, &chi, &t0)
144140
edwards25519.FeNeg(&chi, &chi)
145141

0 commit comments

Comments
 (0)