CVS: crypto/Util number.py,1.12,1.13
"A.M. Kuchling" <[email protected]> Fri, 04 Apr 2003 10:21:11 -0800
| Newsgroups | gmane.comp.python.cryptography.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/pycrypto/crypto/Util
In directory sc8-pr-cvs1:/tmp/cvs-serv24745
Modified Files:
number.py
Log Message:
Add size() function; change assertion on output of getRandomNumber
Index: number.py
===================================================================
RCS file: /cvsroot/pycrypto/crypto/Util/number.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- number.py 4 Apr 2003 18:04:40 -0000 1.12
+++ number.py 4 Apr 2003 18:21:07 -0000 1.13
@@ -31,6 +31,16 @@
## if type(s)!=types.StringType: return s # Integers will be left alone
## return reduce(lambda x,y : x*256+ord(y), s, 0L)
+def size (N):
+ """size(N:long) : int
+ Returns the size of the number N in bits.
+ """
+ bits, power = 0,1L
+ while N >= power:
+ bits += 1
+ power = power << 1
+ return bits
+
def getRandomNumber(N, randfunc):
"""getRandomNumber(N:int, randfunc:callable):long
Return an N-bit random number."""
@@ -42,7 +52,7 @@
S = chr(char) + S
value = bytes_to_long(S)
value |= 2L ** (N-1) # Ensure high bit is set
- assert value >= 2L ** (N-1)
+ assert size(value) >= N
return value
def GCD(x,y):
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb:
Dedicated Hosting for just $79/mo with 500 GB of bandwidth!
No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/