diff options
author | Werner Koch <wk@gnupg.org> | 2006-08-28 09:40:39 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2006-08-28 09:40:39 +0000 |
commit | 9dba89cde740d7c518a73b869d07d6247e0e7488 (patch) | |
tree | f3f15bc215c20a02b6fb9f5c5691825aa3e48ec9 /mpi | |
parent | 5681a844ea16e74ededb45db7e9665b4ffd29045 (diff) | |
download | libgcrypt-9dba89cde740d7c518a73b869d07d6247e0e7488.tar.gz |
Fixed a problem with shifting MPIs by 0.
Add a way to check whether the RNG is in fake mode.
Diffstat (limited to 'mpi')
-rw-r--r-- | mpi/ChangeLog | 5 | ||||
-rw-r--r-- | mpi/mpi-bit.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/mpi/ChangeLog b/mpi/ChangeLog index 176ccf22..c670967e 100644 --- a/mpi/ChangeLog +++ b/mpi/ChangeLog @@ -1,3 +1,8 @@ +2006-08-25 Werner Koch <wk@g10code.com> + + * mpi-bit.c (gcry_mpi_rshift): Don't shift if N == 0 but do a + plain copy. + 2006-08-04 Werner Koch <wk@g10code.com> * mpi-bit.c (gcry_mpi_rshift): Rewritten to remove the limitation diff --git a/mpi/mpi-bit.c b/mpi/mpi-bit.c index d16eaae1..fe4895dc 100644 --- a/mpi/mpi-bit.c +++ b/mpi/mpi-bit.c @@ -256,7 +256,17 @@ gcry_mpi_rshift ( gcry_mpi_t x, gcry_mpi_t a, unsigned int n ) x->nlimbs = xsize; if ( xsize ) - _gcry_mpih_rshift (x->d, a->d, x->nlimbs, nbits ); + { + if (nbits ) + _gcry_mpih_rshift (x->d, a->d, x->nlimbs, nbits ); + else + { + /* The rshift helper function is not specified for + NBITS==0, thus we do a plain copy here. */ + for (i=0; i < x->nlimbs; i++ ) + x->d[i] = a->d[i]; + } + } } MPN_NORMALIZE (x->d, x->nlimbs); } |