* mpicoder.c (do_get_buffer): Don't remove leading zeros if the
authorWerner Koch <wk@gnupg.org>
Tue, 13 Aug 2002 05:55:16 +0000 (05:55 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 13 Aug 2002 05:55:16 +0000 (05:55 +0000)
MPI is marked as protected.

mpi/ChangeLog
mpi/mpicoder.c

index e2e27c8..f540fac 100644 (file)
@@ -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.
index e0434c1..559facd 100644 (file)
@@ -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;
 }