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}

Uses (6)

Used by (2)