# Copyright 2010 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. # This code is used to parse the debug log from gnutls-cli and generate a # script of the handshake. This script is included in handshake_server_test.go. # See the comments there for details. import sys blocks = [] READ = 1 WRITE = 2 currentBlockType = 0 currentBlock = [] for line in sys.stdin.readlines(): line = line[:-1] if line.startswith("|<7>| WRITE: "): if currentBlockType != WRITE: if len(currentBlock) > 0: blocks.append(currentBlock) currentBlock = [] currentBlockType = WRITE elif line.startswith("|<7>| READ: "): if currentBlockType != READ: if len(currentBlock) > 0: blocks.append(currentBlock) currentBlock = [] currentBlockType = READ elif line.startswith("|<7>| 0"): line = line[13:] line = line.strip() bs = line.split() for b in bs: currentBlock.append(int(b, 16)) elif line.startswith("|<7>| RB-PEEK: Read 1 bytes"): currentBlock = currentBlock[:-1] if len(currentBlock) > 0: blocks.append(currentBlock) for block in blocks: sys.stdout.write("\t{\n") i = 0 for b in block: if i % 8 == 0: sys.stdout.write("\t\t") sys.stdout.write("0x%02x," % b) if i % 8 == 7: sys.stdout.write("\n") else: sys.stdout.write(" ") i += 1 sys.stdout.write("\n\t},\n\n")