- 2D6F3C1ECB3331CDFB54C9EFA53246CAC6A6DFA16465D2E354C6801974964229CB173E7AFF19C4C92E896B8C65CFBC6DA79EF03C20022772F5C299F1C3CBC063
+ 8D2390541B928FC4B9E92C17766530734CE64B823A3AFF6E648C0CFEEF6367A9FC18A0DE2754378B04DBD6072D862CECB447C372CEFAAD1D39D5D619B2FF6ABD
mpi/mpih-mul.c
(1 . 40)(1 . 34)
4796 /* mpihelp-mul.c - MPI helper functions
4797 * Copyright (C) 1994, 1996, 1998, 1999,
4798 * 2000 Free Software Foundation, Inc.
4799 * Modified by No Such Labs. (C) 2015. See README.
4800 *
4801 * This file is part of GnuPG.
4802 * This file was originally part of Gnu Privacy Guard (GPG), ver. 1.4.10,
4803 * SHA256(gnupg-1.4.10.tar.gz):
4804 * 0bfd74660a2f6cedcf7d8256db4a63c996ffebbcdc2cf54397bfb72878c5a85a
4805 * (C) 1994-2005 Free Software Foundation, Inc.
4806 *
4807 * GnuPG is free software; you can redistribute it and/or modify
4808 * This program is free software: you can redistribute it and/or modify
4809 * it under the terms of the GNU General Public License as published by
4810 * the Free Software Foundation; either version 3 of the License, or
4811 * the Free Software Foundation, either version 3 of the License, or
4812 * (at your option) any later version.
4813 *
4814 * GnuPG is distributed in the hope that it will be useful,
4815 * This program is distributed in the hope that it will be useful,
4816 * but WITHOUT ANY WARRANTY; without even the implied warranty of
4817 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4818 * GNU General Public License for more details.
4819 *
4820 * You should have received a copy of the GNU General Public License
4821 * along with this program; if not, see <http://www.gnu.org/licenses/>.
4822 *
4823 * Note: This code is heavily based on the GNU MP Library.
4824 * Actually it's the same code with only minor changes in the
4825 * way the data is stored; this is to support the abstraction
4826 * of an optional secure memory allocation which may be used
4827 * to avoid revealing of sensitive data due to paging etc.
4828 * The GNU MP Library itself is published under the LGPL;
4829 * however I decided to publish this code under the plain GPL.
4830 * along with this program. If not, see <http://www.gnu.org/licenses/>.
4831 */
4832
4833 #include <config.h>
4834 #include <stdio.h>
4835 #include <stdlib.h>
4836 #include <string.h>
4837
4838 #include "knobs.h"
4839 #include "mpi-internal.h"
4840 #include "longlong.h"
4841
4842
4843
4844 #define MPN_MUL_N_RECURSE(prodp, up, vp, size, tspace) \
4845 do { \
4846 if( (size) < KARATSUBA_THRESHOLD ) \
(52 . 8)(46 . 6)
4848 } while (0);
4849
4850
4851
4852
4853 /* Multiply the natural numbers u (pointed to by UP) and v (pointed to by VP),
4854 * both with SIZE limbs, and store the result at PRODP. 2 * SIZE limbs are
4855 * always stored. Return the most significant limb.