56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
|
# 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))
|
||
|
|
||
|
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")
|