LCOV - code coverage report
Current view: top level - source4/heimdal/lib/hcrypto/libtommath - bn_mp_2expt.c (source / functions) Hit Total Coverage
Test: coverage report for abartlet/fix-coverage dd10fb34 Lines: 6 7 85.7 %
Date: 2021-09-23 10:06:22 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include <tommath.h>
       2             : #ifdef BN_MP_2EXPT_C
       3             : /* LibTomMath, multiple-precision integer library -- Tom St Denis
       4             :  *
       5             :  * LibTomMath is a library that provides multiple-precision
       6             :  * integer arithmetic as well as number theoretic functionality.
       7             :  *
       8             :  * The library was designed directly after the MPI library by
       9             :  * Michael Fromberger but has been written from scratch with
      10             :  * additional optimizations in place.
      11             :  *
      12             :  * The library is free for all purposes without any express
      13             :  * guarantee it works.
      14             :  *
      15             :  * Tom St Denis, tomstdenis@gmail.com, http://libtom.org
      16             :  */
      17             : 
      18             : /* computes a = 2**b
      19             :  *
      20             :  * Simple algorithm which zeroes the int, grows it then just sets one bit
      21             :  * as required.
      22             :  */
      23             : int
      24         872 : mp_2expt (mp_int * a, int b)
      25             : {
      26             :   int     res;
      27             : 
      28             :   /* zero a as per default */
      29         872 :   mp_zero (a);
      30             : 
      31             :   /* grow a to accomodate the single bit */
      32         872 :   if ((res = mp_grow (a, b / DIGIT_BIT + 1)) != MP_OKAY) {
      33           0 :     return res;
      34             :   }
      35             : 
      36             :   /* set the used count of where the bit will go */
      37         872 :   a->used = b / DIGIT_BIT + 1;
      38             : 
      39             :   /* put the single bit in its place */
      40         872 :   a->dp[b / DIGIT_BIT] = ((mp_digit)1) << (b % DIGIT_BIT);
      41             : 
      42         872 :   return MP_OKAY;
      43             : }
      44             : #endif
      45             : 
      46             : /* $Source: /cvs/libtom/libtommath/bn_mp_2expt.c,v $ */
      47             : /* $Revision: 1.4 $ */
      48             : /* $Date: 2006/12/28 01:25:13 $ */

Generated by: LCOV version 1.13