diff options
author | Werner Koch <wk@gnupg.org> | 1997-11-19 13:12:21 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 1997-11-19 13:12:21 +0000 |
commit | f6b6e3639a266f1bb56cdc05a3a3307a19abafe0 (patch) | |
tree | 20405936a7ceed003631b7f4621fab4f0915dcf9 /mpi/mpi-bit.c | |
parent | 4b5e71ca4e84e61e595dec19e1c7cab0c0a73f24 (diff) | |
download | libgcrypt-f6b6e3639a266f1bb56cdc05a3a3307a19abafe0.tar.gz |
Output armor works, RSA keygen works.
Diffstat (limited to 'mpi/mpi-bit.c')
-rw-r--r-- | mpi/mpi-bit.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mpi/mpi-bit.c b/mpi/mpi-bit.c index 9cb346aa..9bde9f0f 100644 --- a/mpi/mpi-bit.c +++ b/mpi/mpi-bit.c @@ -130,4 +130,25 @@ mpi_set_bytes( MPI a, unsigned nbits, byte (*fnc)(int), int opaque ) assert(!xbits); } +/**************** + * Shift A by N bits to the right + * FIXME: should use alloc_limb if X and A are same. + */ +void +mpi_rshift( MPI x, MPI a, unsigned n ) +{ + mpi_ptr_t xp; + mpi_size_t xsize; + + xsize = a->nlimbs; + x->sign = a->sign; + RESIZE_IF_NEEDED(x, xsize); + xp = x->d; + + if( xsize ) { + mpihelp_rshift( xp, a->d, xsize, n); + MPN_NORMALIZE( xp, xsize); + } + x->nlimbs = xsize; +} |