mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-24 16:19:22 +00:00
libgcrypt: Import libgcrypt 1.11
We currently use an old version of libgcrypt which results in us having fewer ciphers and missing on many other improvements. Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
1 parent
a0d4c94ef6
commit
3312af6e07
468 files changed
+210508
-33178
No files matched your search
@@ -15,8 +15,8 @@
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser 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
|
||||
* License along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
*
|
||||
* Note: This code is heavily based on the GNU MP Library.
|
||||
* Actually it's the same code with only minor changes in the
|
||||
@@ -50,6 +50,7 @@
|
||||
#endif /*BITS_PER_MPI_LIMB*/
|
||||
|
||||
#include "mpi.h"
|
||||
#include "const-time.h"
|
||||
|
||||
/* If KARATSUBA_THRESHOLD is not already defined, define it to a
|
||||
* value which is good on most machines. */
|
||||
@@ -79,6 +80,11 @@ typedef int mpi_size_t; /* (must be a signed type) */
|
||||
if( (a)->alloced < (b) ) \
|
||||
mpi_resize((a), (b)); \
|
||||
} while(0)
|
||||
#define RESIZE_AND_CLEAR_IF_NEEDED(a,b) \
|
||||
do { \
|
||||
if( (a)->nlimbs < (b) ) \
|
||||
mpi_resize((a), (b)); \
|
||||
} while(0)
|
||||
|
||||
/* Copy N limbs from S to D. */
|
||||
#define MPN_COPY( d, s, n) \
|
||||
@@ -92,7 +98,7 @@ typedef int mpi_size_t; /* (must be a signed type) */
|
||||
do { \
|
||||
mpi_size_t _i; \
|
||||
for( _i = 0; _i < (n); _i++ ) \
|
||||
(d)[_i] = (d)[_i]; \
|
||||
(d)[_i] = (s)[_i]; \
|
||||
} while (0)
|
||||
|
||||
#define MPN_COPY_DECR( d, s, n ) \
|
||||
@@ -134,7 +140,7 @@ typedef int mpi_size_t; /* (must be a signed type) */
|
||||
mul_n_basecase (prodp, up, vp, size); \
|
||||
else \
|
||||
mul_n (prodp, up, vp, size, tspace); \
|
||||
} while (0);
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Divide the two-limb number in (NH,,NL) by D, with DI being the largest
|
||||
@@ -145,7 +151,8 @@ typedef int mpi_size_t; /* (must be a signed type) */
|
||||
*/
|
||||
#define UDIV_QRNND_PREINV(q, r, nh, nl, d, di) \
|
||||
do { \
|
||||
mpi_limb_t _q, _ql, _r; \
|
||||
mpi_limb_t _ql GCC_ATTR_UNUSED; \
|
||||
mpi_limb_t _q, _r; \
|
||||
mpi_limb_t _xh, _xl; \
|
||||
umul_ppmm (_q, _ql, (nh), (di)); \
|
||||
_q += (nh); /* DI is 2**BITS_PER_MPI_LIMB too small */ \
|
||||
@@ -253,6 +260,49 @@ mpi_limb_t _gcry_mpih_lshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
|
||||
mpi_limb_t _gcry_mpih_rshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
|
||||
unsigned cnt);
|
||||
|
||||
/*-- mpih-const-time.c --*/
|
||||
#define mpih_set_cond(w,u,s,o) _gcry_mpih_set_cond ((w),(u),(s),(o))
|
||||
#define mpih_add_n_cond(w,u,v,s,o) _gcry_mpih_add_n_cond ((w),(u),(v),(s),(o))
|
||||
#define mpih_sub_n_cond(w,u,v,s,o) _gcry_mpih_sub_n_cond ((w),(u),(v),(s),(o))
|
||||
#define mpih_swap_cond(u,v,s,o) _gcry_mpih_swap_cond ((u),(v),(s),(o))
|
||||
#define mpih_abs_cond(w,u,s,o) _gcry_mpih_abs_cond ((w),(u),(s),(o))
|
||||
#define mpih_mod(v,vs,u,us) _gcry_mpih_mod ((v),(vs),(u),(us))
|
||||
|
||||
DEFINE_CT_TYPE_GEN_MASK(limb, mpi_limb_t)
|
||||
DEFINE_CT_TYPE_GEN_INV_MASK(limb, mpi_limb_t)
|
||||
|
||||
static inline int
|
||||
mpih_limb_is_zero (mpi_limb_t a)
|
||||
{
|
||||
/* Sign bit set if A == 0. */
|
||||
a = ~a & ~(-a);
|
||||
|
||||
return a >> (BITS_PER_MPI_LIMB - 1);
|
||||
}
|
||||
|
||||
static inline int
|
||||
mpih_limb_is_not_zero (mpi_limb_t a)
|
||||
{
|
||||
/* Sign bit set if A != 0. */
|
||||
a = a | (-a);
|
||||
|
||||
return a >> (BITS_PER_MPI_LIMB - 1);
|
||||
}
|
||||
|
||||
void _gcry_mpih_set_cond (mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
|
||||
unsigned long op_enable);
|
||||
mpi_limb_t _gcry_mpih_add_n_cond (mpi_ptr_t wp, mpi_ptr_t up, mpi_ptr_t vp,
|
||||
mpi_size_t usize, unsigned long op_enable);
|
||||
mpi_limb_t _gcry_mpih_sub_n_cond (mpi_ptr_t wp, mpi_ptr_t up, mpi_ptr_t vp,
|
||||
mpi_size_t usize, unsigned long op_enable);
|
||||
void _gcry_mpih_swap_cond (mpi_ptr_t up, mpi_ptr_t vp, mpi_size_t usize,
|
||||
unsigned long op_enable);
|
||||
void _gcry_mpih_abs_cond (mpi_ptr_t wp, mpi_ptr_t up,
|
||||
mpi_size_t usize, unsigned long op_enable);
|
||||
mpi_ptr_t _gcry_mpih_mod (mpi_ptr_t vp, mpi_size_t vsize,
|
||||
mpi_ptr_t up, mpi_size_t usize);
|
||||
int _gcry_mpih_cmp_ui (mpi_ptr_t up, mpi_size_t usize, unsigned long v);
|
||||
|
||||
|
||||
/* Define stuff for longlong.h. */
|
||||
#define W_TYPE_SIZE BITS_PER_MPI_LIMB
|
||||
|
||||
Reference in new issue
Block a user