bn_mp_dr_setup.c 467 B

123456789101112131415
  1. #include "tommath_private.h"
  2. #ifdef BN_MP_DR_SETUP_C
  3. /* LibTomMath, multiple-precision integer library -- Tom St Denis */
  4. /* SPDX-License-Identifier: Unlicense */
  5. /* determines the setup value */
  6. void mp_dr_setup(const mp_int *a, mp_digit *d)
  7. {
  8. /* the casts are required if MP_DIGIT_BIT is one less than
  9. * the number of bits in a mp_digit [e.g. MP_DIGIT_BIT==31]
  10. */
  11. *d = (mp_digit)(((mp_word)1 << (mp_word)MP_DIGIT_BIT) - (mp_word)a->dp[0]);
  12. }
  13. #endif