Home | History | Annotate | Download | only in ocb
      1 /* LibTomCrypt, modular cryptographic library -- Tom St Denis
      2  *
      3  * LibTomCrypt is a library that provides various cryptographic
      4  * algorithms in a highly modular and flexible manner.
      5  *
      6  * The library is free for all purposes without any express
      7  * guarantee it works.
      8  *
      9  * Tom St Denis, tomstdenis (at) gmail.com, http://libtomcrypt.com
     10  */
     11 
     12 /**
     13    @file ocb_ntz.c
     14    OCB implementation, internal function, by Tom St Denis
     15 */
     16 
     17 #include "tomcrypt.h"
     18 
     19 #ifdef OCB_MODE
     20 
     21 /**
     22    Returns the number of leading zero bits [from lsb up]
     23    @param x  The 32-bit value to observe
     24    @return   The number of bits [from the lsb up] that are zero
     25 */
     26 int ocb_ntz(unsigned long x)
     27 {
     28    int c;
     29    x &= 0xFFFFFFFFUL;
     30    c = 0;
     31    while ((x & 1) == 0) {
     32       ++c;
     33       x >>= 1;
     34    }
     35    return c;
     36 }
     37 
     38 #endif
     39 
     40 /* $Source: /cvs/libtom/libtomcrypt/src/encauth/ocb/ocb_ntz.c,v $ */
     41 /* $Revision: 1.4 $ */
     42 /* $Date: 2006/03/31 14:15:35 $ */
     43