def step
bend-collections-laws-crypto@1.0.0.0 · spec/crypto/curve25519/x25519.bend:101
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/curve25519/x25519.bend as X25519
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/curve25519/field.bend as FS
101def step(+one: Nat, +p: Nat, +x1: Nat, +x2: Nat, +z2: Nat, +x3: Nat, +z3: Nat, kt: Nat) -> LSt:
102 +a = FS.fadd(p, x2, z2)
103 +aa = FS.fmul(p, a, a)
104 +b = FS.fsub(p, x2, z2)
105 +bb = FS.fmul(p, b, b)
106 +e = FS.fsub(p, aa, bb)
107 +c = FS.fadd(p, x3, z3)
108 +d = FS.fsub(p, x3, z3)
109 +da = FS.fmul(p, d, a)
110 +cb = FS.fmul(p, c, b)
111 +s = FS.fadd(p, da, cb)
112 +t = FS.fsub(p, da, cb)
113 LSt{FS.fmul(p, aa, bb), FS.fmul(p, e, FS.fadd(p, aa, FS.fmul(p, e, a24(one)))), FS.fmul(p, s, s), FS.fmul(p, x1, FS.fmul(p, t, t)), kt}