mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +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
@@ -14,8 +14,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
|
||||
@@ -36,7 +36,7 @@
|
||||
* result in W. U and V may be the same.
|
||||
*/
|
||||
void
|
||||
gcry_mpi_add_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
_gcry_mpi_add_ui (gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
{
|
||||
mpi_ptr_t wp, up;
|
||||
mpi_size_t usize, wsize;
|
||||
@@ -84,8 +84,8 @@ gcry_mpi_add_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gcry_mpi_add(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
static void
|
||||
_gcry_mpi_add_inv_sign(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, int inv_v_sign)
|
||||
{
|
||||
mpi_ptr_t wp, up, vp;
|
||||
mpi_size_t usize, vsize, wsize;
|
||||
@@ -93,7 +93,7 @@ gcry_mpi_add(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
|
||||
if( u->nlimbs < v->nlimbs ) { /* Swap U and V. */
|
||||
usize = v->nlimbs;
|
||||
usign = v->sign;
|
||||
usign = v->sign ^ inv_v_sign;
|
||||
vsize = u->nlimbs;
|
||||
vsign = u->sign;
|
||||
wsize = usize + 1;
|
||||
@@ -106,7 +106,7 @@ gcry_mpi_add(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
usize = u->nlimbs;
|
||||
usign = u->sign;
|
||||
vsize = v->nlimbs;
|
||||
vsign = v->sign;
|
||||
vsign = v->sign ^ inv_v_sign;
|
||||
wsize = usize + 1;
|
||||
RESIZE_IF_NEEDED(w, wsize);
|
||||
/* These must be after realloc (u or v may be the same as w). */
|
||||
@@ -162,7 +162,7 @@ gcry_mpi_add(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
* result in W.
|
||||
*/
|
||||
void
|
||||
gcry_mpi_sub_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
_gcry_mpi_sub_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
{
|
||||
mpi_ptr_t wp, up;
|
||||
mpi_size_t usize, wsize;
|
||||
@@ -191,6 +191,7 @@ gcry_mpi_sub_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
cy = _gcry_mpih_add_1(wp, up, usize, v);
|
||||
wp[usize] = cy;
|
||||
wsize = usize + cy;
|
||||
wsign = 1;
|
||||
}
|
||||
else { /* The signs are different. Need exact comparison to determine
|
||||
* which operand to subtract from which. */
|
||||
@@ -211,25 +212,50 @@ gcry_mpi_sub_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v )
|
||||
}
|
||||
|
||||
void
|
||||
gcry_mpi_sub(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
_gcry_mpi_add(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
{
|
||||
gcry_mpi_t vv = mpi_copy (v);
|
||||
vv->sign = ! vv->sign;
|
||||
gcry_mpi_add (w, u, vv);
|
||||
mpi_free (vv);
|
||||
_gcry_mpi_add_inv_sign (w, u, v, 0);
|
||||
}
|
||||
|
||||
void
|
||||
_gcry_mpi_sub(gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v)
|
||||
{
|
||||
_gcry_mpi_add_inv_sign (w, u, v, 1);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gcry_mpi_addm( gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
|
||||
_gcry_mpi_addm( gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
|
||||
{
|
||||
gcry_mpi_add(w, u, v);
|
||||
_gcry_mpi_fdiv_r( w, w, m );
|
||||
gcry_mpi_t temp_m = NULL;
|
||||
|
||||
if (w == m)
|
||||
{
|
||||
temp_m = mpi_copy (m);
|
||||
m = temp_m;
|
||||
}
|
||||
|
||||
mpi_add (w, u, v);
|
||||
mpi_mod (w, w, m);
|
||||
|
||||
if (temp_m)
|
||||
mpi_free(temp_m);
|
||||
}
|
||||
|
||||
void
|
||||
gcry_mpi_subm( gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
|
||||
_gcry_mpi_subm( gcry_mpi_t w, gcry_mpi_t u, gcry_mpi_t v, gcry_mpi_t m)
|
||||
{
|
||||
gcry_mpi_sub(w, u, v);
|
||||
_gcry_mpi_fdiv_r( w, w, m );
|
||||
gcry_mpi_t temp_m = NULL;
|
||||
|
||||
if (w == m)
|
||||
{
|
||||
temp_m = mpi_copy (m);
|
||||
m = temp_m;
|
||||
}
|
||||
|
||||
mpi_sub (w, u, v);
|
||||
mpi_mod (w, w, m);
|
||||
|
||||
if (temp_m)
|
||||
mpi_free(temp_m);
|
||||
}
|
||||
Reference in new issue
Block a user