From 60b9ae4cf3a0428668748a53f278a80d41fbfc38 Mon Sep 17 00:00:00 2001 From: Brian Kessler Date: Fri, 21 Jul 2017 01:19:42 -0700 Subject: [PATCH] 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 --- src/crypto/rsa/rsa.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 -- 2.48.1