def step

bend-collections@1.0.0.0 · src/crypto/curve25519/x25519.bend:68

import bend-collections@1.0.0.0/src/crypto/curve25519/x25519.bend as X25519
import Base
import bend-collections@1.0.0.0/src/crypto/curve25519/field.bend as F

68# one ladder step on the swapped pair (x2 : z2), (x3 : z3); c24 is a24
69def step(+c24: List<&2, U32>, +x1: List<&2, U32>, +x2: List<&2, U32>, +z2: List<&2, U32>, +x3: List<&2, U32>, +z3: List<&2, U32>, kt: U32) -> St:
70  +a = F.add(x2, z2)
71  +aa = F.sq(a)
72  +b = F.sub(x2, z2)
73  +bb = F.sq(b)
74  +e = F.sub(aa, bb)
75  +c = F.add(x3, z3)
76  +d = F.sub(x3, z3)
77  +da = F.mul(d, a)
78  +cb = F.mul(c, b)
79  St{F.mul(aa, bb), F.mul(e, F.add(aa, F.mul(e, c24))), F.sq(F.add(da, cb)), F.mul(x1, F.sq(F.sub(da, cb))), kt}

Uses (7)

Used by (1)