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)