summaryrefslogtreecommitdiff
path: root/mpi/mpi-bit.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1999-01-07 17:05:44 +0000
committerWerner Koch <wk@gnupg.org>1999-01-07 17:05:44 +0000
commit37cdf7d88bad91e9b6d66bad7dc91082142cccc2 (patch)
treea91d15d325d26afd60e6416905de0df6b1199388 /mpi/mpi-bit.c
parentaf1719288e56347975b751fe1ab2384982bf8b07 (diff)
downloadlibgcrypt-37cdf7d88bad91e9b6d66bad7dc91082142cccc2.tar.gz
See ChangeLog: Thu Jan 7 18:00:58 CET 1999 Werner Koch
Diffstat (limited to 'mpi/mpi-bit.c')
-rw-r--r--mpi/mpi-bit.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/mpi/mpi-bit.c b/mpi/mpi-bit.c
index 8ca5c57d..227a929b 100644
--- a/mpi/mpi-bit.c
+++ b/mpi/mpi-bit.c
@@ -48,7 +48,19 @@ __clz_tab[] =
#define A_LIMB_1 ((mpi_limb_t)1)
+/****************
+ * Sometimes we have MSL (most significant limbs) which are 0;
+ * this is for some reasons not good, so this function removes them.
+ */
+void
+mpi_normalize( MPI a )
+{
+ if( mpi_is_protected(a) )
+ return;
+ for( ; a->nlimbs && !a->d[a->nlimbs-1]; a->nlimbs-- )
+ ;
+}
@@ -67,6 +79,7 @@ mpi_get_nbits( MPI a )
return n;
}
+ mpi_normalize( a );
if( a->nlimbs ) {
mpi_limb_t alimb = a->d[a->nlimbs-1];
if( alimb )