crypto/ed25519/internal/edwards25519/field.Element.Multiply (method)
67 uses
crypto/ed25519/internal/edwards25519/field (current package)
fe.go#L127: z9.Multiply(&t, z) // 9
fe.go#L128: z11.Multiply(&z9, &z2) // 11
fe.go#L130: z2_5_0.Multiply(&t, &z9) // 31 = 2^5 - 2^0
fe.go#L136: z2_10_0.Multiply(&t, &z2_5_0) // 2^10 - 2^0
fe.go#L142: z2_20_0.Multiply(&t, &z2_10_0) // 2^20 - 2^0
fe.go#L148: t.Multiply(&t, &z2_20_0) // 2^40 - 2^0
fe.go#L154: z2_50_0.Multiply(&t, &z2_10_0) // 2^50 - 2^0
fe.go#L160: z2_100_0.Multiply(&t, &z2_50_0) // 2^100 - 2^0
fe.go#L166: t.Multiply(&t, &z2_100_0) // 2^200 - 2^0
fe.go#L172: t.Multiply(&t, &z2_50_0) // 2^250 - 2^0
fe.go#L180: return v.Multiply(&t, &z11) // 2^255 - 21
fe.go#L298: func (v *Element) Multiply(x, y *Element) *Element {
fe.go#L341: t1.Multiply(x, &t1) // x^9
fe.go#L342: t0.Multiply(&t0, &t1) // x^11
fe.go#L344: t0.Multiply(&t1, &t0) // x^31
fe.go#L349: t0.Multiply(&t1, &t0) // x^1023 -> 1023 = 2^10 - 1
fe.go#L354: t1.Multiply(&t1, &t0) // 2^20 - 1
fe.go#L359: t1.Multiply(&t2, &t1) // 2^40 - 1
fe.go#L364: t0.Multiply(&t1, &t0) // 2^50 - 1
fe.go#L369: t1.Multiply(&t1, &t0) // 2^100 - 1
fe.go#L374: t1.Multiply(&t2, &t1) // 2^200 - 1
fe.go#L379: t0.Multiply(&t1, &t0) // 2^250 - 1
fe.go#L382: return v.Multiply(&t0, x) // 2^252 - 3 -> x^(2^252-3)
fe.go#L399: uv3 := b.Multiply(u, b.Multiply(v2, v))
fe.go#L400: uv7 := a.Multiply(uv3, a.Square(v2))
fe.go#L401: r.Multiply(uv3, r.Pow22523(uv7))
fe.go#L403: check := a.Multiply(v, a.Square(r)) // check = v * r^2
fe.go#L408: flippedSignSqrtI := check.Equal(uNeg.Multiply(uNeg, sqrtM1))
fe.go#L410: rPrime := b.Multiply(r, sqrtM1) // r_prime = SQRT_M1 * r
crypto/ed25519/internal/edwards25519
edwards25519.go#L127: x.Multiply(&v.x, &zInv) // x = X / Z
edwards25519.go#L128: y.Multiply(&v.y, &zInv) // y = Y / Z
edwards25519.go#L168: vv := new(field.Element).Multiply(y2, d)
edwards25519.go#L184: v.t.Multiply(xx, y) // xy = T / Z
edwards25519.go#L197: v.X.Multiply(&p.X, &p.T)
edwards25519.go#L198: v.Y.Multiply(&p.Y, &p.Z)
edwards25519.go#L199: v.Z.Multiply(&p.Z, &p.T)
edwards25519.go#L211: v.x.Multiply(&p.X, &p.T)
edwards25519.go#L212: v.y.Multiply(&p.Y, &p.Z)
edwards25519.go#L213: v.z.Multiply(&p.Z, &p.T)
edwards25519.go#L214: v.t.Multiply(&p.X, &p.Y)
edwards25519.go#L219: v.x.Multiply(&p.X, &p.Z)
edwards25519.go#L220: v.y.Multiply(&p.Y, &p.Z)
edwards25519.go#L222: v.t.Multiply(&p.X, &p.Y)
edwards25519.go#L238: v.T2d.Multiply(&p.t, d2)
edwards25519.go#L245: v.T2d.Multiply(&p.t, d2)
edwards25519.go#L249: v.YplusX.Multiply(&v.YplusX, &invZ)
edwards25519.go#L250: v.YminusX.Multiply(&v.YminusX, &invZ)
edwards25519.go#L251: v.T2d.Multiply(&v.T2d, &invZ)
edwards25519.go#L279: PP.Multiply(&YplusX, &q.YplusX)
edwards25519.go#L280: MM.Multiply(&YminusX, &q.YminusX)
edwards25519.go#L281: TT2d.Multiply(&p.t, &q.T2d)
edwards25519.go#L282: ZZ2.Multiply(&p.z, &q.Z)
edwards25519.go#L299: PP.Multiply(&YplusX, &q.YminusX) // flipped sign
edwards25519.go#L300: MM.Multiply(&YminusX, &q.YplusX) // flipped sign
edwards25519.go#L301: TT2d.Multiply(&p.t, &q.T2d)
edwards25519.go#L302: ZZ2.Multiply(&p.z, &q.Z)
edwards25519.go#L319: PP.Multiply(&YplusX, &q.YplusX)
edwards25519.go#L320: MM.Multiply(&YminusX, &q.YminusX)
edwards25519.go#L321: TT2d.Multiply(&p.t, &q.T2d)
edwards25519.go#L338: PP.Multiply(&YplusX, &q.YminusX) // flipped sign
edwards25519.go#L339: MM.Multiply(&YminusX, &q.YplusX) // flipped sign
edwards25519.go#L340: TT2d.Multiply(&p.t, &q.T2d)
edwards25519.go#L388: t1.Multiply(&v.x, &u.z)
edwards25519.go#L389: t2.Multiply(&u.x, &v.z)
edwards25519.go#L390: t3.Multiply(&v.y, &u.z)
edwards25519.go#L391: t4.Multiply(&u.y, &v.z)