crypto/rsa.PrivateKey.Precomputed (field)

31 uses

	crypto/rsa (current package)
		rsa.go#L120: 	Precomputed PrecomputedValues
		rsa.go#L339: 			Precomputed: PrecomputedValues{
		rsa.go#L583: 	if priv.Precomputed.n == nil && len(priv.Primes) == 2 {
		rsa.go#L587: 		priv.Precomputed.n, err = bigmod.NewModulusFromBig(priv.N)
		rsa.go#L591: 		priv.Precomputed.p, err = bigmod.NewModulusFromBig(priv.Primes[0])
		rsa.go#L594: 			priv.Precomputed.n = nil
		rsa.go#L597: 		priv.Precomputed.q, err = bigmod.NewModulusFromBig(priv.Primes[1])
		rsa.go#L600: 			priv.Precomputed.n, priv.Precomputed.p = nil, nil
		rsa.go#L606: 	if priv.Precomputed.Dp != nil {
		rsa.go#L610: 	priv.Precomputed.Dp = new(big.Int).Sub(priv.Primes[0], bigOne)
		rsa.go#L611: 	priv.Precomputed.Dp.Mod(priv.D, priv.Precomputed.Dp)
		rsa.go#L613: 	priv.Precomputed.Dq = new(big.Int).Sub(priv.Primes[1], bigOne)
		rsa.go#L614: 	priv.Precomputed.Dq.Mod(priv.D, priv.Precomputed.Dq)
		rsa.go#L616: 	priv.Precomputed.Qinv = new(big.Int).ModInverse(priv.Primes[1], priv.Primes[0])
		rsa.go#L619: 	priv.Precomputed.CRTValues = make([]CRTValue, len(priv.Primes)-2)
		rsa.go#L622: 		values := &priv.Precomputed.CRTValues[i-2]
		rsa.go#L651: 	if priv.Precomputed.n == nil {
		rsa.go#L662: 		N = priv.Precomputed.n
		rsa.go#L663: 		P, Q := priv.Precomputed.p, priv.Precomputed.q
		rsa.go#L664: 		Qinv, err := bigmod.NewNat().SetBytes(priv.Precomputed.Qinv.Bytes(), P)
		rsa.go#L674: 		m = bigmod.NewNat().Exp(t0.Mod(c, P), priv.Precomputed.Dp.Bytes(), P)
		rsa.go#L676: 		m2 := bigmod.NewNat().Exp(t0.Mod(c, Q), priv.Precomputed.Dq.Bytes(), Q)

	crypto/x509
		pkcs1.go#L119: 		Dp:      key.Precomputed.Dp,
		pkcs1.go#L120: 		Dq:      key.Precomputed.Dq,
		pkcs1.go#L121: 		Qinv:    key.Precomputed.Qinv,
		pkcs1.go#L124: 	priv.AdditionalPrimes = make([]pkcs1AdditionalRSAPrime, len(key.Precomputed.CRTValues))
		pkcs1.go#L125: 	for i, values := range key.Precomputed.CRTValues {