diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Demo/md5test/md5driver.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Demo/md5test/md5driver.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,123 @@ +import string +import md5 +from sys import argv + +def MDPrint(str): + outstr = '' + for i in str: + o = ord(i) + outstr = (outstr + + string.hexdigits[(o >> 4) & 0xF] + + string.hexdigits[o & 0xF]) + print outstr, + + +from time import time + +def makestr(start, end): + result = '' + for i in range(start, end + 1): + result = result + chr(i) + + return result + + +def MDTimeTrial(): + TEST_BLOCK_SIZE = 1000 + TEST_BLOCKS = 10000 + + TEST_BYTES = TEST_BLOCK_SIZE * TEST_BLOCKS + + # initialize test data, need temporary string filler + + filsiz = 1 << 8 + filler = makestr(0, filsiz-1) + data = filler * (TEST_BLOCK_SIZE // filsiz) + data = data + filler[:(TEST_BLOCK_SIZE % filsiz)] + + del filsiz, filler + + + # start timer + print 'MD5 time trial. Processing', TEST_BYTES, 'characters...' + t1 = time() + + mdContext = md5.new() + + for i in range(TEST_BLOCKS): + mdContext.update(data) + + str = mdContext.digest() + t2 = time() + + MDPrint(str) + print 'is digest of test input.' + print 'Seconds to process test input:', t2 - t1 + print 'Characters processed per second:', TEST_BYTES / (t2 - t1) + + +def MDString(str): + MDPrint(md5.new(str).digest()) + print '"' + str + '"' + + +def MDFile(filename): + f = open(filename, 'rb') + mdContext = md5.new() + + while 1: + data = f.read(1024) + if not data: + break + mdContext.update(data) + + MDPrint(mdContext.digest()) + print filename + + +import sys + +def MDFilter(): + mdContext = md5.new() + + while 1: + data = sys.stdin.read(16) + if not data: + break + mdContext.update(data) + + MDPrint(mdContext.digest()) + print + + +def MDTestSuite(): + print 'MD5 test suite results:' + MDString('') + MDString('a') + MDString('abc') + MDString('message digest') + MDString(makestr(ord('a'), ord('z'))) + MDString(makestr(ord('A'), ord('Z')) + + makestr(ord('a'), ord('z')) + + makestr(ord('0'), ord('9'))) + MDString((makestr(ord('1'), ord('9')) + '0') * 8) + + # Contents of file foo are "abc" + MDFile('foo') + + +# I don't wanna use getopt(), since I want to use the same i/f... +def main(): + if len(argv) == 1: + MDFilter() + for arg in argv[1:]: + if arg[:2] == '-s': + MDString(arg[2:]) + elif arg == '-t': + MDTimeTrial() + elif arg == '-x': + MDTestSuite() + else: + MDFile(arg) + +main()