diff options
Diffstat (limited to 'lib/mpi/mpi-pow.c')
| -rw-r--r-- | lib/mpi/mpi-pow.c | 21 | 
1 files changed, 3 insertions, 18 deletions
| diff --git a/lib/mpi/mpi-pow.c b/lib/mpi/mpi-pow.c index a5c921e6d667..2fd7a46d55ec 100644 --- a/lib/mpi/mpi-pow.c +++ b/lib/mpi/mpi-pow.c @@ -1,22 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0-or-later  /* mpi-pow.c  -  MPI functions   *	Copyright (C) 1994, 1996, 1998, 2000 Free Software Foundation, Inc.   *   * This file is part of GnuPG.   * - * GnuPG is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GnuPG is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - *   * Note: This code is heavily based on the GNU MP Library.   *	 Actually it's the same code with only minor changes in the   *	 way the data is stored; this is to support the abstraction @@ -37,6 +24,7 @@  int mpi_powm(MPI res, MPI base, MPI exp, MPI mod)  {  	mpi_ptr_t mp_marker = NULL, bp_marker = NULL, ep_marker = NULL; +	struct karatsuba_ctx karactx = {};  	mpi_ptr_t xp_marker = NULL;  	mpi_ptr_t tspace = NULL;  	mpi_ptr_t rp, ep, mp, bp; @@ -163,13 +151,11 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod)  		int c;  		mpi_limb_t e;  		mpi_limb_t carry_limb; -		struct karatsuba_ctx karactx;  		xp = xp_marker = mpi_alloc_limb_space(2 * (msize + 1));  		if (!xp)  			goto enomem; -		memset(&karactx, 0, sizeof karactx);  		negative_result = (ep[0] & 1) && base->sign;  		i = esize - 1; @@ -294,8 +280,6 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod)  		if (mod_shift_cnt)  			mpihelp_rshift(rp, rp, rsize, mod_shift_cnt);  		MPN_NORMALIZE(rp, rsize); - -		mpihelp_release_karatsuba_ctx(&karactx);  	}  	if (negative_result && rsize) { @@ -312,6 +296,7 @@ int mpi_powm(MPI res, MPI base, MPI exp, MPI mod)  leave:  	rc = 0;  enomem: +	mpihelp_release_karatsuba_ctx(&karactx);  	if (assign_rp)  		mpi_assign_limb_space(res, rp, size);  	if (mp_marker) | 
