From: A.M. K. <aku...@us...> - 2004-08-13 22:24:28
|
Update of /cvsroot/pycrypto/crypto/Util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27740 Modified Files: test.py Log Message: Avoid ZeroDivisionError if resolution of time.time() is too small (e.g. on Windows) Index: test.py =================================================================== RCS file: /cvsroot/pycrypto/crypto/Util/test.py,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- test.py 28 Feb 2003 15:26:01 -0000 1.15 +++ test.py 13 Aug 2004 22:24:18 -0000 1.16 @@ -23,6 +23,13 @@ print '***ERROR: ', string # sys.exit(0) # Will default to continuing onward... +def print_timing (size, delta, verbose): + if verbose: + if delta == 0: + print 'Unable to measure time -- elapsed time too small' + else: + print '%.2f K/sec' % (size/delta) + def exerciseBlockCipher(cipher, verbose): import string, time try: @@ -59,7 +66,7 @@ end=time.time() if (str!=s2): die('Error in resulting plaintext from ECB mode') - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj if verbose: print ' CFB mode:', @@ -71,7 +78,7 @@ end=time.time() if (plaintext!=str[0:65536]): die('Error in resulting plaintext from CFB mode') - if verbose: print 64/(end-start), 'K/sec' + print_timing(64, end-start, verbose) del obj1, obj2 if verbose: print ' CBC mode:', @@ -83,7 +90,7 @@ end=time.time() if (plaintext!=str): die('Error in resulting plaintext from CBC mode') - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj1, obj2 if verbose: print ' PGP mode:', @@ -95,7 +102,7 @@ end=time.time() if (plaintext!=str): die('Error in resulting plaintext from PGP mode') - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj1, obj2 if verbose: print ' OFB mode:', @@ -107,7 +114,7 @@ end=time.time() if (plaintext!=str): die('Error in resulting plaintext from OFB mode') - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj1, obj2 def counter(length=ciph.block_size): @@ -122,7 +129,7 @@ end=time.time() if (plaintext!=str): die('Error in resulting plaintext from CTR mode') - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj1, obj2 # Test the IV handling @@ -178,7 +185,7 @@ s=obj1.encrypt(str) str=obj2.decrypt(s) end=time.time() - if verbose: print 256/(end-start), 'K/sec' + print_timing(256, end-start, verbose) del obj1, obj2 return ciph |