1
0
mirror of https://github.com/golang/go synced 2024-11-20 09:44:45 -07:00

crypto/tls: check in support code.

This support code helps in generating the handshake scripts
which are used for testing.

R=rsc, ality
CC=golang-dev
https://golang.org/cl/3680041
This commit is contained in:
Adam Langley 2010-12-16 10:39:53 -05:00
parent 0bf2aa1aa7
commit fd021cbe8f
2 changed files with 60 additions and 4 deletions

View File

@ -189,10 +189,11 @@ var testPrivateKey = &rsa.PrivateKey{
}
// Script of interaction with gnutls implementation.
// The values for this test are obtained by building a test binary (gotest)
// and then running 6.out -serve to start a server and then
// gnutls-cli --insecure --debug 100 -p 10443 localhost
// to dump a session.
// The values for this test are obtained by building and running in server mode:
// % gotest -match "TestRunServer" -serve
// and then:
// % gnutls-cli --insecure --debug 100 -p 10443 localhost > /tmp/log 2>&1
// % python parse-gnutls-cli-debug-log.py < /tmp/log
var rc4ServerScript = [][]byte{
{
0x16, 0x03, 0x02, 0x00, 0x7f, 0x01, 0x00, 0x00,

View File

@ -0,0 +1,55 @@
# 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")