summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2002-08-13 07:55:16 +0200
committerWerner Koch <wk@gnupg.org>2002-08-13 07:55:16 +0200
commita4750ea3de7f523353bb88f4497803e20c52d456 (patch)
tree388a347f21a1e7d187484e08977577f2f33e95ad
parent* cipher.c: Include the DUMMY cipher only when the new ALLOW_DUMMY (diff)
downloadgnupg2-a4750ea3de7f523353bb88f4497803e20c52d456.tar.xz
gnupg2-a4750ea3de7f523353bb88f4497803e20c52d456.zip
* mpicoder.c (do_get_buffer): Don't remove leading zeros if the
MPI is marked as protected.
-rw-r--r--mpi/ChangeLog5
-rw-r--r--mpi/mpicoder.c15
2 files changed, 14 insertions, 6 deletions
diff --git a/mpi/ChangeLog b/mpi/ChangeLog
index e2e27c8cf..f540fac2e 100644
--- a/mpi/ChangeLog
+++ b/mpi/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-13 Werner Koch <wk@gnupg.org>
+
+ * mpicoder.c (do_get_buffer): Don't remove leading zeros if the
+ MPI is marked as protected.
+
2002-08-02 Timo Schulz <ts@winpt.org>
* mpicoder.c: Add a '\n' to all log_bug functions.
diff --git a/mpi/mpicoder.c b/mpi/mpicoder.c
index e0434c15f..559facd89 100644
--- a/mpi/mpicoder.c
+++ b/mpi/mpicoder.c
@@ -363,12 +363,15 @@ do_get_buffer( MPI a, unsigned *nbytes, int *sign, int force_secure )
#endif
}
- /* this is sub-optimal but we need to do the shift oepration because
- * the caller has to free the returned buffer */
- for(p=buffer; !*p && *nbytes; p++, --*nbytes )
- ;
- if( p != buffer )
- memmove(buffer,p, *nbytes);
+ if (!mpi_is_protected (a))
+ {
+ /* this is sub-optimal but we need to do the shift operation
+ * because the caller has to free the returned buffer */
+ for(p=buffer; !*p && *nbytes; p++, --*nbytes )
+ ;
+ if( p != buffer )
+ memmove(buffer,p, *nbytes);
+ }
return buffer;
}