#!/usr/bin/env python import os, sys def main(prog, *args): if len(args) != 1: raise Exception("missing program name as parameter") lineiter = sys.stdin.xreadlines() for l in lineiter: if l.startswith("Len = "): sys.stdout.write(".") sys.stdout.flush() length = int(l[len("Len = "):]) l = lineiter.next() if not l.startswith("Msg = "): raise Exception("bad file, expecting 'Msg = ' after 'Len = '"); msg = l[len("Msg = "):].rstrip("\r\n") if length == 0: msg = "" if len(msg)*4 != length: raise Exception("bad msg, claimed length %d bits, have %d bytes = %d bits" % (length, len(msg), len(msg)*4)) l = lineiter.next() if not l.startswith("MD = "): raise Exception("bad file, expecting 'MD = ' after 'Msg = '"); exp = l[len("MD = "):].rstrip("\r\n") res = os.popen("echo -n %s | tr a-z A-Z | python -c 'import sys, base64; sys.stdout.write(base64.b16decode(sys.stdin.read()))' | %s" % (msg, args[0]), "r").read().rstrip("\n") if res != exp: print >>sys.stderr, "\nbad result\nexpected: %s\nsaw: %s\n" % (exp, res), sys.exit(1) print if __name__ == "__main__": main(*sys.argv)
#!/usr/bin/env python
import os, sys
def main(prog, *args):
if len(args) != 1:
raise Exception("missing program name as parameter")
lineiter = sys.stdin.xreadlines()
for l in lineiter:
if l.startswith("Len = "):
sys.stdout.write(".")
sys.stdout.flush()
length = int(l[len("Len = "):])
l = lineiter.next()
if not l.startswith("Msg = "):
raise Exception("bad file, expecting 'Msg = ' after 'Len = '");
msg = l[len("Msg = "):].rstrip("\r\n")
if length == 0:
msg = ""
if len(msg)*4 != length:
raise Exception("bad msg, claimed length %d bits, have %d bytes = %d bits" % (length, len(msg), len(msg)*4))
l = lineiter.next()
if not l.startswith("MD = "):
raise Exception("bad file, expecting 'MD = ' after 'Msg = '");
exp = l[len("MD = "):].rstrip("\r\n")
res = os.popen("echo -n %s | tr a-z A-Z | python -c 'import sys, base64; sys.stdout.write(base64.b16decode(sys.stdin.read()))' | %s" % (msg, args[0]), "r").read().rstrip("\n")
if res != exp:
print >>sys.stderr, "\nbad result\nexpected: %s\nsaw: %s\n" % (exp, res),
sys.exit(1)
print
if __name__ == "__main__":
main(*sys.argv)