From: Brian Kessler Date: Fri, 21 Jul 2017 08:19:42 +0000 (-0700) Subject: crypto/rsa: drop uneeded parameter in modInverse X-Git-Tag: go1.10beta1~1678 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=60b9ae4cf3a0428668748a53f278a80d41fbfc38;p=gostls13.git crypto/rsa: drop uneeded parameter in modInverse The current modInverse implementation allocates a big.Int for the second parameter of GCD, while only the first is needed. This is unnecessary and can lead to a speed up for optimizations of GCD where the second parameter is not calculated at all. Change-Id: I3f042e140ff643311bc3d0b8d192992d4d2c4c70 Reviewed-on: https://go-review.googlesource.com/50531 Run-TryBot: Brad Fitzpatrick Run-TryBot: Adam Langley TryBot-Result: Gobot Gobot Reviewed-by: Filippo Valsorda Reviewed-by: Adam Langley --- diff --git a/src/crypto/rsa/rsa.go b/src/crypto/rsa/rsa.go index 1de4fcb473..69a2b58a5a 100644 --- a/src/crypto/rsa/rsa.go +++ b/src/crypto/rsa/rsa.go @@ -424,8 +424,7 @@ var ErrVerification = errors.New("crypto/rsa: verification error") func modInverse(a, n *big.Int) (ia *big.Int, ok bool) { g := new(big.Int) x := new(big.Int) - y := new(big.Int) - g.GCD(x, y, a, n) + g.GCD(x, nil, a, n) if g.Cmp(bigOne) != 0 { // In this case, a and n aren't coprime and we cannot calculate // the inverse. This happens because the values of n are nearly