github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/src/pkg/crypto/tls/handshake_server_test.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package tls
     6  
     7  import (
     8  	"bytes"
     9  	"crypto/rsa"
    10  	"crypto/x509"
    11  	"encoding/hex"
    12  	"encoding/pem"
    13  	"flag"
    14  	"fmt"
    15  	"io"
    16  	"log"
    17  	"math/big"
    18  	"net"
    19  	"os"
    20  	"strconv"
    21  	"strings"
    22  	"sync"
    23  	"testing"
    24  	"time"
    25  )
    26  
    27  type zeroSource struct{}
    28  
    29  func (zeroSource) Read(b []byte) (n int, err error) {
    30  	for i := range b {
    31  		b[i] = 0
    32  	}
    33  
    34  	return len(b), nil
    35  }
    36  
    37  var testConfig *Config
    38  
    39  func init() {
    40  	testConfig = new(Config)
    41  	testConfig.Time = func() time.Time { return time.Unix(0, 0) }
    42  	testConfig.Rand = zeroSource{}
    43  	testConfig.Certificates = make([]Certificate, 2)
    44  	testConfig.Certificates[0].Certificate = [][]byte{testCertificate}
    45  	testConfig.Certificates[0].PrivateKey = testPrivateKey
    46  	testConfig.Certificates[1].Certificate = [][]byte{testSNICertificate}
    47  	testConfig.Certificates[1].PrivateKey = testPrivateKey
    48  	testConfig.BuildNameToCertificate()
    49  	testConfig.CipherSuites = []uint16{TLS_RSA_WITH_RC4_128_SHA}
    50  	testConfig.InsecureSkipVerify = true
    51  }
    52  
    53  func testClientHelloFailure(t *testing.T, m handshakeMessage, expected error) {
    54  	// Create in-memory network connection,
    55  	// send message to server.  Should return
    56  	// expected error.
    57  	c, s := net.Pipe()
    58  	go func() {
    59  		cli := Client(c, testConfig)
    60  		if ch, ok := m.(*clientHelloMsg); ok {
    61  			cli.vers = ch.vers
    62  		}
    63  		cli.writeRecord(recordTypeHandshake, m.marshal())
    64  		c.Close()
    65  	}()
    66  	err := Server(s, testConfig).Handshake()
    67  	s.Close()
    68  	if e, ok := err.(*net.OpError); !ok || e.Err != expected {
    69  		t.Errorf("Got error: %s; expected: %s", err, expected)
    70  	}
    71  }
    72  
    73  func TestSimpleError(t *testing.T) {
    74  	testClientHelloFailure(t, &serverHelloDoneMsg{}, alertUnexpectedMessage)
    75  }
    76  
    77  var badProtocolVersions = []uint16{0x0000, 0x0005, 0x0100, 0x0105, 0x0200, 0x0205}
    78  
    79  func TestRejectBadProtocolVersion(t *testing.T) {
    80  	for _, v := range badProtocolVersions {
    81  		testClientHelloFailure(t, &clientHelloMsg{vers: v}, alertProtocolVersion)
    82  	}
    83  }
    84  
    85  func TestNoSuiteOverlap(t *testing.T) {
    86  	clientHello := &clientHelloMsg{
    87  		vers:               0x0301,
    88  		cipherSuites:       []uint16{0xff00},
    89  		compressionMethods: []uint8{0},
    90  	}
    91  	testClientHelloFailure(t, clientHello, alertHandshakeFailure)
    92  }
    93  
    94  func TestNoCompressionOverlap(t *testing.T) {
    95  	clientHello := &clientHelloMsg{
    96  		vers:               0x0301,
    97  		cipherSuites:       []uint16{TLS_RSA_WITH_RC4_128_SHA},
    98  		compressionMethods: []uint8{0xff},
    99  	}
   100  	testClientHelloFailure(t, clientHello, alertHandshakeFailure)
   101  }
   102  
   103  func TestAlertForwarding(t *testing.T) {
   104  	c, s := net.Pipe()
   105  	go func() {
   106  		Client(c, testConfig).sendAlert(alertUnknownCA)
   107  		c.Close()
   108  	}()
   109  
   110  	err := Server(s, testConfig).Handshake()
   111  	s.Close()
   112  	if e, ok := err.(*net.OpError); !ok || e.Err != error(alertUnknownCA) {
   113  		t.Errorf("Got error: %s; expected: %s", err, alertUnknownCA)
   114  	}
   115  }
   116  
   117  func TestClose(t *testing.T) {
   118  	c, s := net.Pipe()
   119  	go c.Close()
   120  
   121  	err := Server(s, testConfig).Handshake()
   122  	s.Close()
   123  	if err != io.EOF {
   124  		t.Errorf("Got error: %s; expected: %s", err, io.EOF)
   125  	}
   126  }
   127  
   128  func testHandshake(clientConfig, serverConfig *Config) (state ConnectionState, err error) {
   129  	c, s := net.Pipe()
   130  	go func() {
   131  		cli := Client(c, clientConfig)
   132  		cli.Handshake()
   133  		c.Close()
   134  	}()
   135  	server := Server(s, serverConfig)
   136  	err = server.Handshake()
   137  	if err == nil {
   138  		state = server.ConnectionState()
   139  	}
   140  	s.Close()
   141  	return
   142  }
   143  
   144  func TestCipherSuitePreference(t *testing.T) {
   145  	serverConfig := &Config{
   146  		CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA},
   147  		Certificates: testConfig.Certificates,
   148  	}
   149  	clientConfig := &Config{
   150  		CipherSuites:       []uint16{TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_RC4_128_SHA},
   151  		InsecureSkipVerify: true,
   152  	}
   153  	state, err := testHandshake(clientConfig, serverConfig)
   154  	if err != nil {
   155  		t.Fatalf("handshake failed: %s", err)
   156  	}
   157  	if state.CipherSuite != TLS_RSA_WITH_AES_128_CBC_SHA {
   158  		// By default the server should use the client's preference.
   159  		t.Fatalf("Client's preference was not used, got %x", state.CipherSuite)
   160  	}
   161  
   162  	serverConfig.PreferServerCipherSuites = true
   163  	state, err = testHandshake(clientConfig, serverConfig)
   164  	if err != nil {
   165  		t.Fatalf("handshake failed: %s", err)
   166  	}
   167  	if state.CipherSuite != TLS_RSA_WITH_RC4_128_SHA {
   168  		t.Fatalf("Server's preference was not used, got %x", state.CipherSuite)
   169  	}
   170  }
   171  
   172  func testServerScript(t *testing.T, name string, serverScript [][]byte, config *Config, peers []*x509.Certificate) {
   173  	c, s := net.Pipe()
   174  	srv := Server(s, config)
   175  	pchan := make(chan []*x509.Certificate, 1)
   176  	go func() {
   177  		srv.Write([]byte("hello, world\n"))
   178  		srv.Close()
   179  		s.Close()
   180  		st := srv.ConnectionState()
   181  		pchan <- st.PeerCertificates
   182  	}()
   183  
   184  	for i, b := range serverScript {
   185  		if i%2 == 0 {
   186  			c.Write(b)
   187  			continue
   188  		}
   189  		bb := make([]byte, len(b))
   190  		n, err := io.ReadFull(c, bb)
   191  		if err != nil {
   192  			t.Fatalf("%s #%d: %s\nRead %d, wanted %d, got %x, wanted %x\n", name, i, err, n, len(bb), bb[:n], b)
   193  		}
   194  		if !bytes.Equal(b, bb) {
   195  			t.Fatalf("%s #%d: mismatch on read: got:%x want:%x", name, i, bb, b)
   196  		}
   197  	}
   198  	c.Close()
   199  
   200  	if peers != nil {
   201  		gotpeers := <-pchan
   202  		if len(peers) == len(gotpeers) {
   203  			for i := range peers {
   204  				if !peers[i].Equal(gotpeers[i]) {
   205  					t.Fatalf("%s: mismatch on peer cert %d", name, i)
   206  				}
   207  			}
   208  		} else {
   209  			t.Fatalf("%s: mismatch on peer list length: %d (wanted) != %d (got)", name, len(peers), len(gotpeers))
   210  		}
   211  	}
   212  }
   213  
   214  func TestHandshakeServerRC4(t *testing.T) {
   215  	testServerScript(t, "RC4", rc4ServerScript, testConfig, nil)
   216  }
   217  
   218  func TestHandshakeServer3DES(t *testing.T) {
   219  	des3Config := new(Config)
   220  	*des3Config = *testConfig
   221  	des3Config.CipherSuites = []uint16{TLS_RSA_WITH_3DES_EDE_CBC_SHA}
   222  	testServerScript(t, "3DES", des3ServerScript, des3Config, nil)
   223  }
   224  
   225  func TestHandshakeServerAES(t *testing.T) {
   226  	aesConfig := new(Config)
   227  	*aesConfig = *testConfig
   228  	aesConfig.CipherSuites = []uint16{TLS_RSA_WITH_AES_128_CBC_SHA}
   229  	testServerScript(t, "AES", aesServerScript, aesConfig, nil)
   230  }
   231  
   232  func TestHandshakeServerSSLv3(t *testing.T) {
   233  	testServerScript(t, "SSLv3", sslv3ServerScript, testConfig, nil)
   234  }
   235  
   236  // TestHandshakeServerSNI involves a client sending an SNI extension of
   237  // "snitest.com", which happens to match the CN of testSNICertificate. The test
   238  // verifies that the server correctly selects that certificate.
   239  func TestHandshakeServerSNI(t *testing.T) {
   240  	testServerScript(t, "SNI", selectCertificateBySNIScript, testConfig, nil)
   241  }
   242  
   243  func TestResumption(t *testing.T) {
   244  	testServerScript(t, "IssueTicket", issueSessionTicketTest, testConfig, nil)
   245  	testServerScript(t, "Resume", serverResumeTest, testConfig, nil)
   246  }
   247  
   248  type clientauthTest struct {
   249  	name       string
   250  	clientauth ClientAuthType
   251  	peers      []*x509.Certificate
   252  	script     [][]byte
   253  }
   254  
   255  func TestClientAuth(t *testing.T) {
   256  	for _, cat := range clientauthTests {
   257  		t.Log("running", cat.name)
   258  		cfg := new(Config)
   259  		*cfg = *testConfig
   260  		cfg.ClientAuth = cat.clientauth
   261  		testServerScript(t, cat.name, cat.script, cfg, cat.peers)
   262  	}
   263  }
   264  
   265  // recordingConn is a net.Conn that records the traffic that passes through it.
   266  // WriteTo can be used to produce Go code that contains the recorded traffic.
   267  type recordingConn struct {
   268  	net.Conn
   269  	lock             sync.Mutex
   270  	flows            [][]byte
   271  	currentlyReading bool
   272  }
   273  
   274  func (r *recordingConn) Read(b []byte) (n int, err error) {
   275  	if n, err = r.Conn.Read(b); n == 0 {
   276  		return
   277  	}
   278  	b = b[:n]
   279  
   280  	r.lock.Lock()
   281  	defer r.lock.Unlock()
   282  
   283  	if l := len(r.flows); l == 0 || !r.currentlyReading {
   284  		buf := make([]byte, len(b))
   285  		copy(buf, b)
   286  		r.flows = append(r.flows, buf)
   287  	} else {
   288  		r.flows[l-1] = append(r.flows[l-1], b[:n]...)
   289  	}
   290  	r.currentlyReading = true
   291  	return
   292  }
   293  
   294  func (r *recordingConn) Write(b []byte) (n int, err error) {
   295  	if n, err = r.Conn.Write(b); n == 0 {
   296  		return
   297  	}
   298  	b = b[:n]
   299  
   300  	r.lock.Lock()
   301  	defer r.lock.Unlock()
   302  
   303  	if l := len(r.flows); l == 0 || r.currentlyReading {
   304  		buf := make([]byte, len(b))
   305  		copy(buf, b)
   306  		r.flows = append(r.flows, buf)
   307  	} else {
   308  		r.flows[l-1] = append(r.flows[l-1], b[:n]...)
   309  	}
   310  	r.currentlyReading = false
   311  	return
   312  }
   313  
   314  // WriteTo writes Go source code to w that contains the recorded traffic.
   315  func (r *recordingConn) WriteTo(w io.Writer) {
   316  	fmt.Fprintf(w, "var changeMe = [][]byte {\n")
   317  	for _, buf := range r.flows {
   318  		fmt.Fprintf(w, "\t{")
   319  		for i, b := range buf {
   320  			if i%8 == 0 {
   321  				fmt.Fprintf(w, "\n\t\t")
   322  			}
   323  			fmt.Fprintf(w, "0x%02x, ", b)
   324  		}
   325  		fmt.Fprintf(w, "\n\t},\n")
   326  	}
   327  	fmt.Fprintf(w, "}\n")
   328  }
   329  
   330  var serve = flag.Bool("serve", false, "run a TLS server on :10443")
   331  var testCipherSuites = flag.String("ciphersuites",
   332  	"0x"+strconv.FormatInt(int64(TLS_RSA_WITH_RC4_128_SHA), 16),
   333  	"cipher suites to accept in serving mode")
   334  var testClientAuth = flag.Int("clientauth", 0, "value for tls.Config.ClientAuth")
   335  
   336  func GetTestConfig() *Config {
   337  	var config = *testConfig
   338  	suites := strings.Split(*testCipherSuites, ",")
   339  	config.CipherSuites = make([]uint16, len(suites))
   340  	for i := range suites {
   341  		suite, err := strconv.ParseUint(suites[i], 0, 64)
   342  		if err != nil {
   343  			panic(err)
   344  		}
   345  		config.CipherSuites[i] = uint16(suite)
   346  	}
   347  
   348  	config.ClientAuth = ClientAuthType(*testClientAuth)
   349  	return &config
   350  }
   351  
   352  func TestRunServer(t *testing.T) {
   353  	if !*serve {
   354  		return
   355  	}
   356  
   357  	config := GetTestConfig()
   358  
   359  	const addr = ":10443"
   360  	l, err := net.Listen("tcp", addr)
   361  	if err != nil {
   362  		t.Fatal(err)
   363  	}
   364  	log.Printf("Now listening for connections on %s", addr)
   365  
   366  	for {
   367  		tcpConn, err := l.Accept()
   368  		if err != nil {
   369  			log.Printf("error accepting connection: %s", err)
   370  			break
   371  		}
   372  
   373  		record := &recordingConn{
   374  			Conn: tcpConn,
   375  		}
   376  
   377  		conn := Server(record, config)
   378  		if err := conn.Handshake(); err != nil {
   379  			log.Printf("error from TLS handshake: %s", err)
   380  			break
   381  		}
   382  
   383  		_, err = conn.Write([]byte("hello, world\n"))
   384  		if err != nil {
   385  			log.Printf("error from Write: %s", err)
   386  			continue
   387  		}
   388  
   389  		conn.Close()
   390  
   391  		record.WriteTo(os.Stdout)
   392  	}
   393  }
   394  
   395  func bigFromString(s string) *big.Int {
   396  	ret := new(big.Int)
   397  	ret.SetString(s, 10)
   398  	return ret
   399  }
   400  
   401  func fromHex(s string) []byte {
   402  	b, _ := hex.DecodeString(s)
   403  	return b
   404  }
   405  
   406  var testCertificate = fromHex("308202b030820219a00302010202090085b0bba48a7fb8ca300d06092a864886f70d01010505003045310b3009060355040613024155311330110603550408130a536f6d652d53746174653121301f060355040a1318496e7465726e6574205769646769747320507479204c7464301e170d3130303432343039303933385a170d3131303432343039303933385a3045310b3009060355040613024155311330110603550408130a536f6d652d53746174653121301f060355040a1318496e7465726e6574205769646769747320507479204c746430819f300d06092a864886f70d010101050003818d0030818902818100bb79d6f517b5e5bf4610d0dc69bee62b07435ad0032d8a7a4385b71452e7a5654c2c78b8238cb5b482e5de1f953b7e62a52ca533d6fe125c7a56fcf506bffa587b263fb5cd04d3d0c921964ac7f4549f5abfef427100fe1899077f7e887d7df10439c4a22edb51c97ce3c04c3b326601cfafb11db8719a1ddbdb896baeda2d790203010001a381a73081a4301d0603551d0e04160414b1ade2855acfcb28db69ce2369ded3268e18883930750603551d23046e306c8014b1ade2855acfcb28db69ce2369ded3268e188839a149a4473045310b3009060355040613024155311330110603550408130a536f6d652d53746174653121301f060355040a1318496e7465726e6574205769646769747320507479204c746482090085b0bba48a7fb8ca300c0603551d13040530030101ff300d06092a864886f70d010105050003818100086c4524c76bb159ab0c52ccf2b014d7879d7a6475b55a9566e4c52b8eae12661feb4f38b36e60d392fdf74108b52513b1187a24fb301dbaed98b917ece7d73159db95d31d78ea50565cd5825a2d5a5f33c4b6d8c97590968c0f5298b5cd981f89205ff2a01ca31b9694dda9fd57e970e8266d71999b266e3850296c90a7bdd9")
   407  
   408  var testSNICertificate = fromHex("308201f23082015da003020102020100300b06092a864886f70d01010530283110300e060355040a130741636d6520436f311430120603550403130b736e69746573742e636f6d301e170d3132303431313137343033355a170d3133303431313137343533355a30283110300e060355040a130741636d6520436f311430120603550403130b736e69746573742e636f6d30819d300b06092a864886f70d01010103818d0030818902818100bb79d6f517b5e5bf4610d0dc69bee62b07435ad0032d8a7a4385b71452e7a5654c2c78b8238cb5b482e5de1f953b7e62a52ca533d6fe125c7a56fcf506bffa587b263fb5cd04d3d0c921964ac7f4549f5abfef427100fe1899077f7e887d7df10439c4a22edb51c97ce3c04c3b326601cfafb11db8719a1ddbdb896baeda2d790203010001a3323030300e0603551d0f0101ff0404030200a0300d0603551d0e0406040401020304300f0603551d2304083006800401020304300b06092a864886f70d0101050381810089c6455f1c1f5ef8eb1ab174ee2439059f5c4259bb1a8d86cdb1d056f56a717da40e95ab90f59e8deaf627c157995094db0802266eb34fc6842dea8a4b68d9c1389103ab84fb9e1f85d9b5d23ff2312c8670fbb540148245a4ebafe264d90c8a4cf4f85b0fac12ac2fc4a3154bad52462868af96c62c6525d652b6e31845bdcc")
   409  
   410  var testPrivateKey = &rsa.PrivateKey{
   411  	PublicKey: rsa.PublicKey{
   412  		N: bigFromString("131650079503776001033793877885499001334664249354723305978524647182322416328664556247316495448366990052837680518067798333412266673813370895702118944398081598789828837447552603077848001020611640547221687072142537202428102790818451901395596882588063427854225330436740647715202971973145151161964464812406232198521"),
   413  		E: 65537,
   414  	},
   415  	D: bigFromString("29354450337804273969007277378287027274721892607543397931919078829901848876371746653677097639302788129485893852488285045793268732234230875671682624082413996177431586734171663258657462237320300610850244186316880055243099640544518318093544057213190320837094958164973959123058337475052510833916491060913053867729"),
   416  	Primes: []*big.Int{
   417  		bigFromString("11969277782311800166562047708379380720136961987713178380670422671426759650127150688426177829077494755200794297055316163155755835813760102405344560929062149"),
   418  		bigFromString("10998999429884441391899182616418192492905073053684657075974935218461686523870125521822756579792315215543092255516093840728890783887287417039645833477273829"),
   419  	},
   420  }
   421  
   422  func loadPEMCert(in string) *x509.Certificate {
   423  	block, _ := pem.Decode([]byte(in))
   424  	if block.Type == "CERTIFICATE" && len(block.Headers) == 0 {
   425  		cert, err := x509.ParseCertificate(block.Bytes)
   426  		if err == nil {
   427  			return cert
   428  		}
   429  		panic("error parsing cert")
   430  	}
   431  	panic("error parsing PEM")
   432  }
   433  
   434  // Script of interaction with gnutls implementation.
   435  // The values for this test are obtained by building and running in server mode:
   436  //   % go test -test.run "TestRunServer" -serve
   437  // The recorded bytes are written to stdout.
   438  var rc4ServerScript = [][]byte{
   439  	{
   440  		0x16, 0x03, 0x01, 0x00, 0x54, 0x01, 0x00, 0x00,
   441  		0x50, 0x03, 0x01, 0x50, 0x77, 0x3d, 0xbd, 0x32,
   442  		0x13, 0xd7, 0xea, 0x33, 0x65, 0x02, 0xb8, 0x70,
   443  		0xb7, 0x84, 0xc4, 0x05, 0x1f, 0xa4, 0x24, 0xc4,
   444  		0x91, 0x69, 0x04, 0x32, 0x96, 0xfe, 0x5b, 0x49,
   445  		0x71, 0x60, 0x9a, 0x00, 0x00, 0x28, 0x00, 0x39,
   446  		0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
   447  		0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
   448  		0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
   449  		0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
   450  		0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
   451  		0x00,
   452  	},
   453  	{
   454  		0x16, 0x03, 0x01, 0x00, 0x2a, 0x02, 0x00, 0x00,
   455  		0x26, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
   456  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   457  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   458  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   459  		0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16,
   460  		0x03, 0x01, 0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba,
   461  		0x00, 0x02, 0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82,
   462  		0x02, 0xb0, 0x30, 0x82, 0x02, 0x19, 0xa0, 0x03,
   463  		0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0x85, 0xb0,
   464  		0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d,
   465  		0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
   466  		0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x45, 0x31,
   467  		0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
   468  		0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
   469  		0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
   470  		0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
   471  		0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
   472  		0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
   473  		0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
   474  		0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
   475  		0x20, 0x4c, 0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d,
   476  		0x31, 0x30, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39,
   477  		0x30, 0x39, 0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31,
   478  		0x31, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30,
   479  		0x39, 0x33, 0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b,
   480  		0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
   481  		0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06,
   482  		0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f,
   483  		0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65,
   484  		0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04,
   485  		0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72,
   486  		0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67,
   487  		0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20,
   488  		0x4c, 0x74, 0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d,
   489  		0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
   490  		0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d,
   491  		0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00,
   492  		0xbb, 0x79, 0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf,
   493  		0x46, 0x10, 0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b,
   494  		0x07, 0x43, 0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a,
   495  		0x43, 0x85, 0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65,
   496  		0x4c, 0x2c, 0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4,
   497  		0x82, 0xe5, 0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62,
   498  		0xa5, 0x2c, 0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c,
   499  		0x7a, 0x56, 0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58,
   500  		0x7b, 0x26, 0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0,
   501  		0xc9, 0x21, 0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f,
   502  		0x5a, 0xbf, 0xef, 0x42, 0x71, 0x00, 0xfe, 0x18,
   503  		0x99, 0x07, 0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1,
   504  		0x04, 0x39, 0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9,
   505  		0x7c, 0xe3, 0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01,
   506  		0xcf, 0xaf, 0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d,
   507  		0xdb, 0xdb, 0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79,
   508  		0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7,
   509  		0x30, 0x81, 0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55,
   510  		0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1, 0xad,
   511  		0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69,
   512  		0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18,
   513  		0x88, 0x39, 0x30, 0x75, 0x06, 0x03, 0x55, 0x1d,
   514  		0x23, 0x04, 0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1,
   515  		0xad, 0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb,
   516  		0x69, 0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e,
   517  		0x18, 0x88, 0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30,
   518  		0x45, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
   519  		0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13,
   520  		0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
   521  		0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74,
   522  		0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06,
   523  		0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e,
   524  		0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
   525  		0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
   526  		0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x82, 0x09,
   527  		0x00, 0x85, 0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8,
   528  		0xca, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
   529  		0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
   530  		0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
   531  		0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81,
   532  		0x81, 0x00, 0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b,
   533  		0xb1, 0x59, 0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0,
   534  		0x14, 0xd7, 0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5,
   535  		0x5a, 0x95, 0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae,
   536  		0x12, 0x66, 0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e,
   537  		0x60, 0xd3, 0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5,
   538  		0x25, 0x13, 0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30,
   539  		0x1d, 0xba, 0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7,
   540  		0xd7, 0x31, 0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78,
   541  		0xea, 0x50, 0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d,
   542  		0x5a, 0x5f, 0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75,
   543  		0x90, 0x96, 0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd,
   544  		0x98, 0x1f, 0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c,
   545  		0xa3, 0x1b, 0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57,
   546  		0xe9, 0x70, 0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b,
   547  		0x26, 0x6e, 0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7,
   548  		0xbd, 0xd9, 0x16, 0x03, 0x01, 0x00, 0x04, 0x0e,
   549  		0x00, 0x00, 0x00,
   550  	},
   551  	{
   552  		0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
   553  		0x82, 0x00, 0x80, 0x2d, 0x09, 0x7c, 0x7f, 0xfc,
   554  		0x84, 0xce, 0xb3, 0x30, 0x9b, 0xf9, 0xb7, 0xc8,
   555  		0xc3, 0xff, 0xee, 0x6f, 0x20, 0x8a, 0xf4, 0xfb,
   556  		0x86, 0x55, 0x1f, 0x6a, 0xb4, 0x81, 0x50, 0x3a,
   557  		0x46, 0x1b, 0xd3, 0xca, 0x4b, 0x11, 0xff, 0xef,
   558  		0x02, 0xbc, 0x18, 0xb8, 0x4a, 0x7d, 0x43, 0x23,
   559  		0x96, 0x92, 0x27, 0x7c, 0xca, 0xcf, 0xe6, 0x91,
   560  		0xe8, 0x14, 0x97, 0x68, 0xb4, 0xe5, 0xc0, 0xc9,
   561  		0x23, 0xdd, 0x54, 0x07, 0xa6, 0x2e, 0x8c, 0x98,
   562  		0xfc, 0xc6, 0x8c, 0x04, 0x6b, 0x1b, 0x5f, 0xd5,
   563  		0x3d, 0x8b, 0x6c, 0x55, 0x4f, 0x7a, 0xe6, 0x6c,
   564  		0x74, 0x2c, 0x1e, 0x34, 0xdb, 0xfb, 0x00, 0xb1,
   565  		0x4e, 0x10, 0x21, 0x16, 0xe0, 0x3e, 0xc5, 0x64,
   566  		0x84, 0x28, 0x2b, 0x2b, 0x29, 0x47, 0x51, 0x34,
   567  		0x76, 0x15, 0x20, 0x71, 0x0b, 0x30, 0xa1, 0x85,
   568  		0xd5, 0x15, 0x18, 0x14, 0x64, 0x4b, 0x40, 0x7c,
   569  		0x4f, 0xb3, 0x7b, 0x14, 0x03, 0x01, 0x00, 0x01,
   570  		0x01, 0x16, 0x03, 0x01, 0x00, 0x24, 0xab, 0xee,
   571  		0xf5, 0x97, 0x5f, 0xc6, 0x78, 0xf3, 0xc6, 0x83,
   572  		0x5b, 0x55, 0x4f, 0xcb, 0x45, 0x3f, 0xfa, 0xf7,
   573  		0x05, 0x02, 0xc2, 0x63, 0x87, 0x18, 0xb5, 0x9a,
   574  		0x62, 0xe2, 0x3f, 0x88, 0x5a, 0x60, 0x61, 0x72,
   575  		0xfa, 0x9c,
   576  	},
   577  	{
   578  		0x14, 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03,
   579  		0x01, 0x00, 0x24, 0x72, 0xa4, 0xe4, 0xaa, 0xd2,
   580  		0xc4, 0x39, 0x7e, 0x2a, 0xc1, 0x6f, 0x34, 0x42,
   581  		0x28, 0xcb, 0x9d, 0x7a, 0x09, 0xca, 0x96, 0xad,
   582  		0x0e, 0x11, 0x51, 0x8a, 0x06, 0xb0, 0xe9, 0xca,
   583  		0xeb, 0xce, 0xe2, 0xd5, 0x2e, 0xc1, 0x8d, 0x17,
   584  		0x03, 0x01, 0x00, 0x21, 0x2e, 0x61, 0x86, 0x17,
   585  		0xdb, 0xa6, 0x30, 0xe2, 0x62, 0x06, 0x2a, 0x8b,
   586  		0x75, 0x2c, 0x2d, 0xcf, 0xf5, 0x01, 0x11, 0x52,
   587  		0x81, 0x38, 0xcf, 0xd5, 0xf7, 0xdc, 0x52, 0x31,
   588  		0x1f, 0x97, 0x43, 0xc2, 0x71, 0x15, 0x03, 0x01,
   589  		0x00, 0x16, 0xe0, 0x21, 0xfe, 0x36, 0x2e, 0x68,
   590  		0x2c, 0xf1, 0xbe, 0x04, 0xec, 0xd4, 0xc6, 0xdd,
   591  		0xac, 0x6f, 0x4c, 0x85, 0x32, 0x3f, 0x87, 0x1b,
   592  	},
   593  }
   594  
   595  var des3ServerScript = [][]byte{
   596  	{
   597  		0x16, 0x03, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00,
   598  		0xc1, 0x03, 0x03, 0x50, 0xae, 0x5d, 0x38, 0xec,
   599  		0xaa, 0x2f, 0x41, 0xf9, 0xd2, 0x7b, 0xa1, 0xfd,
   600  		0x0f, 0xff, 0x4e, 0x54, 0x0e, 0x15, 0x57, 0xaf,
   601  		0x2c, 0x91, 0xb5, 0x35, 0x5b, 0x2e, 0xb0, 0xec,
   602  		0x20, 0xe5, 0xd2, 0x00, 0x00, 0x50, 0xc0, 0x09,
   603  		0xc0, 0x23, 0xc0, 0x2b, 0xc0, 0x0a, 0xc0, 0x24,
   604  		0xc0, 0x2c, 0xc0, 0x08, 0xc0, 0x13, 0xc0, 0x27,
   605  		0xc0, 0x2f, 0xc0, 0x14, 0xc0, 0x30, 0xc0, 0x12,
   606  		0x00, 0x33, 0x00, 0x67, 0x00, 0x45, 0x00, 0x9e,
   607  		0x00, 0x39, 0x00, 0x6b, 0x00, 0x88, 0x00, 0x16,
   608  		0x00, 0x32, 0x00, 0x40, 0x00, 0x44, 0x00, 0xa2,
   609  		0x00, 0x38, 0x00, 0x6a, 0x00, 0x87, 0x00, 0x13,
   610  		0x00, 0x66, 0x00, 0x2f, 0x00, 0x3c, 0x00, 0x41,
   611  		0x00, 0x9c, 0x00, 0x35, 0x00, 0x3d, 0x00, 0x84,
   612  		0x00, 0x0a, 0x00, 0x05, 0x00, 0x04, 0x01, 0x00,
   613  		0x00, 0x48, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00,
   614  		0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x01, 0x00,
   615  		0x00, 0x23, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0c,
   616  		0x00, 0x0a, 0x00, 0x13, 0x00, 0x15, 0x00, 0x17,
   617  		0x00, 0x18, 0x00, 0x19, 0x00, 0x0b, 0x00, 0x02,
   618  		0x01, 0x00, 0x00, 0x0d, 0x00, 0x1c, 0x00, 0x1a,
   619  		0x04, 0x01, 0x04, 0x02, 0x04, 0x03, 0x05, 0x01,
   620  		0x05, 0x03, 0x06, 0x01, 0x06, 0x03, 0x03, 0x01,
   621  		0x03, 0x02, 0x03, 0x03, 0x02, 0x01, 0x02, 0x02,
   622  		0x02, 0x03,
   623  	},
   624  	{
   625  		0x16, 0x03, 0x01, 0x00, 0x30, 0x02, 0x00, 0x00,
   626  		0x2c, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
   627  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   628  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   629  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   630  		0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00,
   631  		0x04, 0x00, 0x23, 0x00, 0x00, 0x16, 0x03, 0x01,
   632  		0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba, 0x00, 0x02,
   633  		0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82, 0x02, 0xb0,
   634  		0x30, 0x82, 0x02, 0x19, 0xa0, 0x03, 0x02, 0x01,
   635  		0x02, 0x02, 0x09, 0x00, 0x85, 0xb0, 0xbb, 0xa4,
   636  		0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d, 0x06, 0x09,
   637  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
   638  		0x05, 0x05, 0x00, 0x30, 0x45, 0x31, 0x0b, 0x30,
   639  		0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
   640  		0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
   641  		0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d,
   642  		0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31,
   643  		0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
   644  		0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
   645  		0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69,
   646  		0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
   647  		0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30,
   648  		0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39,
   649  		0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x31, 0x30,
   650  		0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39, 0x33,
   651  		0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b, 0x30, 0x09,
   652  		0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41,
   653  		0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
   654  		0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d, 0x65,
   655  		0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
   656  		0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
   657  		0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
   658  		0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74,
   659  		0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
   660  		0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09,
   661  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
   662  		0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30,
   663  		0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xbb, 0x79,
   664  		0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf, 0x46, 0x10,
   665  		0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b, 0x07, 0x43,
   666  		0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a, 0x43, 0x85,
   667  		0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65, 0x4c, 0x2c,
   668  		0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4, 0x82, 0xe5,
   669  		0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62, 0xa5, 0x2c,
   670  		0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c, 0x7a, 0x56,
   671  		0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58, 0x7b, 0x26,
   672  		0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0, 0xc9, 0x21,
   673  		0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f, 0x5a, 0xbf,
   674  		0xef, 0x42, 0x71, 0x00, 0xfe, 0x18, 0x99, 0x07,
   675  		0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1, 0x04, 0x39,
   676  		0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9, 0x7c, 0xe3,
   677  		0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01, 0xcf, 0xaf,
   678  		0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d, 0xdb, 0xdb,
   679  		0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79, 0x02, 0x03,
   680  		0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7, 0x30, 0x81,
   681  		0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
   682  		0x04, 0x16, 0x04, 0x14, 0xb1, 0xad, 0xe2, 0x85,
   683  		0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce, 0x23,
   684  		0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88, 0x39,
   685  		0x30, 0x75, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
   686  		0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1, 0xad, 0xe2,
   687  		0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce,
   688  		0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88,
   689  		0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30, 0x45, 0x31,
   690  		0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
   691  		0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
   692  		0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
   693  		0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
   694  		0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
   695  		0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
   696  		0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
   697  		0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
   698  		0x20, 0x4c, 0x74, 0x64, 0x82, 0x09, 0x00, 0x85,
   699  		0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30,
   700  		0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05,
   701  		0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06,
   702  		0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
   703  		0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
   704  		0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b, 0xb1, 0x59,
   705  		0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0, 0x14, 0xd7,
   706  		0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5, 0x5a, 0x95,
   707  		0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae, 0x12, 0x66,
   708  		0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e, 0x60, 0xd3,
   709  		0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5, 0x25, 0x13,
   710  		0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30, 0x1d, 0xba,
   711  		0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7, 0xd7, 0x31,
   712  		0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78, 0xea, 0x50,
   713  		0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d, 0x5a, 0x5f,
   714  		0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75, 0x90, 0x96,
   715  		0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd, 0x98, 0x1f,
   716  		0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c, 0xa3, 0x1b,
   717  		0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57, 0xe9, 0x70,
   718  		0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b, 0x26, 0x6e,
   719  		0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7, 0xbd, 0xd9,
   720  		0x16, 0x03, 0x01, 0x00, 0x04, 0x0e, 0x00, 0x00,
   721  		0x00,
   722  	},
   723  	{
   724  		0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
   725  		0x82, 0x00, 0x80, 0x51, 0x04, 0xf1, 0x7a, 0xbf,
   726  		0xe8, 0xa5, 0x86, 0x09, 0xa7, 0xf3, 0xcc, 0x93,
   727  		0x00, 0x10, 0x5b, 0xb8, 0xc1, 0x51, 0x0d, 0x5b,
   728  		0xcd, 0xed, 0x26, 0x01, 0x69, 0x73, 0xf4, 0x05,
   729  		0x8a, 0x6a, 0xc3, 0xb1, 0x9e, 0x84, 0x4e, 0x39,
   730  		0xcf, 0x5e, 0x55, 0xa9, 0x70, 0x19, 0x96, 0x91,
   731  		0xcd, 0x2c, 0x78, 0x3c, 0xa2, 0x6d, 0xb0, 0x49,
   732  		0x86, 0xf6, 0xd1, 0x3a, 0xde, 0x00, 0x4b, 0xa6,
   733  		0x25, 0xbf, 0x85, 0x39, 0xce, 0xb1, 0xcf, 0xbc,
   734  		0x16, 0xc7, 0x66, 0xac, 0xf8, 0xd2, 0x3b, 0xd1,
   735  		0xcc, 0x16, 0xac, 0x63, 0x3c, 0xbe, 0xd9, 0xb6,
   736  		0x6a, 0xe4, 0x13, 0x8a, 0xf4, 0x56, 0x2f, 0x92,
   737  		0x54, 0xd8, 0xf0, 0x84, 0x01, 0x32, 0x1a, 0xa9,
   738  		0x2d, 0xaf, 0x82, 0x0e, 0x00, 0xfa, 0x07, 0x88,
   739  		0xd9, 0x87, 0xe7, 0xdc, 0x9e, 0xe9, 0x72, 0x49,
   740  		0xb8, 0xfa, 0x8c, 0x7b, 0x07, 0x0b, 0x03, 0x7c,
   741  		0x10, 0x8c, 0x8a, 0x14, 0x03, 0x01, 0x00, 0x01,
   742  		0x01, 0x16, 0x03, 0x01, 0x00, 0xa8, 0x61, 0xa4,
   743  		0xf4, 0x5f, 0x8a, 0x1f, 0x5c, 0x92, 0x3f, 0x8c,
   744  		0xdb, 0xd6, 0x10, 0xcd, 0x9e, 0xe7, 0xf0, 0xc4,
   745  		0x3c, 0xb6, 0x1c, 0x9a, 0x56, 0x73, 0x7f, 0xa6,
   746  		0x14, 0x24, 0xcb, 0x96, 0x1f, 0xe0, 0xaf, 0xcd,
   747  		0x3c, 0x66, 0x43, 0xb7, 0x37, 0x65, 0x34, 0x47,
   748  		0xf8, 0x43, 0xf1, 0xcc, 0x15, 0xb8, 0xdc, 0x35,
   749  		0xe0, 0xa4, 0x2d, 0x78, 0x94, 0xe0, 0x02, 0xf3,
   750  		0x76, 0x46, 0xf7, 0x9b, 0x8d, 0x0d, 0x5d, 0x0b,
   751  		0xd3, 0xdd, 0x9a, 0x9e, 0x62, 0x2e, 0xc5, 0x98,
   752  		0x75, 0x63, 0x0c, 0xbf, 0x8e, 0x49, 0x33, 0x23,
   753  		0x7c, 0x00, 0xcf, 0xfb, 0xcf, 0xba, 0x0f, 0x41,
   754  		0x39, 0x89, 0xb9, 0xcc, 0x59, 0xd0, 0x2b, 0xb6,
   755  		0xec, 0x04, 0xe2, 0xc0, 0x52, 0xc7, 0xcf, 0x71,
   756  		0x47, 0xff, 0x70, 0x7e, 0xa9, 0xbd, 0x1c, 0xdd,
   757  		0x17, 0xa5, 0x6c, 0xb7, 0x10, 0x4f, 0x42, 0x18,
   758  		0x37, 0x69, 0xa9, 0xd2, 0xb3, 0x18, 0x84, 0x92,
   759  		0xa7, 0x47, 0x21, 0xf6, 0x95, 0x63, 0x29, 0xd6,
   760  		0xa5, 0xb6, 0xda, 0x65, 0x67, 0x69, 0xc4, 0x26,
   761  		0xac, 0x8b, 0x08, 0x58, 0xdd, 0x3c, 0x31, 0x20,
   762  		0xd5, 0x0c, 0x88, 0x72, 0x18, 0x16, 0x88, 0x1e,
   763  		0x4a, 0x0f, 0xe1, 0xcf, 0x95, 0x24,
   764  	},
   765  	{
   766  		0x16, 0x03, 0x01, 0x00, 0x72, 0x04, 0x00, 0x00,
   767  		0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00,
   768  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   769  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65,
   770  		0xe8, 0x4b, 0xde, 0xef, 0xba, 0x3e, 0x18, 0x1c,
   771  		0x1e, 0x5e, 0xbc, 0x87, 0xf1, 0x87, 0x8d, 0x72,
   772  		0xe3, 0xbe, 0x0f, 0xdf, 0xfd, 0xd0, 0xb2, 0x89,
   773  		0xf8, 0x05, 0x9a, 0x52, 0x47, 0x77, 0x9e, 0xe8,
   774  		0xb1, 0x1d, 0x18, 0xed, 0x6a, 0x4b, 0x63, 0x1d,
   775  		0xf1, 0x62, 0xd2, 0x65, 0x21, 0x26, 0x73, 0xd4,
   776  		0x35, 0x5b, 0x95, 0x89, 0x12, 0x59, 0x23, 0x8c,
   777  		0xc3, 0xfc, 0xf9, 0x4d, 0x21, 0x79, 0xa0, 0xbd,
   778  		0xff, 0x33, 0xa2, 0x3d, 0x0b, 0x6f, 0x89, 0xc9,
   779  		0x23, 0xe4, 0xe7, 0x9f, 0x1d, 0x98, 0xf6, 0xed,
   780  		0x02, 0x8d, 0xac, 0x1a, 0xf9, 0xcb, 0xa5, 0x14,
   781  		0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01,
   782  		0x00, 0x28, 0x91, 0x56, 0x80, 0xe2, 0x6d, 0x51,
   783  		0x88, 0x03, 0xf8, 0x49, 0xe6, 0x6a, 0x5a, 0xfb,
   784  		0x2f, 0x0b, 0xb5, 0xa1, 0x0d, 0x63, 0x83, 0xae,
   785  		0xb9, 0xbc, 0x05, 0xf0, 0x81, 0x00, 0x61, 0x83,
   786  		0x38, 0xda, 0x14, 0xf6, 0xea, 0xd8, 0x78, 0x65,
   787  		0xc7, 0x26, 0x17, 0x03, 0x01, 0x00, 0x18, 0x81,
   788  		0x30, 0x8b, 0x22, 0x5a, 0xd3, 0x7f, 0xc8, 0xf2,
   789  		0x8a, 0x6b, 0xa3, 0xba, 0x4d, 0xe7, 0x6e, 0xd2,
   790  		0xfd, 0xbf, 0xf2, 0xc5, 0x28, 0xa0, 0x62, 0x17,
   791  		0x03, 0x01, 0x00, 0x28, 0x17, 0x83, 0x3c, 0x78,
   792  		0x18, 0xfa, 0x8d, 0x58, 0x5c, 0xaa, 0x05, 0x7d,
   793  		0x67, 0x96, 0x11, 0x60, 0x11, 0xc0, 0x1e, 0x0d,
   794  		0x6a, 0x6e, 0x5f, 0x1d, 0x98, 0x4b, 0xff, 0x82,
   795  		0xee, 0x21, 0x06, 0x29, 0xd3, 0x8b, 0x80, 0x78,
   796  		0x39, 0x05, 0x34, 0x9b, 0x15, 0x03, 0x01, 0x00,
   797  		0x18, 0xa9, 0x38, 0x18, 0x4f, 0x9d, 0x84, 0x75,
   798  		0x88, 0x53, 0xd6, 0x85, 0xc2, 0x15, 0x4b, 0xe3,
   799  		0xe3, 0x35, 0x9a, 0x74, 0xc9, 0x3e, 0x13, 0xc1,
   800  		0x8c,
   801  	},
   802  }
   803  
   804  var aesServerScript = [][]byte{
   805  	{
   806  		0x16, 0x03, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00,
   807  		0xc1, 0x03, 0x03, 0x50, 0xae, 0x5c, 0xe9, 0x5e,
   808  		0x31, 0x93, 0x82, 0xa5, 0x6f, 0x51, 0x82, 0xc8,
   809  		0x55, 0x4f, 0x1f, 0x2e, 0x90, 0x98, 0x81, 0x13,
   810  		0x27, 0x80, 0x68, 0xb4, 0x2d, 0xba, 0x3a, 0x76,
   811  		0xd8, 0xd7, 0x2c, 0x00, 0x00, 0x50, 0xc0, 0x09,
   812  		0xc0, 0x23, 0xc0, 0x2b, 0xc0, 0x0a, 0xc0, 0x24,
   813  		0xc0, 0x2c, 0xc0, 0x08, 0xc0, 0x13, 0xc0, 0x27,
   814  		0xc0, 0x2f, 0xc0, 0x14, 0xc0, 0x30, 0xc0, 0x12,
   815  		0x00, 0x33, 0x00, 0x67, 0x00, 0x45, 0x00, 0x9e,
   816  		0x00, 0x39, 0x00, 0x6b, 0x00, 0x88, 0x00, 0x16,
   817  		0x00, 0x32, 0x00, 0x40, 0x00, 0x44, 0x00, 0xa2,
   818  		0x00, 0x38, 0x00, 0x6a, 0x00, 0x87, 0x00, 0x13,
   819  		0x00, 0x66, 0x00, 0x2f, 0x00, 0x3c, 0x00, 0x41,
   820  		0x00, 0x9c, 0x00, 0x35, 0x00, 0x3d, 0x00, 0x84,
   821  		0x00, 0x0a, 0x00, 0x05, 0x00, 0x04, 0x01, 0x00,
   822  		0x00, 0x48, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00,
   823  		0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x01, 0x00,
   824  		0x00, 0x23, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0c,
   825  		0x00, 0x0a, 0x00, 0x13, 0x00, 0x15, 0x00, 0x17,
   826  		0x00, 0x18, 0x00, 0x19, 0x00, 0x0b, 0x00, 0x02,
   827  		0x01, 0x00, 0x00, 0x0d, 0x00, 0x1c, 0x00, 0x1a,
   828  		0x04, 0x01, 0x04, 0x02, 0x04, 0x03, 0x05, 0x01,
   829  		0x05, 0x03, 0x06, 0x01, 0x06, 0x03, 0x03, 0x01,
   830  		0x03, 0x02, 0x03, 0x03, 0x02, 0x01, 0x02, 0x02,
   831  		0x02, 0x03,
   832  	},
   833  	{
   834  		0x16, 0x03, 0x01, 0x00, 0x30, 0x02, 0x00, 0x00,
   835  		0x2c, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
   836  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   837  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   838  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   839  		0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,
   840  		0x04, 0x00, 0x23, 0x00, 0x00, 0x16, 0x03, 0x01,
   841  		0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba, 0x00, 0x02,
   842  		0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82, 0x02, 0xb0,
   843  		0x30, 0x82, 0x02, 0x19, 0xa0, 0x03, 0x02, 0x01,
   844  		0x02, 0x02, 0x09, 0x00, 0x85, 0xb0, 0xbb, 0xa4,
   845  		0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d, 0x06, 0x09,
   846  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
   847  		0x05, 0x05, 0x00, 0x30, 0x45, 0x31, 0x0b, 0x30,
   848  		0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
   849  		0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
   850  		0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d,
   851  		0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31,
   852  		0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
   853  		0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
   854  		0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69,
   855  		0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
   856  		0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30,
   857  		0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39,
   858  		0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x31, 0x30,
   859  		0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39, 0x33,
   860  		0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b, 0x30, 0x09,
   861  		0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41,
   862  		0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
   863  		0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d, 0x65,
   864  		0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
   865  		0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
   866  		0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
   867  		0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74,
   868  		0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
   869  		0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09,
   870  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
   871  		0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30,
   872  		0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xbb, 0x79,
   873  		0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf, 0x46, 0x10,
   874  		0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b, 0x07, 0x43,
   875  		0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a, 0x43, 0x85,
   876  		0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65, 0x4c, 0x2c,
   877  		0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4, 0x82, 0xe5,
   878  		0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62, 0xa5, 0x2c,
   879  		0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c, 0x7a, 0x56,
   880  		0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58, 0x7b, 0x26,
   881  		0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0, 0xc9, 0x21,
   882  		0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f, 0x5a, 0xbf,
   883  		0xef, 0x42, 0x71, 0x00, 0xfe, 0x18, 0x99, 0x07,
   884  		0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1, 0x04, 0x39,
   885  		0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9, 0x7c, 0xe3,
   886  		0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01, 0xcf, 0xaf,
   887  		0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d, 0xdb, 0xdb,
   888  		0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79, 0x02, 0x03,
   889  		0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7, 0x30, 0x81,
   890  		0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
   891  		0x04, 0x16, 0x04, 0x14, 0xb1, 0xad, 0xe2, 0x85,
   892  		0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce, 0x23,
   893  		0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88, 0x39,
   894  		0x30, 0x75, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
   895  		0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1, 0xad, 0xe2,
   896  		0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce,
   897  		0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88,
   898  		0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30, 0x45, 0x31,
   899  		0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
   900  		0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
   901  		0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
   902  		0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
   903  		0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
   904  		0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
   905  		0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
   906  		0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
   907  		0x20, 0x4c, 0x74, 0x64, 0x82, 0x09, 0x00, 0x85,
   908  		0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30,
   909  		0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05,
   910  		0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06,
   911  		0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
   912  		0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
   913  		0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b, 0xb1, 0x59,
   914  		0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0, 0x14, 0xd7,
   915  		0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5, 0x5a, 0x95,
   916  		0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae, 0x12, 0x66,
   917  		0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e, 0x60, 0xd3,
   918  		0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5, 0x25, 0x13,
   919  		0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30, 0x1d, 0xba,
   920  		0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7, 0xd7, 0x31,
   921  		0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78, 0xea, 0x50,
   922  		0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d, 0x5a, 0x5f,
   923  		0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75, 0x90, 0x96,
   924  		0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd, 0x98, 0x1f,
   925  		0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c, 0xa3, 0x1b,
   926  		0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57, 0xe9, 0x70,
   927  		0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b, 0x26, 0x6e,
   928  		0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7, 0xbd, 0xd9,
   929  		0x16, 0x03, 0x01, 0x00, 0x04, 0x0e, 0x00, 0x00,
   930  		0x00,
   931  	},
   932  	{
   933  		0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
   934  		0x82, 0x00, 0x80, 0x51, 0x2e, 0xec, 0x0d, 0x86,
   935  		0xf3, 0x9f, 0xf2, 0x77, 0x04, 0x27, 0x2b, 0x0e,
   936  		0x9c, 0xab, 0x35, 0x84, 0x65, 0xff, 0x36, 0xef,
   937  		0xc0, 0x08, 0xc9, 0x1d, 0x9f, 0x29, 0xae, 0x8d,
   938  		0xc5, 0x66, 0x81, 0x31, 0x92, 0x5e, 0x3d, 0xac,
   939  		0xaa, 0x37, 0x28, 0x2c, 0x06, 0x91, 0xa6, 0xc2,
   940  		0xd0, 0x83, 0x34, 0x24, 0x1c, 0x88, 0xfc, 0x0a,
   941  		0xcf, 0xbf, 0xc2, 0x94, 0xe2, 0xed, 0xa7, 0x6a,
   942  		0xa8, 0x8d, 0x3d, 0xf7, 0x06, 0x7d, 0x69, 0xf8,
   943  		0x0d, 0xb2, 0xf7, 0xe4, 0x45, 0xcb, 0x0a, 0x25,
   944  		0xcb, 0xb2, 0x2e, 0x38, 0x9a, 0x84, 0x75, 0xe8,
   945  		0xe1, 0x42, 0x39, 0xa2, 0x18, 0x0e, 0x48, 0xca,
   946  		0x33, 0x16, 0x4e, 0xf6, 0x2f, 0xec, 0x07, 0xe7,
   947  		0x57, 0xe1, 0x20, 0x40, 0x40, 0x6d, 0x4e, 0x29,
   948  		0x04, 0x1a, 0x8c, 0x99, 0xfb, 0x19, 0x3c, 0xaa,
   949  		0x75, 0x64, 0xd3, 0xa6, 0xe6, 0xed, 0x3f, 0x5a,
   950  		0xd2, 0xc9, 0x80, 0x14, 0x03, 0x01, 0x00, 0x01,
   951  		0x01, 0x16, 0x03, 0x01, 0x01, 0x10, 0xe9, 0x9e,
   952  		0x06, 0x92, 0x18, 0xbf, 0x5e, 0xaf, 0x33, 0xc1,
   953  		0xbf, 0x0e, 0x12, 0x07, 0x48, 0x4f, 0x6b, 0x6c,
   954  		0xf5, 0x23, 0x5e, 0x87, 0xa7, 0xd3, 0x50, 0x79,
   955  		0x38, 0xdc, 0xe0, 0x49, 0xd3, 0x81, 0x21, 0x12,
   956  		0xd0, 0x3d, 0x9a, 0xfb, 0x83, 0xc1, 0x8b, 0xfc,
   957  		0x14, 0xd5, 0xd5, 0xa7, 0xa3, 0x34, 0x14, 0x71,
   958  		0xbe, 0xea, 0x37, 0x18, 0x12, 0x7f, 0x41, 0xfb,
   959  		0xc5, 0x51, 0x17, 0x9d, 0x96, 0x58, 0x14, 0xfb,
   960  		0x4f, 0xd7, 0xd3, 0x15, 0x0f, 0xec, 0x5a, 0x0d,
   961  		0x35, 0xbb, 0x3c, 0x81, 0x5b, 0x3f, 0xdf, 0x52,
   962  		0xa4, 0x4c, 0xcd, 0x13, 0xe1, 0x10, 0x37, 0x34,
   963  		0xbf, 0xb4, 0x80, 0x1e, 0x8d, 0xe2, 0xc3, 0x7a,
   964  		0x0f, 0x7b, 0x7d, 0x23, 0xeb, 0xd0, 0x99, 0x69,
   965  		0xad, 0x0a, 0x2d, 0xb3, 0x6c, 0xd6, 0x80, 0x11,
   966  		0x7f, 0x6c, 0xed, 0x1b, 0xcd, 0x08, 0x22, 0x56,
   967  		0x90, 0x0e, 0xa4, 0xc3, 0x29, 0x33, 0x96, 0x30,
   968  		0x34, 0x94, 0xa1, 0xeb, 0x9c, 0x1b, 0x5a, 0xd1,
   969  		0x03, 0x61, 0xf9, 0xdd, 0xf3, 0x64, 0x8a, 0xfd,
   970  		0x5f, 0x44, 0xdb, 0x2e, 0xa7, 0xfd, 0xe1, 0x1a,
   971  		0x66, 0xc5, 0x01, 0x9c, 0xc7, 0xd1, 0xc4, 0xd3,
   972  		0xea, 0x14, 0x3c, 0xed, 0x74, 0xbb, 0x1b, 0x97,
   973  		0x8f, 0xf1, 0x29, 0x39, 0x33, 0x92, 0x93, 0x4e,
   974  		0xf5, 0x87, 0x91, 0x61, 0x65, 0x8d, 0x27, 0x8d,
   975  		0x76, 0xc1, 0xfa, 0x6a, 0x99, 0x80, 0xb1, 0x9b,
   976  		0x29, 0x53, 0xce, 0x3e, 0xb6, 0x9a, 0xce, 0x3c,
   977  		0x19, 0x5e, 0x48, 0x83, 0xaa, 0xa7, 0x66, 0x98,
   978  		0x59, 0xf4, 0xbb, 0xf2, 0xbc, 0xd9, 0xc5, 0x9a,
   979  		0xc8, 0x2c, 0x63, 0x58, 0xd5, 0xd4, 0xbc, 0x03,
   980  		0xa9, 0x06, 0xa9, 0x80, 0x0d, 0xb3, 0x46, 0x2d,
   981  		0xe3, 0xc6, 0xaf, 0x1a, 0x39, 0x18, 0x7e, 0x1e,
   982  		0x83, 0x80, 0x46, 0x11, 0xd2, 0x13, 0x9f, 0xda,
   983  		0xfc, 0x2d, 0x42, 0xaa, 0x5a, 0x1d, 0x4c, 0x31,
   984  		0xe5, 0x58, 0x78, 0x5e, 0xe2, 0x04, 0xd6, 0x23,
   985  		0x7f, 0x3f, 0x06, 0xc0, 0x54, 0xf8,
   986  	},
   987  	{
   988  		0x16, 0x03, 0x01, 0x00, 0x72, 0x04, 0x00, 0x00,
   989  		0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00,
   990  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   991  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65,
   992  		0xe8, 0x4b, 0xfb, 0xef, 0xba, 0xed, 0xc5, 0x36,
   993  		0xc8, 0x5a, 0x41, 0x3f, 0x05, 0xfa, 0xfe, 0x48,
   994  		0xc3, 0x91, 0x12, 0x8b, 0xe8, 0x32, 0x6a, 0x9f,
   995  		0xdc, 0x97, 0xe2, 0x77, 0xb9, 0x96, 0x2d, 0xd4,
   996  		0xe5, 0xbd, 0xa1, 0xfd, 0x94, 0xbb, 0x74, 0x63,
   997  		0xb1, 0x0c, 0x38, 0xbc, 0x6f, 0x69, 0xaf, 0xa3,
   998  		0x46, 0x9c, 0x96, 0x41, 0xde, 0x59, 0x23, 0xff,
   999  		0x15, 0x6b, 0x3a, 0xef, 0x91, 0x6d, 0x92, 0x44,
  1000  		0xdc, 0x72, 0x1f, 0x40, 0x3d, 0xb5, 0x34, 0x8f,
  1001  		0x2a, 0xac, 0x21, 0x69, 0x05, 0x6f, 0xb2, 0x60,
  1002  		0x32, 0x5d, 0x3d, 0x97, 0xb4, 0x24, 0x99, 0x14,
  1003  		0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01,
  1004  		0x00, 0x30, 0x68, 0x27, 0x97, 0xca, 0x63, 0x09,
  1005  		0x22, 0xed, 0x0e, 0x61, 0x7c, 0x76, 0x31, 0x9c,
  1006  		0xbe, 0x27, 0xc9, 0xe6, 0x09, 0xc3, 0xc3, 0xc2,
  1007  		0xf4, 0xa2, 0x32, 0xba, 0x7c, 0xf2, 0x0f, 0xb8,
  1008  		0x3d, 0xcb, 0xe2, 0x4c, 0xc0, 0x7d, 0x8e, 0x5b,
  1009  		0x5a, 0xed, 0x05, 0x5c, 0x15, 0x96, 0x69, 0xc2,
  1010  		0x6f, 0x5f, 0x17, 0x03, 0x01, 0x00, 0x20, 0x5a,
  1011  		0xfe, 0x0b, 0xe1, 0x6f, 0xa8, 0x54, 0x19, 0x78,
  1012  		0xca, 0xba, 0x2e, 0x1e, 0x2e, 0xe1, 0x5d, 0x17,
  1013  		0xe5, 0x97, 0x05, 0x2c, 0x08, 0x0c, 0xff, 0xa8,
  1014  		0x59, 0xa9, 0xde, 0x5e, 0x21, 0x34, 0x04, 0x17,
  1015  		0x03, 0x01, 0x00, 0x30, 0x86, 0xb1, 0x3f, 0x88,
  1016  		0x43, 0xf0, 0x07, 0xee, 0xa8, 0xf4, 0xbc, 0xe7,
  1017  		0x5f, 0xc6, 0x8c, 0x86, 0x4c, 0xca, 0x70, 0x88,
  1018  		0xcc, 0x6a, 0xb4, 0x3d, 0x40, 0xe8, 0x54, 0x89,
  1019  		0x19, 0x43, 0x1f, 0x76, 0xe2, 0xac, 0xb2, 0x5b,
  1020  		0x92, 0xf8, 0x57, 0x39, 0x2a, 0xc3, 0x6d, 0x13,
  1021  		0x45, 0xfa, 0x36, 0x9e, 0x15, 0x03, 0x01, 0x00,
  1022  		0x20, 0x6d, 0xed, 0x7b, 0x59, 0x28, 0x2a, 0x27,
  1023  		0x04, 0x15, 0x07, 0x4e, 0xeb, 0x13, 0x00, 0xe3,
  1024  		0x3a, 0x3f, 0xf8, 0xaa, 0x2b, 0x3b, 0x1a, 0x8c,
  1025  		0x12, 0xd6, 0x4c, 0xec, 0x2a, 0xaf, 0x33, 0x60,
  1026  		0xaf,
  1027  	},
  1028  }
  1029  
  1030  var sslv3ServerScript = [][]byte{
  1031  	{
  1032  		0x16, 0x03, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00,
  1033  		0x50, 0x03, 0x00, 0x50, 0x77, 0x3d, 0x42, 0xae,
  1034  		0x84, 0xbd, 0xc5, 0x07, 0xa5, 0xc4, 0xd6, 0x16,
  1035  		0x4e, 0xd5, 0xc5, 0xfa, 0x02, 0x7a, 0x0f, 0x1d,
  1036  		0xc1, 0xe1, 0xaa, 0xe3, 0x3b, 0x4b, 0x6f, 0x11,
  1037  		0xfa, 0x1a, 0xa4, 0x00, 0x00, 0x28, 0x00, 0x39,
  1038  		0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1039  		0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1040  		0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1041  		0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1042  		0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1043  		0x00,
  1044  	},
  1045  	{
  1046  		0x16, 0x03, 0x00, 0x00, 0x2a, 0x02, 0x00, 0x00,
  1047  		0x26, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1048  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1049  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1050  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1051  		0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16,
  1052  		0x03, 0x00, 0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba,
  1053  		0x00, 0x02, 0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82,
  1054  		0x02, 0xb0, 0x30, 0x82, 0x02, 0x19, 0xa0, 0x03,
  1055  		0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0x85, 0xb0,
  1056  		0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d,
  1057  		0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1058  		0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x45, 0x31,
  1059  		0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
  1060  		0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
  1061  		0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
  1062  		0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
  1063  		0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
  1064  		0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
  1065  		0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
  1066  		0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
  1067  		0x20, 0x4c, 0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d,
  1068  		0x31, 0x30, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39,
  1069  		0x30, 0x39, 0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31,
  1070  		0x31, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30,
  1071  		0x39, 0x33, 0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b,
  1072  		0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
  1073  		0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06,
  1074  		0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f,
  1075  		0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65,
  1076  		0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04,
  1077  		0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72,
  1078  		0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67,
  1079  		0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20,
  1080  		0x4c, 0x74, 0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d,
  1081  		0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1082  		0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d,
  1083  		0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00,
  1084  		0xbb, 0x79, 0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf,
  1085  		0x46, 0x10, 0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b,
  1086  		0x07, 0x43, 0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a,
  1087  		0x43, 0x85, 0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65,
  1088  		0x4c, 0x2c, 0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4,
  1089  		0x82, 0xe5, 0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62,
  1090  		0xa5, 0x2c, 0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c,
  1091  		0x7a, 0x56, 0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58,
  1092  		0x7b, 0x26, 0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0,
  1093  		0xc9, 0x21, 0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f,
  1094  		0x5a, 0xbf, 0xef, 0x42, 0x71, 0x00, 0xfe, 0x18,
  1095  		0x99, 0x07, 0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1,
  1096  		0x04, 0x39, 0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9,
  1097  		0x7c, 0xe3, 0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01,
  1098  		0xcf, 0xaf, 0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d,
  1099  		0xdb, 0xdb, 0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79,
  1100  		0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7,
  1101  		0x30, 0x81, 0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55,
  1102  		0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1, 0xad,
  1103  		0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69,
  1104  		0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18,
  1105  		0x88, 0x39, 0x30, 0x75, 0x06, 0x03, 0x55, 0x1d,
  1106  		0x23, 0x04, 0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1,
  1107  		0xad, 0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb,
  1108  		0x69, 0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e,
  1109  		0x18, 0x88, 0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30,
  1110  		0x45, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
  1111  		0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13,
  1112  		0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
  1113  		0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74,
  1114  		0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06,
  1115  		0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e,
  1116  		0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
  1117  		0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
  1118  		0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x82, 0x09,
  1119  		0x00, 0x85, 0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8,
  1120  		0xca, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
  1121  		0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
  1122  		0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1123  		0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81,
  1124  		0x81, 0x00, 0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b,
  1125  		0xb1, 0x59, 0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0,
  1126  		0x14, 0xd7, 0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5,
  1127  		0x5a, 0x95, 0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae,
  1128  		0x12, 0x66, 0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e,
  1129  		0x60, 0xd3, 0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5,
  1130  		0x25, 0x13, 0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30,
  1131  		0x1d, 0xba, 0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7,
  1132  		0xd7, 0x31, 0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78,
  1133  		0xea, 0x50, 0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d,
  1134  		0x5a, 0x5f, 0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75,
  1135  		0x90, 0x96, 0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd,
  1136  		0x98, 0x1f, 0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c,
  1137  		0xa3, 0x1b, 0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57,
  1138  		0xe9, 0x70, 0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b,
  1139  		0x26, 0x6e, 0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7,
  1140  		0xbd, 0xd9, 0x16, 0x03, 0x00, 0x00, 0x04, 0x0e,
  1141  		0x00, 0x00, 0x00,
  1142  	},
  1143  	{
  1144  		0x16, 0x03, 0x00, 0x00, 0x84, 0x10, 0x00, 0x00,
  1145  		0x80, 0x4a, 0x8d, 0xc4, 0x38, 0x7a, 0x9c, 0xd6,
  1146  		0xe8, 0x72, 0x9e, 0xa3, 0xdf, 0x37, 0xb4, 0x6c,
  1147  		0x58, 0x33, 0x59, 0xd9, 0xc9, 0x4b, 0x50, 0x33,
  1148  		0x6c, 0xed, 0x73, 0x38, 0x2a, 0x46, 0x55, 0x31,
  1149  		0xa9, 0x8e, 0x8e, 0xfc, 0x0b, 0x5d, 0x5f, 0x3c,
  1150  		0x88, 0x28, 0x3f, 0x60, 0x51, 0x13, 0xf1, 0x59,
  1151  		0x0c, 0xa3, 0x5e, 0xe0, 0xa3, 0x35, 0x06, 0xb1,
  1152  		0x71, 0x59, 0x24, 0x4e, 0xed, 0x07, 0x15, 0x88,
  1153  		0x50, 0xef, 0xc2, 0xb2, 0x2a, 0x52, 0x30, 0x6a,
  1154  		0x7c, 0xbe, 0x2f, 0xc6, 0x8f, 0xa8, 0x83, 0xc5,
  1155  		0x80, 0x14, 0x62, 0x74, 0x7f, 0x96, 0x9f, 0x41,
  1156  		0x32, 0x74, 0xdd, 0x76, 0x2d, 0x7b, 0xeb, 0x7b,
  1157  		0xea, 0xd0, 0x4f, 0x0c, 0xcf, 0x9a, 0x9c, 0xc5,
  1158  		0x7a, 0xe4, 0xbc, 0xf8, 0xa6, 0xe1, 0x09, 0x8e,
  1159  		0x7c, 0x53, 0x3a, 0xe3, 0x30, 0x8f, 0x76, 0xee,
  1160  		0x58, 0xbb, 0xfd, 0x0b, 0x06, 0xb8, 0xdf, 0xb7,
  1161  		0x31, 0x14, 0x03, 0x00, 0x00, 0x01, 0x01, 0x16,
  1162  		0x03, 0x00, 0x00, 0x3c, 0x13, 0x91, 0xc6, 0x4a,
  1163  		0x0c, 0x59, 0x25, 0xce, 0x54, 0xc0, 0x1d, 0xb9,
  1164  		0x2a, 0xff, 0x4d, 0xca, 0x26, 0x0c, 0x8c, 0x04,
  1165  		0x98, 0x7c, 0x7c, 0x38, 0xa3, 0xf5, 0xf9, 0x36,
  1166  		0x1c, 0x04, 0x32, 0x47, 0x2d, 0x48, 0x0e, 0x96,
  1167  		0xe8, 0x2b, 0x5e, 0x5a, 0xc6, 0x0a, 0x48, 0x41,
  1168  		0x34, 0x5e, 0x62, 0xd5, 0x68, 0x4e, 0x44, 0x1d,
  1169  		0xb2, 0xa1, 0x11, 0xad, 0x6e, 0x14, 0x85, 0x61,
  1170  	},
  1171  	{
  1172  		0x14, 0x03, 0x00, 0x00, 0x01, 0x01, 0x16, 0x03,
  1173  		0x00, 0x00, 0x3c, 0x88, 0xae, 0xa9, 0xd4, 0xa8,
  1174  		0x10, 0x8d, 0x65, 0xa6, 0x3e, 0x1e, 0xed, 0xd2,
  1175  		0xfc, 0xc4, 0x7c, 0xa8, 0x94, 0x4f, 0x11, 0xaf,
  1176  		0xa6, 0x87, 0x09, 0x37, 0x54, 0xf7, 0x69, 0xd1,
  1177  		0xb5, 0x25, 0x6b, 0xb5, 0xed, 0xcb, 0x25, 0x39,
  1178  		0x73, 0xeb, 0x53, 0x6c, 0xc7, 0xb4, 0x29, 0x8f,
  1179  		0xd6, 0x49, 0xd1, 0x95, 0x59, 0x80, 0x9a, 0x67,
  1180  		0x5c, 0xb2, 0xe0, 0xbd, 0x1e, 0xff, 0xaa, 0x17,
  1181  		0x03, 0x00, 0x00, 0x21, 0x65, 0x7b, 0x99, 0x09,
  1182  		0x02, 0xc3, 0x9d, 0x54, 0xd6, 0xe7, 0x32, 0x62,
  1183  		0xab, 0xc1, 0x09, 0x91, 0x30, 0x0a, 0xc9, 0xfa,
  1184  		0x70, 0xec, 0x06, 0x7b, 0xa3, 0xe1, 0x5f, 0xb4,
  1185  		0x63, 0xe6, 0x5c, 0xba, 0x1f, 0x15, 0x03, 0x00,
  1186  		0x00, 0x16, 0x40, 0x70, 0xbe, 0xe6, 0xa6, 0xee,
  1187  		0x8f, 0xd0, 0x87, 0xa0, 0x43, 0xa1, 0x92, 0xd7,
  1188  		0xd0, 0x1a, 0x0c, 0x20, 0x7c, 0xbf, 0xa2, 0xb5,
  1189  	},
  1190  }
  1191  
  1192  var selectCertificateBySNIScript = [][]byte{
  1193  	{
  1194  		0x16, 0x03, 0x01, 0x00, 0x6a, 0x01, 0x00, 0x00,
  1195  		0x66, 0x03, 0x01, 0x50, 0x77, 0x3d, 0xfe, 0xfb,
  1196  		0x8d, 0xc2, 0x68, 0xeb, 0xf9, 0xfa, 0x54, 0x97,
  1197  		0x86, 0x45, 0xa2, 0xa3, 0xed, 0xb1, 0x91, 0xb8,
  1198  		0x28, 0xc0, 0x47, 0xaf, 0xfb, 0xcd, 0xdc, 0x0e,
  1199  		0xb3, 0xea, 0xa5, 0x00, 0x00, 0x28, 0x00, 0x39,
  1200  		0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1201  		0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1202  		0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1203  		0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1204  		0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1205  		0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10, 0x00,
  1206  		0x0e, 0x00, 0x00, 0x0b, 0x73, 0x6e, 0x69, 0x74,
  1207  		0x65, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d,
  1208  	},
  1209  	{
  1210  		0x16, 0x03, 0x01, 0x00, 0x2a, 0x02, 0x00, 0x00,
  1211  		0x26, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1212  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1213  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1214  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1215  		0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16,
  1216  		0x03, 0x01, 0x02, 0x00, 0x0b, 0x00, 0x01, 0xfc,
  1217  		0x00, 0x01, 0xf9, 0x00, 0x01, 0xf6, 0x30, 0x82,
  1218  		0x01, 0xf2, 0x30, 0x82, 0x01, 0x5d, 0xa0, 0x03,
  1219  		0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x30, 0x0b,
  1220  		0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1221  		0x01, 0x01, 0x05, 0x30, 0x28, 0x31, 0x10, 0x30,
  1222  		0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x07,
  1223  		0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f, 0x31,
  1224  		0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x03,
  1225  		0x13, 0x0b, 0x73, 0x6e, 0x69, 0x74, 0x65, 0x73,
  1226  		0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17,
  1227  		0x0d, 0x31, 0x32, 0x30, 0x34, 0x31, 0x31, 0x31,
  1228  		0x37, 0x34, 0x30, 0x33, 0x35, 0x5a, 0x17, 0x0d,
  1229  		0x31, 0x33, 0x30, 0x34, 0x31, 0x31, 0x31, 0x37,
  1230  		0x34, 0x35, 0x33, 0x35, 0x5a, 0x30, 0x28, 0x31,
  1231  		0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a,
  1232  		0x13, 0x07, 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43,
  1233  		0x6f, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55,
  1234  		0x04, 0x03, 0x13, 0x0b, 0x73, 0x6e, 0x69, 0x74,
  1235  		0x65, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x30,
  1236  		0x81, 0x9d, 0x30, 0x0b, 0x06, 0x09, 0x2a, 0x86,
  1237  		0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x03,
  1238  		0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81,
  1239  		0x81, 0x00, 0xbb, 0x79, 0xd6, 0xf5, 0x17, 0xb5,
  1240  		0xe5, 0xbf, 0x46, 0x10, 0xd0, 0xdc, 0x69, 0xbe,
  1241  		0xe6, 0x2b, 0x07, 0x43, 0x5a, 0xd0, 0x03, 0x2d,
  1242  		0x8a, 0x7a, 0x43, 0x85, 0xb7, 0x14, 0x52, 0xe7,
  1243  		0xa5, 0x65, 0x4c, 0x2c, 0x78, 0xb8, 0x23, 0x8c,
  1244  		0xb5, 0xb4, 0x82, 0xe5, 0xde, 0x1f, 0x95, 0x3b,
  1245  		0x7e, 0x62, 0xa5, 0x2c, 0xa5, 0x33, 0xd6, 0xfe,
  1246  		0x12, 0x5c, 0x7a, 0x56, 0xfc, 0xf5, 0x06, 0xbf,
  1247  		0xfa, 0x58, 0x7b, 0x26, 0x3f, 0xb5, 0xcd, 0x04,
  1248  		0xd3, 0xd0, 0xc9, 0x21, 0x96, 0x4a, 0xc7, 0xf4,
  1249  		0x54, 0x9f, 0x5a, 0xbf, 0xef, 0x42, 0x71, 0x00,
  1250  		0xfe, 0x18, 0x99, 0x07, 0x7f, 0x7e, 0x88, 0x7d,
  1251  		0x7d, 0xf1, 0x04, 0x39, 0xc4, 0xa2, 0x2e, 0xdb,
  1252  		0x51, 0xc9, 0x7c, 0xe3, 0xc0, 0x4c, 0x3b, 0x32,
  1253  		0x66, 0x01, 0xcf, 0xaf, 0xb1, 0x1d, 0xb8, 0x71,
  1254  		0x9a, 0x1d, 0xdb, 0xdb, 0x89, 0x6b, 0xae, 0xda,
  1255  		0x2d, 0x79, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3,
  1256  		0x32, 0x30, 0x30, 0x30, 0x0e, 0x06, 0x03, 0x55,
  1257  		0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03,
  1258  		0x02, 0x00, 0xa0, 0x30, 0x0d, 0x06, 0x03, 0x55,
  1259  		0x1d, 0x0e, 0x04, 0x06, 0x04, 0x04, 0x01, 0x02,
  1260  		0x03, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d,
  1261  		0x23, 0x04, 0x08, 0x30, 0x06, 0x80, 0x04, 0x01,
  1262  		0x02, 0x03, 0x04, 0x30, 0x0b, 0x06, 0x09, 0x2a,
  1263  		0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05,
  1264  		0x03, 0x81, 0x81, 0x00, 0x89, 0xc6, 0x45, 0x5f,
  1265  		0x1c, 0x1f, 0x5e, 0xf8, 0xeb, 0x1a, 0xb1, 0x74,
  1266  		0xee, 0x24, 0x39, 0x05, 0x9f, 0x5c, 0x42, 0x59,
  1267  		0xbb, 0x1a, 0x8d, 0x86, 0xcd, 0xb1, 0xd0, 0x56,
  1268  		0xf5, 0x6a, 0x71, 0x7d, 0xa4, 0x0e, 0x95, 0xab,
  1269  		0x90, 0xf5, 0x9e, 0x8d, 0xea, 0xf6, 0x27, 0xc1,
  1270  		0x57, 0x99, 0x50, 0x94, 0xdb, 0x08, 0x02, 0x26,
  1271  		0x6e, 0xb3, 0x4f, 0xc6, 0x84, 0x2d, 0xea, 0x8a,
  1272  		0x4b, 0x68, 0xd9, 0xc1, 0x38, 0x91, 0x03, 0xab,
  1273  		0x84, 0xfb, 0x9e, 0x1f, 0x85, 0xd9, 0xb5, 0xd2,
  1274  		0x3f, 0xf2, 0x31, 0x2c, 0x86, 0x70, 0xfb, 0xb5,
  1275  		0x40, 0x14, 0x82, 0x45, 0xa4, 0xeb, 0xaf, 0xe2,
  1276  		0x64, 0xd9, 0x0c, 0x8a, 0x4c, 0xf4, 0xf8, 0x5b,
  1277  		0x0f, 0xac, 0x12, 0xac, 0x2f, 0xc4, 0xa3, 0x15,
  1278  		0x4b, 0xad, 0x52, 0x46, 0x28, 0x68, 0xaf, 0x96,
  1279  		0xc6, 0x2c, 0x65, 0x25, 0xd6, 0x52, 0xb6, 0xe3,
  1280  		0x18, 0x45, 0xbd, 0xcc, 0x16, 0x03, 0x01, 0x00,
  1281  		0x04, 0x0e, 0x00, 0x00, 0x00,
  1282  	},
  1283  	{
  1284  		0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
  1285  		0x82, 0x00, 0x80, 0x69, 0xc3, 0xd4, 0x0e, 0xcc,
  1286  		0xdc, 0xbc, 0x5e, 0xc2, 0x64, 0xa6, 0xde, 0x3c,
  1287  		0x0c, 0x7e, 0x0c, 0x6b, 0x80, 0x0f, 0xd4, 0x8f,
  1288  		0x02, 0x4b, 0xb2, 0xba, 0x8d, 0x01, 0xeb, 0x6b,
  1289  		0xa1, 0x2e, 0x79, 0x37, 0xba, 0xae, 0x24, 0xc2,
  1290  		0x26, 0x72, 0x51, 0xe1, 0x82, 0x8e, 0x51, 0x41,
  1291  		0x1c, 0x54, 0xa4, 0x26, 0xbe, 0x13, 0xcd, 0x1b,
  1292  		0xc6, 0xed, 0x3d, 0x1f, 0xfd, 0x72, 0x80, 0x90,
  1293  		0xdb, 0xbf, 0xd6, 0x39, 0x94, 0x5f, 0x48, 0xfb,
  1294  		0x25, 0x5a, 0xc9, 0x60, 0x9b, 0xd7, 0xc6, 0x20,
  1295  		0xa8, 0x66, 0x64, 0x13, 0xf3, 0x65, 0xc8, 0xb1,
  1296  		0xd5, 0x33, 0x21, 0x0e, 0x73, 0x41, 0xc0, 0x18,
  1297  		0x1a, 0x37, 0xfe, 0xcf, 0x28, 0x2a, 0xcd, 0xe4,
  1298  		0x0b, 0xac, 0xdd, 0x25, 0x5e, 0xcb, 0x17, 0x51,
  1299  		0x69, 0xd5, 0x8c, 0xf4, 0xb6, 0x21, 0x98, 0xef,
  1300  		0x20, 0xdb, 0x14, 0x67, 0xf3, 0x7c, 0x95, 0x6a,
  1301  		0x48, 0x2a, 0x6a, 0x14, 0x03, 0x01, 0x00, 0x01,
  1302  		0x01, 0x16, 0x03, 0x01, 0x00, 0x24, 0x36, 0x1b,
  1303  		0x09, 0xe5, 0xb9, 0xb9, 0x4d, 0x7d, 0xae, 0x87,
  1304  		0xb6, 0x0f, 0xaf, 0xec, 0x22, 0xba, 0x0d, 0xa5,
  1305  		0x96, 0x5e, 0x64, 0x65, 0xe7, 0xfb, 0xe3, 0xf3,
  1306  		0x6b, 0x72, 0xa8, 0xdb, 0xed, 0xd8, 0x69, 0x9c,
  1307  		0x08, 0xd8,
  1308  	},
  1309  	{
  1310  		0x14, 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03,
  1311  		0x01, 0x00, 0x24, 0x60, 0xf7, 0x09, 0x5f, 0xd1,
  1312  		0xcb, 0xc9, 0xe1, 0x22, 0xb5, 0x2a, 0xcc, 0xde,
  1313  		0x7c, 0xa7, 0xb8, 0x85, 0x00, 0xbc, 0xfd, 0x85,
  1314  		0xe1, 0x91, 0x36, 0xbb, 0x07, 0x42, 0xad, 0x3d,
  1315  		0x29, 0x62, 0x69, 0xc1, 0x45, 0x92, 0x6f, 0x17,
  1316  		0x03, 0x01, 0x00, 0x21, 0x0d, 0xf9, 0xd5, 0x87,
  1317  		0xb9, 0x57, 0x3c, 0x50, 0x19, 0xe4, 0x3a, 0x50,
  1318  		0x45, 0xcc, 0x86, 0x89, 0xd4, 0x32, 0x79, 0x45,
  1319  		0x7c, 0x9f, 0x96, 0xd4, 0x54, 0x56, 0x0c, 0x63,
  1320  		0x72, 0x81, 0xc3, 0xd3, 0xe3, 0x15, 0x03, 0x01,
  1321  		0x00, 0x16, 0x84, 0xec, 0x2e, 0xf6, 0xaf, 0x4f,
  1322  		0xee, 0x48, 0x0f, 0xbe, 0xcd, 0x82, 0x5c, 0x56,
  1323  		0x16, 0xe4, 0xfb, 0x89, 0xc5, 0x57, 0x3e, 0x91,
  1324  	},
  1325  }
  1326  
  1327  var issueSessionTicketTest = [][]byte{
  1328  	{
  1329  		0x16, 0x03, 0x01, 0x00, 0x5a, 0x01, 0x00, 0x00,
  1330  		0x56, 0x03, 0x01, 0x50, 0x77, 0x3e, 0x49, 0x7a,
  1331  		0xb7, 0x86, 0x5c, 0x27, 0xd2, 0x97, 0x61, 0xe3,
  1332  		0x49, 0x41, 0x48, 0xe7, 0x0e, 0xaa, 0x7e, 0x4d,
  1333  		0xb8, 0xdc, 0x01, 0x97, 0xfb, 0xab, 0x53, 0xb2,
  1334  		0x5e, 0x36, 0xf6, 0x00, 0x00, 0x28, 0x00, 0x39,
  1335  		0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1336  		0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1337  		0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1338  		0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1339  		0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1340  		0x00, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00,
  1341  	},
  1342  	{
  1343  		0x16, 0x03, 0x01, 0x00, 0x30, 0x02, 0x00, 0x00,
  1344  		0x2c, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1345  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1346  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1347  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1348  		0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
  1349  		0x04, 0x00, 0x23, 0x00, 0x00, 0x16, 0x03, 0x01,
  1350  		0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba, 0x00, 0x02,
  1351  		0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82, 0x02, 0xb0,
  1352  		0x30, 0x82, 0x02, 0x19, 0xa0, 0x03, 0x02, 0x01,
  1353  		0x02, 0x02, 0x09, 0x00, 0x85, 0xb0, 0xbb, 0xa4,
  1354  		0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d, 0x06, 0x09,
  1355  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
  1356  		0x05, 0x05, 0x00, 0x30, 0x45, 0x31, 0x0b, 0x30,
  1357  		0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
  1358  		0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03,
  1359  		0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d,
  1360  		0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31,
  1361  		0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a,
  1362  		0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
  1363  		0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69,
  1364  		0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c,
  1365  		0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x30,
  1366  		0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39,
  1367  		0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31, 0x31, 0x30,
  1368  		0x34, 0x32, 0x34, 0x30, 0x39, 0x30, 0x39, 0x33,
  1369  		0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b, 0x30, 0x09,
  1370  		0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41,
  1371  		0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55,
  1372  		0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f, 0x6d, 0x65,
  1373  		0x2d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21,
  1374  		0x30, 0x1f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
  1375  		0x18, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65,
  1376  		0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74,
  1377  		0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4c, 0x74,
  1378  		0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09,
  1379  		0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
  1380  		0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30,
  1381  		0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xbb, 0x79,
  1382  		0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf, 0x46, 0x10,
  1383  		0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b, 0x07, 0x43,
  1384  		0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a, 0x43, 0x85,
  1385  		0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65, 0x4c, 0x2c,
  1386  		0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4, 0x82, 0xe5,
  1387  		0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62, 0xa5, 0x2c,
  1388  		0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c, 0x7a, 0x56,
  1389  		0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58, 0x7b, 0x26,
  1390  		0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0, 0xc9, 0x21,
  1391  		0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f, 0x5a, 0xbf,
  1392  		0xef, 0x42, 0x71, 0x00, 0xfe, 0x18, 0x99, 0x07,
  1393  		0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1, 0x04, 0x39,
  1394  		0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9, 0x7c, 0xe3,
  1395  		0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01, 0xcf, 0xaf,
  1396  		0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d, 0xdb, 0xdb,
  1397  		0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79, 0x02, 0x03,
  1398  		0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7, 0x30, 0x81,
  1399  		0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
  1400  		0x04, 0x16, 0x04, 0x14, 0xb1, 0xad, 0xe2, 0x85,
  1401  		0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce, 0x23,
  1402  		0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88, 0x39,
  1403  		0x30, 0x75, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04,
  1404  		0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1, 0xad, 0xe2,
  1405  		0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69, 0xce,
  1406  		0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18, 0x88,
  1407  		0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30, 0x45, 0x31,
  1408  		0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
  1409  		0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
  1410  		0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
  1411  		0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
  1412  		0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
  1413  		0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
  1414  		0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
  1415  		0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
  1416  		0x20, 0x4c, 0x74, 0x64, 0x82, 0x09, 0x00, 0x85,
  1417  		0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30,
  1418  		0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05,
  1419  		0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0d, 0x06,
  1420  		0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
  1421  		0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00,
  1422  		0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b, 0xb1, 0x59,
  1423  		0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0, 0x14, 0xd7,
  1424  		0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5, 0x5a, 0x95,
  1425  		0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae, 0x12, 0x66,
  1426  		0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e, 0x60, 0xd3,
  1427  		0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5, 0x25, 0x13,
  1428  		0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30, 0x1d, 0xba,
  1429  		0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7, 0xd7, 0x31,
  1430  		0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78, 0xea, 0x50,
  1431  		0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d, 0x5a, 0x5f,
  1432  		0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75, 0x90, 0x96,
  1433  		0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd, 0x98, 0x1f,
  1434  		0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c, 0xa3, 0x1b,
  1435  		0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57, 0xe9, 0x70,
  1436  		0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b, 0x26, 0x6e,
  1437  		0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7, 0xbd, 0xd9,
  1438  		0x16, 0x03, 0x01, 0x00, 0x04, 0x0e, 0x00, 0x00,
  1439  		0x00,
  1440  	},
  1441  	{
  1442  		0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
  1443  		0x82, 0x00, 0x80, 0x68, 0x10, 0xdc, 0x80, 0xbc,
  1444  		0xb3, 0x5a, 0x10, 0x75, 0x89, 0xcc, 0xe5, 0x9f,
  1445  		0xbf, 0xe2, 0xce, 0xa4, 0x9f, 0x7f, 0x60, 0xc4,
  1446  		0xfe, 0x5c, 0xb5, 0x02, 0x2d, 0xa5, 0xa9, 0x1e,
  1447  		0x2c, 0x10, 0x79, 0x15, 0x0f, 0xed, 0x96, 0xb3,
  1448  		0xa8, 0x5e, 0x21, 0xbc, 0x5b, 0xdc, 0x58, 0x04,
  1449  		0x7d, 0x37, 0xdb, 0xa0, 0x31, 0xe8, 0x4f, 0x04,
  1450  		0xbc, 0x46, 0x7c, 0xdb, 0x2e, 0x93, 0x07, 0xaf,
  1451  		0xa6, 0x36, 0xd3, 0x39, 0x8d, 0x1d, 0x95, 0xa8,
  1452  		0x50, 0x4b, 0xc4, 0x2b, 0xde, 0xd7, 0x04, 0x6d,
  1453  		0x77, 0x6c, 0x4d, 0x70, 0x51, 0x88, 0x16, 0x31,
  1454  		0x40, 0xb5, 0xba, 0x90, 0x47, 0x64, 0x0c, 0x87,
  1455  		0xa5, 0x19, 0xf9, 0x89, 0x24, 0x3c, 0x5e, 0x4b,
  1456  		0xaa, 0xe0, 0x60, 0x47, 0x0f, 0x2e, 0xcc, 0xc2,
  1457  		0xd5, 0x21, 0xed, 0x72, 0xd0, 0xa9, 0xdd, 0x2a,
  1458  		0x2b, 0xef, 0x08, 0x3a, 0x65, 0xea, 0x8b, 0x52,
  1459  		0x77, 0x2d, 0xcc, 0x14, 0x03, 0x01, 0x00, 0x01,
  1460  		0x01, 0x16, 0x03, 0x01, 0x00, 0x24, 0xe2, 0x95,
  1461  		0x62, 0x3c, 0x18, 0xe5, 0xc7, 0x2c, 0xda, 0x16,
  1462  		0x9b, 0x28, 0x0d, 0xf7, 0x88, 0x7b, 0x5d, 0x33,
  1463  		0x55, 0x3b, 0x01, 0x73, 0xf2, 0xc6, 0x4e, 0x96,
  1464  		0x01, 0x01, 0x83, 0x65, 0xd4, 0xef, 0x12, 0x13,
  1465  		0x1d, 0x42,
  1466  	},
  1467  	{
  1468  		0x16, 0x03, 0x01, 0x00, 0x72, 0x04, 0x00, 0x00,
  1469  		0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00,
  1470  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1471  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65,
  1472  		0xe8, 0x4b, 0xd1, 0xef, 0xba, 0xfb, 0x41, 0x92,
  1473  		0x6d, 0x37, 0x5f, 0xf8, 0x7d, 0x90, 0x0f, 0x01,
  1474  		0xf8, 0x8c, 0xee, 0xbc, 0xd9, 0x0c, 0x97, 0x7e,
  1475  		0x23, 0x46, 0xe2, 0x6b, 0x52, 0xc6, 0xc6, 0x97,
  1476  		0x1d, 0xab, 0xde, 0xa0, 0x86, 0x94, 0xc8, 0x2e,
  1477  		0x8b, 0x2e, 0x42, 0x5f, 0xc2, 0x70, 0x35, 0xc9,
  1478  		0xee, 0x37, 0xeb, 0x70, 0xaa, 0x59, 0x23, 0x6c,
  1479  		0xc8, 0xc1, 0x84, 0x89, 0x39, 0x87, 0x73, 0x0a,
  1480  		0x7e, 0xba, 0xca, 0xed, 0x63, 0xba, 0x4e, 0x4f,
  1481  		0xf3, 0x31, 0x4b, 0xf0, 0xee, 0x91, 0xa5, 0xb4,
  1482  		0x62, 0x01, 0x9e, 0xbd, 0xbc, 0xb3, 0x35, 0x14,
  1483  		0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01,
  1484  		0x00, 0x24, 0x3f, 0x66, 0xe4, 0x98, 0xc1, 0x3f,
  1485  		0xc6, 0x2c, 0x81, 0xfb, 0xa9, 0x9f, 0x27, 0xe9,
  1486  		0x63, 0x20, 0x1e, 0x0e, 0x4f, 0xfc, 0x5d, 0x12,
  1487  		0xee, 0x77, 0x73, 0xc6, 0x96, 0x51, 0xf2, 0x26,
  1488  		0x35, 0x3f, 0xce, 0x6a, 0xa9, 0xfd, 0x17, 0x03,
  1489  		0x01, 0x00, 0x21, 0x8d, 0xd5, 0x67, 0x60, 0x5d,
  1490  		0xa7, 0x93, 0xcc, 0x39, 0x78, 0x59, 0xab, 0xdb,
  1491  		0x10, 0x96, 0xf2, 0xad, 0xa2, 0x85, 0xe2, 0x93,
  1492  		0x43, 0x43, 0xcf, 0x82, 0xbd, 0x1f, 0xdc, 0x7a,
  1493  		0x72, 0xd6, 0x83, 0x3b, 0x15, 0x03, 0x01, 0x00,
  1494  		0x16, 0x89, 0x55, 0xf6, 0x42, 0x71, 0xa9, 0xe9,
  1495  		0x05, 0x68, 0xe8, 0xce, 0x0d, 0x21, 0xe9, 0xec,
  1496  		0xf2, 0x27, 0x67, 0xa7, 0x94, 0xf8, 0x34,
  1497  	},
  1498  }
  1499  var serverResumeTest = [][]byte{
  1500  	{
  1501  		0x16, 0x03, 0x01, 0x00, 0xc2, 0x01, 0x00, 0x00,
  1502  		0xbe, 0x03, 0x01, 0x50, 0x77, 0x3e, 0x4f, 0x1f,
  1503  		0x6f, 0xa5, 0x81, 0xeb, 0xb8, 0x80, 0x55, 0xa4,
  1504  		0x76, 0xc2, 0x7f, 0x27, 0xf2, 0xe7, 0xc9, 0x7a,
  1505  		0x01, 0x3c, 0xd8, 0xc1, 0xde, 0x99, 0x1f, 0x7c,
  1506  		0xab, 0x35, 0x98, 0x00, 0x00, 0x28, 0x00, 0x39,
  1507  		0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1508  		0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1509  		0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1510  		0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1511  		0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1512  		0x00, 0x00, 0x6c, 0x00, 0x23, 0x00, 0x68, 0x00,
  1513  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1514  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65,
  1515  		0xe8, 0x4b, 0xd1, 0xef, 0xba, 0xfb, 0x41, 0x92,
  1516  		0x6d, 0x37, 0x5f, 0xf8, 0x7d, 0x90, 0x0f, 0x01,
  1517  		0xf8, 0x8c, 0xee, 0xbc, 0xd9, 0x0c, 0x97, 0x7e,
  1518  		0x23, 0x46, 0xe2, 0x6b, 0x52, 0xc6, 0xc6, 0x97,
  1519  		0x1d, 0xab, 0xde, 0xa0, 0x86, 0x94, 0xc8, 0x2e,
  1520  		0x8b, 0x2e, 0x42, 0x5f, 0xc2, 0x70, 0x35, 0xc9,
  1521  		0xee, 0x37, 0xeb, 0x70, 0xaa, 0x59, 0x23, 0x6c,
  1522  		0xc8, 0xc1, 0x84, 0x89, 0x39, 0x87, 0x73, 0x0a,
  1523  		0x7e, 0xba, 0xca, 0xed, 0x63, 0xba, 0x4e, 0x4f,
  1524  		0xf3, 0x31, 0x4b, 0xf0, 0xee, 0x91, 0xa5, 0xb4,
  1525  		0x62, 0x01, 0x9e, 0xbd, 0xbc, 0xb3, 0x35,
  1526  	},
  1527  	{
  1528  		0x16, 0x03, 0x01, 0x00, 0x2a, 0x02, 0x00, 0x00,
  1529  		0x26, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1530  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1531  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1532  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1533  		0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x14,
  1534  		0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01,
  1535  		0x00, 0x24, 0xc5, 0x35, 0x74, 0x19, 0x05, 0xc5,
  1536  		0x85, 0x68, 0x48, 0xe8, 0xb5, 0xe9, 0xaf, 0x78,
  1537  		0xbd, 0x35, 0x6f, 0xe9, 0x79, 0x34, 0x1b, 0xf0,
  1538  		0x35, 0xd4, 0x4e, 0x55, 0x2e, 0x3c, 0xd5, 0xaf,
  1539  		0xfc, 0xba, 0xf5, 0x1e, 0x83, 0x32,
  1540  	},
  1541  	{
  1542  		0x14, 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03,
  1543  		0x01, 0x00, 0x24, 0x27, 0x28, 0x88, 0xe1, 0x7e,
  1544  		0x0d, 0x9c, 0x12, 0x50, 0xf6, 0x7a, 0xa7, 0x32,
  1545  		0x21, 0x68, 0xba, 0xd8, 0x0a, 0xdc, 0x39, 0xef,
  1546  		0x68, 0x95, 0x82, 0xae, 0xbd, 0x12, 0x79, 0xa1,
  1547  		0x99, 0xfd, 0xd0, 0x10, 0x8e, 0x4b, 0xd8,
  1548  	},
  1549  	{
  1550  		0x17, 0x03, 0x01, 0x00, 0x21, 0xc5, 0x7e, 0x0a,
  1551  		0x52, 0x6a, 0xb9, 0xaa, 0x1d, 0xae, 0x9e, 0x24,
  1552  		0x9c, 0x34, 0x1e, 0xdb, 0x50, 0x95, 0xee, 0x76,
  1553  		0xd7, 0x28, 0x88, 0x08, 0xe3, 0x2e, 0x58, 0xf7,
  1554  		0xdb, 0x34, 0x75, 0xa5, 0x7f, 0x9d, 0x15, 0x03,
  1555  		0x01, 0x00, 0x16, 0x2c, 0xc1, 0x29, 0x5f, 0x12,
  1556  		0x1d, 0x19, 0xab, 0xb3, 0xf4, 0x35, 0x1c, 0x62,
  1557  		0x6a, 0x80, 0x29, 0x0d, 0x0e, 0xef, 0x7d, 0x6e,
  1558  		0x50,
  1559  	},
  1560  }
  1561  
  1562  var clientauthTests = []clientauthTest{
  1563  	// Server asks for cert with empty CA list, client doesn't give it.
  1564  	// go test -run "TestRunServer" -serve -clientauth 1
  1565  	{"RequestClientCert, none given", RequestClientCert, nil, [][]byte{
  1566  		{
  1567  			0x16, 0x03, 0x01, 0x00, 0x54, 0x01, 0x00, 0x00,
  1568  			0x50, 0x03, 0x01, 0x50, 0x77, 0x43, 0x9e, 0x31,
  1569  			0xe6, 0x36, 0x5e, 0x5e, 0x24, 0xe4, 0x0d, 0x26,
  1570  			0x34, 0xa7, 0x1c, 0x2e, 0x59, 0x6d, 0xa5, 0x3e,
  1571  			0x72, 0xf3, 0xa3, 0x1c, 0xbc, 0xb3, 0x27, 0xaf,
  1572  			0x92, 0x5b, 0x7d, 0x00, 0x00, 0x28, 0x00, 0x39,
  1573  			0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1574  			0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1575  			0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1576  			0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1577  			0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1578  			0x00,
  1579  		},
  1580  		{
  1581  			0x16, 0x03, 0x01, 0x00, 0x2a, 0x02, 0x00, 0x00,
  1582  			0x26, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1583  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1584  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1585  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1586  			0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16,
  1587  			0x03, 0x01, 0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba,
  1588  			0x00, 0x02, 0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82,
  1589  			0x02, 0xb0, 0x30, 0x82, 0x02, 0x19, 0xa0, 0x03,
  1590  			0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0x85, 0xb0,
  1591  			0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d,
  1592  			0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1593  			0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x45, 0x31,
  1594  			0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
  1595  			0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
  1596  			0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
  1597  			0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
  1598  			0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
  1599  			0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
  1600  			0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
  1601  			0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
  1602  			0x20, 0x4c, 0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d,
  1603  			0x31, 0x30, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39,
  1604  			0x30, 0x39, 0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31,
  1605  			0x31, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30,
  1606  			0x39, 0x33, 0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b,
  1607  			0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
  1608  			0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06,
  1609  			0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f,
  1610  			0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65,
  1611  			0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04,
  1612  			0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72,
  1613  			0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67,
  1614  			0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20,
  1615  			0x4c, 0x74, 0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d,
  1616  			0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1617  			0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d,
  1618  			0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00,
  1619  			0xbb, 0x79, 0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf,
  1620  			0x46, 0x10, 0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b,
  1621  			0x07, 0x43, 0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a,
  1622  			0x43, 0x85, 0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65,
  1623  			0x4c, 0x2c, 0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4,
  1624  			0x82, 0xe5, 0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62,
  1625  			0xa5, 0x2c, 0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c,
  1626  			0x7a, 0x56, 0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58,
  1627  			0x7b, 0x26, 0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0,
  1628  			0xc9, 0x21, 0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f,
  1629  			0x5a, 0xbf, 0xef, 0x42, 0x71, 0x00, 0xfe, 0x18,
  1630  			0x99, 0x07, 0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1,
  1631  			0x04, 0x39, 0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9,
  1632  			0x7c, 0xe3, 0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01,
  1633  			0xcf, 0xaf, 0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d,
  1634  			0xdb, 0xdb, 0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79,
  1635  			0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7,
  1636  			0x30, 0x81, 0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55,
  1637  			0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1, 0xad,
  1638  			0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69,
  1639  			0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18,
  1640  			0x88, 0x39, 0x30, 0x75, 0x06, 0x03, 0x55, 0x1d,
  1641  			0x23, 0x04, 0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1,
  1642  			0xad, 0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb,
  1643  			0x69, 0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e,
  1644  			0x18, 0x88, 0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30,
  1645  			0x45, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
  1646  			0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13,
  1647  			0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
  1648  			0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74,
  1649  			0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06,
  1650  			0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e,
  1651  			0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
  1652  			0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
  1653  			0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x82, 0x09,
  1654  			0x00, 0x85, 0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8,
  1655  			0xca, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
  1656  			0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
  1657  			0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1658  			0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81,
  1659  			0x81, 0x00, 0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b,
  1660  			0xb1, 0x59, 0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0,
  1661  			0x14, 0xd7, 0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5,
  1662  			0x5a, 0x95, 0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae,
  1663  			0x12, 0x66, 0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e,
  1664  			0x60, 0xd3, 0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5,
  1665  			0x25, 0x13, 0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30,
  1666  			0x1d, 0xba, 0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7,
  1667  			0xd7, 0x31, 0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78,
  1668  			0xea, 0x50, 0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d,
  1669  			0x5a, 0x5f, 0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75,
  1670  			0x90, 0x96, 0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd,
  1671  			0x98, 0x1f, 0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c,
  1672  			0xa3, 0x1b, 0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57,
  1673  			0xe9, 0x70, 0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b,
  1674  			0x26, 0x6e, 0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7,
  1675  			0xbd, 0xd9, 0x16, 0x03, 0x01, 0x00, 0x08, 0x0d,
  1676  			0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x16,
  1677  			0x03, 0x01, 0x00, 0x04, 0x0e, 0x00, 0x00, 0x00,
  1678  		},
  1679  		{
  1680  			0x16, 0x03, 0x01, 0x00, 0x07, 0x0b, 0x00, 0x00,
  1681  			0x03, 0x00, 0x00, 0x00, 0x16, 0x03, 0x01, 0x00,
  1682  			0x86, 0x10, 0x00, 0x00, 0x82, 0x00, 0x80, 0x04,
  1683  			0x58, 0x63, 0x26, 0x32, 0x1b, 0x34, 0xbe, 0x10,
  1684  			0xe4, 0xe4, 0x3e, 0xcd, 0x36, 0x7f, 0xa8, 0xa8,
  1685  			0xe0, 0x19, 0xe8, 0x94, 0x13, 0xd9, 0x35, 0xc4,
  1686  			0x71, 0xb4, 0x91, 0xd4, 0xbc, 0x74, 0x57, 0x9f,
  1687  			0x93, 0xb7, 0x5d, 0x3b, 0x9c, 0xff, 0x5d, 0x79,
  1688  			0xdb, 0x86, 0xfc, 0xdc, 0x74, 0x1e, 0x0c, 0xc6,
  1689  			0xe8, 0x93, 0xcf, 0xaf, 0xba, 0x1d, 0xfd, 0x8a,
  1690  			0xeb, 0xef, 0xbf, 0xfa, 0xa6, 0xe7, 0x53, 0x98,
  1691  			0x60, 0x4e, 0x0e, 0x60, 0x7d, 0xea, 0x40, 0x8d,
  1692  			0x1d, 0x8f, 0xa3, 0xc6, 0x83, 0xbc, 0xef, 0xb7,
  1693  			0x9a, 0x4a, 0xe7, 0x99, 0xee, 0x0b, 0xc7, 0x46,
  1694  			0x75, 0x45, 0x66, 0xe8, 0x5f, 0x4b, 0x08, 0xa4,
  1695  			0xc1, 0x36, 0xd0, 0x36, 0x2c, 0xf2, 0x9a, 0x44,
  1696  			0x1e, 0x5f, 0x22, 0xf4, 0xbe, 0x66, 0x66, 0x17,
  1697  			0xd8, 0xb6, 0x0a, 0x89, 0xed, 0x22, 0x80, 0xdb,
  1698  			0xad, 0x05, 0xd1, 0xb5, 0x93, 0xa1, 0x1c, 0x14,
  1699  			0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01,
  1700  			0x00, 0x24, 0x62, 0x6f, 0x3d, 0x30, 0x56, 0x97,
  1701  			0xde, 0x03, 0x67, 0xa9, 0x63, 0x21, 0xb6, 0xe6,
  1702  			0x05, 0x69, 0x94, 0xfb, 0x50, 0xc1, 0x99, 0xdd,
  1703  			0xf6, 0xe8, 0x60, 0xbd, 0xe6, 0xba, 0xe3, 0x50,
  1704  			0x0a, 0xcd, 0xde, 0x14, 0x16, 0xc4,
  1705  		},
  1706  		{
  1707  			0x14, 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03,
  1708  			0x01, 0x00, 0x24, 0xf0, 0x21, 0xf6, 0x84, 0x6a,
  1709  			0xe3, 0x6b, 0x8a, 0xc5, 0x46, 0x50, 0xca, 0x40,
  1710  			0xea, 0x4e, 0x82, 0xc1, 0x70, 0x25, 0xd8, 0x7d,
  1711  			0x60, 0xf5, 0x51, 0x7f, 0x64, 0x03, 0x9f, 0x53,
  1712  			0xec, 0xfb, 0x57, 0xa9, 0xfc, 0x26, 0x15, 0x17,
  1713  			0x03, 0x01, 0x00, 0x21, 0xa6, 0xc6, 0x94, 0x2b,
  1714  			0xa9, 0xcb, 0x93, 0xff, 0xb6, 0xa6, 0xe7, 0xc5,
  1715  			0x37, 0x86, 0x15, 0x37, 0x57, 0xce, 0xef, 0x54,
  1716  			0x96, 0x5d, 0x50, 0xa0, 0x50, 0x69, 0x5e, 0x82,
  1717  			0x61, 0x8d, 0x42, 0xfb, 0x78, 0x15, 0x03, 0x01,
  1718  			0x00, 0x16, 0x45, 0xd1, 0x86, 0x68, 0x59, 0xc1,
  1719  			0xaf, 0xac, 0x5c, 0x46, 0x8a, 0x68, 0x69, 0x0c,
  1720  			0xd7, 0x67, 0xbf, 0xf0, 0x3e, 0xee, 0x45, 0x55,
  1721  		},
  1722  	}},
  1723  	// Server asks for cert with empty CA list, client gives one
  1724  	// go test -run "TestRunServer" -serve -clientauth 1
  1725  	{"RequestClientCert, client gives it", RequestClientCert, []*x509.Certificate{clientCertificate}, [][]byte{
  1726  		{
  1727  			0x16, 0x03, 0x01, 0x00, 0x54, 0x01, 0x00, 0x00,
  1728  			0x50, 0x03, 0x01, 0x50, 0x77, 0x43, 0x47, 0xfd,
  1729  			0x1d, 0xb0, 0x60, 0x4c, 0x25, 0x86, 0x45, 0x4a,
  1730  			0xe5, 0x3f, 0x80, 0x56, 0x18, 0x91, 0x5c, 0xe2,
  1731  			0x62, 0xc5, 0x77, 0xc2, 0x92, 0xdd, 0xdc, 0x39,
  1732  			0x23, 0x1d, 0xc5, 0x00, 0x00, 0x28, 0x00, 0x39,
  1733  			0x00, 0x38, 0x00, 0x35, 0x00, 0x16, 0x00, 0x13,
  1734  			0x00, 0x0a, 0x00, 0x33, 0x00, 0x32, 0x00, 0x2f,
  1735  			0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x00, 0x12,
  1736  			0x00, 0x09, 0x00, 0x14, 0x00, 0x11, 0x00, 0x08,
  1737  			0x00, 0x06, 0x00, 0x03, 0x00, 0xff, 0x02, 0x01,
  1738  			0x00,
  1739  		},
  1740  		{
  1741  			0x16, 0x03, 0x01, 0x00, 0x2a, 0x02, 0x00, 0x00,
  1742  			0x26, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
  1743  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1744  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1745  			0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1746  			0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x16,
  1747  			0x03, 0x01, 0x02, 0xbe, 0x0b, 0x00, 0x02, 0xba,
  1748  			0x00, 0x02, 0xb7, 0x00, 0x02, 0xb4, 0x30, 0x82,
  1749  			0x02, 0xb0, 0x30, 0x82, 0x02, 0x19, 0xa0, 0x03,
  1750  			0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 0x85, 0xb0,
  1751  			0xbb, 0xa4, 0x8a, 0x7f, 0xb8, 0xca, 0x30, 0x0d,
  1752  			0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1753  			0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x45, 0x31,
  1754  			0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
  1755  			0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11,
  1756  			0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53,
  1757  			0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74,
  1758  			0x65, 0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55,
  1759  			0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65,
  1760  			0x72, 0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64,
  1761  			0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79,
  1762  			0x20, 0x4c, 0x74, 0x64, 0x30, 0x1e, 0x17, 0x0d,
  1763  			0x31, 0x30, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39,
  1764  			0x30, 0x39, 0x33, 0x38, 0x5a, 0x17, 0x0d, 0x31,
  1765  			0x31, 0x30, 0x34, 0x32, 0x34, 0x30, 0x39, 0x30,
  1766  			0x39, 0x33, 0x38, 0x5a, 0x30, 0x45, 0x31, 0x0b,
  1767  			0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
  1768  			0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06,
  1769  			0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, 0x53, 0x6f,
  1770  			0x6d, 0x65, 0x2d, 0x53, 0x74, 0x61, 0x74, 0x65,
  1771  			0x31, 0x21, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x04,
  1772  			0x0a, 0x13, 0x18, 0x49, 0x6e, 0x74, 0x65, 0x72,
  1773  			0x6e, 0x65, 0x74, 0x20, 0x57, 0x69, 0x64, 0x67,
  1774  			0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20,
  1775  			0x4c, 0x74, 0x64, 0x30, 0x81, 0x9f, 0x30, 0x0d,
  1776  			0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
  1777  			0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d,
  1778  			0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00,
  1779  			0xbb, 0x79, 0xd6, 0xf5, 0x17, 0xb5, 0xe5, 0xbf,
  1780  			0x46, 0x10, 0xd0, 0xdc, 0x69, 0xbe, 0xe6, 0x2b,
  1781  			0x07, 0x43, 0x5a, 0xd0, 0x03, 0x2d, 0x8a, 0x7a,
  1782  			0x43, 0x85, 0xb7, 0x14, 0x52, 0xe7, 0xa5, 0x65,
  1783  			0x4c, 0x2c, 0x78, 0xb8, 0x23, 0x8c, 0xb5, 0xb4,
  1784  			0x82, 0xe5, 0xde, 0x1f, 0x95, 0x3b, 0x7e, 0x62,
  1785  			0xa5, 0x2c, 0xa5, 0x33, 0xd6, 0xfe, 0x12, 0x5c,
  1786  			0x7a, 0x56, 0xfc, 0xf5, 0x06, 0xbf, 0xfa, 0x58,
  1787  			0x7b, 0x26, 0x3f, 0xb5, 0xcd, 0x04, 0xd3, 0xd0,
  1788  			0xc9, 0x21, 0x96, 0x4a, 0xc7, 0xf4, 0x54, 0x9f,
  1789  			0x5a, 0xbf, 0xef, 0x42, 0x71, 0x00, 0xfe, 0x18,
  1790  			0x99, 0x07, 0x7f, 0x7e, 0x88, 0x7d, 0x7d, 0xf1,
  1791  			0x04, 0x39, 0xc4, 0xa2, 0x2e, 0xdb, 0x51, 0xc9,
  1792  			0x7c, 0xe3, 0xc0, 0x4c, 0x3b, 0x32, 0x66, 0x01,
  1793  			0xcf, 0xaf, 0xb1, 0x1d, 0xb8, 0x71, 0x9a, 0x1d,
  1794  			0xdb, 0xdb, 0x89, 0x6b, 0xae, 0xda, 0x2d, 0x79,
  1795  			0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xa7,
  1796  			0x30, 0x81, 0xa4, 0x30, 0x1d, 0x06, 0x03, 0x55,
  1797  			0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xb1, 0xad,
  1798  			0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb, 0x69,
  1799  			0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e, 0x18,
  1800  			0x88, 0x39, 0x30, 0x75, 0x06, 0x03, 0x55, 0x1d,
  1801  			0x23, 0x04, 0x6e, 0x30, 0x6c, 0x80, 0x14, 0xb1,
  1802  			0xad, 0xe2, 0x85, 0x5a, 0xcf, 0xcb, 0x28, 0xdb,
  1803  			0x69, 0xce, 0x23, 0x69, 0xde, 0xd3, 0x26, 0x8e,
  1804  			0x18, 0x88, 0x39, 0xa1, 0x49, 0xa4, 0x47, 0x30,
  1805  			0x45, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55,
  1806  			0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13,
  1807  			0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13,
  1808  			0x0a, 0x53, 0x6f, 0x6d, 0x65, 0x2d, 0x53, 0x74,
  1809  			0x61, 0x74, 0x65, 0x31, 0x21, 0x30, 0x1f, 0x06,
  1810  			0x03, 0x55, 0x04, 0x0a, 0x13, 0x18, 0x49, 0x6e,
  1811  			0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x57,
  1812  			0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50,
  1813  			0x74, 0x79, 0x20, 0x4c, 0x74, 0x64, 0x82, 0x09,
  1814  			0x00, 0x85, 0xb0, 0xbb, 0xa4, 0x8a, 0x7f, 0xb8,
  1815  			0xca, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13,
  1816  			0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
  1817  			0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1818  			0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81,
  1819  			0x81, 0x00, 0x08, 0x6c, 0x45, 0x24, 0xc7, 0x6b,
  1820  			0xb1, 0x59, 0xab, 0x0c, 0x52, 0xcc, 0xf2, 0xb0,
  1821  			0x14, 0xd7, 0x87, 0x9d, 0x7a, 0x64, 0x75, 0xb5,
  1822  			0x5a, 0x95, 0x66, 0xe4, 0xc5, 0x2b, 0x8e, 0xae,
  1823  			0x12, 0x66, 0x1f, 0xeb, 0x4f, 0x38, 0xb3, 0x6e,
  1824  			0x60, 0xd3, 0x92, 0xfd, 0xf7, 0x41, 0x08, 0xb5,
  1825  			0x25, 0x13, 0xb1, 0x18, 0x7a, 0x24, 0xfb, 0x30,
  1826  			0x1d, 0xba, 0xed, 0x98, 0xb9, 0x17, 0xec, 0xe7,
  1827  			0xd7, 0x31, 0x59, 0xdb, 0x95, 0xd3, 0x1d, 0x78,
  1828  			0xea, 0x50, 0x56, 0x5c, 0xd5, 0x82, 0x5a, 0x2d,
  1829  			0x5a, 0x5f, 0x33, 0xc4, 0xb6, 0xd8, 0xc9, 0x75,
  1830  			0x90, 0x96, 0x8c, 0x0f, 0x52, 0x98, 0xb5, 0xcd,
  1831  			0x98, 0x1f, 0x89, 0x20, 0x5f, 0xf2, 0xa0, 0x1c,
  1832  			0xa3, 0x1b, 0x96, 0x94, 0xdd, 0xa9, 0xfd, 0x57,
  1833  			0xe9, 0x70, 0xe8, 0x26, 0x6d, 0x71, 0x99, 0x9b,
  1834  			0x26, 0x6e, 0x38, 0x50, 0x29, 0x6c, 0x90, 0xa7,
  1835  			0xbd, 0xd9, 0x16, 0x03, 0x01, 0x00, 0x08, 0x0d,
  1836  			0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x16,
  1837  			0x03, 0x01, 0x00, 0x04, 0x0e, 0x00, 0x00, 0x00,
  1838  		},
  1839  		{
  1840  			0x16, 0x03, 0x01, 0x01, 0xfb, 0x0b, 0x00, 0x01,
  1841  			0xf7, 0x00, 0x01, 0xf4, 0x00, 0x01, 0xf1, 0x30,
  1842  			0x82, 0x01, 0xed, 0x30, 0x82, 0x01, 0x58, 0xa0,
  1843  			0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x00, 0x30,
  1844  			0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1845  			0x0d, 0x01, 0x01, 0x05, 0x30, 0x26, 0x31, 0x10,
  1846  			0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
  1847  			0x07, 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f,
  1848  			0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04,
  1849  			0x03, 0x13, 0x09, 0x31, 0x32, 0x37, 0x2e, 0x30,
  1850  			0x2e, 0x30, 0x2e, 0x31, 0x30, 0x1e, 0x17, 0x0d,
  1851  			0x31, 0x31, 0x31, 0x32, 0x30, 0x38, 0x30, 0x37,
  1852  			0x35, 0x35, 0x31, 0x32, 0x5a, 0x17, 0x0d, 0x31,
  1853  			0x32, 0x31, 0x32, 0x30, 0x37, 0x30, 0x38, 0x30,
  1854  			0x30, 0x31, 0x32, 0x5a, 0x30, 0x26, 0x31, 0x10,
  1855  			0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
  1856  			0x07, 0x41, 0x63, 0x6d, 0x65, 0x20, 0x43, 0x6f,
  1857  			0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04,
  1858  			0x03, 0x13, 0x09, 0x31, 0x32, 0x37, 0x2e, 0x30,
  1859  			0x2e, 0x30, 0x2e, 0x31, 0x30, 0x81, 0x9c, 0x30,
  1860  			0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1861  			0x0d, 0x01, 0x01, 0x01, 0x03, 0x81, 0x8c, 0x00,
  1862  			0x30, 0x81, 0x88, 0x02, 0x81, 0x80, 0x4e, 0xd0,
  1863  			0x7b, 0x31, 0xe3, 0x82, 0x64, 0xd9, 0x59, 0xc0,
  1864  			0xc2, 0x87, 0xa4, 0x5e, 0x1e, 0x8b, 0x73, 0x33,
  1865  			0xc7, 0x63, 0x53, 0xdf, 0x66, 0x92, 0x06, 0x84,
  1866  			0xf6, 0x64, 0xd5, 0x8f, 0xe4, 0x36, 0xa7, 0x1d,
  1867  			0x2b, 0xe8, 0xb3, 0x20, 0x36, 0x45, 0x23, 0xb5,
  1868  			0xe3, 0x95, 0xae, 0xed, 0xe0, 0xf5, 0x20, 0x9c,
  1869  			0x8d, 0x95, 0xdf, 0x7f, 0x5a, 0x12, 0xef, 0x87,
  1870  			0xe4, 0x5b, 0x68, 0xe4, 0xe9, 0x0e, 0x74, 0xec,
  1871  			0x04, 0x8a, 0x7f, 0xde, 0x93, 0x27, 0xc4, 0x01,
  1872  			0x19, 0x7a, 0xbd, 0xf2, 0xdc, 0x3d, 0x14, 0xab,
  1873  			0xd0, 0x54, 0xca, 0x21, 0x0c, 0xd0, 0x4d, 0x6e,
  1874  			0x87, 0x2e, 0x5c, 0xc5, 0xd2, 0xbb, 0x4d, 0x4b,
  1875  			0x4f, 0xce, 0xb6, 0x2c, 0xf7, 0x7e, 0x88, 0xec,
  1876  			0x7c, 0xd7, 0x02, 0x91, 0x74, 0xa6, 0x1e, 0x0c,
  1877  			0x1a, 0xda, 0xe3, 0x4a, 0x5a, 0x2e, 0xde, 0x13,
  1878  			0x9c, 0x4c, 0x40, 0x88, 0x59, 0x93, 0x02, 0x03,
  1879  			0x01, 0x00, 0x01, 0xa3, 0x32, 0x30, 0x30, 0x30,
  1880  			0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01,
  1881  			0xff, 0x04, 0x04, 0x03, 0x02, 0x00, 0xa0, 0x30,
  1882  			0x0d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x06,
  1883  			0x04, 0x04, 0x01, 0x02, 0x03, 0x04, 0x30, 0x0f,
  1884  			0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x08, 0x30,
  1885  			0x06, 0x80, 0x04, 0x01, 0x02, 0x03, 0x04, 0x30,
  1886  			0x0b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
  1887  			0x0d, 0x01, 0x01, 0x05, 0x03, 0x81, 0x81, 0x00,
  1888  			0x36, 0x1f, 0xb3, 0x7a, 0x0c, 0x75, 0xc9, 0x6e,
  1889  			0x37, 0x46, 0x61, 0x2b, 0xd5, 0xbd, 0xc0, 0xa7,
  1890  			0x4b, 0xcc, 0x46, 0x9a, 0x81, 0x58, 0x7c, 0x85,
  1891  			0x79, 0x29, 0xc8, 0xc8, 0xc6, 0x67, 0xdd, 0x32,
  1892  			0x56, 0x45, 0x2b, 0x75, 0xb6, 0xe9, 0x24, 0xa9,
  1893  			0x50, 0x9a, 0xbe, 0x1f, 0x5a, 0xfa, 0x1a, 0x15,
  1894  			0xd9, 0xcc, 0x55, 0x95, 0x72, 0x16, 0x83, 0xb9,
  1895  			0xc2, 0xb6, 0x8f, 0xfd, 0x88, 0x8c, 0x38, 0x84,
  1896  			0x1d, 0xab, 0x5d, 0x92, 0x31, 0x13, 0x4f, 0xfd,
  1897  			0x83, 0x3b, 0xc6, 0x9d, 0xf1, 0x11, 0x62, 0xb6,
  1898  			0x8b, 0xec, 0xab, 0x67, 0xbe, 0xc8, 0x64, 0xb0,
  1899  			0x11, 0x50, 0x46, 0x58, 0x17, 0x6b, 0x99, 0x1c,
  1900  			0xd3, 0x1d, 0xfc, 0x06, 0xf1, 0x0e, 0xe5, 0x96,
  1901  			0xa8, 0x0c, 0xf9, 0x78, 0x20, 0xb7, 0x44, 0x18,
  1902  			0x51, 0x8d, 0x10, 0x7e, 0x4f, 0x94, 0x67, 0xdf,
  1903  			0xa3, 0x4e, 0x70, 0x73, 0x8e, 0x90, 0x91, 0x85,
  1904  			0x16, 0x03, 0x01, 0x00, 0x86, 0x10, 0x00, 0x00,
  1905  			0x82, 0x00, 0x80, 0x81, 0x46, 0x43, 0xf9, 0xe7,
  1906  			0xda, 0x8c, 0x92, 0x3a, 0x78, 0x1a, 0x86, 0xb3,
  1907  			0xbe, 0x83, 0x22, 0xb6, 0xaa, 0x57, 0x37, 0x68,
  1908  			0x9e, 0x54, 0x3f, 0xd3, 0xce, 0x4d, 0x5e, 0x2a,
  1909  			0xdc, 0xb0, 0x49, 0x02, 0xbb, 0xc0, 0x45, 0x58,
  1910  			0x79, 0x10, 0xc7, 0x94, 0x60, 0x9f, 0x1b, 0x5f,
  1911  			0x18, 0x31, 0x37, 0x9c, 0xe0, 0xe6, 0xdf, 0x5e,
  1912  			0x70, 0x44, 0xf6, 0x8b, 0xdf, 0xf1, 0xf6, 0x43,
  1913  			0xc8, 0x2f, 0xd1, 0xce, 0xd0, 0xd6, 0x64, 0x4f,
  1914  			0xe8, 0x2b, 0xfa, 0xd3, 0xd0, 0xd1, 0x2e, 0xaa,
  1915  			0x9b, 0x1d, 0x13, 0x5c, 0xbe, 0x57, 0x41, 0x6c,
  1916  			0x5e, 0x8d, 0xea, 0xa9, 0x3c, 0x58, 0xa0, 0x30,
  1917  			0x92, 0x77, 0x7a, 0xed, 0x64, 0x58, 0xe5, 0x7f,
  1918  			0x6a, 0x93, 0x89, 0x66, 0x3d, 0x13, 0x16, 0x56,
  1919  			0xa0, 0xad, 0xdc, 0x68, 0x95, 0x87, 0x81, 0xd0,
  1920  			0x90, 0x4d, 0x5f, 0xfe, 0x3e, 0x83, 0x15, 0x2e,
  1921  			0x50, 0x3c, 0xdd, 0x16, 0x03, 0x01, 0x00, 0x86,
  1922  			0x0f, 0x00, 0x00, 0x82, 0x00, 0x80, 0x2b, 0xf8,
  1923  			0x56, 0x48, 0xbb, 0x02, 0x37, 0x15, 0x02, 0x74,
  1924  			0x33, 0x53, 0x65, 0xa7, 0x7c, 0x2f, 0xc6, 0x5d,
  1925  			0x80, 0x59, 0xc1, 0xc2, 0x3b, 0xa9, 0xde, 0x4e,
  1926  			0x70, 0x51, 0xd2, 0xde, 0x58, 0x7f, 0xd8, 0xb9,
  1927  			0xb6, 0x3b, 0xc8, 0xaa, 0xfc, 0x3d, 0x53, 0x2d,
  1928  			0x61, 0x4d, 0xf5, 0x60, 0x12, 0xc2, 0xa5, 0x39,
  1929  			0x0c, 0xa7, 0xc6, 0xac, 0x26, 0x4b, 0xf4, 0x5f,
  1930  			0xe9, 0xf4, 0xf2, 0x73, 0x48, 0xe4, 0x3b, 0xee,
  1931  			0xf2, 0xee, 0xc0, 0xee, 0xfb, 0x5b, 0x60, 0xc2,
  1932  			0x74, 0xe6, 0xf6, 0x43, 0x3e, 0xa4, 0xf7, 0x97,
  1933  			0x3d, 0xfc, 0xe9, 0x44, 0x21, 0x18, 0x46, 0x05,
  1934  			0x33, 0xf8, 0xfe, 0x35, 0x5b, 0xe6, 0x8f, 0xef,
  1935  			0x4d, 0x4c, 0x87, 0xf6, 0xb4, 0x6e, 0x6b, 0x39,
  1936  			0xd8, 0xaa, 0x1b, 0x33, 0xc9, 0x1c, 0x66, 0x48,
  1937  			0xbe, 0xfa, 0xb5, 0x92, 0x09, 0xfd, 0xb9, 0xb9,
  1938  			0xca, 0xe6, 0x6d, 0x71, 0xc6, 0x89, 0x14, 0x03,
  1939  			0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01, 0x00,
  1940  			0x24, 0xe3, 0x2b, 0xef, 0x17, 0xd5, 0xa6, 0x4c,
  1941  			0x2e, 0x10, 0xac, 0x9c, 0xfe, 0x0f, 0x18, 0x43,
  1942  			0x95, 0x00, 0x81, 0xf7, 0x7c, 0x00, 0x5b, 0x89,
  1943  			0x52, 0x41, 0xe4, 0x8a, 0x8a, 0x34, 0x31, 0x09,
  1944  			0x48, 0x7c, 0xc5, 0xc3, 0x83,
  1945  		},
  1946  		{
  1947  			0x14, 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03,
  1948  			0x01, 0x00, 0x24, 0x24, 0xaa, 0xaa, 0x56, 0x8b,
  1949  			0x41, 0x87, 0x01, 0xbe, 0x80, 0x05, 0x51, 0x36,
  1950  			0x08, 0xfc, 0xaf, 0xff, 0x7f, 0xf4, 0x74, 0x84,
  1951  			0x88, 0xdc, 0xb8, 0x8e, 0x70, 0x6c, 0x22, 0x04,
  1952  			0xee, 0x45, 0x8d, 0xda, 0xed, 0xc6, 0x05, 0x17,
  1953  			0x03, 0x01, 0x00, 0x21, 0x91, 0x49, 0x4b, 0xed,
  1954  			0xa3, 0x41, 0xe9, 0x88, 0x3b, 0xa3, 0x01, 0xee,
  1955  			0x77, 0x4e, 0x12, 0xb4, 0xcd, 0x5e, 0xcc, 0x45,
  1956  			0x02, 0x5a, 0x20, 0xd6, 0xe8, 0xac, 0xcb, 0x60,
  1957  			0xcb, 0x1b, 0xef, 0xf9, 0xc2, 0x15, 0x03, 0x01,
  1958  			0x00, 0x16, 0xd4, 0xcd, 0x92, 0x3c, 0x10, 0x93,
  1959  			0x68, 0xc3, 0xdd, 0xaf, 0xe9, 0xcb, 0x5d, 0x94,
  1960  			0x1a, 0x06, 0x81, 0xa7, 0x78, 0x0f, 0xc3, 0x03,
  1961  		},
  1962  	}},
  1963  }
  1964  
  1965  // cert.pem and key.pem were generated with generate_cert.go
  1966  // Thus, they have no ExtKeyUsage fields and trigger an error
  1967  // when verification is turned on.
  1968  
  1969  var clientCertificate = loadPEMCert(`
  1970  -----BEGIN CERTIFICATE-----
  1971  MIIB7TCCAVigAwIBAgIBADALBgkqhkiG9w0BAQUwJjEQMA4GA1UEChMHQWNtZSBD
  1972  bzESMBAGA1UEAxMJMTI3LjAuMC4xMB4XDTExMTIwODA3NTUxMloXDTEyMTIwNzA4
  1973  MDAxMlowJjEQMA4GA1UEChMHQWNtZSBDbzESMBAGA1UEAxMJMTI3LjAuMC4xMIGc
  1974  MAsGCSqGSIb3DQEBAQOBjAAwgYgCgYBO0Hsx44Jk2VnAwoekXh6LczPHY1PfZpIG
  1975  hPZk1Y/kNqcdK+izIDZFI7Xjla7t4PUgnI2V339aEu+H5Fto5OkOdOwEin/ekyfE
  1976  ARl6vfLcPRSr0FTKIQzQTW6HLlzF0rtNS0/Otiz3fojsfNcCkXSmHgwa2uNKWi7e
  1977  E5xMQIhZkwIDAQABozIwMDAOBgNVHQ8BAf8EBAMCAKAwDQYDVR0OBAYEBAECAwQw
  1978  DwYDVR0jBAgwBoAEAQIDBDALBgkqhkiG9w0BAQUDgYEANh+zegx1yW43RmEr1b3A
  1979  p0vMRpqBWHyFeSnIyMZn3TJWRSt1tukkqVCavh9a+hoV2cxVlXIWg7nCto/9iIw4
  1980  hB2rXZIxE0/9gzvGnfERYraL7KtnvshksBFQRlgXa5kc0x38BvEO5ZaoDPl4ILdE
  1981  GFGNEH5PlGffo05wc46QkYU=
  1982  -----END CERTIFICATE-----
  1983  `)
  1984  
  1985  /* corresponding key.pem for cert.pem is:
  1986  -----BEGIN RSA PRIVATE KEY-----
  1987  MIICWgIBAAKBgE7QezHjgmTZWcDCh6ReHotzM8djU99mkgaE9mTVj+Q2px0r6LMg
  1988  NkUjteOVru3g9SCcjZXff1oS74fkW2jk6Q507ASKf96TJ8QBGXq98tw9FKvQVMoh
  1989  DNBNbocuXMXSu01LT862LPd+iOx81wKRdKYeDBra40paLt4TnExAiFmTAgMBAAEC
  1990  gYBxvXd8yNteFTns8A/2yomEMC4yeosJJSpp1CsN3BJ7g8/qTnrVPxBy+RU+qr63
  1991  t2WquaOu/cr5P8iEsa6lk20tf8pjKLNXeX0b1RTzK8rJLbS7nGzP3tvOhL096VtQ
  1992  dAo4ROEaro0TzYpHmpciSvxVIeEIAAdFDObDJPKqcJAxyQJBAJizfYgK8Gzx9fsx
  1993  hxp+VteCbVPg2euASH5Yv3K5LukRdKoSzHE2grUVQgN/LafC0eZibRanxHegYSr7
  1994  7qaswKUCQQCEIWor/X4XTMdVj3Oj+vpiw75y/S9gh682+myZL+d/02IEkwnB098P
  1995  RkKVpenBHyrGg0oeN5La7URILWKj7CPXAkBKo6F+d+phNjwIFoN1Xb/RA32w/D1I
  1996  saG9sF+UEhRt9AxUfW/U/tIQ9V0ZHHcSg1XaCM5Nvp934brdKdvTOKnJAkBD5h/3
  1997  Rybatlvg/fzBEaJFyq09zhngkxlZOUtBVTqzl17RVvY2orgH02U4HbCHy4phxOn7
  1998  qTdQRYlHRftgnWK1AkANibn9PRYJ7mJyJ9Dyj2QeNcSkSTzrt0tPvUMf4+meJymN
  1999  1Ntu5+S1DLLzfxlaljWG6ylW6DNxujCyuXIV2rvA
  2000  -----END RSA PRIVATE KEY-----
  2001  */