2010-12-16 15:39:53 +00:00
|
|
|
# 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))
|
2011-10-11 18:07:32 +01:00
|
|
|
elif line.startswith("|<7>| RB-PEEK: Read 1 bytes"):
|
|
|
|
currentBlock = currentBlock[:-1]
|
2010-12-16 15:39:53 +00:00
|
|
|
|
|
|
|
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")
|