• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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@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 */
ocb_ntz(unsigned long x)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