LCOV - code coverage report
Current view: top level - third_party/heimdal/lib/hcrypto/libtommath - bn_mp_clamp.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 6 6 100.0 %
Date: 2024-04-21 15:09:00 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include "tommath_private.h"
       2             : #ifdef BN_MP_CLAMP_C
       3             : /* LibTomMath, multiple-precision integer library -- Tom St Denis */
       4             : /* SPDX-License-Identifier: Unlicense */
       5             : 
       6             : /* trim unused digits
       7             :  *
       8             :  * This is used to ensure that leading zero digits are
       9             :  * trimed and the leading "used" digit will be non-zero
      10             :  * Typically very fast.  Also fixes the sign if there
      11             :  * are no more leading digits
      12             :  */
      13     5518973 : void mp_clamp(mp_int *a)
      14             : {
      15             :    /* decrease used while the most significant digit is
      16             :     * zero.
      17             :     */
      18     8377955 :    while ((a->used > 0) && (a->dp[a->used - 1] == 0u)) {
      19     2858982 :       --(a->used);
      20             :    }
      21             : 
      22             :    /* reset the sign flag if used == 0 */
      23     5518973 :    if (a->used == 0) {
      24        3786 :       a->sign = MP_ZPOS;
      25             :    }
      26     5518973 : }
      27             : #endif

Generated by: LCOV version 1.14