crypto/internal/fips140/edwards25519/field.Element.Multiply (method)
73 uses
crypto/internal/fips140/edwards25519/field (current package)
fe.go#L129: z9.Multiply(&t, z) // 9
fe.go#L130: z11.Multiply(&z9, &z2) // 11
fe.go#L132: z2_5_0.Multiply(&t, &z9) // 31 = 2^5 - 2^0
fe.go#L138: z2_10_0.Multiply(&t, &z2_5_0) // 2^10 - 2^0
fe.go#L144: z2_20_0.Multiply(&t, &z2_10_0) // 2^20 - 2^0
fe.go#L150: t.Multiply(&t, &z2_20_0) // 2^40 - 2^0
fe.go#L156: z2_50_0.Multiply(&t, &z2_10_0) // 2^50 - 2^0
fe.go#L162: z2_100_0.Multiply(&t, &z2_50_0) // 2^100 - 2^0
fe.go#L168: t.Multiply(&t, &z2_100_0) // 2^200 - 2^0
fe.go#L174: t.Multiply(&t, &z2_50_0) // 2^250 - 2^0
fe.go#L182: return v.Multiply(&t, &z11) // 2^255 - 21
fe.go#L303: func (v *Element) Multiply(x, y *Element) *Element {
fe.go#L346: t1.Multiply(x, &t1) // x^9
fe.go#L347: t0.Multiply(&t0, &t1) // x^11
fe.go#L349: t0.Multiply(&t1, &t0) // x^31
fe.go#L354: t0.Multiply(&t1, &t0) // x^1023 -> 1023 = 2^10 - 1
fe.go#L359: t1.Multiply(&t1, &t0) // 2^20 - 1
fe.go#L364: t1.Multiply(&t2, &t1) // 2^40 - 1
fe.go#L369: t0.Multiply(&t1, &t0) // 2^50 - 1
fe.go#L374: t1.Multiply(&t1, &t0) // 2^100 - 1
fe.go#L379: t1.Multiply(&t2, &t1) // 2^200 - 1
fe.go#L384: t0.Multiply(&t1, &t0) // 2^250 - 1
fe.go#L387: return v.Multiply(&t0, x) // 2^252 - 3 -> x^(2^252-3)
fe.go#L404: uv3 := new(Element).Multiply(u, t0.Multiply(v2, v))
fe.go#L405: uv7 := new(Element).Multiply(uv3, t0.Square(v2))
fe.go#L406: rr := new(Element).Multiply(uv3, t0.Pow22523(uv7))
fe.go#L408: check := new(Element).Multiply(v, t0.Square(rr)) // check = v * r^2
fe.go#L413: flippedSignSqrtI := check.Equal(t0.Multiply(uNeg, sqrtM1))
fe.go#L415: rPrime := new(Element).Multiply(rr, sqrtM1) // r_prime = SQRT_M1 * r
crypto/internal/fips140/edwards25519
edwards25519.go#L128: x.Multiply(&v.x, &zInv) // x = X / Z
edwards25519.go#L129: 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)
crypto/ecdh
x25519.go#L118: z3.Multiply(&tmp0, &x2)
x25519.go#L119: z2.Multiply(&z2, &tmp1)
x25519.go#L124: x2.Multiply(&tmp1, &tmp0)
x25519.go#L131: z3.Multiply(&x1, &z2)
x25519.go#L132: z2.Multiply(&tmp1, &tmp0)
x25519.go#L139: x2.Multiply(&x2, &z2)